diff --git a/ELNGenerationCode/Makefile b/ELNGenerationCode/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0ea5ee9598d3e507365578ad2d5a3943291cfd95 --- /dev/null +++ b/ELNGenerationCode/Makefile @@ -0,0 +1,19 @@ +# Compiler and linker flags +CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS) +LDFLAGS = $(SYSTEMC_LIBRARY_DIRS) + +# List of all ecutables to be compiled +EXECUTABLES = cluster_tb + +# .PHONY targets don't generate files +.PHONY: all clean + +# Default targets +all: $(EXECUTABLES) + +cluster_tb: cluster_tb.cpp eln_in_tdf.h + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt + +# Clean rule to delete temporary and generated files +clean: + rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES) diff --git a/ELNGenerationCode/POTS_front_end/Makefile b/ELNGenerationCode/POTS_front_end/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b8d72b6a6de9487067acf350fab500b716f7e7ab --- /dev/null +++ b/ELNGenerationCode/POTS_front_end/Makefile @@ -0,0 +1,19 @@ +# Compiler and linker flags +CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS) +LDFLAGS = $(SYSTEMC_LIBRARY_DIRS) + +# List of all ecutables to be compiled +EXECUTABLES = cluster_tb + +# .PHONY targets don't generate files +.PHONY: all clean + +# Default targets +all: $(EXECUTABLES) + +cluster_tb: cluster_tb.cpp phone.h transmission_line.h protection_circuit.h slic.h + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt + +# Clean rule to delete temporary and generated files +clean: + rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES) diff --git a/ELNGenerationCode/POTS_front_end/cluster_tb.cpp b/ELNGenerationCode/POTS_front_end/cluster_tb.cpp new file mode 100644 index 0000000000000000000000000000000000000000..de0c34dfefc8a2fb02253e706e85346a8148c64b --- /dev/null +++ b/ELNGenerationCode/POTS_front_end/cluster_tb.cpp @@ -0,0 +1,62 @@ +#include <systemc-ams> +#include "phone.h" +#include "transmission_line.h" +#include "protection_circuit.h" +#include "slic.h" + +int sc_main(int argc, char *argv[]) +{ + sc_core::sc_signal<bool> s_hook; + sca_tdf::sca_signal<double> s_voice; + sca_eln::sca_node n_ring_b1; + sca_eln::sca_node n_tip_a1; + sca_tdf::sca_signal<double> s_v2w; + sca_tdf::sca_signal<double> s_i_trans; + sca_eln::sca_node n_tip_slic_tip; + sca_eln::sca_node n_b2_ring; + sca_eln::sca_node n_a2_tip; + sca_eln::sca_node n_ring_slic_ring; + + phone i_phone("i_phone"); + i_phone.ring(n_ring_b1); + i_phone.tip(n_tip_a1); + i_phone.voice(s_voice); + i_phone.hook(s_hook); + + transmission_line i_transmission_line("i_transmission_line"); + i_transmission_line.a1(n_tip_a1); + i_transmission_line.b1(n_ring_b1); + i_transmission_line.a2(n_a2_tip); + i_transmission_line.b2(n_b2_ring); + + protection_circuit i_protection_circuit("i_protection_circuit"); + i_protection_circuit.tip(n_a2_tip); + i_protection_circuit.ring(n_b2_ring); + i_protection_circuit.tip_slic(n_tip_slic_tip); + i_protection_circuit.ring_slic(n_ring_slic_ring); + + slic i_slic("i_slic"); + i_slic.tip(n_tip_slic_tip); + i_slic.ring(n_ring_slic_ring); + i_slic.i_trans(s_i_trans); + i_slic.v2w(s_v2w); + + sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("cluster_tb"); + sca_util::sca_trace(tfp, s_hook, "s_hook"); + sca_util::sca_trace(tfp, s_voice, "s_voice"); + sca_util::sca_trace(tfp, n_ring_b1, "n_ring_b1"); + sca_util::sca_trace(tfp, n_tip_a1, "n_tip_a1"); + sca_util::sca_trace(tfp, s_v2w, "s_v2w"); + sca_util::sca_trace(tfp, s_i_trans, "s_i_trans"); + sca_util::sca_trace(tfp, n_tip_slic_tip, "n_tip_slic_tip"); + sca_util::sca_trace(tfp, n_b2_ring, "n_b2_ring"); + sca_util::sca_trace(tfp, n_a2_tip, "n_a2_tip"); + sca_util::sca_trace(tfp, n_ring_slic_ring, "n_ring_slic_ring"); + + sc_start(100.0, sc_core::SC_MS); + + sca_util::sca_close_tabular_trace_file(tfp); + sc_core::sc_stop(); + return 0; +} + diff --git a/ELNGenerationCode/POTS_front_end/phone.h b/ELNGenerationCode/POTS_front_end/phone.h new file mode 100644 index 0000000000000000000000000000000000000000..e1392431b69b5282059c2ef84be7ca742a213389 --- /dev/null +++ b/ELNGenerationCode/POTS_front_end/phone.h @@ -0,0 +1,73 @@ +#ifndef PHONE_H +#define PHONE_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(phone) +{ + sca_eln::sca_terminal ring; + sca_eln::sca_terminal tip; + + sc_core::sc_in<bool> hook; + sca_tdf::sca_in<double> voice; + + sca_eln::sca_c cr; + sca_eln::sca_c cp; + sca_eln::sca_r rr; + sca_eln::sca_r rs; + sca_eln::sca_r rp; + sca_eln::sca_de_vsource sw1; + sca_eln::sca_de_vsource sw2; + sca_eln::sca_tdf_vsource mic; + + SC_CTOR(phone) + : ring("ring") + , tip("tip") + , hook("hook") + , voice("voice") + , cr("cr", 1.0e-6, 0.0) + , cp("cp", 115.0e-9, 0.0) + , rr("rr", 1.0e3) + , rs("rs", 220.0) + , rp("rp", 820.0) + , sw1("sw1", 1.0) + , sw2("sw2", 1.0) + , mic("mic", 1.0) + , wring("wring") + , w1("w1") + , w_onhook("w_onhook") + , w2("w2") + , w_offhook("w_offhook") + { + cr.p(wring); + cr.n(w_onhook); + cp.p(w1); + cp.n(w_offhook); + rr.p(wring); + rr.n(ring); + rs.p(w1); + rs.n(w2); + rp.p(w_offhook); + rp.n(w1); + sw1.p(tip); + sw1.n(w_onhook); + sw1.inp(hook); + sw2.p(tip); + sw2.n(w_offhook); + sw2.inp(hook); + mic.p(w2); + mic.n(ring); + mic.inp(voice); + } + +private: + sca_eln::sca_node wring; + sca_eln::sca_node w1; + sca_eln::sca_node w_onhook; + sca_eln::sca_node w2; + sca_eln::sca_node w_offhook; +}; + +#endif // PHONE_H \ No newline at end of file diff --git a/ELNGenerationCode/POTS_front_end/protection_circuit.h b/ELNGenerationCode/POTS_front_end/protection_circuit.h new file mode 100644 index 0000000000000000000000000000000000000000..5b8ecd19c3e9d6cedf20bb7de7b286c9b9589157 --- /dev/null +++ b/ELNGenerationCode/POTS_front_end/protection_circuit.h @@ -0,0 +1,57 @@ +#ifndef PROTECTION_CIRCUIT_H +#define PROTECTION_CIRCUIT_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(protection_circuit) +{ + sca_eln::sca_terminal tip; + sca_eln::sca_terminal ring; + sca_eln::sca_terminal tip_slic; + sca_eln::sca_terminal ring_slic; + + sca_eln::sca_c cprot1; + sca_eln::sca_c cprot2; + sca_eln::sca_r rprot1; + sca_eln::sca_r rprot2; + sca_eln::sca_r rprot3; + sca_eln::sca_r rprot4; + + SC_CTOR(protection_circuit) + : tip("tip") + , ring("ring") + , tip_slic("tip_slic") + , ring_slic("ring_slic") + , cprot1("cprot1", 18.0e-9, 0.0) + , cprot2("cprot2", 18.0e-9, 0.0) + , rprot1("rprot1", 20.0) + , rprot2("rprot2", 20.0) + , rprot3("rprot3", 20.0) + , rprot4("rprot4", 20.0) + , n_ring("n_ring") + , n_tip("n_tip") + , gnd("gnd") + { + cprot1.p(n_tip); + cprot1.n(gnd); + cprot2.p(n_ring); + cprot2.n(gnd); + rprot1.p(tip); + rprot1.n(n_tip); + rprot2.p(tip_slic); + rprot2.n(n_tip); + rprot3.p(ring); + rprot3.n(n_ring); + rprot4.p(ring_slic); + rprot4.n(n_ring); + } + +private: + sca_eln::sca_node n_ring; + sca_eln::sca_node n_tip; + sca_eln::sca_node_ref gnd; +}; + +#endif // PROTECTION_CIRCUIT_H \ No newline at end of file diff --git a/ELNGenerationCode/POTS_front_end/slic.h b/ELNGenerationCode/POTS_front_end/slic.h new file mode 100644 index 0000000000000000000000000000000000000000..d105970dcf43fba7f14b02c3b989cd45816a20c1 --- /dev/null +++ b/ELNGenerationCode/POTS_front_end/slic.h @@ -0,0 +1,67 @@ +#ifndef SLIC_H +#define SLIC_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(slic) +{ + sca_eln::sca_terminal tip; + sca_eln::sca_terminal ring; + + sca_tdf::sca_out<double> i_trans; + sca_tdf::sca_in<double> v2w; + + sca_eln::sca_r rtr; + sca_eln::sca_vccs mirror2; + sca_eln::sca_vccs mirror1; + sca_eln::sca_tdf_vsink itr_meas; + sca_eln::sca_tdf_vsource driver1; + sca_eln::sca_tdf_vsource driver2; + + SC_CTOR(slic) + : tip("tip") + , ring("ring") + , i_trans("i_trans") + , v2w("v2w") + , rtr("rtr", 1.0) + , mirror2("mirror2", -0.5) + , mirror1("mirror1", 0.5) + , itr_meas("itr_meas", 1.0) + , driver1("driver1", 0.5) + , driver2("driver2", 0.5) + , n_tri_i("n_tri_i") + , n_ring_gnd("n_ring_gnd") + , n_tip_gnd("n_tip_gnd") + , gnd("gnd") + { + rtr.p(n_tri_i); + rtr.n(gnd); + mirror2.ncp(n_ring_gnd); + mirror2.np(n_tri_i); + mirror2.ncn(gnd); + mirror2.nn(gnd); + mirror1.ncp(n_tip_gnd); + mirror1.np(n_tri_i); + mirror1.ncn(gnd); + mirror1.nn(gnd); + itr_meas.p(n_tri_i); + itr_meas.n(gnd); + itr_meas.outp(i_trans); + driver1.p(tip); + driver1.n(n_tip_gnd); + driver1.inp(v2w); + driver2.p(ring); + driver2.n(n_ring_gnd); + driver2.inp(v2w); + } + +private: + sca_eln::sca_node n_tri_i; + sca_eln::sca_node n_ring_gnd; + sca_eln::sca_node n_tip_gnd; + sca_eln::sca_node_ref gnd; +}; + +#endif // SLIC_H \ No newline at end of file diff --git a/ELNGenerationCode/POTS_front_end/transmission_line.h b/ELNGenerationCode/POTS_front_end/transmission_line.h new file mode 100644 index 0000000000000000000000000000000000000000..0fdca0942dd32167691a0eed597ffbf5640451fd --- /dev/null +++ b/ELNGenerationCode/POTS_front_end/transmission_line.h @@ -0,0 +1,33 @@ +#ifndef TRANSMISSION_LINE_H +#define TRANSMISSION_LINE_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(transmission_line) +{ + sca_eln::sca_terminal a1; + sca_eln::sca_terminal b1; + sca_eln::sca_terminal a2; + sca_eln::sca_terminal b2; + + sca_eln::sca_transmission_line tl0; + + SC_CTOR(transmission_line) + : a1("a1") + , b1("b1") + , a2("a2") + , b2("b2") + , tl0("tl0", 50.0, sc_core::SC_ZERO_TIME, 0.0) + { + tl0.a1(a1); + tl0.a2(a2); + tl0.b1(b1); + tl0.b2(b2); + } + +private: +}; + +#endif // TRANSMISSION_LINE_H \ No newline at end of file diff --git a/ELNGenerationCode/eln_in_tdf/Makefile b/ELNGenerationCode/eln_in_tdf/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0ea5ee9598d3e507365578ad2d5a3943291cfd95 --- /dev/null +++ b/ELNGenerationCode/eln_in_tdf/Makefile @@ -0,0 +1,19 @@ +# Compiler and linker flags +CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS) +LDFLAGS = $(SYSTEMC_LIBRARY_DIRS) + +# List of all ecutables to be compiled +EXECUTABLES = cluster_tb + +# .PHONY targets don't generate files +.PHONY: all clean + +# Default targets +all: $(EXECUTABLES) + +cluster_tb: cluster_tb.cpp eln_in_tdf.h + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt + +# Clean rule to delete temporary and generated files +clean: + rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES) diff --git a/ELNGenerationCode/eln_in_tdf/cluster_tb.cpp b/ELNGenerationCode/eln_in_tdf/cluster_tb.cpp new file mode 100644 index 0000000000000000000000000000000000000000..65cb4c670f52c49841aef9b860f7012479ecfd8b --- /dev/null +++ b/ELNGenerationCode/eln_in_tdf/cluster_tb.cpp @@ -0,0 +1,23 @@ +#include <systemc-ams> +#include "eln_in_tdf.h" + +int sc_main(int argc, char *argv[]) +{ + sca_tdf::sca_signal<double> s_out; + sca_tdf::sca_signal<double> s_in; + + eln_in_tdf i_eln_in_tdf("i_eln_in_tdf"); + i_eln_in_tdf.in(s_in); + i_eln_in_tdf.out(s_out); + + sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("cluster_tb"); + sca_util::sca_trace(tfp, s_out, "s_out"); + sca_util::sca_trace(tfp, s_in, "s_in"); + + sc_start(100.0, sc_core::SC_MS); + + sca_util::sca_close_tabular_trace_file(tfp); + sc_core::sc_stop(); + return 0; +} + diff --git a/ELNGenerationCode/eln_in_tdf/eln_in_tdf.h b/ELNGenerationCode/eln_in_tdf/eln_in_tdf.h new file mode 100644 index 0000000000000000000000000000000000000000..2f75f2a513704f2604a83439900e0e4f3420b873 --- /dev/null +++ b/ELNGenerationCode/eln_in_tdf/eln_in_tdf.h @@ -0,0 +1,47 @@ +#ifndef ELN_IN_TDF_H +#define ELN_IN_TDF_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(eln_in_tdf) +{ + sca_tdf::sca_out<double> out; + sca_tdf::sca_in<double> in; + + sca_eln::sca_c c; + sca_eln::sca_r r; + sca_eln::sca_tdf_vsink vout; + sca_eln::sca_tdf_vsource vin; + + SC_CTOR(eln_in_tdf) + : out("out") + , in("in") + , c("c", 1.0, 0.0) + , r("r", 1.0) + , vout("vout", 1.0) + , vin("vin", 1.0) + , n2("n2") + , n1("n1") + , gnd("gnd") + { + c.p(n2); + c.n(gnd); + r.p(n1); + r.n(n2); + vout.p(n2); + vout.n(gnd); + vout.outp(out); + vin.p(n1); + vin.n(gnd); + vin.inp(in); + } + +private: + sca_eln::sca_node n2; + sca_eln::sca_node n1; + sca_eln::sca_node_ref gnd; +}; + +#endif // ELN_IN_TDF_H \ No newline at end of file diff --git a/ELNGenerationCode/generated_CPP/cluster0_tb.cpp b/ELNGenerationCode/generated_CPP/cluster0_tb.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ELNGenerationCode/generated_H/module0.h b/ELNGenerationCode/generated_H/module0.h new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ELNGenerationCode/my_eln_filter/Makefile b/ELNGenerationCode/my_eln_filter/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ec8363c9d73a6af749a3bc68ed22711dfe15ac00 --- /dev/null +++ b/ELNGenerationCode/my_eln_filter/Makefile @@ -0,0 +1,19 @@ +# Compiler and linker flags +CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS) +LDFLAGS = $(SYSTEMC_LIBRARY_DIRS) + +# List of all ecutables to be compiled +EXECUTABLES = cluster_tb + +# .PHONY targets don't generate files +.PHONY: all clean + +# Default targets +all: $(EXECUTABLES) + +cluster_tb: cluster_tb.cpp my_eln_filter.h + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt + +# Clean rule to delete temporary and generated files +clean: + rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES) diff --git a/ELNGenerationCode/my_eln_filter/cluster_tb.cpp b/ELNGenerationCode/my_eln_filter/cluster_tb.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3432a5a75a7436d899466b03430f630a4ae7430c --- /dev/null +++ b/ELNGenerationCode/my_eln_filter/cluster_tb.cpp @@ -0,0 +1,23 @@ +#include <systemc-ams> +#include "my_eln_filter.h" + +int sc_main(int argc, char *argv[]) +{ + sca_eln::sca_node n_b_out; + sca_eln::sca_node n_in_a; + + my_eln_filter i_my_eln_filter("i_my_eln_filter"); + i_my_eln_filter.a(n_in_a); + i_my_eln_filter.b(n_b_out); + + sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("cluster_tb"); + sca_util::sca_trace(tfp, n_b_out, "n_b_out"); + sca_util::sca_trace(tfp, n_in_a, "n_in_a"); + + sc_start(100.0, sc_core::SC_MS); + + sca_util::sca_close_tabular_trace_file(tfp); + sc_core::sc_stop(); + return 0; +} + diff --git a/ELNGenerationCode/my_eln_filter/my_eln_filter.h b/ELNGenerationCode/my_eln_filter/my_eln_filter.h new file mode 100644 index 0000000000000000000000000000000000000000..61e8e4840838bb61c7eacb809acee5446d49282e --- /dev/null +++ b/ELNGenerationCode/my_eln_filter/my_eln_filter.h @@ -0,0 +1,34 @@ +#ifndef MY_ELN_FILTER_H +#define MY_ELN_FILTER_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(my_eln_filter) +{ + sca_eln::sca_terminal a; + sca_eln::sca_terminal b; + + sca_eln::sca_c c1; + + sca_eln::sca_r r1; + + SC_CTOR(my_eln_filter) + : a("a") + , b("b") + , c1("c1", 1.0, 0.0) + , r1("r1", 1.0) + , gnd("gnd") + { + c1.p(gnd); + c1.n(b); + r1.p(b); + r1.n(a); + } + +private: + sca_eln::sca_node_ref gnd; +}; + +#endif // MY_ELN_FILTER_H \ No newline at end of file diff --git a/ELNGenerationCode/my_structural_eln_model/Cluster0_tb.cpp b/ELNGenerationCode/my_structural_eln_model/Cluster0_tb.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a995b981fb7e96a8e6f6aea9025242c617d1cac4 --- /dev/null +++ b/ELNGenerationCode/my_structural_eln_model/Cluster0_tb.cpp @@ -0,0 +1,23 @@ +#include <systemc-ams> +#include "my_structural_eln_model.h" + +int sc_main(int argc, char *argv[]) +{ + sca_eln::sca_node n_out_b; + sca_eln::sca_node n_in_a; + + my_structural_eln_model i_my_structural_eln_model("i_my_structural_eln_model"); + i_my_structural_eln_model.b(n_out_b); + i_my_structural_eln_model.a(n_in_a); + + sca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file("Cluster0_tb"); + sca_util::sca_trace(tfp, n_out_b, "n_out_b"); + sca_util::sca_trace(tfp, n_in_a, "n_in_a"); + + sc_start(100.0, sc_core::SC_MS); + + sca_util::sca_close_tabular_trace_file(tfp); + sc_core::sc_stop(); + return 0; +} + diff --git a/ELNGenerationCode/my_structural_eln_model/Makefile b/ELNGenerationCode/my_structural_eln_model/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..54b1ecfe025c0519c3eefdec902fd41f0b1500fb --- /dev/null +++ b/ELNGenerationCode/my_structural_eln_model/Makefile @@ -0,0 +1,19 @@ +# Compiler and linker flags +CXXFLAGS = -g -Wall -I. $(SYSTEMC_INCLUDE_DIRS) +LDFLAGS = $(SYSTEMC_LIBRARY_DIRS) + +# List of all ecutables to be compiled +EXECUTABLES = Cluster0_tb + +# .PHONY targets don't generate files +.PHONY: all clean + +# Default targets +all: $(EXECUTABLES) + +Cluster0_tb: Cluster0_tb.cpp my_structural_eln_model.h + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt + +# Clean rule to delete temporary and generated files +clean: + rm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES) diff --git a/ELNGenerationCode/my_structural_eln_model/my_structural_eln_model.h b/ELNGenerationCode/my_structural_eln_model/my_structural_eln_model.h new file mode 100644 index 0000000000000000000000000000000000000000..602bc1847f3bdd126c454e1d55d2635df205da4f --- /dev/null +++ b/ELNGenerationCode/my_structural_eln_model/my_structural_eln_model.h @@ -0,0 +1,40 @@ +#ifndef MY_STRUCTURAL_ELN_MODEL_H +#define MY_STRUCTURAL_ELN_MODEL_H + +#include <cmath> +#include <iostream> +#include <systemc-ams> + +SC_MODULE(my_structural_eln_model) +{ + sca_eln::sca_terminal b; + sca_eln::sca_terminal a; + + sca_eln::sca_c c1; + + sca_eln::sca_r r1; + sca_eln::sca_r r2; + + SC_CTOR(my_structural_eln_model) + : b("b") + , a("a") + , c1("c1", 100.0e-6, 0.0) + , r1("r1", 10.0e3) + , r2("r2", 100.0) + , net1("net1") + , gnd("gnd") + { + c1.p(net1); + c1.n(gnd); + r1.p(a); + r1.n(b); + r2.p(a); + r2.n(net1); + } + +private: + sca_eln::sca_node net1; + sca_eln::sca_node_ref gnd; +}; + +#endif // MY_STRUCTURAL_ELN_MODEL_H \ No newline at end of file diff --git a/build.txt b/build.txt index f6b4b4266db27d9f41a39754e8c428d2a5583d45..891a2c18d2e24e27fac683b5fcccd4bf06b2386a 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -12708 \ No newline at end of file +12735 \ No newline at end of file diff --git a/modeling/AVATAR/testReq.xml b/modeling/AVATAR/testReq.xml index e69993f1eae34c1082f8500a2d0cb5fc8adf5dc6..49c6e4cdc6c702829cdae07bfc08dbf2f7b23e96 100644 --- a/modeling/AVATAR/testReq.xml +++ b/modeling/AVATAR/testReq.xml @@ -139,7 +139,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="77" /> -<P1 x="559" y="330" id="139" /> +<P1 x="559" y="330" id="114" /> <P2 x="560" y="377" id="172" /> <AutomaticDrawing data="true" /> <extraparam> @@ -169,7 +169,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="81" /> -<P1 x="789" y="326" id="114" /> +<P1 x="789" y="326" id="139" /> <P2 x="790" y="377" id="173" /> <AutomaticDrawing data="true" /> <extraparam> @@ -270,11 +270,11 @@ </COMPONENT> <SUBCOMPONENT type="5000" id="132" > <father id="182" num="0" /> -<cdparam x="695" y="224" /> -<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="464" y="228" /> +<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> -<infoparam name="Block1" value="TeaButton" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> +<infoparam name="Block1" value="CoffeeButton" /> <TGConnectingPoint num="0" id="108" /> <TGConnectingPoint num="1" id="109" /> <TGConnectingPoint num="2" id="110" /> @@ -308,11 +308,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5000" id="157" > <father id="182" num="1" /> -<cdparam x="464" y="228" /> -<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="695" y="224" /> +<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> -<infoparam name="Block1" value="CoffeeButton" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> +<infoparam name="Block1" value="TeaButton" /> <TGConnectingPoint num="0" id="133" /> <TGConnectingPoint num="1" id="134" /> <TGConnectingPoint num="2" id="135" /> @@ -740,7 +740,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="378" /> -<P1 x="442" y="527" id="729" /> +<P1 x="442" y="527" id="794" /> <P2 x="323" y="748" id="655" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="377" > @@ -770,8 +770,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="385" /> -<P1 x="326" y="457" id="756" /> -<P2 x="442" y="497" id="728" /> +<P1 x="326" y="457" id="743" /> +<P2 x="442" y="497" id="793" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="384" > <father id="386" num="0" /> @@ -799,7 +799,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="392" /> -<P1 x="298" y="554" id="794" /> +<P1 x="298" y="554" id="729" /> <P2 x="289" y="748" id="647" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="391" > @@ -830,8 +830,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="399" /> -<P1 x="293" y="477" id="767" /> -<P2 x="298" y="524" id="793" /> +<P1 x="293" y="477" id="754" /> +<P2 x="298" y="524" id="728" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="398" > <father id="400" num="0" /> @@ -859,7 +859,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="406" /> -<P1 x="126" y="554" id="740" /> +<P1 x="126" y="554" id="783" /> <P2 x="255" y="748" id="654" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="405" > @@ -890,8 +890,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="413" /> -<P1 x="227" y="477" id="766" /> -<P2 x="126" y="524" id="739" /> +<P1 x="227" y="477" id="753" /> +<P2 x="126" y="524" id="782" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="412" > <father id="414" num="0" /> @@ -919,8 +919,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="420" /> -<P1 x="261" y="421" id="750" /> -<P2 x="260" y="437" id="753" /> +<P1 x="261" y="421" id="780" /> +<P2 x="260" y="437" id="740" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="419" > <father id="421" num="0" /> @@ -1540,13 +1540,13 @@ <extraparam> </extraparam> </COMPONENT> -<SUBCOMPONENT type="5103" id="738" > +<SUBCOMPONENT type="5104" id="738" > <father id="844" num="0" /> -<cdparam x="377" y="502" /> -<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="242" y="529" /> +<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> -<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushTeaButton()" /> <TGConnectingPoint num="0" id="728" /> <TGConnectingPoint num="1" id="729" /> <TGConnectingPoint num="2" id="730" /> @@ -1559,13 +1559,13 @@ <TGConnectingPoint num="9" id="737" /> <accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="749" > +<SUBCOMPONENT type="5106" id="779" > <father id="844" num="1" /> -<cdparam x="63" y="529" /> -<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="194" y="437" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushCoffeeButton()" /> +<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> +<infoparam name="state0" value="WaitingForSelection" /> <TGConnectingPoint num="0" id="739" /> <TGConnectingPoint num="1" id="740" /> <TGConnectingPoint num="2" id="741" /> @@ -1576,75 +1576,75 @@ <TGConnectingPoint num="7" id="746" /> <TGConnectingPoint num="8" id="747" /> <TGConnectingPoint num="9" id="748" /> -<accessibility /> +<TGConnectingPoint num="10" id="749" /> +<TGConnectingPoint num="11" id="750" /> +<TGConnectingPoint num="12" id="751" /> +<TGConnectingPoint num="13" id="752" /> +<TGConnectingPoint num="14" id="753" /> +<TGConnectingPoint num="15" id="754" /> +<TGConnectingPoint num="16" id="755" /> +<TGConnectingPoint num="17" id="756" /> +<TGConnectingPoint num="18" id="757" /> +<TGConnectingPoint num="19" id="758" /> +<TGConnectingPoint num="20" id="759" /> +<TGConnectingPoint num="21" id="760" /> +<TGConnectingPoint num="22" id="761" /> +<TGConnectingPoint num="23" id="762" /> +<TGConnectingPoint num="24" id="763" /> +<TGConnectingPoint num="25" id="764" /> +<TGConnectingPoint num="26" id="765" /> +<TGConnectingPoint num="27" id="766" /> +<TGConnectingPoint num="28" id="767" /> +<TGConnectingPoint num="29" id="768" /> +<TGConnectingPoint num="30" id="769" /> +<TGConnectingPoint num="31" id="770" /> +<TGConnectingPoint num="32" id="771" /> +<TGConnectingPoint num="33" id="772" /> +<TGConnectingPoint num="34" id="773" /> +<TGConnectingPoint num="35" id="774" /> +<TGConnectingPoint num="36" id="775" /> +<TGConnectingPoint num="37" id="776" /> +<TGConnectingPoint num="38" id="777" /> +<TGConnectingPoint num="39" id="778" /> +<latencyCheck /> +<extraparam> +</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5100" id="751" > +<SUBCOMPONENT type="5100" id="781" > <father id="844" num="2" /> <cdparam x="254" y="401" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="750" /> +<TGConnectingPoint num="0" id="780" /> </SUBCOMPONENT> -<SUBCOMPONENT type="5106" id="792" > +<SUBCOMPONENT type="5104" id="792" > <father id="844" num="3" /> -<cdparam x="194" y="437" /> -<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="63" y="529" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> -<infoparam name="state0" value="WaitingForSelection" /> -<TGConnectingPoint num="0" id="752" /> -<TGConnectingPoint num="1" id="753" /> -<TGConnectingPoint num="2" id="754" /> -<TGConnectingPoint num="3" id="755" /> -<TGConnectingPoint num="4" id="756" /> -<TGConnectingPoint num="5" id="757" /> -<TGConnectingPoint num="6" id="758" /> -<TGConnectingPoint num="7" id="759" /> -<TGConnectingPoint num="8" id="760" /> -<TGConnectingPoint num="9" id="761" /> -<TGConnectingPoint num="10" id="762" /> -<TGConnectingPoint num="11" id="763" /> -<TGConnectingPoint num="12" id="764" /> -<TGConnectingPoint num="13" id="765" /> -<TGConnectingPoint num="14" id="766" /> -<TGConnectingPoint num="15" id="767" /> -<TGConnectingPoint num="16" id="768" /> -<TGConnectingPoint num="17" id="769" /> -<TGConnectingPoint num="18" id="770" /> -<TGConnectingPoint num="19" id="771" /> -<TGConnectingPoint num="20" id="772" /> -<TGConnectingPoint num="21" id="773" /> -<TGConnectingPoint num="22" id="774" /> -<TGConnectingPoint num="23" id="775" /> -<TGConnectingPoint num="24" id="776" /> -<TGConnectingPoint num="25" id="777" /> -<TGConnectingPoint num="26" id="778" /> -<TGConnectingPoint num="27" id="779" /> -<TGConnectingPoint num="28" id="780" /> -<TGConnectingPoint num="29" id="781" /> -<TGConnectingPoint num="30" id="782" /> -<TGConnectingPoint num="31" id="783" /> -<TGConnectingPoint num="32" id="784" /> -<TGConnectingPoint num="33" id="785" /> -<TGConnectingPoint num="34" id="786" /> -<TGConnectingPoint num="35" id="787" /> -<TGConnectingPoint num="36" id="788" /> -<TGConnectingPoint num="37" id="789" /> -<TGConnectingPoint num="38" id="790" /> -<TGConnectingPoint num="39" id="791" /> -<latencyCheck /> -<extraparam> -</extraparam> +<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushCoffeeButton()" /> +<TGConnectingPoint num="0" id="782" /> +<TGConnectingPoint num="1" id="783" /> +<TGConnectingPoint num="2" id="784" /> +<TGConnectingPoint num="3" id="785" /> +<TGConnectingPoint num="4" id="786" /> +<TGConnectingPoint num="5" id="787" /> +<TGConnectingPoint num="6" id="788" /> +<TGConnectingPoint num="7" id="789" /> +<TGConnectingPoint num="8" id="790" /> +<TGConnectingPoint num="9" id="791" /> +<accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="803" > +<SUBCOMPONENT type="5103" id="803" > <father id="844" num="4" /> -<cdparam x="242" y="529" /> -<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="377" y="502" /> +<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushTeaButton()" /> +<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> <TGConnectingPoint num="0" id="793" /> <TGConnectingPoint num="1" id="794" /> <TGConnectingPoint num="2" id="795" /> @@ -1661,19 +1661,19 @@ </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > <CONNECTOR type="5102" id="851" > -<cdparam x="177" y="199" /> +<cdparam x="363" y="193" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to Send signal" value="null" /> +<infoparam name="connector from Send signal to state0" value="null" /> <TGConnectingPoint num="0" id="850" /> -<P1 x="340" y="233" id="957" /> -<P2 x="353" y="252" id="959" /> +<P1 x="363" y="204" id="867" /> +<P2 x="362" y="257" id="878" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="849" > <father id="851" num="0" /> -<cdparam x="177" y="239" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="380" y="228" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1683,7 +1683,7 @@ <TGConnectingPoint num="3" id="848" /> <extraparam> <guard value="[ ]" /> -<afterMin value="" /> +<afterMin value="mechanicalDelay" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> @@ -1692,16 +1692,16 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="858" > -<cdparam x="322" y="69" /> +<cdparam x="363" y="150" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> +<infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="857" /> -<P1 x="322" y="69" id="955" /> -<P2 x="323" y="88" id="915" /> +<P1 x="363" y="150" id="924" /> +<P2 x="363" y="174" id="866" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="856" > <father id="858" num="0" /> -<cdparam x="322" y="109" /> +<cdparam x="363" y="190" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -1721,16 +1721,16 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="865" > -<cdparam x="377" y="144" /> +<cdparam x="362" y="101" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> +<infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="864" /> -<P1 x="323" y="118" id="920" /> -<P2 x="356" y="174" id="971" /> +<P1 x="362" y="101" id="959" /> +<P2 x="363" y="120" id="919" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="863" > <father id="865" num="0" /> -<cdparam x="377" y="184" /> +<cdparam x="362" y="141" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -1749,247 +1749,159 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="872" > -<cdparam x="377" y="187" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="871" /> -<P1 x="353" y="282" id="960" /> -<P2 x="399" y="352" id="874" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="870" > -<father id="872" num="0" /> -<cdparam x="417" y="335" /> -<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5103" id="876" > +<cdparam x="338" y="179" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<infoparam name="Send signal" value="push()" /> <TGConnectingPoint num="0" id="866" /> <TGConnectingPoint num="1" id="867" /> <TGConnectingPoint num="2" id="868" /> <TGConnectingPoint num="3" id="869" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<probability value="" /> -</extraparam> -</SUBCOMPONENT> +<TGConnectingPoint num="4" id="870" /> +<TGConnectingPoint num="5" id="871" /> +<TGConnectingPoint num="6" id="872" /> +<TGConnectingPoint num="7" id="873" /> +<TGConnectingPoint num="8" id="874" /> +<TGConnectingPoint num="9" id="875" /> +</COMPONENT> -<COMPONENT type="5106" id="913" > -<cdparam x="374" y="352" /> +<COMPONENT type="5106" id="917" > +<cdparam x="337" y="257" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="873" /> -<TGConnectingPoint num="1" id="874" /> -<TGConnectingPoint num="2" id="875" /> -<TGConnectingPoint num="3" id="876" /> -<TGConnectingPoint num="4" id="877" /> -<TGConnectingPoint num="5" id="878" /> -<TGConnectingPoint num="6" id="879" /> -<TGConnectingPoint num="7" id="880" /> -<TGConnectingPoint num="8" id="881" /> -<TGConnectingPoint num="9" id="882" /> -<TGConnectingPoint num="10" id="883" /> -<TGConnectingPoint num="11" id="884" /> -<TGConnectingPoint num="12" id="885" /> -<TGConnectingPoint num="13" id="886" /> -<TGConnectingPoint num="14" id="887" /> -<TGConnectingPoint num="15" id="888" /> -<TGConnectingPoint num="16" id="889" /> -<TGConnectingPoint num="17" id="890" /> -<TGConnectingPoint num="18" id="891" /> -<TGConnectingPoint num="19" id="892" /> -<TGConnectingPoint num="20" id="893" /> -<TGConnectingPoint num="21" id="894" /> -<TGConnectingPoint num="22" id="895" /> -<TGConnectingPoint num="23" id="896" /> -<TGConnectingPoint num="24" id="897" /> -<TGConnectingPoint num="25" id="898" /> -<TGConnectingPoint num="26" id="899" /> -<TGConnectingPoint num="27" id="900" /> -<TGConnectingPoint num="28" id="901" /> -<TGConnectingPoint num="29" id="902" /> -<TGConnectingPoint num="30" id="903" /> -<TGConnectingPoint num="31" id="904" /> -<TGConnectingPoint num="32" id="905" /> -<TGConnectingPoint num="33" id="906" /> -<TGConnectingPoint num="34" id="907" /> -<TGConnectingPoint num="35" id="908" /> -<TGConnectingPoint num="36" id="909" /> -<TGConnectingPoint num="37" id="910" /> -<TGConnectingPoint num="38" id="911" /> -<TGConnectingPoint num="39" id="912" /> +<TGConnectingPoint num="0" id="877" /> +<TGConnectingPoint num="1" id="878" /> +<TGConnectingPoint num="2" id="879" /> +<TGConnectingPoint num="3" id="880" /> +<TGConnectingPoint num="4" id="881" /> +<TGConnectingPoint num="5" id="882" /> +<TGConnectingPoint num="6" id="883" /> +<TGConnectingPoint num="7" id="884" /> +<TGConnectingPoint num="8" id="885" /> +<TGConnectingPoint num="9" id="886" /> +<TGConnectingPoint num="10" id="887" /> +<TGConnectingPoint num="11" id="888" /> +<TGConnectingPoint num="12" id="889" /> +<TGConnectingPoint num="13" id="890" /> +<TGConnectingPoint num="14" id="891" /> +<TGConnectingPoint num="15" id="892" /> +<TGConnectingPoint num="16" id="893" /> +<TGConnectingPoint num="17" id="894" /> +<TGConnectingPoint num="18" id="895" /> +<TGConnectingPoint num="19" id="896" /> +<TGConnectingPoint num="20" id="897" /> +<TGConnectingPoint num="21" id="898" /> +<TGConnectingPoint num="22" id="899" /> +<TGConnectingPoint num="23" id="900" /> +<TGConnectingPoint num="24" id="901" /> +<TGConnectingPoint num="25" id="902" /> +<TGConnectingPoint num="26" id="903" /> +<TGConnectingPoint num="27" id="904" /> +<TGConnectingPoint num="28" id="905" /> +<TGConnectingPoint num="29" id="906" /> +<TGConnectingPoint num="30" id="907" /> +<TGConnectingPoint num="31" id="908" /> +<TGConnectingPoint num="32" id="909" /> +<TGConnectingPoint num="33" id="910" /> +<TGConnectingPoint num="34" id="911" /> +<TGConnectingPoint num="35" id="912" /> +<TGConnectingPoint num="36" id="913" /> +<TGConnectingPoint num="37" id="914" /> +<TGConnectingPoint num="38" id="915" /> +<TGConnectingPoint num="39" id="916" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5106" id="954" > -<cdparam x="298" y="88" /> +<COMPONENT type="5106" id="958" > +<cdparam x="338" y="120" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="914" /> -<TGConnectingPoint num="1" id="915" /> -<TGConnectingPoint num="2" id="916" /> -<TGConnectingPoint num="3" id="917" /> -<TGConnectingPoint num="4" id="918" /> -<TGConnectingPoint num="5" id="919" /> -<TGConnectingPoint num="6" id="920" /> -<TGConnectingPoint num="7" id="921" /> -<TGConnectingPoint num="8" id="922" /> -<TGConnectingPoint num="9" id="923" /> -<TGConnectingPoint num="10" id="924" /> -<TGConnectingPoint num="11" id="925" /> -<TGConnectingPoint num="12" id="926" /> -<TGConnectingPoint num="13" id="927" /> -<TGConnectingPoint num="14" id="928" /> -<TGConnectingPoint num="15" id="929" /> -<TGConnectingPoint num="16" id="930" /> -<TGConnectingPoint num="17" id="931" /> -<TGConnectingPoint num="18" id="932" /> -<TGConnectingPoint num="19" id="933" /> -<TGConnectingPoint num="20" id="934" /> -<TGConnectingPoint num="21" id="935" /> -<TGConnectingPoint num="22" id="936" /> -<TGConnectingPoint num="23" id="937" /> -<TGConnectingPoint num="24" id="938" /> -<TGConnectingPoint num="25" id="939" /> -<TGConnectingPoint num="26" id="940" /> -<TGConnectingPoint num="27" id="941" /> -<TGConnectingPoint num="28" id="942" /> -<TGConnectingPoint num="29" id="943" /> -<TGConnectingPoint num="30" id="944" /> -<TGConnectingPoint num="31" id="945" /> -<TGConnectingPoint num="32" id="946" /> -<TGConnectingPoint num="33" id="947" /> -<TGConnectingPoint num="34" id="948" /> -<TGConnectingPoint num="35" id="949" /> -<TGConnectingPoint num="36" id="950" /> -<TGConnectingPoint num="37" id="951" /> -<TGConnectingPoint num="38" id="952" /> -<TGConnectingPoint num="39" id="953" /> +<TGConnectingPoint num="0" id="918" /> +<TGConnectingPoint num="1" id="919" /> +<TGConnectingPoint num="2" id="920" /> +<TGConnectingPoint num="3" id="921" /> +<TGConnectingPoint num="4" id="922" /> +<TGConnectingPoint num="5" id="923" /> +<TGConnectingPoint num="6" id="924" /> +<TGConnectingPoint num="7" id="925" /> +<TGConnectingPoint num="8" id="926" /> +<TGConnectingPoint num="9" id="927" /> +<TGConnectingPoint num="10" id="928" /> +<TGConnectingPoint num="11" id="929" /> +<TGConnectingPoint num="12" id="930" /> +<TGConnectingPoint num="13" id="931" /> +<TGConnectingPoint num="14" id="932" /> +<TGConnectingPoint num="15" id="933" /> +<TGConnectingPoint num="16" id="934" /> +<TGConnectingPoint num="17" id="935" /> +<TGConnectingPoint num="18" id="936" /> +<TGConnectingPoint num="19" id="937" /> +<TGConnectingPoint num="20" id="938" /> +<TGConnectingPoint num="21" id="939" /> +<TGConnectingPoint num="22" id="940" /> +<TGConnectingPoint num="23" id="941" /> +<TGConnectingPoint num="24" id="942" /> +<TGConnectingPoint num="25" id="943" /> +<TGConnectingPoint num="26" id="944" /> +<TGConnectingPoint num="27" id="945" /> +<TGConnectingPoint num="28" id="946" /> +<TGConnectingPoint num="29" id="947" /> +<TGConnectingPoint num="30" id="948" /> +<TGConnectingPoint num="31" id="949" /> +<TGConnectingPoint num="32" id="950" /> +<TGConnectingPoint num="33" id="951" /> +<TGConnectingPoint num="34" id="952" /> +<TGConnectingPoint num="35" id="953" /> +<TGConnectingPoint num="36" id="954" /> +<TGConnectingPoint num="37" id="955" /> +<TGConnectingPoint num="38" id="956" /> +<TGConnectingPoint num="39" id="957" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5100" id="956" > -<cdparam x="315" y="49" /> +<COMPONENT type="5100" id="960" > +<cdparam x="355" y="81" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="955" /> -</COMPONENT> - -<COMPONENT type="5106" id="1010" > -<cdparam x="264" y="174" /> -<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="state0" /> -<TGConnectingPoint num="0" id="970" /> -<TGConnectingPoint num="1" id="971" /> -<TGConnectingPoint num="2" id="972" /> -<TGConnectingPoint num="3" id="973" /> -<TGConnectingPoint num="4" id="974" /> -<TGConnectingPoint num="5" id="975" /> -<TGConnectingPoint num="6" id="976" /> -<TGConnectingPoint num="7" id="977" /> -<TGConnectingPoint num="8" id="978" /> -<TGConnectingPoint num="9" id="979" /> -<TGConnectingPoint num="10" id="980" /> -<TGConnectingPoint num="11" id="981" /> -<TGConnectingPoint num="12" id="982" /> -<TGConnectingPoint num="13" id="983" /> -<TGConnectingPoint num="14" id="984" /> -<TGConnectingPoint num="15" id="985" /> -<TGConnectingPoint num="16" id="986" /> -<TGConnectingPoint num="17" id="987" /> -<TGConnectingPoint num="18" id="988" /> -<TGConnectingPoint num="19" id="989" /> -<TGConnectingPoint num="20" id="990" /> -<TGConnectingPoint num="21" id="991" /> -<TGConnectingPoint num="22" id="992" /> -<TGConnectingPoint num="23" id="993" /> -<TGConnectingPoint num="24" id="994" /> -<TGConnectingPoint num="25" id="995" /> -<TGConnectingPoint num="26" id="996" /> -<TGConnectingPoint num="27" id="997" /> -<TGConnectingPoint num="28" id="998" /> -<TGConnectingPoint num="29" id="999" /> -<TGConnectingPoint num="30" id="1000" /> -<TGConnectingPoint num="31" id="1001" /> -<TGConnectingPoint num="32" id="1002" /> -<TGConnectingPoint num="33" id="1003" /> -<TGConnectingPoint num="34" id="1004" /> -<TGConnectingPoint num="35" id="1005" /> -<TGConnectingPoint num="36" id="1006" /> -<TGConnectingPoint num="37" id="1007" /> -<TGConnectingPoint num="38" id="1008" /> -<TGConnectingPoint num="39" id="1009" /> -<extraparam> -</extraparam> -</COMPONENT> -<SUBCOMPONENT type="5100" id="958" > -<father id="1010" num="0" /> -<cdparam x="333" y="213" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="957" /> -</SUBCOMPONENT> -<SUBCOMPONENT type="5103" id="969" > -<father id="1010" num="1" /> -<cdparam x="330" y="257" /> -<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> -<infoparam name="Send signal" value="push()" /> <TGConnectingPoint num="0" id="959" /> -<TGConnectingPoint num="1" id="960" /> -<TGConnectingPoint num="2" id="961" /> -<TGConnectingPoint num="3" id="962" /> -<TGConnectingPoint num="4" id="963" /> -<TGConnectingPoint num="5" id="964" /> -<TGConnectingPoint num="6" id="965" /> -<TGConnectingPoint num="7" id="966" /> -<TGConnectingPoint num="8" id="967" /> -<TGConnectingPoint num="9" id="968" /> -</SUBCOMPONENT> +</COMPONENT> </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="1017" > -<cdparam x="363" y="193" /> +<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="967" > +<cdparam x="177" y="199" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1016" /> -<P1 x="363" y="204" id="1033" /> -<P2 x="362" y="257" id="1044" /> +<infoparam name="connector from start state to Send signal" value="null" /> +<TGConnectingPoint num="0" id="966" /> +<P1 x="340" y="233" id="1084" /> +<P2 x="353" y="252" id="1073" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1015" > -<father id="1017" num="0" /> -<cdparam x="380" y="228" /> -<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="965" > +<father id="967" num="0" /> +<cdparam x="177" y="239" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1011" /> -<TGConnectingPoint num="1" id="1012" /> -<TGConnectingPoint num="2" id="1013" /> -<TGConnectingPoint num="3" id="1014" /> +<TGConnectingPoint num="0" id="961" /> +<TGConnectingPoint num="1" id="962" /> +<TGConnectingPoint num="2" id="963" /> +<TGConnectingPoint num="3" id="964" /> <extraparam> <guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> +<afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> @@ -1997,25 +1909,25 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1024" > -<cdparam x="363" y="150" /> +<CONNECTOR type="5102" id="974" > +<cdparam x="322" y="69" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1023" /> -<P1 x="363" y="150" id="1090" /> -<P2 x="363" y="174" id="1032" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="973" /> +<P1 x="322" y="69" id="1071" /> +<P2 x="323" y="88" id="1031" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1022" > -<father id="1024" num="0" /> -<cdparam x="363" y="190" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="972" > +<father id="974" num="0" /> +<cdparam x="322" y="109" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1018" /> -<TGConnectingPoint num="1" id="1019" /> -<TGConnectingPoint num="2" id="1020" /> -<TGConnectingPoint num="3" id="1021" /> +<TGConnectingPoint num="0" id="968" /> +<TGConnectingPoint num="1" id="969" /> +<TGConnectingPoint num="2" id="970" /> +<TGConnectingPoint num="3" id="971" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -2026,25 +1938,25 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1031" > -<cdparam x="362" y="101" /> +<CONNECTOR type="5102" id="981" > +<cdparam x="377" y="144" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="1030" /> -<P1 x="362" y="101" id="1125" /> -<P2 x="363" y="120" id="1085" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="980" /> +<P1 x="323" y="118" id="1036" /> +<P2 x="356" y="174" id="1087" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1029" > -<father id="1031" num="0" /> -<cdparam x="362" y="141" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="979" > +<father id="981" num="0" /> +<cdparam x="377" y="184" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1025" /> -<TGConnectingPoint num="1" id="1026" /> -<TGConnectingPoint num="2" id="1027" /> -<TGConnectingPoint num="3" id="1028" /> +<TGConnectingPoint num="0" id="975" /> +<TGConnectingPoint num="1" id="976" /> +<TGConnectingPoint num="2" id="977" /> +<TGConnectingPoint num="3" id="978" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -2055,133 +1967,221 @@ </extraparam> </SUBCOMPONENT> -<COMPONENT type="5103" id="1042" > -<cdparam x="338" y="179" /> -<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<CONNECTOR type="5102" id="988" > +<cdparam x="377" y="187" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="987" /> +<P1 x="353" y="282" id="1074" /> +<P2 x="399" y="352" id="990" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="986" > +<father id="988" num="0" /> +<cdparam x="417" y="335" /> +<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="push()" /> -<TGConnectingPoint num="0" id="1032" /> -<TGConnectingPoint num="1" id="1033" /> -<TGConnectingPoint num="2" id="1034" /> -<TGConnectingPoint num="3" id="1035" /> -<TGConnectingPoint num="4" id="1036" /> -<TGConnectingPoint num="5" id="1037" /> -<TGConnectingPoint num="6" id="1038" /> -<TGConnectingPoint num="7" id="1039" /> -<TGConnectingPoint num="8" id="1040" /> -<TGConnectingPoint num="9" id="1041" /> -</COMPONENT> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="982" /> +<TGConnectingPoint num="1" id="983" /> +<TGConnectingPoint num="2" id="984" /> +<TGConnectingPoint num="3" id="985" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> -<COMPONENT type="5106" id="1083" > -<cdparam x="337" y="257" /> +<COMPONENT type="5106" id="1029" > +<cdparam x="374" y="352" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1043" /> -<TGConnectingPoint num="1" id="1044" /> -<TGConnectingPoint num="2" id="1045" /> -<TGConnectingPoint num="3" id="1046" /> -<TGConnectingPoint num="4" id="1047" /> -<TGConnectingPoint num="5" id="1048" /> -<TGConnectingPoint num="6" id="1049" /> -<TGConnectingPoint num="7" id="1050" /> -<TGConnectingPoint num="8" id="1051" /> -<TGConnectingPoint num="9" id="1052" /> -<TGConnectingPoint num="10" id="1053" /> -<TGConnectingPoint num="11" id="1054" /> -<TGConnectingPoint num="12" id="1055" /> -<TGConnectingPoint num="13" id="1056" /> -<TGConnectingPoint num="14" id="1057" /> -<TGConnectingPoint num="15" id="1058" /> -<TGConnectingPoint num="16" id="1059" /> -<TGConnectingPoint num="17" id="1060" /> -<TGConnectingPoint num="18" id="1061" /> -<TGConnectingPoint num="19" id="1062" /> -<TGConnectingPoint num="20" id="1063" /> -<TGConnectingPoint num="21" id="1064" /> -<TGConnectingPoint num="22" id="1065" /> -<TGConnectingPoint num="23" id="1066" /> -<TGConnectingPoint num="24" id="1067" /> -<TGConnectingPoint num="25" id="1068" /> -<TGConnectingPoint num="26" id="1069" /> -<TGConnectingPoint num="27" id="1070" /> -<TGConnectingPoint num="28" id="1071" /> -<TGConnectingPoint num="29" id="1072" /> -<TGConnectingPoint num="30" id="1073" /> -<TGConnectingPoint num="31" id="1074" /> -<TGConnectingPoint num="32" id="1075" /> -<TGConnectingPoint num="33" id="1076" /> -<TGConnectingPoint num="34" id="1077" /> -<TGConnectingPoint num="35" id="1078" /> -<TGConnectingPoint num="36" id="1079" /> -<TGConnectingPoint num="37" id="1080" /> -<TGConnectingPoint num="38" id="1081" /> -<TGConnectingPoint num="39" id="1082" /> +<TGConnectingPoint num="0" id="989" /> +<TGConnectingPoint num="1" id="990" /> +<TGConnectingPoint num="2" id="991" /> +<TGConnectingPoint num="3" id="992" /> +<TGConnectingPoint num="4" id="993" /> +<TGConnectingPoint num="5" id="994" /> +<TGConnectingPoint num="6" id="995" /> +<TGConnectingPoint num="7" id="996" /> +<TGConnectingPoint num="8" id="997" /> +<TGConnectingPoint num="9" id="998" /> +<TGConnectingPoint num="10" id="999" /> +<TGConnectingPoint num="11" id="1000" /> +<TGConnectingPoint num="12" id="1001" /> +<TGConnectingPoint num="13" id="1002" /> +<TGConnectingPoint num="14" id="1003" /> +<TGConnectingPoint num="15" id="1004" /> +<TGConnectingPoint num="16" id="1005" /> +<TGConnectingPoint num="17" id="1006" /> +<TGConnectingPoint num="18" id="1007" /> +<TGConnectingPoint num="19" id="1008" /> +<TGConnectingPoint num="20" id="1009" /> +<TGConnectingPoint num="21" id="1010" /> +<TGConnectingPoint num="22" id="1011" /> +<TGConnectingPoint num="23" id="1012" /> +<TGConnectingPoint num="24" id="1013" /> +<TGConnectingPoint num="25" id="1014" /> +<TGConnectingPoint num="26" id="1015" /> +<TGConnectingPoint num="27" id="1016" /> +<TGConnectingPoint num="28" id="1017" /> +<TGConnectingPoint num="29" id="1018" /> +<TGConnectingPoint num="30" id="1019" /> +<TGConnectingPoint num="31" id="1020" /> +<TGConnectingPoint num="32" id="1021" /> +<TGConnectingPoint num="33" id="1022" /> +<TGConnectingPoint num="34" id="1023" /> +<TGConnectingPoint num="35" id="1024" /> +<TGConnectingPoint num="36" id="1025" /> +<TGConnectingPoint num="37" id="1026" /> +<TGConnectingPoint num="38" id="1027" /> +<TGConnectingPoint num="39" id="1028" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5106" id="1124" > -<cdparam x="338" y="120" /> +<COMPONENT type="5106" id="1070" > +<cdparam x="298" y="88" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1084" /> -<TGConnectingPoint num="1" id="1085" /> -<TGConnectingPoint num="2" id="1086" /> -<TGConnectingPoint num="3" id="1087" /> -<TGConnectingPoint num="4" id="1088" /> -<TGConnectingPoint num="5" id="1089" /> -<TGConnectingPoint num="6" id="1090" /> -<TGConnectingPoint num="7" id="1091" /> -<TGConnectingPoint num="8" id="1092" /> -<TGConnectingPoint num="9" id="1093" /> -<TGConnectingPoint num="10" id="1094" /> -<TGConnectingPoint num="11" id="1095" /> -<TGConnectingPoint num="12" id="1096" /> -<TGConnectingPoint num="13" id="1097" /> -<TGConnectingPoint num="14" id="1098" /> -<TGConnectingPoint num="15" id="1099" /> -<TGConnectingPoint num="16" id="1100" /> -<TGConnectingPoint num="17" id="1101" /> -<TGConnectingPoint num="18" id="1102" /> -<TGConnectingPoint num="19" id="1103" /> -<TGConnectingPoint num="20" id="1104" /> -<TGConnectingPoint num="21" id="1105" /> -<TGConnectingPoint num="22" id="1106" /> -<TGConnectingPoint num="23" id="1107" /> -<TGConnectingPoint num="24" id="1108" /> -<TGConnectingPoint num="25" id="1109" /> -<TGConnectingPoint num="26" id="1110" /> -<TGConnectingPoint num="27" id="1111" /> -<TGConnectingPoint num="28" id="1112" /> -<TGConnectingPoint num="29" id="1113" /> -<TGConnectingPoint num="30" id="1114" /> -<TGConnectingPoint num="31" id="1115" /> -<TGConnectingPoint num="32" id="1116" /> -<TGConnectingPoint num="33" id="1117" /> -<TGConnectingPoint num="34" id="1118" /> -<TGConnectingPoint num="35" id="1119" /> -<TGConnectingPoint num="36" id="1120" /> -<TGConnectingPoint num="37" id="1121" /> -<TGConnectingPoint num="38" id="1122" /> -<TGConnectingPoint num="39" id="1123" /> +<TGConnectingPoint num="0" id="1030" /> +<TGConnectingPoint num="1" id="1031" /> +<TGConnectingPoint num="2" id="1032" /> +<TGConnectingPoint num="3" id="1033" /> +<TGConnectingPoint num="4" id="1034" /> +<TGConnectingPoint num="5" id="1035" /> +<TGConnectingPoint num="6" id="1036" /> +<TGConnectingPoint num="7" id="1037" /> +<TGConnectingPoint num="8" id="1038" /> +<TGConnectingPoint num="9" id="1039" /> +<TGConnectingPoint num="10" id="1040" /> +<TGConnectingPoint num="11" id="1041" /> +<TGConnectingPoint num="12" id="1042" /> +<TGConnectingPoint num="13" id="1043" /> +<TGConnectingPoint num="14" id="1044" /> +<TGConnectingPoint num="15" id="1045" /> +<TGConnectingPoint num="16" id="1046" /> +<TGConnectingPoint num="17" id="1047" /> +<TGConnectingPoint num="18" id="1048" /> +<TGConnectingPoint num="19" id="1049" /> +<TGConnectingPoint num="20" id="1050" /> +<TGConnectingPoint num="21" id="1051" /> +<TGConnectingPoint num="22" id="1052" /> +<TGConnectingPoint num="23" id="1053" /> +<TGConnectingPoint num="24" id="1054" /> +<TGConnectingPoint num="25" id="1055" /> +<TGConnectingPoint num="26" id="1056" /> +<TGConnectingPoint num="27" id="1057" /> +<TGConnectingPoint num="28" id="1058" /> +<TGConnectingPoint num="29" id="1059" /> +<TGConnectingPoint num="30" id="1060" /> +<TGConnectingPoint num="31" id="1061" /> +<TGConnectingPoint num="32" id="1062" /> +<TGConnectingPoint num="33" id="1063" /> +<TGConnectingPoint num="34" id="1064" /> +<TGConnectingPoint num="35" id="1065" /> +<TGConnectingPoint num="36" id="1066" /> +<TGConnectingPoint num="37" id="1067" /> +<TGConnectingPoint num="38" id="1068" /> +<TGConnectingPoint num="39" id="1069" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5100" id="1126" > -<cdparam x="355" y="81" /> +<COMPONENT type="5100" id="1072" > +<cdparam x="315" y="49" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1125" /> +<TGConnectingPoint num="0" id="1071" /> </COMPONENT> +<COMPONENT type="5106" id="1126" > +<cdparam x="264" y="174" /> +<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="state0" /> +<TGConnectingPoint num="0" id="1086" /> +<TGConnectingPoint num="1" id="1087" /> +<TGConnectingPoint num="2" id="1088" /> +<TGConnectingPoint num="3" id="1089" /> +<TGConnectingPoint num="4" id="1090" /> +<TGConnectingPoint num="5" id="1091" /> +<TGConnectingPoint num="6" id="1092" /> +<TGConnectingPoint num="7" id="1093" /> +<TGConnectingPoint num="8" id="1094" /> +<TGConnectingPoint num="9" id="1095" /> +<TGConnectingPoint num="10" id="1096" /> +<TGConnectingPoint num="11" id="1097" /> +<TGConnectingPoint num="12" id="1098" /> +<TGConnectingPoint num="13" id="1099" /> +<TGConnectingPoint num="14" id="1100" /> +<TGConnectingPoint num="15" id="1101" /> +<TGConnectingPoint num="16" id="1102" /> +<TGConnectingPoint num="17" id="1103" /> +<TGConnectingPoint num="18" id="1104" /> +<TGConnectingPoint num="19" id="1105" /> +<TGConnectingPoint num="20" id="1106" /> +<TGConnectingPoint num="21" id="1107" /> +<TGConnectingPoint num="22" id="1108" /> +<TGConnectingPoint num="23" id="1109" /> +<TGConnectingPoint num="24" id="1110" /> +<TGConnectingPoint num="25" id="1111" /> +<TGConnectingPoint num="26" id="1112" /> +<TGConnectingPoint num="27" id="1113" /> +<TGConnectingPoint num="28" id="1114" /> +<TGConnectingPoint num="29" id="1115" /> +<TGConnectingPoint num="30" id="1116" /> +<TGConnectingPoint num="31" id="1117" /> +<TGConnectingPoint num="32" id="1118" /> +<TGConnectingPoint num="33" id="1119" /> +<TGConnectingPoint num="34" id="1120" /> +<TGConnectingPoint num="35" id="1121" /> +<TGConnectingPoint num="36" id="1122" /> +<TGConnectingPoint num="37" id="1123" /> +<TGConnectingPoint num="38" id="1124" /> +<TGConnectingPoint num="39" id="1125" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5103" id="1083" > +<father id="1126" num="0" /> +<cdparam x="330" y="257" /> +<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="1073" /> +<TGConnectingPoint num="1" id="1074" /> +<TGConnectingPoint num="2" id="1075" /> +<TGConnectingPoint num="3" id="1076" /> +<TGConnectingPoint num="4" id="1077" /> +<TGConnectingPoint num="5" id="1078" /> +<TGConnectingPoint num="6" id="1079" /> +<TGConnectingPoint num="7" id="1080" /> +<TGConnectingPoint num="8" id="1081" /> +<TGConnectingPoint num="9" id="1082" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5100" id="1085" > +<father id="1126" num="1" /> +<cdparam x="333" y="213" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1084" /> +</SUBCOMPONENT> + </AVATARStateMachineDiagramPanel> @@ -2599,7 +2599,7 @@ <textline data="must be ejected" /> <kind data="Functional" /> <criticality data="Low" /> -<reqType data="SafetyRequirement" color="-10040065" /> +<reqType data="SafetyRequirement" color="-1773070" /> <id data="0.1.1" /> <satisfied data="false" /> <verified data="false" /> @@ -2836,7 +2836,7 @@ <textline data="negative number of coins" /> <kind data="Functional" /> <criticality data="Low" /> -<reqType data="SafetyRequirement" color="-10040065" /> +<reqType data="SafetyRequirement" color="-1773070" /> <id data="0.2" /> <satisfied data="true" /> <verified data="true" /> @@ -3284,7 +3284,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1751" /> -<P1 x="318" y="261" id="1795" /> +<P1 x="318" y="261" id="1782" /> <P2 x="361" y="261" id="1770" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -3302,7 +3302,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1755" /> -<P1 x="318" y="211" id="1782" /> +<P1 x="318" y="211" id="1795" /> <P2 x="361" y="211" id="1769" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -3391,11 +3391,11 @@ </COMPONENT> <SUBCOMPONENT type="5304" id="1792" > <father id="1830" num="0" /> -<cdparam x="166" y="191" /> -<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="154" y="241" /> +<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> +<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> <TGConnectingPoint num="0" id="1780" /> <TGConnectingPoint num="1" id="1781" /> <TGConnectingPoint num="2" id="1782" /> @@ -3411,11 +3411,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5304" id="1805" > <father id="1830" num="1" /> -<cdparam x="154" y="241" /> -<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="166" y="191" /> +<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> +<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> <TGConnectingPoint num="0" id="1793" /> <TGConnectingPoint num="1" id="1794" /> <TGConnectingPoint num="2" id="1795" /> @@ -3545,7 +3545,7 @@ <TGConnectingPoint num="0" id="1889" /> <TGConnectingPoint num="1" id="1890" /> <TGConnectingPoint num="2" id="1891" /> -<P1 x="581" y="154" id="1965" /> +<P1 x="581" y="154" id="1978" /> <P2 x="546" y="305" id="2035" /> <Point x="518" y="154" /> <Point x="518" y="305" /> @@ -3573,7 +3573,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1894" /> <TGConnectingPoint num="1" id="1895" /> -<P1 x="631" y="164" id="1960" /> +<P1 x="631" y="164" id="1973" /> <P2 x="667" y="310" id="2022" /> <Point x="631" y="310" /> <AutomaticDrawing data="true" /> @@ -3601,7 +3601,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="1900" /> <TGConnectingPoint num="1" id="1901" /> -<P1 x="721" y="158" id="1971" /> +<P1 x="721" y="158" id="1958" /> <P2 x="700" y="204" id="2012" /> <Point x="700" y="158" /> <AutomaticDrawing data="true" /> @@ -3756,13 +3756,13 @@ <TGConnectingPoint num="22" id="2005" /> <TGConnectingPoint num="23" id="2006" /> </COMPONENT> -<SUBCOMPONENT type="5304" id="1969" > +<SUBCOMPONENT type="5303" id="1969" > <father id="2007" num="0" /> -<cdparam x="581" y="125" /> -<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="721" y="133" /> +<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> -<infoparam name="TGComponent" value="Start" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> +<infoparam name="TGComponent" value="nbOfCoins" /> <TGConnectingPoint num="0" id="1957" /> <TGConnectingPoint num="1" id="1958" /> <TGConnectingPoint num="2" id="1959" /> @@ -3775,14 +3775,17 @@ <TGConnectingPoint num="9" id="1966" /> <TGConnectingPoint num="10" id="1967" /> <TGConnectingPoint num="11" id="1968" /> +<extraparam> +<Toggle value="" /> +</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5303" id="1982" > +<SUBCOMPONENT type="5304" id="1982" > <father id="2007" num="1" /> -<cdparam x="721" y="133" /> -<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="581" y="125" /> +<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> -<infoparam name="TGComponent" value="nbOfCoins" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> +<infoparam name="TGComponent" value="Start" /> <TGConnectingPoint num="0" id="1970" /> <TGConnectingPoint num="1" id="1971" /> <TGConnectingPoint num="2" id="1972" /> @@ -3795,9 +3798,6 @@ <TGConnectingPoint num="9" id="1979" /> <TGConnectingPoint num="10" id="1980" /> <TGConnectingPoint num="11" id="1981" /> -<extraparam> -<Toggle value="" /> -</extraparam> </SUBCOMPONENT> <COMPONENT type="5306" id="2019" > @@ -4085,7 +4085,7 @@ <textline data="Double-click to edit" /> <kind data="" /> <criticality data="" /> -<reqType data="SafetyRequirement" color="-10040065" /> +<reqType data="SafetyRequirement" color="-1773070" /> <id data="1" /> <satisfied data="false" /> <verified data="false" /> diff --git a/modeling/DIPLODOCUS/802.15.4.xml b/modeling/DIPLODOCUS/802.15.4.xml index 0038bde72fedf2e7dbfd2b14e0cd380e6784c98b..226880781b10b43cdf3bd5c6120b186aca5bdf23 100644 --- a/modeling/DIPLODOCUS/802.15.4.xml +++ b/modeling/DIPLODOCUS/802.15.4.xml @@ -19573,7 +19573,7 @@ SRC to CWM1, CWS and SINK <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="6136" > +<!-- COMPONENT type="1508" id="6136" > <cdparam x="668" y="275" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -19583,7 +19583,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="6133" /> <TGConnectingPoint num="2" id="6134" /> <TGConnectingPoint num="3" id="6135" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1507" id="6138" > <cdparam x="465" y="594" /> @@ -19616,7 +19616,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="13" id="6152" /> </COMPONENT> -<COMPONENT type="1508" id="6158" > +<!-- COMPONENT type="1508" id="6158" > <cdparam x="198" y="272" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -19626,7 +19626,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="6155" /> <TGConnectingPoint num="2" id="6156" /> <TGConnectingPoint num="3" id="6157" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1500" id="6174" > <cdparam x="198" y="362" /> @@ -19811,7 +19811,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="9" id="6256" /> </COMPONENT> -<CONNECTOR type="1501" id="6262" > +<!-- CONNECTOR type="1501" id="6262" > <cdparam x="801" y="457" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -19853,7 +19853,7 @@ SRC to CWM1, CWS and SINK <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="6264" > <cdparam x="723" y="370" /> @@ -19913,7 +19913,7 @@ SRC to CWM1, CWS and SINK <P2 x="425" y="550" id="6139" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="6274" > +<!-- CONNECTOR type="1501" id="6274" > <cdparam x="94" y="485" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -19964,7 +19964,7 @@ SRC to CWM1, CWS and SINK <P1 x="213" y="302" id="6157" /> <P2 x="213" y="352" id="6162" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="6277" > <cdparam x="173" y="377" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -20023,7 +20023,7 @@ SRC to CWM1, CWS and SINK <P2 x="456" y="117" id="6180" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="6283" > +<!-- CONNECTOR type="1501" id="6283" > <cdparam x="209" y="311" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -20038,7 +20038,7 @@ SRC to CWM1, CWS and SINK <P1 x="683" y="221" id="6237" /> <P2 x="683" y="275" id="6132" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="6285" > <cdparam x="683" y="305" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> diff --git a/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib b/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib index 6966203d75c84fe7618a16f74165d79d7fb9fe89..0fbe679974464fa81277e9a0a808d7cc492cd758 100644 --- a/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib +++ b/modeling/DIPLODOCUS/CPlibrary/DMAPollingCycleP_AD.lib @@ -3,7 +3,7 @@ <TURTLEGSELECTEDCOMPONENTS version="0.96-beta1" copyMaxId="141314" decX="14" decY="10" > <CommunicationPatternDiagramPanelCopy name="DMAPollingCycleP_AD" xSel="14" ySel="10" widthSel="638" heightSel="382" > -<CONNECTOR type="1501" id="141311" > +<!--CONNECTOR type="1501" id="141311" > <cdparam x="174" y="274" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -36,9 +36,9 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> -<CONNECTOR type="1501" id="141310" > +<!--CONNECTOR type="1501" id="141310" > <cdparam x="418" y="121" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -56,7 +56,7 @@ <TGConnectingPoint num="1" id="141307" /> <TGConnectingPoint num="2" id="141308" /> <TGConnectingPoint num="3" id="141309" /> -</COMPONENT> +</COMPONENT--> <CONNECTOR type="1501" id="141303" > <cdparam x="271" y="184" /> @@ -163,14 +163,14 @@ <TGConnectingPoint num="0" id="141271" /> </COMPONENT> -<CONNECTOR type="1501" id="141299" > +<!--CONNECTOR type="1501" id="141299" > <cdparam x="316" y="90" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="311" y="40" id="141271" /> <P2 x="311" y="84" id="141306" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanelCopy> diff --git a/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib b/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib index 4493a4bc5456913dbc9243fef03ef96c43d3e3d5..fbf568870a991552dc6abb09fa3170c9043345cb 100644 --- a/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib +++ b/modeling/DIPLODOCUS/CPlibrary/DMATransferCycleP_AD.lib @@ -29,7 +29,7 @@ <TGConnectingPoint num="9" id="140366" /> </COMPONENT> -<CONNECTOR type="1501" id="140355" > +<!-- CONNECTOR type="1501" id="140355" > <cdparam x="382" y="90" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -70,7 +70,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="77479" > <cdparam x="342" y="324" /> @@ -133,7 +133,7 @@ <infoparam name="guard 3" value="[ else ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="77451" > +<!-- COMPONENT type="1508" id="77451" > <cdparam x="367" y="229" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -143,7 +143,7 @@ <TGConnectingPoint num="1" id="77448" /> <TGConnectingPoint num="2" id="77449" /> <TGConnectingPoint num="3" id="77450" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1507" id="77464" > <cdparam x="372" y="520" /> @@ -189,14 +189,14 @@ <P2 x="382" y="432" id="140357" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="77487" > +<!-- CONNECTOR type="1501" id="77487" > <cdparam x="382" y="259" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="382" y="259" id="77450" /> <P2 x="382" y="299" id="77425" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanelCopy> diff --git a/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib b/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib index bf31ad61b6aaf64cdc050180c1af107ab89944b5..5cfcc71faafdd6410b9a9493f9bdcbc8df55fe6d 100644 --- a/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib +++ b/modeling/DIPLODOCUS/CPlibrary/DMATransfer_NoPolling_MainCP.lib @@ -46,7 +46,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="7701" > +<!-- CONNECTOR type="1501" id="7701" > <cdparam x="282" y="387" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -79,7 +79,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <COMPONENT type="1500" id="7650" > <cdparam x="374" y="286" /> @@ -152,7 +152,7 @@ <TGConnectingPoint num="9" id="7617" /> </COMPONENT> -<COMPONENT type="1508" id="7623" > +<!--COMPONENT type="1508" id="7623" > <cdparam x="374" y="184" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -162,7 +162,7 @@ <TGConnectingPoint num="1" id="7620" /> <TGConnectingPoint num="2" id="7621" /> <TGConnectingPoint num="3" id="7622" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="7634" > <cdparam x="461" y="341" /> @@ -208,7 +208,7 @@ <P2 x="523" y="411" id="7606" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="7706" > +<!-- CONNECTOR type="1501" id="7706" > <cdparam x="389" y="132" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -223,7 +223,7 @@ <P1 x="389" y="214" id="7622" /> <P2 x="389" y="276" id="7638" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="23058" > <cdparam x="398" y="55" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> diff --git a/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib b/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib index 7c0f4dd45a7c58854df703587f7b18edc04889ab..bc850b1a6e0ea30fbf11ed64cba7ccb163e76d68 100644 --- a/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib +++ b/modeling/DIPLODOCUS/CPlibrary/LoadCPU_mainCP.lib @@ -64,7 +64,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="9922" > +<!-- CONNECTOR type="1501" id="9922" > <cdparam x="256" y="376" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -109,7 +109,7 @@ <TGConnectingPoint num="1" id="9898" /> <TGConnectingPoint num="2" id="9899" /> <TGConnectingPoint num="3" id="9900" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="9885" > <cdparam x="299" y="102" /> @@ -181,7 +181,7 @@ <P2 x="361" y="97" id="9886" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="9901" > +<!-- CONNECTOR type="1501" id="9901" > <cdparam x="361" y="142" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -196,7 +196,7 @@ <P1 x="361" y="220" id="9900" /> <P2 x="361" y="260" id="9903" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanelCopy> diff --git a/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib b/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib index 740681d07b249f3f03a80504a902cdfc51a94daf..9bfde1ff13b73633a7d8cd83ae3e58173795f1a2 100644 --- a/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib +++ b/modeling/DIPLODOCUS/CPlibrary/StoreCPU_mainCP.lib @@ -3,7 +3,7 @@ <TURTLEGSELECTEDCOMPONENTS version="0.96-beta1" copyMaxId="5622" decX="91" decY="17" > <CommunicationPatternDiagramPanelCopy name="MainCP" xSel="91" ySel="17" widthSel="426" heightSel="465" > -<CONNECTOR type="1501" id="5619" > +<!-- CONNECTOR type="1501" id="5619" > <cdparam x="253" y="388" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -36,7 +36,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="5617" > <cdparam x="318" y="297" /> @@ -117,7 +117,7 @@ <TGConnectingPoint num="9" id="1710" /> </COMPONENT> -<COMPONENT type="1508" id="5593" > +<!-- COMPONENT type="1508" id="5593" > <cdparam x="343" y="202" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -127,7 +127,7 @@ <TGConnectingPoint num="1" id="5595" /> <TGConnectingPoint num="2" id="5596" /> <TGConnectingPoint num="3" id="5597" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="5582" > <cdparam x="296" y="114" /> @@ -181,7 +181,7 @@ <P2 x="358" y="109" id="5583" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="5598" > +<!-- CONNECTOR type="1501" id="5598" > <cdparam x="358" y="154" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -196,7 +196,7 @@ <P1 x="358" y="232" id="5597" /> <P2 x="358" y="272" id="5600" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanelCopy> diff --git a/modeling/DIPLODOCUS/MODELS_2014demo.xml b/modeling/DIPLODOCUS/MODELS_2014demo.xml index 4b23c4ce88af24e7219f74fa9a529ddcfdb89227..7df510c673072fb5e8ac71229d5f6bbc3343fb8c 100644 --- a/modeling/DIPLODOCUS/MODELS_2014demo.xml +++ b/modeling/DIPLODOCUS/MODELS_2014demo.xml @@ -20402,7 +20402,7 @@ SRC to CWM1, CWS and SINK <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="6200" > +<!-- COMPONENT type="1508" id="6200" > <cdparam x="668" y="275" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -20412,7 +20412,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="6197" /> <TGConnectingPoint num="2" id="6198" /> <TGConnectingPoint num="3" id="6199" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1507" id="6202" > <cdparam x="465" y="594" /> @@ -20445,7 +20445,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="13" id="6216" /> </COMPONENT> -<COMPONENT type="1508" id="6222" > +<!-- COMPONENT type="1508" id="6222" > <cdparam x="198" y="272" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -20455,7 +20455,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="6219" /> <TGConnectingPoint num="2" id="6220" /> <TGConnectingPoint num="3" id="6221" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1500" id="6238" > <cdparam x="198" y="362" /> @@ -20640,7 +20640,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="9" id="6320" /> </COMPONENT> -<CONNECTOR type="1501" id="6326" > +<!-- CONNECTOR type="1501" id="6326" > <cdparam x="801" y="457" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -20682,7 +20682,7 @@ SRC to CWM1, CWS and SINK <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="6328" > <cdparam x="723" y="370" /> @@ -20742,7 +20742,7 @@ SRC to CWM1, CWS and SINK <P2 x="425" y="550" id="6203" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="6338" > +<!-- CONNECTOR type="1501" id="6338" > <cdparam x="94" y="485" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -20793,7 +20793,7 @@ SRC to CWM1, CWS and SINK <P1 x="213" y="302" id="6221" /> <P2 x="213" y="352" id="6226" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="6341" > <cdparam x="173" y="377" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -20852,7 +20852,7 @@ SRC to CWM1, CWS and SINK <P2 x="456" y="117" id="6244" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="6347" > +<!-- CONNECTOR type="1501" id="6347" > <cdparam x="209" y="311" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -20875,7 +20875,7 @@ SRC to CWM1, CWS and SINK <P1 x="683" y="305" id="6199" /> <P2 x="683" y="345" id="6183" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml b/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml index 795ad10afb6cb91e4d06062648b1bd9b9da83f81..4f846ab5e2b1601f41715ca41ab9f5cbd3aadf03 100644 --- a/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml +++ b/modeling/DIPLODOCUS/MODELS_2014demoFinal.xml @@ -14163,7 +14163,7 @@ SRC to CWM1, CWS and SINK <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="10192" > +<!-- COMPONENT type="1508" id="10192" > <cdparam x="668" y="275" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -14173,7 +14173,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="10189" /> <TGConnectingPoint num="2" id="10190" /> <TGConnectingPoint num="3" id="10191" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1507" id="10194" > <cdparam x="465" y="594" /> @@ -14206,7 +14206,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="13" id="10208" /> </COMPONENT> -<COMPONENT type="1508" id="10214" > +<!-- COMPONENT type="1508" id="10214" > <cdparam x="198" y="272" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -14216,7 +14216,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="10211" /> <TGConnectingPoint num="2" id="10212" /> <TGConnectingPoint num="3" id="10213" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1500" id="10230" > <cdparam x="198" y="362" /> @@ -14401,7 +14401,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="9" id="10312" /> </COMPONENT> -<CONNECTOR type="1501" id="10318" > +<!-- CONNECTOR type="1501" id="10318" > <cdparam x="801" y="457" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -14443,7 +14443,7 @@ SRC to CWM1, CWS and SINK <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="10320" > <cdparam x="723" y="370" /> @@ -14503,7 +14503,7 @@ SRC to CWM1, CWS and SINK <P2 x="425" y="550" id="10195" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="10330" > +<!-- CONNECTOR type="1501" id="10330" > <cdparam x="94" y="485" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -14554,7 +14554,7 @@ SRC to CWM1, CWS and SINK <P1 x="213" y="302" id="10213" /> <P2 x="213" y="352" id="10218" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="10333" > <cdparam x="173" y="377" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -14613,7 +14613,7 @@ SRC to CWM1, CWS and SINK <P2 x="456" y="117" id="10236" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="10339" > +<!-- CONNECTOR type="1501" id="10339" > <cdparam x="209" y="311" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -14636,7 +14636,7 @@ SRC to CWM1, CWS and SINK <P1 x="683" y="305" id="10191" /> <P2 x="683" y="345" id="10175" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml b/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml index 365870870d48d0496ae67dd4c9ec13b48586f8e3..ee1add4c3f7c6aafd962e9d2da26e869c814d6f3 100644 --- a/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml +++ b/modeling/DIPLODOCUS/MODELS_2014demoTurin.xml @@ -4346,7 +4346,7 @@ SRC to CWM1, CWS and SINK <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1266" > +<!-- COMPONENT type="1508" id="1266" > <cdparam x="668" y="275" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -4356,7 +4356,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="1263" /> <TGConnectingPoint num="2" id="1264" /> <TGConnectingPoint num="3" id="1265" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1507" id="1268" > <cdparam x="465" y="594" /> @@ -4389,7 +4389,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="13" id="1282" /> </COMPONENT> -<COMPONENT type="1508" id="1288" > +<!-- COMPONENT type="1508" id="1288" > <cdparam x="198" y="272" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -4399,7 +4399,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="1" id="1285" /> <TGConnectingPoint num="2" id="1286" /> <TGConnectingPoint num="3" id="1287" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1500" id="1304" > <cdparam x="198" y="362" /> @@ -4584,7 +4584,7 @@ SRC to CWM1, CWS and SINK <TGConnectingPoint num="9" id="1386" /> </COMPONENT> -<CONNECTOR type="1501" id="1392" > +<!-- CONNECTOR type="1501" id="1392" > <cdparam x="801" y="457" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -4626,7 +4626,7 @@ SRC to CWM1, CWS and SINK <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1394" > <cdparam x="723" y="370" /> @@ -4686,7 +4686,7 @@ SRC to CWM1, CWS and SINK <P2 x="425" y="550" id="1269" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1404" > +<!-- CONNECTOR type="1501" id="1404" > <cdparam x="94" y="485" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -4737,7 +4737,7 @@ SRC to CWM1, CWS and SINK <P1 x="213" y="302" id="1287" /> <P2 x="213" y="352" id="1292" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1407" > <cdparam x="173" y="377" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -4796,7 +4796,7 @@ SRC to CWM1, CWS and SINK <P2 x="456" y="117" id="1310" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1413" > +<!-- CONNECTOR type="1501" id="1413" > <cdparam x="209" y="311" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -4819,7 +4819,7 @@ SRC to CWM1, CWS and SINK <P1 x="683" y="305" id="1265" /> <P2 x="683" y="345" id="1249" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml index 238cd6094990c05ca6373c94c38a9215d2ab6242..7e4f3eb6399b3b43b1c8544e71f598371c710005 100644 --- a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml +++ b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml @@ -347,16 +347,16 @@ <cdparam x="535" y="347" /> <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="556" y="347" id="355" /> -<P2 x="547" y="382" id="402" /> +<P1 x="556" y="321" id="355" /> +<P2 x="534" y="395" id="402" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="189" > <cdparam x="820" y="398" /> <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="1025" y="497" id="249" /> -<P2 x="761" y="574" id="370" /> +<P1 x="1025" y="471" id="249" /> +<P2 x="761" y="548" id="370" /> <Point x="887" y="577" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="188" > @@ -373,15 +373,15 @@ <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="710" y="403" id="372" /> -<P2 x="693" y="347" id="333" /> +<P2 x="693" y="321" id="333" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="191" > <cdparam x="522" y="390" /> <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="521" y="382" id="397" /> -<P2 x="466" y="335" id="236" /> +<P1 x="534" y="369" id="397" /> +<P2 x="453" y="322" id="236" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="192" > @@ -396,16 +396,16 @@ <cdparam x="656" y="426" /> <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="816" y="552" id="376" /> -<P2 x="969" y="495" id="263" /> +<P1 x="805" y="542" id="376" /> +<P2 x="969" y="474" id="263" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="194" > <cdparam x="656" y="400" /> <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="816" y="519" id="378" /> -<P2 x="921" y="476" id="261" /> +<P1 x="805" y="509" id="378" /> +<P2 x="931" y="466" id="261" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="195" > @@ -413,126 +413,126 @@ <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="750" y="406" id="386" /> -<P2 x="828" y="375" id="291" /> +<P2 x="841" y="362" id="291" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="196" > <cdparam x="689" y="292" /> <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="854" y="375" id="295" /> -<P2 x="921" y="362" id="271" /> +<P1 x="841" y="388" id="295" /> +<P2 x="931" y="352" id="271" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="197" > <cdparam x="656" y="377" /> <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="816" y="491" id="382" /> -<P2 x="921" y="453" id="269" /> +<P1 x="805" y="481" id="382" /> +<P2 x="931" y="443" id="269" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="198" > <cdparam x="656" y="351" /> <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="816" y="458" id="380" /> -<P2 x="921" y="426" id="267" /> +<P1 x="805" y="448" id="380" /> +<P2 x="931" y="416" id="267" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="199" > <cdparam x="741" y="296" /> <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="921" y="397" id="265" /> -<P2 x="816" y="429" id="384" /> +<P1 x="931" y="387" id="265" /> +<P2 x="805" y="419" id="384" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="200" > <cdparam x="735" y="260" /> <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="918" y="330" id="273" /> -<P2 x="747" y="282" id="345" /> +<P1 x="931" y="317" id="273" /> +<P2 x="734" y="269" id="345" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="201" > <cdparam x="641" y="230" /> <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="747" y="248" id="343" /> -<P2 x="918" y="291" id="275" /> +<P1 x="734" y="235" id="343" /> +<P2 x="931" y="278" id="275" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="202" > <cdparam x="641" y="195" /> <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="747" y="203" id="341" /> -<P2 x="918" y="248" id="277" /> +<P1 x="734" y="190" id="341" /> +<P2 x="931" y="235" id="277" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="203" > <cdparam x="740" y="353" /> <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="828" y="375" id="290" /> -<P2 x="747" y="314" id="339" /> +<P1 x="841" y="362" id="290" /> +<P2 x="734" y="301" id="339" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="204" > <cdparam x="460" y="270" /> <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="521" y="303" id="349" /> -<P2 x="466" y="303" id="230" /> +<P1 x="534" y="290" id="349" /> +<P2 x="453" y="290" id="230" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="205" > <cdparam x="387" y="129" /> <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="464" y="126" id="226" /> -<P2 x="524" y="126" id="337" /> +<P1 x="453" y="116" id="226" /> +<P2 x="534" y="116" id="337" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="206" > <cdparam x="389" y="200" /> <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="466" y="215" id="232" /> -<P2 x="521" y="215" id="351" /> +<P1 x="453" y="202" id="232" /> +<P2 x="534" y="202" id="351" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="207" > <cdparam x="460" y="236" /> <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="521" y="260" id="353" /> -<P2 x="466" y="260" id="234" /> +<P1 x="534" y="247" id="353" /> +<P2 x="453" y="247" id="234" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="208" > <cdparam x="389" y="163" /> <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="466" y="169" id="228" /> -<P2 x="521" y="169" id="347" /> +<P1 x="453" y="156" id="228" /> +<P2 x="534" y="156" id="347" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="209" > <cdparam x="967" y="190" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="918" y="198" id="279" /> -<P2 x="747" y="124" id="359" /> +<P1 x="931" y="185" id="279" /> +<P2 x="734" y="111" id="359" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="210" > <cdparam x="1028" y="535" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="630" y="345" id="335" /> +<P1 x="630" y="324" id="335" /> <P2 x="669" y="406" id="374" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -540,24 +540,24 @@ <cdparam x="1308" y="303" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1222" y="378" id="313" /> -<P2 x="1178" y="380" id="259" /> +<P1 x="1232" y="368" id="313" /> +<P2 x="1167" y="370" id="259" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="212" > <cdparam x="1172" y="437" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1178" y="415" id="257" /> -<P2 x="1222" y="413" id="311" /> +<P1 x="1167" y="405" id="257" /> +<P2 x="1232" y="403" id="311" /> <AutomaticDrawing data="true" /> </CONNECTOR> <CONNECTOR type="126" id="215" > <cdparam x="1041" y="162" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1178" y="208" id="255" /> -<P2 x="1178" y="276" id="253" /> +<P1 x="1167" y="198" id="255" /> +<P2 x="1167" y="266" id="253" /> <Point x="1227" y="207" /> <Point x="1227" y="247" /> <AutomaticDrawing data="true" /> @@ -582,8 +582,8 @@ <cdparam x="877" y="343" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> -<P1 x="1178" y="454" id="251" /> -<P2 x="1222" y="441" id="309" /> +<P1 x="1167" y="444" id="251" /> +<P2 x="1232" y="431" id="309" /> <AutomaticDrawing data="true" /> </CONNECTOR> <COMPONENT type="1205" id="225" > @@ -690,7 +690,7 @@ <infoparam name="TGComponent" value="Channel fromDtoSC" /> <TGConnectingPoint num="0" id="232" /> <extraparam> -<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> +<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> @@ -1392,7 +1392,7 @@ <infoparam name="TGComponent" value="Channel fromSCtoD" /> <TGConnectingPoint num="0" id="353" /> <extraparam> -<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> +<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> @@ -8913,7 +8913,7 @@ On prend b=1 comme exemple <COMPONENT type="302" id="2711" > <cdparam x="517" y="154" /> -<sizeparam width="520" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="565" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK diff --git a/modeling/DIPLODOCUS/ZigBeeTutorial.xml b/modeling/DIPLODOCUS/ZigBeeTutorial.xml index ba2ca48c0ab2e0acce7213fb8039910f21830928..95a32d4a4902d8a4a6d0d4d3e2a76f9e463b7011 100644 --- a/modeling/DIPLODOCUS/ZigBeeTutorial.xml +++ b/modeling/DIPLODOCUS/ZigBeeTutorial.xml @@ -6235,7 +6235,7 @@ POLLING <TGConnectingPoint num="0" id="2490" /> </COMPONENT> -<COMPONENT type="1508" id="2496" > +<!-- COMPONENT type="1508" id="2496" > <cdparam x="360" y="163" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6245,7 +6245,7 @@ POLLING <TGConnectingPoint num="1" id="2493" /> <TGConnectingPoint num="2" id="2494" /> <TGConnectingPoint num="3" id="2495" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2507" > <cdparam x="182" y="332" /> @@ -6299,7 +6299,7 @@ POLLING <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="2516" > +<!-- CONNECTOR type="1501" id="2516" > <cdparam x="244" y="372" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6309,7 +6309,8 @@ POLLING <Point x="136" y="425" /> <Point x="136" y="178" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2513" > +</CONNECTOR> +<SUBCOMPONENT type="-1" id="2513" > <father id="2516" num="0" /> <cdparam x="244" y="425" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -6332,7 +6333,7 @@ POLLING <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="2517" > <cdparam x="375" y="314" /> @@ -6342,22 +6343,22 @@ POLLING <P2 x="375" y="386" id="2463" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="2518" > +<!-- CONNECTOR type="1501" id="2518" > <cdparam x="375" y="193" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="375" y="193" id="2495" /> <P2 x="375" y="249" id="2477" /> <AutomaticDrawing data="true" /> -</CONNECTOR> -<CONNECTOR type="1501" id="2519" > +</CONNECTOR--> +<!-- CONNECTOR type="1501" id="2519" > <cdparam x="375" y="115" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="375" y="115" id="2508" /> <P2 x="375" y="163" id="2492" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -6911,7 +6912,7 @@ POLLING <infoparam name="guard 3" value="[ transferTerminated == true ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="2866" > +<!-- COMPONENT type="1508" id="2866" > <cdparam x="279" y="127" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6921,7 +6922,7 @@ POLLING <TGConnectingPoint num="1" id="2863" /> <TGConnectingPoint num="2" id="2864" /> <TGConnectingPoint num="3" id="2865" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2877" > <cdparam x="101" y="296" /> @@ -6958,7 +6959,7 @@ POLLING <P2 x="294" y="337" id="2844" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="2884" > +<!-- CONNECTOR type="1501" id="2884" > <cdparam x="163" y="336" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6968,7 +6969,8 @@ POLLING <Point x="55" y="389" /> <Point x="55" y="142" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2881" > +</CONNECTOR> +<SUBCOMPONENT type="-1" id="2881" > <father id="2884" num="0" /> <cdparam x="163" y="389" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -6991,7 +6993,7 @@ POLLING <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="2886" > <cdparam x="254" y="238" /> @@ -7010,22 +7012,22 @@ POLLING <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="2887" > +<!-- CONNECTOR type="1501" id="2887" > <cdparam x="294" y="157" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="294" y="157" id="2865" /> <P2 x="294" y="213" id="2849" /> <AutomaticDrawing data="true" /> -</CONNECTOR> -<CONNECTOR type="1501" id="2888" > +</CONNECTOR--> +<!-- CONNECTOR type="1501" id="2888" > <cdparam x="294" y="79" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="294" y="79" id="2878" /> <P2 x="294" y="127" id="2862" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/DIPLODOCUS/Zigbee.xml b/modeling/DIPLODOCUS/Zigbee.xml index 88fe2e202264d020644a033ce4d2e3b5512677c0..3077fffb998d8ab9e61e7cac5d28035e5fb9062e 100644 --- a/modeling/DIPLODOCUS/Zigbee.xml +++ b/modeling/DIPLODOCUS/Zigbee.xml @@ -4229,7 +4229,7 @@ <infoparam name="guard 3" value="[ else ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1323" > +<!-- COMPONENT type="1508" id="1323" > <cdparam x="346" y="190" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -4239,7 +4239,7 @@ <TGConnectingPoint num="1" id="1320" /> <TGConnectingPoint num="2" id="1321" /> <TGConnectingPoint num="3" id="1322" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1334" > <cdparam x="305" y="102" /> @@ -4312,7 +4312,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1355" > +<!-- CONNECTOR type="1501" id="1355" > <cdparam x="256" y="376" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -4345,7 +4345,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1356" > <cdparam x="361" y="325" /> @@ -4363,7 +4363,7 @@ <P2 x="361" y="97" id="1324" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1358" > +<!-- CONNECTOR type="1501" id="1358" > <cdparam x="361" y="142" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -4378,7 +4378,7 @@ <P1 x="361" y="220" id="1322" /> <P2 x="361" y="260" id="1306" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -4927,7 +4927,7 @@ CPU via interrupts (no polling messages) <TGConnectingPoint num="9" id="1718" /> </COMPONENT> -<COMPONENT type="1508" id="1724" > +<!-- COMPONENT type="1508" id="1724" > <cdparam x="278" y="185" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -4937,7 +4937,7 @@ CPU via interrupts (no polling messages) <TGConnectingPoint num="1" id="1721" /> <TGConnectingPoint num="2" id="1722" /> <TGConnectingPoint num="3" id="1723" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1735" > <cdparam x="371" y="342" /> @@ -5036,7 +5036,7 @@ CPU via interrupts (no polling messages) <P2 x="427" y="412" id="1707" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1769" > +<!-- CONNECTOR type="1501" id="1769" > <cdparam x="186" y="388" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -5069,7 +5069,7 @@ CPU via interrupts (no polling messages) <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1771" > <cdparam x="253" y="302" /> @@ -5105,7 +5105,7 @@ CPU via interrupts (no polling messages) <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1774" > +<!-- CONNECTOR type="1501" id="1774" > <cdparam x="293" y="133" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -5120,7 +5120,7 @@ CPU via interrupts (no polling messages) <P1 x="293" y="215" id="1723" /> <P2 x="293" y="277" id="1739" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1776" > <cdparam x="291" y="25" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -6148,7 +6148,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="2409" /> </COMPONENT> -<COMPONENT type="1508" id="2415" > +<!-- COMPONENT type="1508" id="2415" > <cdparam x="250" y="191" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6158,7 +6158,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="2412" /> <TGConnectingPoint num="2" id="2413" /> <TGConnectingPoint num="3" id="2414" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2426" > <cdparam x="337" y="348" /> @@ -6239,7 +6239,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="2447" > +<!-- CONNECTOR type="1501" id="2447" > <cdparam x="158" y="394" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6272,7 +6272,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="2448" > <cdparam x="399" y="388" /> @@ -6282,7 +6282,7 @@ INTERRUPTS <P2 x="399" y="418" id="2398" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="2449" > +<!-- CONNECTOR type="1501" id="2449" > <cdparam x="265" y="139" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6297,7 +6297,7 @@ INTERRUPTS <P1 x="265" y="221" id="2414" /> <P2 x="265" y="283" id="2385" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="2451" > <cdparam x="263" y="31" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -6381,7 +6381,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="2479" /> </COMPONENT> -<COMPONENT type="1508" id="2485" > +<!-- COMPONENT type="1508" id="2485" > <cdparam x="225" y="195" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6391,7 +6391,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="2482" /> <TGConnectingPoint num="2" id="2483" /> <TGConnectingPoint num="3" id="2484" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2496" > <cdparam x="312" y="352" /> @@ -6438,7 +6438,7 @@ INTERRUPTS <TGConnectingPoint num="0" id="2508" /> </COMPONENT> -<CONNECTOR type="1501" id="2513" > +<!-- CONNECTOR type="1501" id="2513" > <cdparam x="133" y="398" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6471,7 +6471,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="2515" > <cdparam x="200" y="312" /> @@ -6515,7 +6515,7 @@ INTERRUPTS <P2 x="374" y="422" id="2468" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="2519" > +<!-- CONNECTOR type="1501" id="2519" > <cdparam x="240" y="143" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6530,7 +6530,7 @@ INTERRUPTS <P1 x="240" y="225" id="2484" /> <P2 x="240" y="287" id="2455" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="2521" > <cdparam x="238" y="35" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> diff --git a/modeling/DIPLODOCUS/ZigbeeCommunications.xml b/modeling/DIPLODOCUS/ZigbeeCommunications.xml index 177315434b2dcc59794a67f95d577ffe3b9fab7d..3812a1b97161e1d86614067e1527b6cfe349d7d1 100644 --- a/modeling/DIPLODOCUS/ZigbeeCommunications.xml +++ b/modeling/DIPLODOCUS/ZigbeeCommunications.xml @@ -61,7 +61,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="21" /> </COMPONENT> -<COMPONENT type="1508" id="27" > +<!-- COMPONENT type="1508" id="27" > <cdparam x="237" y="197" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -71,7 +71,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="24" /> <TGConnectingPoint num="2" id="25" /> <TGConnectingPoint num="3" id="26" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="38" > <cdparam x="324" y="354" /> @@ -170,7 +170,7 @@ INTERRUPTS <P2 x="386" y="424" id="10" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="72" > +<!-- CONNECTOR type="1501" id="72" > <cdparam x="145" y="400" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -203,7 +203,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="74" > <cdparam x="212" y="314" /> @@ -247,7 +247,7 @@ INTERRUPTS <P2 x="252" y="100" id="55" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="78" > +<!-- CONNECTOR type="1501" id="78" > <cdparam x="252" y="145" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -262,7 +262,7 @@ INTERRUPTS <P1 x="252" y="227" id="26" /> <P2 x="252" y="289" id="42" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -1672,7 +1672,7 @@ POLLING <TGConnectingPoint num="0" id="947" /> </COMPONENT> -<COMPONENT type="1508" id="953" > +<!-- COMPONENT type="1508" id="953" > <cdparam x="360" y="163" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -1682,7 +1682,7 @@ POLLING <TGConnectingPoint num="1" id="950" /> <TGConnectingPoint num="2" id="951" /> <TGConnectingPoint num="3" id="952" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="964" > <cdparam x="182" y="332" /> @@ -1736,7 +1736,7 @@ POLLING <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="973" > +<!-- CONNECTOR type="1501" id="973" > <cdparam x="244" y="372" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -1769,7 +1769,7 @@ POLLING <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="974" > <cdparam x="375" y="314" /> @@ -1779,7 +1779,7 @@ POLLING <P2 x="375" y="386" id="920" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="975" > +<!-- CONNECTOR type="1501" id="975" > <cdparam x="375" y="193" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -1794,7 +1794,7 @@ POLLING <P1 x="375" y="115" id="965" /> <P2 x="375" y="163" id="949" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -2340,7 +2340,7 @@ POLLING <infoparam name="guard 3" value="[ transferTerminated == true ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1323" > +<!-- COMPONENT type="1508" id="1323" > <cdparam x="279" y="127" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2350,7 +2350,7 @@ POLLING <TGConnectingPoint num="1" id="1320" /> <TGConnectingPoint num="2" id="1321" /> <TGConnectingPoint num="3" id="1322" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1334" > <cdparam x="101" y="296" /> @@ -2387,7 +2387,7 @@ POLLING <P2 x="294" y="337" id="1301" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1341" > +<!-- CONNECTOR type="1501" id="1341" > <cdparam x="163" y="336" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -2420,7 +2420,7 @@ POLLING <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1343" > <cdparam x="254" y="238" /> @@ -2439,7 +2439,7 @@ POLLING <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1344" > +<!-- CONNECTOR type="1501" id="1344" > <cdparam x="294" y="157" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -2454,7 +2454,7 @@ POLLING <P1 x="294" y="79" id="1335" /> <P2 x="294" y="127" id="1319" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -2734,7 +2734,7 @@ POLLING <Modeling type="TML CP" nameTab="Load_CPU" > <CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="1501" id="3903" > +<!-- CONNECTOR type="1501" id="3903" > <cdparam x="212" y="387" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -2767,7 +2767,7 @@ POLLING <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="3901" > <cdparam x="277" y="296" /> @@ -2838,7 +2838,7 @@ POLLING <infoparam name="guard 3" value="[ else ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="3877" > +<!-- COMPONENT type="1508" id="3877" > <cdparam x="302" y="201" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2848,7 +2848,7 @@ POLLING <TGConnectingPoint num="1" id="3879" /> <TGConnectingPoint num="2" id="3880" /> <TGConnectingPoint num="3" id="3881" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="3866" > <cdparam x="255" y="113" /> @@ -2936,7 +2936,7 @@ POLLING <P2 x="317" y="108" id="3867" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="3882" > +<!-- CONNECTOR type="1501" id="3882" > <cdparam x="317" y="153" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -2951,7 +2951,7 @@ POLLING <P1 x="317" y="231" id="3881" /> <P2 x="317" y="271" id="3884" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -3341,7 +3341,7 @@ POLLING <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="5618" > +<!-- CONNECTOR type="1501" id="5618" > <cdparam x="275" y="449" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -3374,7 +3374,7 @@ POLLING <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <COMPONENT type="301" id="1697" > <cdparam x="536" y="48" /> @@ -3418,7 +3418,7 @@ POLLING <TGConnectingPoint num="9" id="1709" /> </COMPONENT> -<COMPONENT type="1508" id="5592" > +<!-- COMPONENT type="1508" id="5592" > <cdparam x="365" y="263" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -3428,7 +3428,7 @@ POLLING <TGConnectingPoint num="1" id="5594" /> <TGConnectingPoint num="2" id="5595" /> <TGConnectingPoint num="3" id="5596" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="5581" > <cdparam x="318" y="175" /> @@ -3482,7 +3482,7 @@ POLLING <P2 x="380" y="170" id="5582" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="5597" > +<!-- CONNECTOR type="1501" id="5597" > <cdparam x="380" y="215" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -3497,7 +3497,7 @@ POLLING <P1 x="380" y="293" id="5596" /> <P2 x="380" y="333" id="5599" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -3847,7 +3847,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="1887" /> </COMPONENT> -<COMPONENT type="1508" id="1893" > +<!-- COMPONENT type="1508" id="1893" > <cdparam x="237" y="197" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -3857,7 +3857,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="1890" /> <TGConnectingPoint num="2" id="1891" /> <TGConnectingPoint num="3" id="1892" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1904" > <cdparam x="324" y="354" /> @@ -3956,7 +3956,7 @@ INTERRUPTS <P2 x="386" y="424" id="1876" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1938" > +<!-- CONNECTOR type="1501" id="1938" > <cdparam x="145" y="400" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -3989,7 +3989,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1940" > <cdparam x="212" y="314" /> @@ -4033,7 +4033,7 @@ INTERRUPTS <P2 x="252" y="100" id="1921" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1944" > +<!-- CONNECTOR type="1501" id="1944" > <cdparam x="252" y="145" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -4048,7 +4048,7 @@ INTERRUPTS <P1 x="252" y="227" id="1892" /> <P2 x="252" y="289" id="1908" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -4975,7 +4975,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="2553" /> </COMPONENT> -<COMPONENT type="1508" id="2559" > +<!-- COMPONENT type="1508" id="2559" > <cdparam x="237" y="197" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -4985,7 +4985,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="2556" /> <TGConnectingPoint num="2" id="2557" /> <TGConnectingPoint num="3" id="2558" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2570" > <cdparam x="324" y="354" /> @@ -5084,7 +5084,7 @@ INTERRUPTS <P2 x="386" y="424" id="2542" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="2604" > +<!-- CONNECTOR type="1501" id="2604" > <cdparam x="145" y="400" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -5117,7 +5117,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="2606" > <cdparam x="212" y="314" /> @@ -5161,7 +5161,7 @@ INTERRUPTS <P2 x="252" y="100" id="2587" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="2610" > +<!-- CONNECTOR type="1501" id="2610" > <cdparam x="252" y="145" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -5176,7 +5176,7 @@ INTERRUPTS <P1 x="252" y="227" id="2558" /> <P2 x="252" y="289" id="2574" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -6103,7 +6103,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="3219" /> </COMPONENT> -<COMPONENT type="1508" id="3225" > +<!-- COMPONENT type="1508" id="3225" > <cdparam x="237" y="197" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6113,7 +6113,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="3222" /> <TGConnectingPoint num="2" id="3223" /> <TGConnectingPoint num="3" id="3224" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="3236" > <cdparam x="324" y="354" /> @@ -6212,7 +6212,7 @@ INTERRUPTS <P2 x="386" y="424" id="3208" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="3270" > +<!-- CONNECTOR type="1501" id="3270" > <cdparam x="145" y="400" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6245,7 +6245,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="3272" > <cdparam x="212" y="314" /> @@ -6289,7 +6289,7 @@ INTERRUPTS <P2 x="252" y="100" id="3253" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="3276" > +<!-- CONNECTOR type="1501" id="3276" > <cdparam x="252" y="145" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -6304,7 +6304,7 @@ INTERRUPTS <P1 x="252" y="227" id="3224" /> <P2 x="252" y="289" id="3240" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/DIPLODOCUS/Zigbee_Andrea.xml b/modeling/DIPLODOCUS/Zigbee_Andrea.xml index f7134753e75e2b83859356a80847590d66ce26db..e43a72c5a7d0bc2b15296aaea443cf12bafc5add 100644 --- a/modeling/DIPLODOCUS/Zigbee_Andrea.xml +++ b/modeling/DIPLODOCUS/Zigbee_Andrea.xml @@ -22104,7 +22104,7 @@ input components per cycle <TGConnectingPoint num="9" id="7576" /> </COMPONENT> -<COMPONENT type="1508" id="7582" > +<!-- COMPONENT type="1508" id="7582" > <cdparam x="343" y="202" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -22114,7 +22114,7 @@ input components per cycle <TGConnectingPoint num="1" id="7579" /> <TGConnectingPoint num="2" id="7580" /> <TGConnectingPoint num="3" id="7581" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="7593" > <cdparam x="296" y="114" /> @@ -22152,7 +22152,7 @@ input components per cycle <TGConnectingPoint num="0" id="7596" /> </COMPONENT> -<CONNECTOR type="1501" id="7601" > +<!-- CONNECTOR type="1501" id="7601" > <cdparam x="253" y="388" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -22185,7 +22185,7 @@ input components per cycle <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="7603" > <cdparam x="318" y="297" /> @@ -22220,7 +22220,7 @@ input components per cycle <P2 x="358" y="109" id="7583" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="7606" > +<!-- CONNECTOR type="1501" id="7606" > <cdparam x="358" y="154" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -22235,7 +22235,7 @@ input components per cycle <P1 x="358" y="232" id="7581" /> <P2 x="358" y="272" id="7554" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -22622,7 +22622,7 @@ input components per cycle </extraparam> </COMPONENT> -<COMPONENT type="1508" id="7856" > +<!-- COMPONENT type="1508" id="7856" > <cdparam x="346" y="190" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -22632,7 +22632,7 @@ input components per cycle <TGConnectingPoint num="1" id="7853" /> <TGConnectingPoint num="2" id="7854" /> <TGConnectingPoint num="3" id="7855" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="7867" > <cdparam x="299" y="102" /> @@ -22705,7 +22705,7 @@ input components per cycle <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="7888" > +<!-- CONNECTOR type="1501" id="7888" > <cdparam x="256" y="376" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -22738,7 +22738,7 @@ input components per cycle <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="7889" > <cdparam x="361" y="325" /> @@ -22756,7 +22756,7 @@ input components per cycle <P2 x="361" y="97" id="7857" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="7891" > +<!-- CONNECTOR type="1501" id="7891" > <cdparam x="361" y="142" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -22771,7 +22771,7 @@ input components per cycle <P1 x="361" y="220" id="7855" /> <P2 x="361" y="260" id="7822" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -23247,7 +23247,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="8167" /> </COMPONENT> -<COMPONENT type="1508" id="8173" > +<!-- COMPONENT type="1508" id="8173" > <cdparam x="281" y="543" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -23257,7 +23257,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="8170" /> <TGConnectingPoint num="2" id="8171" /> <TGConnectingPoint num="3" id="8172" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="8184" > <cdparam x="368" y="700" /> @@ -23357,7 +23357,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="8221" /> </COMPONENT> -<COMPONENT type="1508" id="8227" > +<!-- COMPONENT type="1508" id="8227" > <cdparam x="281" y="183" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -23367,7 +23367,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="8224" /> <TGConnectingPoint num="2" id="8225" /> <TGConnectingPoint num="3" id="8226" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="8238" > <cdparam x="234" y="95" /> @@ -23413,7 +23413,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="8246" > +<!-- CONNECTOR type="1501" id="8246" > <cdparam x="191" y="369" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -23446,7 +23446,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="8247" > <cdparam x="430" y="740" /> @@ -23456,7 +23456,7 @@ INTERRUPTS <P2 x="430" y="770" id="8156" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="8251" > +<!-- CONNECTOR type="1501" id="8251" > <cdparam x="189" y="746" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -23489,7 +23489,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="8253" > <cdparam x="256" y="660" /> @@ -23525,7 +23525,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="8256" > +<!-- CONNECTOR type="1501" id="8256" > <cdparam x="296" y="491" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -23540,7 +23540,7 @@ INTERRUPTS <P1 x="296" y="573" id="8172" /> <P2 x="296" y="635" id="8188" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="8258" > <cdparam x="296" y="318" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -23557,7 +23557,7 @@ INTERRUPTS <P2 x="296" y="90" id="8228" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="8260" > +<!-- CONNECTOR type="1501" id="8260" > <cdparam x="296" y="135" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -23572,7 +23572,7 @@ INTERRUPTS <P1 x="296" y="213" id="8226" /> <P2 x="296" y="253" id="8109" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -24871,7 +24871,7 @@ sequence diagram. </extraparam> </COMPONENT> -<COMPONENT type="1508" id="9105" > +<!-- COMPONENT type="1508" id="9105" > <cdparam x="340" y="217" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -24881,7 +24881,7 @@ sequence diagram. <TGConnectingPoint num="1" id="9102" /> <TGConnectingPoint num="2" id="9103" /> <TGConnectingPoint num="3" id="9104" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="9116" > <cdparam x="293" y="129" /> @@ -24937,7 +24937,7 @@ sequence diagram. <TGConnectingPoint num="0" id="9130" /> </COMPONENT> -<CONNECTOR type="1501" id="9135" > +<!-- CONNECTOR type="1501" id="9135" > <cdparam x="250" y="403" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -24970,7 +24970,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="9137" > <cdparam x="315" y="312" /> @@ -25005,7 +25005,7 @@ sequence diagram. <P2 x="355" y="124" id="9106" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="9140" > +<!-- CONNECTOR type="1501" id="9140" > <cdparam x="355" y="169" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -25020,7 +25020,7 @@ sequence diagram. <P1 x="355" y="247" id="9104" /> <P2 x="355" y="287" id="9071" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -25540,7 +25540,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="9432" /> </COMPONENT> -<COMPONENT type="1508" id="9438" > +<!-- COMPONENT type="1508" id="9438" > <cdparam x="329" y="553" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -25550,7 +25550,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="9435" /> <TGConnectingPoint num="2" id="9436" /> <TGConnectingPoint num="3" id="9437" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="9449" > <cdparam x="416" y="710" /> @@ -25606,7 +25606,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="9470" /> </COMPONENT> -<COMPONENT type="1508" id="9476" > +<!-- COMPONENT type="1508" id="9476" > <cdparam x="329" y="193" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -25616,7 +25616,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="9473" /> <TGConnectingPoint num="2" id="9474" /> <TGConnectingPoint num="3" id="9475" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="9487" > <cdparam x="282" y="105" /> @@ -25679,7 +25679,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="9497" > +<!-- CONNECTOR type="1501" id="9497" > <cdparam x="237" y="756" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -25747,7 +25747,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="9503" > <cdparam x="304" y="288" /> @@ -25774,7 +25774,7 @@ INTERRUPTS <P2 x="478" y="780" id="9421" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="9505" > +<!-- CONNECTOR type="1501" id="9505" > <cdparam x="344" y="501" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -25789,7 +25789,7 @@ INTERRUPTS <P1 x="344" y="583" id="9437" /> <P2 x="344" y="645" id="9358" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="9507" > <cdparam x="344" y="328" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -25806,7 +25806,7 @@ INTERRUPTS <P2 x="344" y="100" id="9477" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="9509" > +<!-- CONNECTOR type="1501" id="9509" > <cdparam x="344" y="145" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -25821,7 +25821,7 @@ INTERRUPTS <P1 x="344" y="223" id="9475" /> <P2 x="344" y="263" id="9374" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -27120,7 +27120,7 @@ sequence diagram. </extraparam> </COMPONENT> -<COMPONENT type="1508" id="10354" > +<!-- COMPONENT type="1508" id="10354" > <cdparam x="351" y="210" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -27130,7 +27130,7 @@ sequence diagram. <TGConnectingPoint num="1" id="10351" /> <TGConnectingPoint num="2" id="10352" /> <TGConnectingPoint num="3" id="10353" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="10365" > <cdparam x="304" y="122" /> @@ -27186,7 +27186,7 @@ sequence diagram. <TGConnectingPoint num="0" id="10379" /> </COMPONENT> -<CONNECTOR type="1501" id="10384" > +<!-- CONNECTOR type="1501" id="10384" > <cdparam x="261" y="396" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -27219,7 +27219,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="10386" > <cdparam x="326" y="305" /> @@ -27254,7 +27254,7 @@ sequence diagram. <P2 x="366" y="117" id="10355" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="10389" > +<!-- CONNECTOR type="1501" id="10389" > <cdparam x="366" y="162" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -27269,7 +27269,7 @@ sequence diagram. <P1 x="366" y="240" id="10353" /> <P2 x="366" y="280" id="10320" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -27696,7 +27696,7 @@ sequence diagram. <TGConnectingPoint num="9" id="10646" /> </COMPONENT> -<COMPONENT type="1508" id="10652" > +<!-- COMPONENT type="1508" id="10652" > <cdparam x="262" y="196" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -27706,7 +27706,7 @@ sequence diagram. <TGConnectingPoint num="1" id="10649" /> <TGConnectingPoint num="2" id="10650" /> <TGConnectingPoint num="3" id="10651" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="10663" > <cdparam x="215" y="108" /> @@ -27761,7 +27761,7 @@ sequence diagram. <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="10673" > +<!-- CONNECTOR type="1501" id="10673" > <cdparam x="172" y="382" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -27794,7 +27794,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="10674" > <cdparam x="277" y="331" /> @@ -27812,7 +27812,7 @@ sequence diagram. <P2 x="277" y="103" id="10653" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="10676" > +<!-- CONNECTOR type="1501" id="10676" > <cdparam x="277" y="148" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -27827,7 +27827,7 @@ sequence diagram. <P1 x="277" y="226" id="10651" /> <P2 x="277" y="266" id="10607" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -28214,7 +28214,7 @@ sequence diagram. </extraparam> </COMPONENT> -<COMPONENT type="1508" id="10926" > +<!-- COMPONENT type="1508" id="10926" > <cdparam x="260" y="183" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -28224,7 +28224,7 @@ sequence diagram. <TGConnectingPoint num="1" id="10923" /> <TGConnectingPoint num="2" id="10924" /> <TGConnectingPoint num="3" id="10925" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="10937" > <cdparam x="213" y="95" /> @@ -28280,7 +28280,7 @@ sequence diagram. <TGConnectingPoint num="0" id="10951" /> </COMPONENT> -<CONNECTOR type="1501" id="10956" > +<!-- CONNECTOR type="1501" id="10956" > <cdparam x="170" y="369" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -28313,7 +28313,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="10958" > <cdparam x="235" y="278" /> @@ -28348,7 +28348,7 @@ sequence diagram. <P2 x="275" y="90" id="10927" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="10961" > +<!-- CONNECTOR type="1501" id="10961" > <cdparam x="275" y="135" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -28363,7 +28363,7 @@ sequence diagram. <P1 x="275" y="213" id="10925" /> <P2 x="275" y="253" id="10892" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -28772,7 +28772,7 @@ sequence diagram. </extraparam> </COMPONENT> -<COMPONENT type="1508" id="11213" > +<!-- COMPONENT type="1508" id="11213" > <cdparam x="405" y="249" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -28782,7 +28782,7 @@ sequence diagram. <TGConnectingPoint num="1" id="11210" /> <TGConnectingPoint num="2" id="11211" /> <TGConnectingPoint num="3" id="11212" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="11224" > <cdparam x="358" y="161" /> @@ -28838,7 +28838,7 @@ sequence diagram. <TGConnectingPoint num="0" id="11238" /> </COMPONENT> -<CONNECTOR type="1501" id="11243" > +<!-- CONNECTOR type="1501" id="11243" > <cdparam x="315" y="435" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -28871,7 +28871,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="11245" > <cdparam x="380" y="344" /> @@ -28906,7 +28906,7 @@ sequence diagram. <P2 x="420" y="156" id="11214" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="11248" > +<!-- CONNECTOR type="1501" id="11248" > <cdparam x="420" y="201" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -28921,7 +28921,7 @@ sequence diagram. <P1 x="420" y="279" id="11212" /> <P2 x="420" y="319" id="11179" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -29348,7 +29348,7 @@ sequence diagram. <TGConnectingPoint num="9" id="11505" /> </COMPONENT> -<COMPONENT type="1508" id="11511" > +<!-- COMPONENT type="1508" id="11511" > <cdparam x="260" y="198" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -29358,7 +29358,7 @@ sequence diagram. <TGConnectingPoint num="1" id="11508" /> <TGConnectingPoint num="2" id="11509" /> <TGConnectingPoint num="3" id="11510" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="11522" > <cdparam x="213" y="110" /> @@ -29413,7 +29413,7 @@ sequence diagram. <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="11532" > +<!-- CONNECTOR type="1501" id="11532" > <cdparam x="170" y="384" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -29446,7 +29446,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="11533" > <cdparam x="275" y="333" /> @@ -29464,7 +29464,7 @@ sequence diagram. <P2 x="275" y="105" id="11512" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="11535" > +<!-- CONNECTOR type="1501" id="11535" > <cdparam x="275" y="150" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -29479,7 +29479,7 @@ sequence diagram. <P1 x="275" y="228" id="11510" /> <P2 x="275" y="268" id="11466" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -29884,7 +29884,7 @@ sequence diagram. <TGConnectingPoint num="9" id="11790" /> </COMPONENT> -<COMPONENT type="1508" id="11796" > +<!-- COMPONENT type="1508" id="11796" > <cdparam x="267" y="201" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -29894,7 +29894,7 @@ sequence diagram. <TGConnectingPoint num="1" id="11793" /> <TGConnectingPoint num="2" id="11794" /> <TGConnectingPoint num="3" id="11795" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="11807" > <cdparam x="220" y="113" /> @@ -29949,7 +29949,7 @@ sequence diagram. <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="11817" > +<!-- CONNECTOR type="1501" id="11817" > <cdparam x="177" y="387" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -29982,7 +29982,7 @@ sequence diagram. <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="11818" > <cdparam x="282" y="336" /> @@ -30000,7 +30000,7 @@ sequence diagram. <P2 x="282" y="108" id="11797" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="11820" > +<!-- CONNECTOR type="1501" id="11820" > <cdparam x="282" y="153" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -30015,7 +30015,7 @@ sequence diagram. <P1 x="282" y="231" id="11795" /> <P2 x="282" y="271" id="11751" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -30515,7 +30515,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="12110" /> </COMPONENT> -<COMPONENT type="1508" id="12116" > +<!-- COMPONENT type="1508" id="12116" > <cdparam x="319" y="222" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -30525,7 +30525,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="12113" /> <TGConnectingPoint num="2" id="12114" /> <TGConnectingPoint num="3" id="12115" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="12127" > <cdparam x="406" y="379" /> @@ -30563,7 +30563,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="12137" /> </COMPONENT> -<COMPONENT type="1508" id="12143" > +<!-- COMPONENT type="1508" id="12143" > <cdparam x="453" y="543" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -30573,7 +30573,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="12140" /> <TGConnectingPoint num="2" id="12141" /> <TGConnectingPoint num="3" id="12142" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="12154" > <cdparam x="406" y="459" /> @@ -30620,7 +30620,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="12166" /> </COMPONENT> -<CONNECTOR type="1501" id="12171" > +<!-- CONNECTOR type="1501" id="12171" > <cdparam x="363" y="729" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -30653,7 +30653,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="12173" > <cdparam x="428" y="638" /> @@ -30672,7 +30672,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="12177" > +<!-- CONNECTOR type="1501" id="12177" > <cdparam x="227" y="425" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -30705,7 +30705,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="12179" > <cdparam x="294" y="339" /> @@ -30749,7 +30749,7 @@ INTERRUPTS <P2 x="468" y="454" id="12144" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="12183" > +<!-- CONNECTOR type="1501" id="12183" > <cdparam x="334" y="170" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -30764,7 +30764,7 @@ INTERRUPTS <P1 x="334" y="252" id="12115" /> <P2 x="334" y="314" id="12052" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="12185" > <cdparam x="343" y="93" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -30781,7 +30781,7 @@ INTERRUPTS <P2 x="468" y="771" id="12155" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="12187" > +<!-- CONNECTOR type="1501" id="12187" > <cdparam x="552" y="464" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -30796,7 +30796,7 @@ INTERRUPTS <P1 x="468" y="573" id="12142" /> <P2 x="468" y="613" id="12036" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -32277,7 +32277,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="13092" /> </COMPONENT> -<COMPONENT type="1508" id="13098" > +<!-- COMPONENT type="1508" id="13098" > <cdparam x="272" y="204" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -32287,7 +32287,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="13095" /> <TGConnectingPoint num="2" id="13096" /> <TGConnectingPoint num="3" id="13097" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="13109" > <cdparam x="225" y="116" /> @@ -32342,7 +32342,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="13119" > +<!-- CONNECTOR type="1501" id="13119" > <cdparam x="182" y="390" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -32375,7 +32375,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="13120" > <cdparam x="287" y="339" /> @@ -32393,7 +32393,7 @@ INTERRUPTS <P2 x="287" y="111" id="13099" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="13122" > +<!-- CONNECTOR type="1501" id="13122" > <cdparam x="287" y="156" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -32408,7 +32408,7 @@ INTERRUPTS <P1 x="287" y="234" id="13097" /> <P2 x="287" y="274" id="13070" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -32779,7 +32779,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="13360" /> </COMPONENT> -<COMPONENT type="1508" id="13366" > +<!-- COMPONENT type="1508" id="13366" > <cdparam x="268" y="197" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -32789,7 +32789,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="13363" /> <TGConnectingPoint num="2" id="13364" /> <TGConnectingPoint num="3" id="13365" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="13377" > <cdparam x="221" y="109" /> @@ -32844,7 +32844,7 @@ INTERRUPTS <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="13387" > +<!-- CONNECTOR type="1501" id="13387" > <cdparam x="178" y="383" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -32877,7 +32877,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="13388" > <cdparam x="283" y="332" /> @@ -32895,7 +32895,7 @@ INTERRUPTS <P2 x="283" y="104" id="13367" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="13390" > +<!-- CONNECTOR type="1501" id="13390" > <cdparam x="283" y="149" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -32910,7 +32910,7 @@ INTERRUPTS <P1 x="283" y="227" id="13365" /> <P2 x="283" y="267" id="13338" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -33263,7 +33263,7 @@ INTERRUPTS <infoparam name="guard 3" value="[ else ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="13623" > +<!-- COMPONENT type="1508" id="13623" > <cdparam x="260" y="185" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -33273,7 +33273,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="13620" /> <TGConnectingPoint num="2" id="13621" /> <TGConnectingPoint num="3" id="13622" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="13634" > <cdparam x="213" y="97" /> @@ -33329,7 +33329,7 @@ INTERRUPTS <TGConnectingPoint num="0" id="13648" /> </COMPONENT> -<CONNECTOR type="1501" id="13653" > +<!-- CONNECTOR type="1501" id="13653" > <cdparam x="170" y="371" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -33362,7 +33362,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="13655" > <cdparam x="235" y="280" /> @@ -33397,7 +33397,7 @@ INTERRUPTS <P2 x="275" y="92" id="13624" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="13658" > +<!-- CONNECTOR type="1501" id="13658" > <cdparam x="275" y="137" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -33412,7 +33412,7 @@ INTERRUPTS <P1 x="275" y="215" id="13622" /> <P2 x="275" y="255" id="13606" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> @@ -33823,7 +33823,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="13902" /> </COMPONENT> -<COMPONENT type="1508" id="13908" > +<!-- COMPONENT type="1508" id="13908" > <cdparam x="272" y="176" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -33833,7 +33833,7 @@ INTERRUPTS <TGConnectingPoint num="1" id="13905" /> <TGConnectingPoint num="2" id="13906" /> <TGConnectingPoint num="3" id="13907" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="13919" > <cdparam x="359" y="333" /> @@ -33871,7 +33871,7 @@ INTERRUPTS <TGConnectingPoint num="9" id="13929" /> </COMPONENT> -<CONNECTOR type="1501" id="13934" > +<!-- CONNECTOR type="1501" id="13934" > <cdparam x="180" y="379" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -33904,7 +33904,7 @@ INTERRUPTS <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="13936" > <cdparam x="247" y="293" /> @@ -33948,7 +33948,7 @@ INTERRUPTS <P2 x="421" y="403" id="13891" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="13940" > +<!-- CONNECTOR type="1501" id="13940" > <cdparam x="287" y="124" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -33963,7 +33963,7 @@ INTERRUPTS <P1 x="287" y="206" id="13907" /> <P2 x="287" y="268" id="13876" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="13942" > <cdparam x="296" y="47" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> diff --git a/modeling/POTS_front_end.xml b/modeling/POTS_front_end.xml new file mode 100644 index 0000000000000000000000000000000000000000..142dd719f8adeeca82453b74a4b27d5984b75286 --- /dev/null +++ b/modeling/POTS_front_end.xml @@ -0,0 +1,1726 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="ELN" nameTab="ELN" > +<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2000" minY="10" maxY="1200" attributes="0" zoom="0.8000000000000007" > +<CONNECTOR type="1610" id="1" > +<cdparam x="1017" y="290" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1017" y="290" id="352" /> +<P2 x="1035" y="290" id="449" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="2" > +<cdparam x="1012" y="680" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1012" y="680" id="406" /> +<P2 x="1035" y="680" id="460" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="3" > +<cdparam x="499" y="536" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="wring" /> +<P1 x="500" y="535" id="122" /> +<P2 x="500" y="505" id="133" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="4" > +<cdparam x="350" y="430" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="w1" /> +<P1 x="437" y="537" id="167" /> +<P2 x="437" y="516" id="5" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="7" > +<cdparam x="309" y="414" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="w1" /> +<P1 x="386" y="518" id="189" /> +<P2 x="450" y="519" id="179" /> +<Point x="439" y="518" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="6" > +<father id="7" num="0" /> +<cdparam x="439" y="518" /> +<sizeparam width="6" height="6" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="6" maxX="1025" minY="6" maxY="615" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="5" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="12" > +<cdparam x="353" y="376" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="420" y="342" id="213" /> +<P2 x="327" y="337" id="14" /> +<Point x="420" y="388" type="-1" /> +<Point x="327" y="388" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="9" > +<father id="12" num="0" /> +<cdparam x="420" y="388" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="8" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="11" > +<father id="12" num="1" /> +<cdparam x="327" y="388" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="10" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="13" > +<cdparam x="160" y="375" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="hook" /> +<P1 x="266" y="338" id="636" /> +<P2 x="307" y="338" id="236" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="16" > +<cdparam x="231" y="374" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="323" y="338" id="235" /> +<P2 x="330" y="338" id="225" /> +<Point x="327" y="337" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="15" > +<father id="16" num="0" /> +<cdparam x="327" y="337" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="14" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="17" > +<cdparam x="160" y="797" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="voice" /> +<P1 x="266" y="680" id="101" /> +<P2 x="307" y="680" id="112" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="18" > +<cdparam x="199" y="797" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="voice" /> +<P1 x="323" y="680" id="111" /> +<P2 x="357" y="680" id="157" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="19" > +<cdparam x="484" y="797" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="523" y="677" id="144" /> +<P2 x="500" y="677" id="22" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="24" > +<cdparam x="319" y="843" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="437" y="716" id="156" /> +<P2 x="500" y="614" id="123" /> +<Point x="500" y="716" type="-1" /> +<Point x="500" y="677" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="21" > +<father id="24" num="0" /> +<cdparam x="500" y="716" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="20" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="23" > +<father id="24" num="1" /> +<cdparam x="500" y="677" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="22" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="25" > +<cdparam x="453" y="420" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="w_onhook" /> +<P1 x="500" y="378" id="212" /> +<P2 x="500" y="427" id="134" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="26" > +<cdparam x="494" y="793" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="531" y="677" id="145" /> +<P2 x="574" y="677" id="300" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="27" > +<cdparam x="318" y="753" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="w2" /> +<P1 x="437" y="644" id="155" /> +<P2 x="437" y="616" id="168" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="28" > +<cdparam x="319" y="416" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="w_offhook" /> +<P1 x="410" y="374" id="224" /> +<P2 x="410" y="440" id="29" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="31" > +<cdparam x="278" y="498" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="w_offhook" /> +<P1 x="386" y="440" id="190" /> +<P2 x="450" y="440" id="178" /> +<Point x="410" y="440" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="30" > +<father id="31" num="0" /> +<cdparam x="410" y="440" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="29" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="32" > +<cdparam x="484" y="309" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="523" y="287" id="200" /> +<P2 x="500" y="287" id="38" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="33" > +<cdparam x="494" y="303" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="531" y="287" id="201" /> +<P2 x="574" y="287" id="289" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="40" > +<cdparam x="314" y="350" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="410" y="302" id="223" /> +<P2 x="500" y="306" id="211" /> +<Point x="410" y="258" type="-1" /> +<Point x="500" y="258" type="-1" /> +<Point x="500" y="287" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="35" > +<father id="40" num="0" /> +<cdparam x="410" y="258" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="34" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="37" > +<father id="40" num="1" /> +<cdparam x="500" y="258" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="36" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="39" > +<father id="40" num="2" /> +<cdparam x="500" y="287" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="38" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="43" > +<cdparam x="1330" y="656" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="v2w" /> +<P1 x="1222" y="644" id="593" /> +<P2 x="1237" y="326" id="44" /> +<Point x="1237" y="644" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="42" > +<father id="43" num="0" /> +<cdparam x="1237" y="644" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="41" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="46" > +<cdparam x="1712" y="319" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="v2w" /> +<P1 x="1509" y="326" id="544" /> +<P2 x="1215" y="326" id="581" /> +<Point x="1237" y="326" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="45" > +<father id="46" num="0" /> +<cdparam x="1237" y="326" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="44" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="47" > +<cdparam x="1821" y="319" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="v2w" /> +<P1 x="1558" y="326" id="255" /> +<P2 x="1525" y="326" id="545" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="48" > +<cdparam x="1732" y="678" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="i_trans" /> +<P1 x="1525" y="623" id="534" /> +<P2 x="1558" y="623" id="265" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="49" > +<cdparam x="1524" y="551" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1312" y="463" id="480" /> +<P2 x="1346" y="463" id="67" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="50" > +<cdparam x="1320" y="548" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1276" y="466" id="490" /> +<P2 x="1250" y="466" id="73" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="53" > +<cdparam x="1492" y="425" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_tri_i" /> +<P1 x="1346" y="382" id="615" /> +<P2 x="1361" y="587" id="61" /> +<Point x="1361" y="382" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="52" > +<father id="53" num="0" /> +<cdparam x="1361" y="382" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="51" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="56" > +<cdparam x="1582" y="723" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1421" y="659" id="511" /> +<P2 x="1397" y="692" id="57" /> +<Point x="1421" y="692" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="55" > +<father id="56" num="0" /> +<cdparam x="1421" y="692" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="54" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="59" > +<cdparam x="1538" y="802" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1397" y="706" id="500" /> +<P2 x="1397" y="682" id="523" /> +<Point x="1397" y="692" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="58" > +<father id="59" num="0" /> +<cdparam x="1397" y="692" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="57" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="60" > +<cdparam x="1532" y="644" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_tri_i" /> +<P1 x="1397" y="603" id="522" /> +<P2 x="1397" y="587" id="63" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="65" > +<cdparam x="1492" y="632" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_tri_i" /> +<P1 x="1346" y="587" id="556" /> +<P2 x="1421" y="587" id="510" /> +<Point x="1361" y="587" type="-1" /> +<Point x="1397" y="587" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="62" > +<father id="65" num="0" /> +<cdparam x="1361" y="587" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="61" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="64" > +<father id="65" num="1" /> +<cdparam x="1397" y="587" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="63" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="66" > +<cdparam x="1676" y="679" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="i_trans" /> +<P1 x="1501" y="623" id="512" /> +<P2 x="1509" y="623" id="533" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="69" > +<cdparam x="1460" y="563" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1346" y="531" id="558" /> +<P2 x="1346" y="438" id="617" /> +<Point x="1346" y="463" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="68" > +<father id="69" num="0" /> +<cdparam x="1346" y="463" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="67" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="72" > +<cdparam x="1340" y="624" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_ring_gnd" /> +<P1 x="1250" y="587" id="555" /> +<P2 x="1142" y="608" id="592" /> +<Point x="1142" y="587" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="71" > +<father id="72" num="0" /> +<cdparam x="1142" y="587" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="70" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="75" > +<cdparam x="1319" y="532" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1250" y="531" id="557" /> +<P2 x="1250" y="438" id="616" /> +<Point x="1250" y="466" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="74" > +<father id="75" num="0" /> +<cdparam x="1250" y="466" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="73" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="76" > +<cdparam x="1180" y="702" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1121" y="680" id="603" /> +<P2 x="1142" y="680" id="591" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="79" > +<cdparam x="1198" y="400" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_tip_gnd" /> +<P1 x="1135" y="362" id="580" /> +<P2 x="1250" y="382" id="614" /> +<Point x="1135" y="382" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="78" > +<father id="79" num="0" /> +<cdparam x="1135" y="382" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="77" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="80" > +<cdparam x="497" y="299" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="582" y="287" id="288" /> +<P2 x="607" y="410" id="275" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="81" > +<cdparam x="531" y="534" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="607" y="466" id="277" /> +<P2 x="582" y="677" id="299" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="82" > +<cdparam x="651" y="534" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="703" y="466" id="278" /> +<P2 x="727" y="680" id="321" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="83" > +<cdparam x="651" y="464" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="703" y="410" id="276" /> +<P2 x="727" y="290" id="310" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="84" > +<cdparam x="1228" y="314" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1135" y="290" id="579" /> +<P2 x="1121" y="290" id="568" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="85" > +<cdparam x="1066" y="310" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1043" y="290" id="450" /> +<P2 x="1113" y="290" id="569" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="86" > +<cdparam x="690" y="478" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="735" y="680" id="322" /> +<P2 x="777" y="680" id="439" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="87" > +<cdparam x="690" y="329" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="735" y="290" id="311" /> +<P2 x="777" y="290" id="375" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="88" > +<cdparam x="1066" y="702" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="1043" y="680" id="461" /> +<P2 x="1113" y="680" id="604" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="89" > +<cdparam x="747" y="382" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="785" y="290" id="374" /> +<P2 x="808" y="290" id="341" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="90" > +<cdparam x="747" y="773" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="785" y="680" id="438" /> +<P2 x="801" y="680" id="395" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="91" > +<cdparam x="899" y="748" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_ring" /> +<P1 x="907" y="652" id="417" /> +<P2 x="907" y="680" id="94" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="92" > +<cdparam x="899" y="408" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_tip" /> +<P1 x="906" y="310" id="363" /> +<P2 x="906" y="290" id="98" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="93" > +<cdparam x="899" y="641" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="907" y="553" id="428" /> +<P2 x="907" y="574" id="418" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="96" > +<cdparam x="890" y="780" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_ring" /> +<P1 x="881" y="680" id="396" /> +<P2 x="932" y="680" id="407" /> +<Point x="907" y="680" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="95" > +<father id="96" num="0" /> +<cdparam x="907" y="680" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="94" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="97" > +<cdparam x="903" y="525" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="906" y="402" id="385" /> +<P2 x="906" y="388" id="364" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="100" > +<cdparam x="871" y="380" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n_tip" /> +<P1 x="888" y="290" id="342" /> +<P2 x="937" y="290" id="353" /> +<Point x="906" y="290" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="99" > +<father id="100" num="0" /> +<cdparam x="906" y="290" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="98" /> +</SUBCOMPONENT> + +<COMPONENT type="1627" id="654" > +<cdparam x="258" y="166" /> +<sizeparam width="1308" height="636" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="8" maxX="1601" minY="8" maxY="961" /> +<infoparam name="TGComponent" value="cluster" /> +<TGConnectingPoint num="0" id="646" /> +<TGConnectingPoint num="1" id="647" /> +<TGConnectingPoint num="2" id="648" /> +<TGConnectingPoint num="3" id="649" /> +<TGConnectingPoint num="4" id="650" /> +<TGConnectingPoint num="5" id="651" /> +<TGConnectingPoint num="6" id="652" /> +<TGConnectingPoint num="7" id="653" /> +</COMPONENT> +<SUBCOMPONENT type="1632" id="110" > +<father id="654" num="0" /> +<cdparam x="250" y="672" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" /> +<infoparam name="TGComponent" value="voice" /> +<TGConnectingPoint num="0" id="101" /> +<TGConnectingPoint num="1" id="102" /> +<TGConnectingPoint num="2" id="103" /> +<TGConnectingPoint num="3" id="104" /> +<TGConnectingPoint num="4" id="105" /> +<TGConnectingPoint num="5" id="106" /> +<TGConnectingPoint num="6" id="107" /> +<TGConnectingPoint num="7" id="108" /> +<TGConnectingPoint num="8" id="109" /> +<extraparam> +<attributes name="voice" type="double" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1623" id="254" > +<father id="654" num="1" /> +<cdparam x="315" y="210" /> +<sizeparam width="212" height="541" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1096" minY="0" maxY="95" /> +<infoparam name="TGComponent" value="phone" /> +<TGConnectingPoint num="0" id="246" /> +<TGConnectingPoint num="1" id="247" /> +<TGConnectingPoint num="2" id="248" /> +<TGConnectingPoint num="3" id="249" /> +<TGConnectingPoint num="4" id="250" /> +<TGConnectingPoint num="5" id="251" /> +<TGConnectingPoint num="6" id="252" /> +<TGConnectingPoint num="7" id="253" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1629" id="121" > +<father id="254" num="0" /> +<cdparam x="307" y="672" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="204" minY="-8" maxY="533" /> +<infoparam name="TGComponent" value="voice" /> +<TGConnectingPoint num="0" id="111" /> +<TGConnectingPoint num="1" id="112" /> +<TGConnectingPoint num="2" id="113" /> +<TGConnectingPoint num="3" id="114" /> +<TGConnectingPoint num="4" id="115" /> +<TGConnectingPoint num="5" id="116" /> +<TGConnectingPoint num="6" id="117" /> +<TGConnectingPoint num="7" id="118" /> +<TGConnectingPoint num="8" id="119" /> +<TGConnectingPoint num="9" id="120" /> +<extraparam> +<attributes name="voice" type="double" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="132" > +<father id="254" num="1" /> +<cdparam x="493" y="535" /> +<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="197" minY="0" maxY="462" /> +<infoparam name="TGComponent" value="rr" /> +<TGConnectingPoint num="0" id="122" /> +<TGConnectingPoint num="1" id="123" /> +<TGConnectingPoint num="2" id="124" /> +<TGConnectingPoint num="3" id="125" /> +<TGConnectingPoint num="4" id="126" /> +<TGConnectingPoint num="5" id="127" /> +<TGConnectingPoint num="6" id="128" /> +<TGConnectingPoint num="7" id="129" /> +<TGConnectingPoint num="8" id="130" /> +<TGConnectingPoint num="9" id="131" /> +<extraparam> +<attributes value="1.0" unit="kΩ" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="143" > +<father id="254" num="2" /> +<cdparam x="484" y="427" /> +<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="180" minY="0" maxY="463" /> +<infoparam name="TGComponent" value="cr" /> +<TGConnectingPoint num="0" id="133" /> +<TGConnectingPoint num="1" id="134" /> +<TGConnectingPoint num="2" id="135" /> +<TGConnectingPoint num="3" id="136" /> +<TGConnectingPoint num="4" id="137" /> +<TGConnectingPoint num="5" id="138" /> +<TGConnectingPoint num="6" id="139" /> +<TGConnectingPoint num="7" id="140" /> +<TGConnectingPoint num="8" id="141" /> +<TGConnectingPoint num="9" id="142" /> +<extraparam> +<attributes value="1.0" unit0="μF" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="true" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="154" > +<father id="254" num="3" /> +<cdparam x="523" y="673" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="208" minY="-4" maxY="537" /> +<infoparam name="TGComponent" value="ring" /> +<TGConnectingPoint num="0" id="144" /> +<TGConnectingPoint num="1" id="145" /> +<TGConnectingPoint num="2" id="146" /> +<TGConnectingPoint num="3" id="147" /> +<TGConnectingPoint num="4" id="148" /> +<TGConnectingPoint num="5" id="149" /> +<TGConnectingPoint num="6" id="150" /> +<TGConnectingPoint num="7" id="151" /> +<TGConnectingPoint num="8" id="152" /> +<TGConnectingPoint num="9" id="153" /> +<extraparam> +<attributes name="ring"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1625" id="166" > +<father id="254" num="4" /> +<cdparam x="357" y="640" /> +<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="132" minY="0" maxY="461" /> +<infoparam name="TGComponent" value="mic" /> +<TGConnectingPoint num="0" id="155" /> +<TGConnectingPoint num="1" id="156" /> +<TGConnectingPoint num="2" id="157" /> +<TGConnectingPoint num="3" id="158" /> +<TGConnectingPoint num="4" id="159" /> +<TGConnectingPoint num="5" id="160" /> +<TGConnectingPoint num="6" id="161" /> +<TGConnectingPoint num="7" id="162" /> +<TGConnectingPoint num="8" id="163" /> +<TGConnectingPoint num="9" id="164" /> +<TGConnectingPoint num="10" id="165" /> +<extraparam> +<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="177" > +<father id="254" num="5" /> +<cdparam x="430" y="537" /> +<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="197" minY="0" maxY="462" /> +<infoparam name="TGComponent" value="rs" /> +<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" /> +<extraparam> +<attributes value="220.0" unit="Ω" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="188" > +<father id="254" num="6" /> +<cdparam x="443" y="440" /> +<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="197" minY="0" maxY="462" /> +<infoparam name="TGComponent" value="rp" /> +<TGConnectingPoint num="0" id="178" /> +<TGConnectingPoint num="1" id="179" /> +<TGConnectingPoint num="2" id="180" /> +<TGConnectingPoint num="3" id="181" /> +<TGConnectingPoint num="4" id="182" /> +<TGConnectingPoint num="5" id="183" /> +<TGConnectingPoint num="6" id="184" /> +<TGConnectingPoint num="7" id="185" /> +<TGConnectingPoint num="8" id="186" /> +<TGConnectingPoint num="9" id="187" /> +<extraparam> +<attributes value="820.0" unit="Ω" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="199" > +<father id="254" num="7" /> +<cdparam x="370" y="440" /> +<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="180" minY="0" maxY="463" /> +<infoparam name="TGComponent" value="cp" /> +<TGConnectingPoint num="0" id="189" /> +<TGConnectingPoint num="1" id="190" /> +<TGConnectingPoint num="2" id="191" /> +<TGConnectingPoint num="3" id="192" /> +<TGConnectingPoint num="4" id="193" /> +<TGConnectingPoint num="5" id="194" /> +<TGConnectingPoint num="6" id="195" /> +<TGConnectingPoint num="7" id="196" /> +<TGConnectingPoint num="8" id="197" /> +<TGConnectingPoint num="9" id="198" /> +<extraparam> +<attributes value="115.0" unit0="nF" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="true" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="210" > +<father id="254" num="8" /> +<cdparam x="523" y="283" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="208" minY="-4" maxY="537" /> +<infoparam name="TGComponent" value="tip" /> +<TGConnectingPoint num="0" id="200" /> +<TGConnectingPoint num="1" id="201" /> +<TGConnectingPoint num="2" id="202" /> +<TGConnectingPoint num="3" id="203" /> +<TGConnectingPoint num="4" id="204" /> +<TGConnectingPoint num="5" id="205" /> +<TGConnectingPoint num="6" id="206" /> +<TGConnectingPoint num="7" id="207" /> +<TGConnectingPoint num="8" id="208" /> +<TGConnectingPoint num="9" id="209" /> +<extraparam> +<attributes name="tip"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1636" id="222" > +<father id="254" num="9" /> +<cdparam x="420" y="302" /> +<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="132" minY="0" maxY="461" /> +<infoparam name="TGComponent" value="sw1" /> +<TGConnectingPoint num="0" id="211" /> +<TGConnectingPoint num="1" id="212" /> +<TGConnectingPoint num="2" id="213" /> +<TGConnectingPoint num="3" id="214" /> +<TGConnectingPoint num="4" id="215" /> +<TGConnectingPoint num="5" id="216" /> +<TGConnectingPoint num="6" id="217" /> +<TGConnectingPoint num="7" id="218" /> +<TGConnectingPoint num="8" id="219" /> +<TGConnectingPoint num="9" id="220" /> +<TGConnectingPoint num="10" id="221" /> +<extraparam> +<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1636" id="234" > +<father id="254" num="10" /> +<cdparam x="330" y="298" /> +<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="132" minY="0" maxY="461" /> +<infoparam name="TGComponent" value="sw2" /> +<TGConnectingPoint num="0" id="223" /> +<TGConnectingPoint num="1" id="224" /> +<TGConnectingPoint num="2" id="225" /> +<TGConnectingPoint num="3" id="226" /> +<TGConnectingPoint num="4" id="227" /> +<TGConnectingPoint num="5" id="228" /> +<TGConnectingPoint num="6" id="229" /> +<TGConnectingPoint num="7" id="230" /> +<TGConnectingPoint num="8" id="231" /> +<TGConnectingPoint num="9" id="232" /> +<TGConnectingPoint num="10" id="233" /> +<extraparam> +<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1628" id="245" > +<father id="254" num="11" /> +<cdparam x="307" y="330" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="204" minY="-8" maxY="533" /> +<infoparam name="TGComponent" value="hook" /> +<TGConnectingPoint num="0" id="235" /> +<TGConnectingPoint num="1" id="236" /> +<TGConnectingPoint num="2" id="237" /> +<TGConnectingPoint num="3" id="238" /> +<TGConnectingPoint num="4" id="239" /> +<TGConnectingPoint num="5" id="240" /> +<TGConnectingPoint num="6" id="241" /> +<TGConnectingPoint num="7" id="242" /> +<TGConnectingPoint num="8" id="243" /> +<TGConnectingPoint num="9" id="244" /> +<extraparam> +<attributes name="hook" type="bool" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1632" id="264" > +<father id="654" num="2" /> +<cdparam x="1558" y="318" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" /> +<infoparam name="TGComponent" value="v2w" /> +<TGConnectingPoint num="0" id="255" /> +<TGConnectingPoint num="1" id="256" /> +<TGConnectingPoint num="2" id="257" /> +<TGConnectingPoint num="3" id="258" /> +<TGConnectingPoint num="4" id="259" /> +<TGConnectingPoint num="5" id="260" /> +<TGConnectingPoint num="6" id="261" /> +<TGConnectingPoint num="7" id="262" /> +<TGConnectingPoint num="8" id="263" /> +<extraparam> +<attributes name="v2w" type="double" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1632" id="274" > +<father id="654" num="3" /> +<cdparam x="1558" y="615" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" /> +<infoparam name="TGComponent" value="i_trans" /> +<TGConnectingPoint num="0" id="265" /> +<TGConnectingPoint num="1" id="266" /> +<TGConnectingPoint num="2" id="267" /> +<TGConnectingPoint num="3" id="268" /> +<TGConnectingPoint num="4" id="269" /> +<TGConnectingPoint num="5" id="270" /> +<TGConnectingPoint num="6" id="271" /> +<TGConnectingPoint num="7" id="272" /> +<TGConnectingPoint num="8" id="273" /> +<extraparam> +<attributes name="i_trans" type="double" origin="out"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1623" id="340" > +<father id="654" num="4" /> +<cdparam x="578" y="212" /> +<sizeparam width="153" height="540" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1155" minY="0" maxY="96" /> +<infoparam name="TGComponent" value="transmission_line" /> +<TGConnectingPoint num="0" id="332" /> +<TGConnectingPoint num="1" id="333" /> +<TGConnectingPoint num="2" id="334" /> +<TGConnectingPoint num="3" id="335" /> +<TGConnectingPoint num="4" id="336" /> +<TGConnectingPoint num="5" id="337" /> +<TGConnectingPoint num="6" id="338" /> +<TGConnectingPoint num="7" id="339" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1617" id="287" > +<father id="340" num="0" /> +<cdparam x="607" y="406" /> +<sizeparam width="96" height="64" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="57" minY="0" maxY="476" /> +<infoparam name="TGComponent" value="tl0" /> +<TGConnectingPoint num="0" id="275" /> +<TGConnectingPoint num="1" id="276" /> +<TGConnectingPoint num="2" id="277" /> +<TGConnectingPoint num="3" id="278" /> +<TGConnectingPoint num="4" id="279" /> +<TGConnectingPoint num="5" id="280" /> +<TGConnectingPoint num="6" id="281" /> +<TGConnectingPoint num="7" id="282" /> +<TGConnectingPoint num="8" id="283" /> +<TGConnectingPoint num="9" id="284" /> +<TGConnectingPoint num="10" id="285" /> +<TGConnectingPoint num="11" id="286" /> +<extraparam> +<attributes z0="50.0" unit0="Ω" delay="sc_core::SC_ZERO_TIME" delta0="0.0" unit2="Hz" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="298" > +<father id="340" num="1" /> +<cdparam x="574" y="283" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" /> +<infoparam name="TGComponent" value="a1" /> +<TGConnectingPoint num="0" id="288" /> +<TGConnectingPoint num="1" id="289" /> +<TGConnectingPoint num="2" id="290" /> +<TGConnectingPoint num="3" id="291" /> +<TGConnectingPoint num="4" id="292" /> +<TGConnectingPoint num="5" id="293" /> +<TGConnectingPoint num="6" id="294" /> +<TGConnectingPoint num="7" id="295" /> +<TGConnectingPoint num="8" id="296" /> +<TGConnectingPoint num="9" id="297" /> +<extraparam> +<attributes name="a1"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="309" > +<father id="340" num="2" /> +<cdparam x="574" y="673" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" /> +<infoparam name="TGComponent" value="b1" /> +<TGConnectingPoint num="0" id="299" /> +<TGConnectingPoint num="1" id="300" /> +<TGConnectingPoint num="2" id="301" /> +<TGConnectingPoint num="3" id="302" /> +<TGConnectingPoint num="4" id="303" /> +<TGConnectingPoint num="5" id="304" /> +<TGConnectingPoint num="6" id="305" /> +<TGConnectingPoint num="7" id="306" /> +<TGConnectingPoint num="8" id="307" /> +<TGConnectingPoint num="9" id="308" /> +<extraparam> +<attributes name="b1"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="320" > +<father id="340" num="3" /> +<cdparam x="727" y="286" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" /> +<infoparam name="TGComponent" value="a2" /> +<TGConnectingPoint num="0" id="310" /> +<TGConnectingPoint num="1" id="311" /> +<TGConnectingPoint num="2" id="312" /> +<TGConnectingPoint num="3" id="313" /> +<TGConnectingPoint num="4" id="314" /> +<TGConnectingPoint num="5" id="315" /> +<TGConnectingPoint num="6" id="316" /> +<TGConnectingPoint num="7" id="317" /> +<TGConnectingPoint num="8" id="318" /> +<TGConnectingPoint num="9" id="319" /> +<extraparam> +<attributes name="a2"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="331" > +<father id="340" num="4" /> +<cdparam x="727" y="676" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="149" minY="-4" maxY="536" /> +<infoparam name="TGComponent" value="b2" /> +<TGConnectingPoint num="0" id="321" /> +<TGConnectingPoint num="1" id="322" /> +<TGConnectingPoint num="2" id="323" /> +<TGConnectingPoint num="3" id="324" /> +<TGConnectingPoint num="4" id="325" /> +<TGConnectingPoint num="5" id="326" /> +<TGConnectingPoint num="6" id="327" /> +<TGConnectingPoint num="7" id="328" /> +<TGConnectingPoint num="8" id="329" /> +<TGConnectingPoint num="9" id="330" /> +<extraparam> +<attributes name="b2"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1623" id="479" > +<father id="654" num="5" /> +<cdparam x="781" y="212" /> +<sizeparam width="258" height="537" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1050" minY="0" maxY="99" /> +<infoparam name="TGComponent" value="protection_circuit" /> +<TGConnectingPoint num="0" id="471" /> +<TGConnectingPoint num="1" id="472" /> +<TGConnectingPoint num="2" id="473" /> +<TGConnectingPoint num="3" id="474" /> +<TGConnectingPoint num="4" id="475" /> +<TGConnectingPoint num="5" id="476" /> +<TGConnectingPoint num="6" id="477" /> +<TGConnectingPoint num="7" id="478" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="351" > +<father id="479" num="0" /> +<cdparam x="808" y="282" /> +<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" /> +<infoparam name="TGComponent" value="rprot1" /> +<TGConnectingPoint num="0" id="341" /> +<TGConnectingPoint num="1" id="342" /> +<TGConnectingPoint num="2" id="343" /> +<TGConnectingPoint num="3" id="344" /> +<TGConnectingPoint num="4" id="345" /> +<TGConnectingPoint num="5" id="346" /> +<TGConnectingPoint num="6" id="347" /> +<TGConnectingPoint num="7" id="348" /> +<TGConnectingPoint num="8" id="349" /> +<TGConnectingPoint num="9" id="350" /> +<extraparam> +<attributes value="20.0" unit="Ω" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="362" > +<father id="479" num="1" /> +<cdparam x="937" y="282" /> +<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" /> +<infoparam name="TGComponent" value="rprot2" /> +<TGConnectingPoint num="0" id="352" /> +<TGConnectingPoint num="1" id="353" /> +<TGConnectingPoint num="2" id="354" /> +<TGConnectingPoint num="3" id="355" /> +<TGConnectingPoint num="4" id="356" /> +<TGConnectingPoint num="5" id="357" /> +<TGConnectingPoint num="6" id="358" /> +<TGConnectingPoint num="7" id="359" /> +<TGConnectingPoint num="8" id="360" /> +<TGConnectingPoint num="9" id="361" /> +<extraparam> +<attributes value="20.0" unit="Ω" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="373" > +<father id="479" num="2" /> +<cdparam x="890" y="310" /> +<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="226" minY="0" maxY="459" /> +<infoparam name="TGComponent" value="cprot1" /> +<TGConnectingPoint num="0" id="363" /> +<TGConnectingPoint num="1" id="364" /> +<TGConnectingPoint num="2" id="365" /> +<TGConnectingPoint num="3" id="366" /> +<TGConnectingPoint num="4" id="367" /> +<TGConnectingPoint num="5" id="368" /> +<TGConnectingPoint num="6" id="369" /> +<TGConnectingPoint num="7" id="370" /> +<TGConnectingPoint num="8" id="371" /> +<TGConnectingPoint num="9" id="372" /> +<extraparam> +<attributes value="18.0" unit0="nF" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="384" > +<father id="479" num="3" /> +<cdparam x="777" y="286" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" /> +<infoparam name="TGComponent" value="tip" /> +<TGConnectingPoint num="0" id="374" /> +<TGConnectingPoint num="1" id="375" /> +<TGConnectingPoint num="2" id="376" /> +<TGConnectingPoint num="3" id="377" /> +<TGConnectingPoint num="4" id="378" /> +<TGConnectingPoint num="5" id="379" /> +<TGConnectingPoint num="6" id="380" /> +<TGConnectingPoint num="7" id="381" /> +<TGConnectingPoint num="8" id="382" /> +<TGConnectingPoint num="9" id="383" /> +<extraparam> +<attributes name="tip"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="394" > +<father id="479" num="4" /> +<cdparam x="890" y="402" /> +<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="226" minY="0" maxY="505" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="385" /> +<TGConnectingPoint num="1" id="386" /> +<TGConnectingPoint num="2" id="387" /> +<TGConnectingPoint num="3" id="388" /> +<TGConnectingPoint num="4" id="389" /> +<TGConnectingPoint num="5" id="390" /> +<TGConnectingPoint num="6" id="391" /> +<TGConnectingPoint num="7" id="392" /> +<TGConnectingPoint num="8" id="393" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="405" > +<father id="479" num="5" /> +<cdparam x="801" y="672" /> +<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" /> +<infoparam name="TGComponent" value="rprot3" /> +<TGConnectingPoint num="0" id="395" /> +<TGConnectingPoint num="1" id="396" /> +<TGConnectingPoint num="2" id="397" /> +<TGConnectingPoint num="3" id="398" /> +<TGConnectingPoint num="4" id="399" /> +<TGConnectingPoint num="5" id="400" /> +<TGConnectingPoint num="6" id="401" /> +<TGConnectingPoint num="7" id="402" /> +<TGConnectingPoint num="8" id="403" /> +<TGConnectingPoint num="9" id="404" /> +<extraparam> +<attributes value="20.0" unit="Ω" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="416" > +<father id="479" num="6" /> +<cdparam x="932" y="672" /> +<sizeparam width="80" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="178" minY="0" maxY="521" /> +<infoparam name="TGComponent" value="rprot4" /> +<TGConnectingPoint num="0" id="406" /> +<TGConnectingPoint num="1" id="407" /> +<TGConnectingPoint num="2" id="408" /> +<TGConnectingPoint num="3" id="409" /> +<TGConnectingPoint num="4" id="410" /> +<TGConnectingPoint num="5" id="411" /> +<TGConnectingPoint num="6" id="412" /> +<TGConnectingPoint num="7" id="413" /> +<TGConnectingPoint num="8" id="414" /> +<TGConnectingPoint num="9" id="415" /> +<extraparam> +<attributes value="20.0" unit="Ω" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="427" > +<father id="479" num="7" /> +<cdparam x="891" y="574" /> +<sizeparam width="32" height="78" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="226" minY="0" maxY="459" /> +<infoparam name="TGComponent" value="cprot2" /> +<TGConnectingPoint num="0" id="417" /> +<TGConnectingPoint num="1" id="418" /> +<TGConnectingPoint num="2" id="419" /> +<TGConnectingPoint num="3" id="420" /> +<TGConnectingPoint num="4" id="421" /> +<TGConnectingPoint num="5" id="422" /> +<TGConnectingPoint num="6" id="423" /> +<TGConnectingPoint num="7" id="424" /> +<TGConnectingPoint num="8" id="425" /> +<TGConnectingPoint num="9" id="426" /> +<extraparam> +<attributes value="18.0" unit0="nF" q0="0.0" unit1="C" position="3" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="437" > +<father id="479" num="8" /> +<cdparam x="891" y="521" /> +<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="226" minY="0" maxY="505" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="428" /> +<TGConnectingPoint num="1" id="429" /> +<TGConnectingPoint num="2" id="430" /> +<TGConnectingPoint num="3" id="431" /> +<TGConnectingPoint num="4" id="432" /> +<TGConnectingPoint num="5" id="433" /> +<TGConnectingPoint num="6" id="434" /> +<TGConnectingPoint num="7" id="435" /> +<TGConnectingPoint num="8" id="436" /> +<extraparam> +<attributes position="0" fv_0_2="true" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="448" > +<father id="479" num="9" /> +<cdparam x="777" y="676" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" /> +<infoparam name="TGComponent" value="ring" /> +<TGConnectingPoint num="0" id="438" /> +<TGConnectingPoint num="1" id="439" /> +<TGConnectingPoint num="2" id="440" /> +<TGConnectingPoint num="3" id="441" /> +<TGConnectingPoint num="4" id="442" /> +<TGConnectingPoint num="5" id="443" /> +<TGConnectingPoint num="6" id="444" /> +<TGConnectingPoint num="7" id="445" /> +<TGConnectingPoint num="8" id="446" /> +<TGConnectingPoint num="9" id="447" /> +<extraparam> +<attributes name="ring"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="459" > +<father id="479" num="10" /> +<cdparam x="1035" y="286" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" /> +<infoparam name="TGComponent" value="tip_slic" /> +<TGConnectingPoint num="0" id="449" /> +<TGConnectingPoint num="1" id="450" /> +<TGConnectingPoint num="2" id="451" /> +<TGConnectingPoint num="3" id="452" /> +<TGConnectingPoint num="4" id="453" /> +<TGConnectingPoint num="5" id="454" /> +<TGConnectingPoint num="6" id="455" /> +<TGConnectingPoint num="7" id="456" /> +<TGConnectingPoint num="8" id="457" /> +<TGConnectingPoint num="9" id="458" /> +<extraparam> +<attributes name="tip_slic"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="470" > +<father id="479" num="11" /> +<cdparam x="1035" y="676" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="254" minY="-4" maxY="533" /> +<infoparam name="TGComponent" value="ring_slic" /> +<TGConnectingPoint num="0" id="460" /> +<TGConnectingPoint num="1" id="461" /> +<TGConnectingPoint num="2" id="462" /> +<TGConnectingPoint num="3" id="463" /> +<TGConnectingPoint num="4" id="464" /> +<TGConnectingPoint num="5" id="465" /> +<TGConnectingPoint num="6" id="466" /> +<TGConnectingPoint num="7" id="467" /> +<TGConnectingPoint num="8" id="468" /> +<TGConnectingPoint num="9" id="469" /> +<extraparam> +<attributes name="ring_slic"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1623" id="635" > +<father id="654" num="6" /> +<cdparam x="1117" y="212" /> +<sizeparam width="400" height="540" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="908" minY="0" maxY="96" /> +<infoparam name="TGComponent" value="slic" /> +<TGConnectingPoint num="0" id="627" /> +<TGConnectingPoint num="1" id="628" /> +<TGConnectingPoint num="2" id="629" /> +<TGConnectingPoint num="3" id="630" /> +<TGConnectingPoint num="4" id="631" /> +<TGConnectingPoint num="5" id="632" /> +<TGConnectingPoint num="6" id="633" /> +<TGConnectingPoint num="7" id="634" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="489" > +<father id="635" num="0" /> +<cdparam x="1296" y="463" /> +<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="368" minY="0" maxY="508" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="480" /> +<TGConnectingPoint num="1" id="481" /> +<TGConnectingPoint num="2" id="482" /> +<TGConnectingPoint num="3" id="483" /> +<TGConnectingPoint num="4" id="484" /> +<TGConnectingPoint num="5" id="485" /> +<TGConnectingPoint num="6" id="486" /> +<TGConnectingPoint num="7" id="487" /> +<TGConnectingPoint num="8" id="488" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="499" > +<father id="635" num="1" /> +<cdparam x="1260" y="466" /> +<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="368" minY="0" maxY="508" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="490" /> +<TGConnectingPoint num="1" id="491" /> +<TGConnectingPoint num="2" id="492" /> +<TGConnectingPoint num="3" id="493" /> +<TGConnectingPoint num="4" id="494" /> +<TGConnectingPoint num="5" id="495" /> +<TGConnectingPoint num="6" id="496" /> +<TGConnectingPoint num="7" id="497" /> +<TGConnectingPoint num="8" id="498" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="509" > +<father id="635" num="2" /> +<cdparam x="1381" y="706" /> +<sizeparam width="32" height="32" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="368" minY="0" maxY="508" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="500" /> +<TGConnectingPoint num="1" id="501" /> +<TGConnectingPoint num="2" id="502" /> +<TGConnectingPoint num="3" id="503" /> +<TGConnectingPoint num="4" id="504" /> +<TGConnectingPoint num="5" id="505" /> +<TGConnectingPoint num="6" id="506" /> +<TGConnectingPoint num="7" id="507" /> +<TGConnectingPoint num="8" id="508" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1621" id="521" > +<father id="635" num="3" /> +<cdparam x="1421" y="583" /> +<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="320" minY="0" maxY="460" /> +<infoparam name="TGComponent" value="itr_meas" /> +<TGConnectingPoint num="0" id="510" /> +<TGConnectingPoint num="1" id="511" /> +<TGConnectingPoint num="2" id="512" /> +<TGConnectingPoint num="3" id="513" /> +<TGConnectingPoint num="4" id="514" /> +<TGConnectingPoint num="5" id="515" /> +<TGConnectingPoint num="6" id="516" /> +<TGConnectingPoint num="7" id="517" /> +<TGConnectingPoint num="8" id="518" /> +<TGConnectingPoint num="9" id="519" /> +<TGConnectingPoint num="10" id="520" /> +<extraparam> +<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="532" > +<father id="635" num="4" /> +<cdparam x="1390" y="603" /> +<sizeparam width="15" height="79" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="385" minY="0" maxY="461" /> +<infoparam name="TGComponent" value="rtr" /> +<TGConnectingPoint num="0" id="522" /> +<TGConnectingPoint num="1" id="523" /> +<TGConnectingPoint num="2" id="524" /> +<TGConnectingPoint num="3" id="525" /> +<TGConnectingPoint num="4" id="526" /> +<TGConnectingPoint num="5" id="527" /> +<TGConnectingPoint num="6" id="528" /> +<TGConnectingPoint num="7" id="529" /> +<TGConnectingPoint num="8" id="530" /> +<TGConnectingPoint num="9" id="531" /> +<extraparam> +<attributes value="1.0" unit="Ω" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1629" id="543" > +<father id="635" num="5" /> +<cdparam x="1509" y="615" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="392" minY="-8" maxY="532" /> +<infoparam name="TGComponent" value="i_trans" /> +<TGConnectingPoint num="0" id="533" /> +<TGConnectingPoint num="1" id="534" /> +<TGConnectingPoint num="2" id="535" /> +<TGConnectingPoint num="3" id="536" /> +<TGConnectingPoint num="4" id="537" /> +<TGConnectingPoint num="5" id="538" /> +<TGConnectingPoint num="6" id="539" /> +<TGConnectingPoint num="7" id="540" /> +<TGConnectingPoint num="8" id="541" /> +<TGConnectingPoint num="9" id="542" /> +<extraparam> +<attributes name="i_trans" type="double" origin="out"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1629" id="554" > +<father id="635" num="6" /> +<cdparam x="1509" y="318" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="392" minY="-8" maxY="532" /> +<infoparam name="TGComponent" value="v2w" /> +<TGConnectingPoint num="0" id="544" /> +<TGConnectingPoint num="1" id="545" /> +<TGConnectingPoint num="2" id="546" /> +<TGConnectingPoint num="3" id="547" /> +<TGConnectingPoint num="4" id="548" /> +<TGConnectingPoint num="5" id="549" /> +<TGConnectingPoint num="6" id="550" /> +<TGConnectingPoint num="7" id="551" /> +<TGConnectingPoint num="8" id="552" /> +<TGConnectingPoint num="9" id="553" /> +<extraparam> +<attributes name="v2w" type="double" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1615" id="567" > +<father id="635" num="7" /> +<cdparam x="1250" y="527" /> +<sizeparam width="96" height="64" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="304" minY="0" maxY="476" /> +<infoparam name="TGComponent" value="mirror2" /> +<TGConnectingPoint num="0" id="555" /> +<TGConnectingPoint num="1" id="556" /> +<TGConnectingPoint num="2" id="557" /> +<TGConnectingPoint num="3" id="558" /> +<TGConnectingPoint num="4" id="559" /> +<TGConnectingPoint num="5" id="560" /> +<TGConnectingPoint num="6" id="561" /> +<TGConnectingPoint num="7" id="562" /> +<TGConnectingPoint num="8" id="563" /> +<TGConnectingPoint num="9" id="564" /> +<TGConnectingPoint num="10" id="565" /> +<TGConnectingPoint num="11" id="566" /> +<extraparam> +<attributes value="-0.5" unit="S" position="0" fv_0_2="true" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="578" > +<father id="635" num="8" /> +<cdparam x="1113" y="286" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="396" minY="-4" maxY="536" /> +<infoparam name="TGComponent" value="tip" /> +<TGConnectingPoint num="0" id="568" /> +<TGConnectingPoint num="1" id="569" /> +<TGConnectingPoint num="2" id="570" /> +<TGConnectingPoint num="3" id="571" /> +<TGConnectingPoint num="4" id="572" /> +<TGConnectingPoint num="5" id="573" /> +<TGConnectingPoint num="6" id="574" /> +<TGConnectingPoint num="7" id="575" /> +<TGConnectingPoint num="8" id="576" /> +<TGConnectingPoint num="9" id="577" /> +<extraparam> +<attributes name="tip"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1625" id="590" > +<father id="635" num="9" /> +<cdparam x="1135" y="286" /> +<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="320" minY="0" maxY="460" /> +<infoparam name="TGComponent" value="driver1" /> +<TGConnectingPoint num="0" id="579" /> +<TGConnectingPoint num="1" id="580" /> +<TGConnectingPoint num="2" id="581" /> +<TGConnectingPoint num="3" id="582" /> +<TGConnectingPoint num="4" id="583" /> +<TGConnectingPoint num="5" id="584" /> +<TGConnectingPoint num="6" id="585" /> +<TGConnectingPoint num="7" id="586" /> +<TGConnectingPoint num="8" id="587" /> +<TGConnectingPoint num="9" id="588" /> +<TGConnectingPoint num="10" id="589" /> +<extraparam> +<attributes scale="0.5" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1625" id="602" > +<father id="635" num="10" /> +<cdparam x="1142" y="604" /> +<sizeparam width="80" height="80" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="320" minY="0" maxY="460" /> +<infoparam name="TGComponent" value="driver2" /> +<TGConnectingPoint num="0" id="591" /> +<TGConnectingPoint num="1" id="592" /> +<TGConnectingPoint num="2" id="593" /> +<TGConnectingPoint num="3" id="594" /> +<TGConnectingPoint num="4" id="595" /> +<TGConnectingPoint num="5" id="596" /> +<TGConnectingPoint num="6" id="597" /> +<TGConnectingPoint num="7" id="598" /> +<TGConnectingPoint num="8" id="599" /> +<TGConnectingPoint num="9" id="600" /> +<TGConnectingPoint num="10" id="601" /> +<extraparam> +<attributes scale="0.5" position="0" fv_0_2="true" fv_1_3="false" fh_0_2="true" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="613" > +<father id="635" num="11" /> +<cdparam x="1113" y="676" /> +<sizeparam width="8" height="8" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-4" maxX="396" minY="-4" maxY="536" /> +<infoparam name="TGComponent" value="ring" /> +<TGConnectingPoint num="0" id="603" /> +<TGConnectingPoint num="1" id="604" /> +<TGConnectingPoint num="2" id="605" /> +<TGConnectingPoint num="3" id="606" /> +<TGConnectingPoint num="4" id="607" /> +<TGConnectingPoint num="5" id="608" /> +<TGConnectingPoint num="6" id="609" /> +<TGConnectingPoint num="7" id="610" /> +<TGConnectingPoint num="8" id="611" /> +<TGConnectingPoint num="9" id="612" /> +<extraparam> +<attributes name="ring"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1615" id="626" > +<father id="635" num="12" /> +<cdparam x="1250" y="378" /> +<sizeparam width="96" height="64" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="304" minY="0" maxY="476" /> +<infoparam name="TGComponent" value="mirror1" /> +<TGConnectingPoint num="0" id="614" /> +<TGConnectingPoint num="1" id="615" /> +<TGConnectingPoint num="2" id="616" /> +<TGConnectingPoint num="3" id="617" /> +<TGConnectingPoint num="4" id="618" /> +<TGConnectingPoint num="5" id="619" /> +<TGConnectingPoint num="6" id="620" /> +<TGConnectingPoint num="7" id="621" /> +<TGConnectingPoint num="8" id="622" /> +<TGConnectingPoint num="9" id="623" /> +<TGConnectingPoint num="10" id="624" /> +<TGConnectingPoint num="11" id="625" /> +<extraparam> +<attributes value="0.5" unit="S" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1631" id="645" > +<father id="654" num="7" /> +<cdparam x="250" y="330" /> +<sizeparam width="16" height="16" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-8" maxX="1300" minY="-8" maxY="628" /> +<infoparam name="TGComponent" value="hook" /> +<TGConnectingPoint num="0" id="636" /> +<TGConnectingPoint num="1" id="637" /> +<TGConnectingPoint num="2" id="638" /> +<TGConnectingPoint num="3" id="639" /> +<TGConnectingPoint num="4" id="640" /> +<TGConnectingPoint num="5" id="641" /> +<TGConnectingPoint num="6" id="642" /> +<TGConnectingPoint num="7" id="643" /> +<TGConnectingPoint num="8" id="644" /> +<extraparam> +<attributes name="hook" type="bool" origin="in"/> +</extraparam> +</SUBCOMPONENT> + + +</ELNDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/eln_in_tdf.xml b/modeling/eln_in_tdf.xml new file mode 100644 index 0000000000000000000000000000000000000000..86bc9645d8c4c935698165cbe10e27e0909d8d5f --- /dev/null +++ b/modeling/eln_in_tdf.xml @@ -0,0 +1,385 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="ELN" nameTab="ELN" > +<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" zoom="1.0" > +<CONNECTOR type="1610" id="3" > +<cdparam x="731" y="422" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="706" y="416" id="125" /> +<P2 x="738" y="351" id="82" /> +<Point x="706" y="351" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2" > +<father id="3" num="0" /> +<cdparam x="706" y="351" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="1" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="6" > +<cdparam x="365" y="401" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="386" y="398" id="105" /> +<P2 x="346" y="351" id="94" /> +<Point x="386" y="351" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="5" > +<father id="6" num="0" /> +<cdparam x="386" y="351" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="4" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="7" > +<cdparam x="603" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="568" y="429" id="115" /> +<P2 x="568" y="391" id="60" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="8" > +<cdparam x="1050" y="298" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="out" /> +<P1 x="933" y="306" id="37" /> +<P2 x="838" y="306" id="83" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="9" > +<cdparam x="1070" y="298" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="out" /> +<P1 x="953" y="306" id="38" /> +<P2 x="1018" y="306" id="17" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="10" > +<cdparam x="174" y="306" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="in" /> +<P1 x="174" y="306" id="48" /> +<P2 x="246" y="306" id="95" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="11" > +<cdparam x="100" y="307" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="in" /> +<P1 x="100" y="306" id="27" /> +<P2 x="154" y="306" id="49" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="12" > +<cdparam x="554" y="276" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n2" /> +<P1 x="568" y="291" id="59" /> +<P2 x="568" y="261" id="13" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="15" > +<cdparam x="828" y="260" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n2" /> +<P1 x="738" y="261" id="81" /> +<P2 x="496" y="261" id="71" /> +<Point x="568" y="261" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="14" > +<father id="15" num="0" /> +<cdparam x="568" y="261" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="13" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="16" > +<cdparam x="396" y="259" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="n1" /> +<P1 x="396" y="261" id="70" /> +<P2 x="346" y="261" id="93" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="1627" id="152" > +<cdparam x="90" y="72" /> +<sizeparam width="938" height="529" 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="TGComponent" value="cluster" /> +<TGConnectingPoint num="0" id="144" /> +<TGConnectingPoint num="1" id="145" /> +<TGConnectingPoint num="2" id="146" /> +<TGConnectingPoint num="3" id="147" /> +<TGConnectingPoint num="4" id="148" /> +<TGConnectingPoint num="5" id="149" /> +<TGConnectingPoint num="6" id="150" /> +<TGConnectingPoint num="7" id="151" /> +</COMPONENT> +<SUBCOMPONENT type="1632" id="26" > +<father id="152" num="0" /> +<cdparam x="1018" y="296" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="928" minY="-10" maxY="519" /> +<infoparam name="TGComponent" value="out" /> +<TGConnectingPoint num="0" id="17" /> +<TGConnectingPoint num="1" id="18" /> +<TGConnectingPoint num="2" id="19" /> +<TGConnectingPoint num="3" id="20" /> +<TGConnectingPoint num="4" id="21" /> +<TGConnectingPoint num="5" id="22" /> +<TGConnectingPoint num="6" id="23" /> +<TGConnectingPoint num="7" id="24" /> +<TGConnectingPoint num="8" id="25" /> +<extraparam> +<attributes name="out" type="double" origin="out"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1632" id="36" > +<father id="152" num="1" /> +<cdparam x="80" y="296" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="928" minY="-10" maxY="519" /> +<infoparam name="TGComponent" value="in" /> +<TGConnectingPoint num="0" id="27" /> +<TGConnectingPoint num="1" id="28" /> +<TGConnectingPoint num="2" id="29" /> +<TGConnectingPoint num="3" id="30" /> +<TGConnectingPoint num="4" id="31" /> +<TGConnectingPoint num="5" id="32" /> +<TGConnectingPoint num="6" id="33" /> +<TGConnectingPoint num="7" id="34" /> +<TGConnectingPoint num="8" id="35" /> +<extraparam> +<attributes name="in" type="double" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1623" id="143" > +<father id="152" num="2" /> +<cdparam x="164" y="136" /> +<sizeparam width="779" height="419" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="159" minY="0" maxY="110" /> +<infoparam name="TGComponent" value="eln_in_tdf" /> +<TGConnectingPoint num="0" id="135" /> +<TGConnectingPoint num="1" id="136" /> +<TGConnectingPoint num="2" id="137" /> +<TGConnectingPoint num="3" id="138" /> +<TGConnectingPoint num="4" id="139" /> +<TGConnectingPoint num="5" id="140" /> +<TGConnectingPoint num="6" id="141" /> +<TGConnectingPoint num="7" id="142" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1629" id="47" > +<father id="143" num="0" /> +<cdparam x="933" y="296" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="769" minY="-10" maxY="409" /> +<infoparam name="TGComponent" value="out" /> +<TGConnectingPoint num="0" id="37" /> +<TGConnectingPoint num="1" id="38" /> +<TGConnectingPoint num="2" id="39" /> +<TGConnectingPoint num="3" id="40" /> +<TGConnectingPoint num="4" id="41" /> +<TGConnectingPoint num="5" id="42" /> +<TGConnectingPoint num="6" id="43" /> +<TGConnectingPoint num="7" id="44" /> +<TGConnectingPoint num="8" id="45" /> +<TGConnectingPoint num="9" id="46" /> +<extraparam> +<attributes name="out" type="double" origin="out"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1629" id="58" > +<father id="143" num="1" /> +<cdparam x="154" y="296" /> +<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="769" minY="-10" maxY="409" /> +<infoparam name="TGComponent" value="in" /> +<TGConnectingPoint num="0" id="48" /> +<TGConnectingPoint num="1" id="49" /> +<TGConnectingPoint num="2" id="50" /> +<TGConnectingPoint num="3" id="51" /> +<TGConnectingPoint num="4" id="52" /> +<TGConnectingPoint num="5" id="53" /> +<TGConnectingPoint num="6" id="54" /> +<TGConnectingPoint num="7" id="55" /> +<TGConnectingPoint num="8" id="56" /> +<TGConnectingPoint num="9" id="57" /> +<extraparam> +<attributes name="in" type="double" origin="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="69" > +<father id="143" num="2" /> +<cdparam x="548" y="291" /> +<sizeparam width="40" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="739" minY="0" maxY="319" /> +<infoparam name="TGComponent" value="c" /> +<TGConnectingPoint num="0" id="59" /> +<TGConnectingPoint num="1" id="60" /> +<TGConnectingPoint num="2" id="61" /> +<TGConnectingPoint num="3" id="62" /> +<TGConnectingPoint num="4" id="63" /> +<TGConnectingPoint num="5" id="64" /> +<TGConnectingPoint num="6" id="65" /> +<TGConnectingPoint num="7" id="66" /> +<TGConnectingPoint num="8" id="67" /> +<TGConnectingPoint num="9" id="68" /> +<extraparam> +<attributes value="1.0" unit0="F" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="80" > +<father id="143" num="3" /> +<cdparam x="396" y="251" /> +<sizeparam width="100" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="679" minY="0" maxY="399" /> +<infoparam name="TGComponent" value="r" /> +<TGConnectingPoint num="0" id="70" /> +<TGConnectingPoint num="1" id="71" /> +<TGConnectingPoint num="2" id="72" /> +<TGConnectingPoint num="3" id="73" /> +<TGConnectingPoint num="4" id="74" /> +<TGConnectingPoint num="5" id="75" /> +<TGConnectingPoint num="6" id="76" /> +<TGConnectingPoint num="7" id="77" /> +<TGConnectingPoint num="8" id="78" /> +<TGConnectingPoint num="9" id="79" /> +<extraparam> +<attributes value="1.0" unit="Ω" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1621" id="92" > +<father id="143" num="4" /> +<cdparam x="738" y="256" /> +<sizeparam width="100" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="679" minY="0" maxY="319" /> +<infoparam name="TGComponent" value="vout" /> +<TGConnectingPoint num="0" id="81" /> +<TGConnectingPoint num="1" id="82" /> +<TGConnectingPoint num="2" id="83" /> +<TGConnectingPoint num="3" id="84" /> +<TGConnectingPoint num="4" id="85" /> +<TGConnectingPoint num="5" id="86" /> +<TGConnectingPoint num="6" id="87" /> +<TGConnectingPoint num="7" id="88" /> +<TGConnectingPoint num="8" id="89" /> +<TGConnectingPoint num="9" id="90" /> +<TGConnectingPoint num="10" id="91" /> +<extraparam> +<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1625" id="104" > +<father id="143" num="5" /> +<cdparam x="246" y="256" /> +<sizeparam width="100" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="679" minY="0" maxY="319" /> +<infoparam name="TGComponent" value="vin" /> +<TGConnectingPoint num="0" id="93" /> +<TGConnectingPoint num="1" id="94" /> +<TGConnectingPoint num="2" id="95" /> +<TGConnectingPoint num="3" id="96" /> +<TGConnectingPoint num="4" id="97" /> +<TGConnectingPoint num="5" id="98" /> +<TGConnectingPoint num="6" id="99" /> +<TGConnectingPoint num="7" id="100" /> +<TGConnectingPoint num="8" id="101" /> +<TGConnectingPoint num="9" id="102" /> +<TGConnectingPoint num="10" id="103" /> +<extraparam> +<attributes scale="1.0" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="114" > +<father id="143" num="6" /> +<cdparam x="366" y="398" /> +<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="739" minY="0" maxY="379" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="105" /> +<TGConnectingPoint num="1" id="106" /> +<TGConnectingPoint num="2" id="107" /> +<TGConnectingPoint num="3" id="108" /> +<TGConnectingPoint num="4" id="109" /> +<TGConnectingPoint num="5" id="110" /> +<TGConnectingPoint num="6" id="111" /> +<TGConnectingPoint num="7" id="112" /> +<TGConnectingPoint num="8" id="113" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="124" > +<father id="143" num="7" /> +<cdparam x="548" y="429" /> +<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="739" minY="0" maxY="379" /> +<infoparam name="TGComponent" value="gnd" /> +<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" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="134" > +<father id="143" num="8" /> +<cdparam x="686" y="416" /> +<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="739" minY="0" maxY="379" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="125" /> +<TGConnectingPoint num="1" id="126" /> +<TGConnectingPoint num="2" id="127" /> +<TGConnectingPoint num="3" id="128" /> +<TGConnectingPoint num="4" id="129" /> +<TGConnectingPoint num="5" id="130" /> +<TGConnectingPoint num="6" id="131" /> +<TGConnectingPoint num="7" id="132" /> +<TGConnectingPoint num="8" id="133" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> + + +</ELNDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/modelsForTestingTTool/testCP.xml b/modeling/modelsForTestingTTool/testCP.xml index 6708dbc59e11af7fc5362d1436b3a2838e676520..0a7b71ff2f5e7a746f91a01f7d3b457bfe55f60e 100644 --- a/modeling/modelsForTestingTTool/testCP.xml +++ b/modeling/modelsForTestingTTool/testCP.xml @@ -1955,7 +1955,7 @@ <TGConnectingPoint num="9" id="1158" /> </COMPONENT> -<COMPONENT type="1508" id="1164" > +<!-- COMPONENT type="1508" id="1164" > <cdparam x="304" y="202" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -1965,7 +1965,7 @@ <TGConnectingPoint num="1" id="1161" /> <TGConnectingPoint num="2" id="1162" /> <TGConnectingPoint num="3" id="1163" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1175" > <cdparam x="122" y="359" /> @@ -2092,7 +2092,7 @@ <TGConnectingPoint num="9" id="1225" /> </COMPONENT> -<CONNECTOR type="1501" id="1230" > +<!-- CONNECTOR type="1501" id="1230" > <cdparam x="466" y="506" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Zama to junction1" value="null" /> @@ -2125,7 +2125,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1231" > <cdparam x="178" y="475" /> @@ -2193,7 +2193,7 @@ <P2 x="319" y="91" id="1203" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1239" > +<!-- CONNECTOR type="1501" id="1239" > <cdparam x="319" y="136" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from lala to junction1" value="null" /> @@ -2208,7 +2208,7 @@ <P1 x="319" y="232" id="1163" /> <P2 x="319" y="288" id="1190" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1241" > <cdparam x="319" y="488" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -2290,7 +2290,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1266" > +<!-- COMPONENT type="1508" id="1266" > <cdparam x="755" y="345" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2300,7 +2300,7 @@ <TGConnectingPoint num="1" id="1263" /> <TGConnectingPoint num="2" id="1264" /> <TGConnectingPoint num="3" id="1265" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1277" > <cdparam x="884" y="503" /> @@ -2378,7 +2378,7 @@ <TGConnectingPoint num="13" id="1313" /> </COMPONENT> -<COMPONENT type="1508" id="1319" > +<!-- COMPONENT type="1508" id="1319" > <cdparam x="298" y="342" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2388,7 +2388,7 @@ <TGConnectingPoint num="1" id="1316" /> <TGConnectingPoint num="2" id="1317" /> <TGConnectingPoint num="3" id="1318" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1500" id="1335" > <cdparam x="298" y="429" /> @@ -2569,7 +2569,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1395" > +<!-- CONNECTOR type="1501" id="1395" > <cdparam x="946" y="543" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer2 to junction5" value="null" /> @@ -2602,7 +2602,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1397" > <cdparam x="810" y="452" /> @@ -2621,7 +2621,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1398" > +<!-- CONNECTOR type="1501" id="1398" > <cdparam x="770" y="375" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction5 to choice5" value="null" /> @@ -2670,7 +2670,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1405" > <cdparam x="273" y="444" /> @@ -2689,7 +2689,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1406" > +<!-- CONNECTOR type="1501" id="1406" > <cdparam x="313" y="372" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction2 to choice2" value="null" /> @@ -2704,7 +2704,7 @@ <P1 x="313" y="294" id="1376" /> <P2 x="313" y="342" id="1315" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1408" > <cdparam x="556" y="182" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -2830,7 +2830,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1456" > +<!-- COMPONENT type="1508" id="1456" > <cdparam x="797" y="201" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2840,7 +2840,7 @@ <TGConnectingPoint num="1" id="1453" /> <TGConnectingPoint num="2" id="1454" /> <TGConnectingPoint num="3" id="1455" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1467" > <cdparam x="756" y="89" /> @@ -2940,7 +2940,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1510" > +<!-- COMPONENT type="1508" id="1510" > <cdparam x="315" y="188" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2950,7 +2950,7 @@ <TGConnectingPoint num="1" id="1507" /> <TGConnectingPoint num="2" id="1508" /> <TGConnectingPoint num="3" id="1509" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1521" > <cdparam x="274" y="91" /> @@ -2979,7 +2979,7 @@ <TGConnectingPoint num="0" id="1522" /> </COMPONENT> -<CONNECTOR type="1501" id="1527" > +<!-- CONNECTOR type="1501" id="1527" > <cdparam x="205" y="382" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer3 to junction6" value="null" /> @@ -3012,7 +3012,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1529" > <cdparam x="290" y="291" /> @@ -3092,14 +3092,14 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1537" > +<!-- CONNECTOR type="1501" id="1537" > <cdparam x="330" y="131" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ProgramTransfer3 to junction6" value="null" /> <P1 x="330" y="131" id="1512" /> <P2 x="330" y="188" id="1506" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1538" > <cdparam x="330" y="45" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -3108,7 +3108,7 @@ <P2 x="330" y="86" id="1511" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1542" > +<!-- CONNECTOR type="1501" id="1542" > <cdparam x="979" y="404" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer4 to junction7" value="null" /> @@ -3141,7 +3141,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1544" > <cdparam x="852" y="300" /> @@ -3177,7 +3177,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1547" > +<!-- CONNECTOR type="1501" id="1547" > <cdparam x="812" y="231" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction7 to choice7" value="null" /> @@ -3192,7 +3192,7 @@ <P1 x="812" y="129" id="1458" /> <P2 x="812" y="201" id="1452" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1549" > <cdparam x="702" y="402" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -3201,14 +3201,14 @@ <P2 x="702" y="444" id="1412" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1550" > +<!-- CONNECTOR type="1501" id="1550" > <cdparam x="330" y="218" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction6 to choice6" value="null" /> <P1 x="330" y="218" id="1509" /> <P2 x="330" y="266" id="1493" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/modelsForTestingTTool/testCP2.xml b/modeling/modelsForTestingTTool/testCP2.xml index 6bda7a93bfdb78ed625cb2ee83577f6ce1bf2bd1..6dac72745dfdbfa089ef9cc0fa322b2f8ae843ed 100644 --- a/modeling/modelsForTestingTTool/testCP2.xml +++ b/modeling/modelsForTestingTTool/testCP2.xml @@ -1953,7 +1953,7 @@ <TGConnectingPoint num="9" id="1135" /> </COMPONENT> -<COMPONENT type="1508" id="1141" > +<!-- COMPONENT type="1508" id="1141" > <cdparam x="304" y="202" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -1963,7 +1963,7 @@ <TGConnectingPoint num="1" id="1138" /> <TGConnectingPoint num="2" id="1139" /> <TGConnectingPoint num="3" id="1140" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1152" > <cdparam x="122" y="359" /> @@ -2090,7 +2090,7 @@ <TGConnectingPoint num="9" id="1202" /> </COMPONENT> -<CONNECTOR type="1501" id="1207" > +<!-- CONNECTOR type="1501" id="1207" > <cdparam x="466" y="506" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Zama to junction1" value="null" /> @@ -2123,7 +2123,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1208" > <cdparam x="178" y="475" /> @@ -2191,7 +2191,7 @@ <P2 x="319" y="91" id="1180" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1216" > +<!-- CONNECTOR type="1501" id="1216" > <cdparam x="319" y="136" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from lala to junction1" value="null" /> @@ -2206,7 +2206,7 @@ <P1 x="319" y="232" id="1140" /> <P2 x="319" y="288" id="1167" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1218" > <cdparam x="319" y="488" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -2288,7 +2288,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1243" > +<!-- COMPONENT type="1508" id="1243" > <cdparam x="755" y="345" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2298,7 +2298,7 @@ <TGConnectingPoint num="1" id="1240" /> <TGConnectingPoint num="2" id="1241" /> <TGConnectingPoint num="3" id="1242" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1254" > <cdparam x="890" y="503" /> @@ -2376,7 +2376,7 @@ <TGConnectingPoint num="13" id="1290" /> </COMPONENT> -<COMPONENT type="1508" id="1296" > +<!-- COMPONENT type="1508" id="1296" > <cdparam x="298" y="342" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2386,7 +2386,7 @@ <TGConnectingPoint num="1" id="1293" /> <TGConnectingPoint num="2" id="1294" /> <TGConnectingPoint num="3" id="1295" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1500" id="1312" > <cdparam x="298" y="429" /> @@ -2567,7 +2567,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1372" > +<!-- CONNECTOR type="1501" id="1372" > <cdparam x="946" y="543" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer2 to junction5" value="null" /> @@ -2600,7 +2600,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1374" > <cdparam x="810" y="452" /> @@ -2619,7 +2619,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1375" > +<!-- CONNECTOR type="1501" id="1375" > <cdparam x="770" y="375" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction5 to choice5" value="null" /> @@ -2668,7 +2668,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1382" > <cdparam x="273" y="444" /> @@ -2687,7 +2687,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1383" > +<!-- CONNECTOR type="1501" id="1383" > <cdparam x="313" y="372" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction2 to choice2" value="null" /> @@ -2702,7 +2702,7 @@ <P1 x="313" y="294" id="1353" /> <P2 x="313" y="342" id="1292" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1385" > <cdparam x="556" y="182" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -2828,7 +2828,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1433" > +<!-- COMPONENT type="1508" id="1433" > <cdparam x="797" y="201" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2838,7 +2838,7 @@ <TGConnectingPoint num="1" id="1430" /> <TGConnectingPoint num="2" id="1431" /> <TGConnectingPoint num="3" id="1432" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1444" > <cdparam x="756" y="89" /> @@ -2938,7 +2938,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="1487" > +<!-- COMPONENT type="1508" id="1487" > <cdparam x="315" y="188" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -2948,7 +2948,7 @@ <TGConnectingPoint num="1" id="1484" /> <TGConnectingPoint num="2" id="1485" /> <TGConnectingPoint num="3" id="1486" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="1498" > <cdparam x="274" y="91" /> @@ -2977,7 +2977,7 @@ <TGConnectingPoint num="0" id="1499" /> </COMPONENT> -<CONNECTOR type="1501" id="1504" > +<!-- CONNECTOR type="1501" id="1504" > <cdparam x="205" y="382" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer3 to junction6" value="null" /> @@ -3010,7 +3010,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1506" > <cdparam x="290" y="291" /> @@ -3090,14 +3090,14 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1514" > +<!-- CONNECTOR type="1501" id="1514" > <cdparam x="330" y="131" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ProgramTransfer3 to junction6" value="null" /> <P1 x="330" y="131" id="1489" /> <P2 x="330" y="188" id="1483" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1515" > <cdparam x="330" y="45" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -3106,7 +3106,7 @@ <P2 x="330" y="86" id="1488" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1519" > +<!-- CONNECTOR type="1501" id="1519" > <cdparam x="979" y="404" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer4 to junction7" value="null" /> @@ -3139,7 +3139,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="1521" > <cdparam x="852" y="300" /> @@ -3175,7 +3175,7 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="1524" > +<!-- CONNECTOR type="1501" id="1524" > <cdparam x="812" y="231" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction7 to choice7" value="null" /> @@ -3190,7 +3190,7 @@ <P1 x="812" y="129" id="1435" /> <P2 x="812" y="201" id="1429" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="1526" > <cdparam x="702" y="402" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -3199,14 +3199,14 @@ <P2 x="702" y="444" id="1389" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="1527" > +<!-- CONNECTOR type="1501" id="1527" > <cdparam x="330" y="218" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction6 to choice6" value="null" /> <P1 x="330" y="218" id="1486" /> <P2 x="330" y="266" id="1470" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/modelsForTestingTTool/testCP3.xml b/modeling/modelsForTestingTTool/testCP3.xml index 457d7b6261bc484a5f5a86184074ce766e4351e6..d37993f618e37bf518de55a88b1f2535f6b1068c 100644 --- a/modeling/modelsForTestingTTool/testCP3.xml +++ b/modeling/modelsForTestingTTool/testCP3.xml @@ -928,7 +928,7 @@ <TGConnectingPoint num="9" id="386" /> </COMPONENT> -<COMPONENT type="1508" id="392" > +<!-- COMPONENT type="1508" id="392" > <cdparam x="302" y="198" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -938,7 +938,7 @@ <TGConnectingPoint num="1" id="389" /> <TGConnectingPoint num="2" id="390" /> <TGConnectingPoint num="3" id="391" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="403" > <cdparam x="114" y="497" /> @@ -1065,14 +1065,14 @@ <TGConnectingPoint num="9" id="453" /> </COMPONENT> -<CONNECTOR type="1501" id="455" > +<!-- CONNECTOR type="1501" id="455" > <cdparam x="319" y="232" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> <P1 x="317" y="228" id="391" /> <P2 x="317" y="252" id="340" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="456" > <cdparam x="160" y="280" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -1081,7 +1081,7 @@ <P2 x="317" y="426" id="418" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="460" > +<!-- CONNECTOR type="1501" id="460" > <cdparam x="466" y="506" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Zama to junction1" value="null" /> @@ -1114,7 +1114,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="461" > <cdparam x="176" y="613" /> @@ -1182,14 +1182,14 @@ <P2 x="317" y="87" id="431" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="469" > +<!-- CONNECTOR type="1501" id="469" > <cdparam x="317" y="132" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from lala to junction1" value="null" /> <P1 x="317" y="132" id="432" /> <P2 x="317" y="198" id="388" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="470" > <cdparam x="317" y="626" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -1323,7 +1323,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="518" > +<!-- COMPONENT type="1508" id="518" > <cdparam x="797" y="201" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -1333,7 +1333,7 @@ <TGConnectingPoint num="1" id="515" /> <TGConnectingPoint num="2" id="516" /> <TGConnectingPoint num="3" id="517" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="529" > <cdparam x="750" y="89" /> @@ -1433,7 +1433,7 @@ <infoparam name="guard 3" value="[ ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="572" > +<!-- COMPONENT type="1508" id="572" > <cdparam x="315" y="188" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -1443,7 +1443,7 @@ <TGConnectingPoint num="1" id="569" /> <TGConnectingPoint num="2" id="570" /> <TGConnectingPoint num="3" id="571" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="583" > <cdparam x="268" y="91" /> @@ -1472,7 +1472,7 @@ <TGConnectingPoint num="0" id="584" /> </COMPONENT> -<CONNECTOR type="1501" id="589" > +<!-- CONNECTOR type="1501" id="589" > <cdparam x="979" y="404" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="null" /> @@ -1505,9 +1505,9 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> -<CONNECTOR type="1501" id="593" > +<!-- CONNECTOR type="1501" id="593" > <cdparam x="205" y="382" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ExecuteTransfer3 to junction6" value="null" /> @@ -1540,7 +1540,7 @@ <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="point " value="null" /> -</SUBCOMPONENT> +</SUBCOMPONENT--> <CONNECTOR type="1501" id="595" > <cdparam x="290" y="291" /> @@ -1620,14 +1620,14 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="1501" id="603" > +<!-- CONNECTOR type="1501" id="603" > <cdparam x="330" y="131" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ProgramTransfer3 to junction6" value="null" /> <P1 x="330" y="131" id="574" /> <P2 x="330" y="188" id="568" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="604" > <cdparam x="330" y="45" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -1678,14 +1678,14 @@ <P2 x="812" y="275" id="501" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="610" > +<!-- CONNECTOR type="1501" id="610" > <cdparam x="812" y="129" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from ProgramTransfer4 to junction7" value="null" /> <P1 x="812" y="129" id="520" /> <P2 x="812" y="201" id="514" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> <CONNECTOR type="1501" id="611" > <cdparam x="702" y="402" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -1694,14 +1694,14 @@ <P2 x="702" y="444" id="474" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="1501" id="612" > +<!-- CONNECTOR type="1501" id="612" > <cdparam x="330" y="218" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from junction6 to choice6" value="null" /> <P1 x="330" y="218" id="571" /> <P2 x="330" y="266" id="555" /> <AutomaticDrawing data="true" /> -</CONNECTOR> +</CONNECTOR--> </CommunicationPatternDiagramPanel> diff --git a/modeling/monoprocessor.xml b/modeling/monoprocessor.xml deleted file mode 100644 index 47361466534e6031df4ea0b2ec9bf84a3e3ac13a..0000000000000000000000000000000000000000 --- a/modeling/monoprocessor.xml +++ /dev/null @@ -1,742 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<TURTLEGMODELING version="1.0beta"> - -<Modeling type="AVATAR Design" nameTab="AVATAR Design" > -<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" > -<MainCode value="void __user_init() {"/> -<MainCode value="}"/> -<Optimized value="true" /> -<Validated value="" /> -<Ignored value="" /> - -<COMPONENT type="5000" id="25" > -<cdparam x="117" y="236" /> -<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Block0" value="Block0" /> -<TGConnectingPoint num="0" id="1" /> -<TGConnectingPoint num="1" id="2" /> -<TGConnectingPoint num="2" id="3" /> -<TGConnectingPoint num="3" id="4" /> -<TGConnectingPoint num="4" id="5" /> -<TGConnectingPoint num="5" id="6" /> -<TGConnectingPoint num="6" id="7" /> -<TGConnectingPoint num="7" id="8" /> -<TGConnectingPoint num="8" id="9" /> -<TGConnectingPoint num="9" id="10" /> -<TGConnectingPoint num="10" id="11" /> -<TGConnectingPoint num="11" id="12" /> -<TGConnectingPoint num="12" id="13" /> -<TGConnectingPoint num="13" id="14" /> -<TGConnectingPoint num="14" id="15" /> -<TGConnectingPoint num="15" id="16" /> -<TGConnectingPoint num="16" id="17" /> -<TGConnectingPoint num="17" id="18" /> -<TGConnectingPoint num="18" id="19" /> -<TGConnectingPoint num="19" id="20" /> -<TGConnectingPoint num="20" id="21" /> -<TGConnectingPoint num="21" id="22" /> -<TGConnectingPoint num="22" id="23" /> -<TGConnectingPoint num="23" id="24" /> -<extraparam> -<blockType data="block" color="-4072719" /> -<CryptoBlock value="false" /> -</extraparam> -</COMPONENT> - - -</AVATARBlockDiagramPanel> - -<AVATARStateMachineDiagramPanel name="Block0" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="32" > -<cdparam x="460" y="115" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="null" /> -<TGConnectingPoint num="0" id="31" /> -<P1 x="460" y="115" id="48" /> -<P2 x="456" y="164" id="40" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="30" > -<father id="32" num="0" /> -<cdparam x="458" y="139" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="26" /> -<TGConnectingPoint num="1" id="27" /> -<TGConnectingPoint num="2" id="28" /> -<TGConnectingPoint num="3" id="29" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<probability value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="39" > -<cdparam x="407" y="70" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="null" /> -<TGConnectingPoint num="0" id="38" /> -<P1 x="407" y="70" id="83" /> -<P2 x="410" y="71" id="62" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="37" > -<father id="39" num="0" /> -<cdparam x="407" y="110" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="33" /> -<TGConnectingPoint num="1" id="34" /> -<TGConnectingPoint num="2" id="35" /> -<TGConnectingPoint num="3" id="36" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<probability value="" /> -</extraparam> -</SUBCOMPONENT> - -<COMPONENT type="5101" id="41" > -<cdparam x="446" y="169" /> -<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="stop state" value="null" /> -<TGConnectingPoint num="0" id="40" /> -</COMPONENT> - -<COMPONENT type="5106" id="82" > -<cdparam x="410" y="65" /> -<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="state0" /> -<TGConnectingPoint num="0" id="42" /> -<TGConnectingPoint num="1" id="43" /> -<TGConnectingPoint num="2" id="44" /> -<TGConnectingPoint num="3" id="45" /> -<TGConnectingPoint num="4" id="46" /> -<TGConnectingPoint num="5" id="47" /> -<TGConnectingPoint num="6" id="48" /> -<TGConnectingPoint num="7" id="49" /> -<TGConnectingPoint num="8" id="50" /> -<TGConnectingPoint num="9" id="51" /> -<TGConnectingPoint num="10" id="52" /> -<TGConnectingPoint num="11" id="53" /> -<TGConnectingPoint num="12" id="54" /> -<TGConnectingPoint num="13" id="55" /> -<TGConnectingPoint num="14" id="56" /> -<TGConnectingPoint num="15" id="57" /> -<TGConnectingPoint num="16" id="58" /> -<TGConnectingPoint num="17" id="59" /> -<TGConnectingPoint num="18" id="60" /> -<TGConnectingPoint num="19" id="61" /> -<TGConnectingPoint num="20" id="62" /> -<TGConnectingPoint num="21" id="63" /> -<TGConnectingPoint num="22" id="64" /> -<TGConnectingPoint num="23" id="65" /> -<TGConnectingPoint num="24" id="66" /> -<TGConnectingPoint num="25" id="67" /> -<TGConnectingPoint num="26" id="68" /> -<TGConnectingPoint num="27" id="69" /> -<TGConnectingPoint num="28" id="70" /> -<TGConnectingPoint num="29" id="71" /> -<TGConnectingPoint num="30" id="72" /> -<TGConnectingPoint num="31" id="73" /> -<TGConnectingPoint num="32" id="74" /> -<TGConnectingPoint num="33" id="75" /> -<TGConnectingPoint num="34" id="76" /> -<TGConnectingPoint num="35" id="77" /> -<TGConnectingPoint num="36" id="78" /> -<TGConnectingPoint num="37" id="79" /> -<TGConnectingPoint num="38" id="80" /> -<TGConnectingPoint num="39" id="81" /> -<extraparam> -<entryCode value="printf("Hello World! \n");" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="84" > -<cdparam x="400" y="50" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="83" /> -</COMPONENT> - - -</AVATARStateMachineDiagramPanel> - -</Modeling> - - - - -<Modeling type="ADD" nameTab="Avatar Deployment" > -<ADDDiagramPanel name="Deployment Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" > -<COMPONENT type="5365" id="109" > -<cdparam x="1177" y="513" /> -<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="cluster1" value="cluster1" /> -<TGConnectingPoint num="0" id="85" /> -<TGConnectingPoint num="1" id="86" /> -<TGConnectingPoint num="2" id="87" /> -<TGConnectingPoint num="3" id="88" /> -<TGConnectingPoint num="4" id="89" /> -<TGConnectingPoint num="5" id="90" /> -<TGConnectingPoint num="6" id="91" /> -<TGConnectingPoint num="7" id="92" /> -<TGConnectingPoint num="8" id="93" /> -<TGConnectingPoint num="9" id="94" /> -<TGConnectingPoint num="10" id="95" /> -<TGConnectingPoint num="11" id="96" /> -<TGConnectingPoint num="12" id="97" /> -<TGConnectingPoint num="13" id="98" /> -<TGConnectingPoint num="14" id="99" /> -<TGConnectingPoint num="15" id="100" /> -<TGConnectingPoint num="16" id="101" /> -<TGConnectingPoint num="17" id="102" /> -<TGConnectingPoint num="18" id="103" /> -<TGConnectingPoint num="19" id="104" /> -<TGConnectingPoint num="20" id="105" /> -<TGConnectingPoint num="21" id="106" /> -<TGConnectingPoint num="22" id="107" /> -<TGConnectingPoint num="23" id="108" /> -<extraparam> -<info stereotype="SystemC-AMS Cluster" nodeName="cluster1" /> -<attributes index="0" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5365" id="134" > -<cdparam x="995" y="128" /> -<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="cluster" value="cluster" /> -<TGConnectingPoint num="0" id="110" /> -<TGConnectingPoint num="1" id="111" /> -<TGConnectingPoint num="2" id="112" /> -<TGConnectingPoint num="3" id="113" /> -<TGConnectingPoint num="4" id="114" /> -<TGConnectingPoint num="5" id="115" /> -<TGConnectingPoint num="6" id="116" /> -<TGConnectingPoint num="7" id="117" /> -<TGConnectingPoint num="8" id="118" /> -<TGConnectingPoint num="9" id="119" /> -<TGConnectingPoint num="10" id="120" /> -<TGConnectingPoint num="11" id="121" /> -<TGConnectingPoint num="12" id="122" /> -<TGConnectingPoint num="13" id="123" /> -<TGConnectingPoint num="14" id="124" /> -<TGConnectingPoint num="15" id="125" /> -<TGConnectingPoint num="16" id="126" /> -<TGConnectingPoint num="17" id="127" /> -<TGConnectingPoint num="18" id="128" /> -<TGConnectingPoint num="19" id="129" /> -<TGConnectingPoint num="20" id="130" /> -<TGConnectingPoint num="21" id="131" /> -<TGConnectingPoint num="22" id="132" /> -<TGConnectingPoint num="23" id="133" /> -<extraparam> -<info stereotype="SystemC-AMS Cluster" nodeName="cluster" /> -<attributes index="0" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5363" id="159" > -<cdparam x="523" y="309" /> -<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Bus0" value="name" /> -<TGConnectingPoint num="0" id="135" /> -<TGConnectingPoint num="1" id="136" /> -<TGConnectingPoint num="2" id="137" /> -<TGConnectingPoint num="3" id="138" /> -<TGConnectingPoint num="4" id="139" /> -<TGConnectingPoint num="5" id="140" /> -<TGConnectingPoint num="6" id="141" /> -<TGConnectingPoint num="7" id="142" /> -<TGConnectingPoint num="8" id="143" /> -<TGConnectingPoint num="9" id="144" /> -<TGConnectingPoint num="10" id="145" /> -<TGConnectingPoint num="11" id="146" /> -<TGConnectingPoint num="12" id="147" /> -<TGConnectingPoint num="13" id="148" /> -<TGConnectingPoint num="14" id="149" /> -<TGConnectingPoint num="15" id="150" /> -<TGConnectingPoint num="16" id="151" /> -<TGConnectingPoint num="17" id="152" /> -<TGConnectingPoint num="18" id="153" /> -<TGConnectingPoint num="19" id="154" /> -<TGConnectingPoint num="20" id="155" /> -<TGConnectingPoint num="21" id="156" /> -<TGConnectingPoint num="22" id="157" /> -<TGConnectingPoint num="23" id="158" /> -<extraparam> -<info stereotype="VGSB" nodeName="Bus0" /> -<attributes index="0" nbOfAttachedInitiators="0" nbOfAttachedTargets="0" minLatency="10" fifoDepth="10" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5355" id="184" > -<cdparam x="218" y="386" /> -<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Memory0" value="name" /> -<TGConnectingPoint num="0" id="160" /> -<TGConnectingPoint num="1" id="161" /> -<TGConnectingPoint num="2" id="162" /> -<TGConnectingPoint num="3" id="163" /> -<TGConnectingPoint num="4" id="164" /> -<TGConnectingPoint num="5" id="165" /> -<TGConnectingPoint num="6" id="166" /> -<TGConnectingPoint num="7" id="167" /> -<TGConnectingPoint num="8" id="168" /> -<TGConnectingPoint num="9" id="169" /> -<TGConnectingPoint num="10" id="170" /> -<TGConnectingPoint num="11" id="171" /> -<TGConnectingPoint num="12" id="172" /> -<TGConnectingPoint num="13" id="173" /> -<TGConnectingPoint num="14" id="174" /> -<TGConnectingPoint num="15" id="175" /> -<TGConnectingPoint num="16" id="176" /> -<TGConnectingPoint num="17" id="177" /> -<TGConnectingPoint num="18" id="178" /> -<TGConnectingPoint num="19" id="179" /> -<TGConnectingPoint num="20" id="180" /> -<TGConnectingPoint num="21" id="181" /> -<TGConnectingPoint num="22" id="182" /> -<TGConnectingPoint num="23" id="183" /> -<extraparam> -<info stereotype="RAM" nodeName="Memory0" /> -<attributes byteDataSize="1048576" index="0" processCode="" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5354" id="209" > -<cdparam x="639" y="474" /> -<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="TTY0" value="name" /> -<TGConnectingPoint num="0" id="185" /> -<TGConnectingPoint num="1" id="186" /> -<TGConnectingPoint num="2" id="187" /> -<TGConnectingPoint num="3" id="188" /> -<TGConnectingPoint num="4" id="189" /> -<TGConnectingPoint num="5" id="190" /> -<TGConnectingPoint num="6" id="191" /> -<TGConnectingPoint num="7" id="192" /> -<TGConnectingPoint num="8" id="193" /> -<TGConnectingPoint num="9" id="194" /> -<TGConnectingPoint num="10" id="195" /> -<TGConnectingPoint num="11" id="196" /> -<TGConnectingPoint num="12" id="197" /> -<TGConnectingPoint num="13" id="198" /> -<TGConnectingPoint num="14" id="199" /> -<TGConnectingPoint num="15" id="200" /> -<TGConnectingPoint num="16" id="201" /> -<TGConnectingPoint num="17" id="202" /> -<TGConnectingPoint num="18" id="203" /> -<TGConnectingPoint num="19" id="204" /> -<TGConnectingPoint num="20" id="205" /> -<TGConnectingPoint num="21" id="206" /> -<TGConnectingPoint num="22" id="207" /> -<TGConnectingPoint num="23" id="208" /> -<extraparam> -<info stereotype="TTY" nodeName="TTY0" /> -<attributes index="0" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5351" id="243" > -<cdparam x="113" y="44" /> -<sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="CPU0" value="name" /> -<TGConnectingPoint num="0" id="219" /> -<TGConnectingPoint num="1" id="220" /> -<TGConnectingPoint num="2" id="221" /> -<TGConnectingPoint num="3" id="222" /> -<TGConnectingPoint num="4" id="223" /> -<TGConnectingPoint num="5" id="224" /> -<TGConnectingPoint num="6" id="225" /> -<TGConnectingPoint num="7" id="226" /> -<TGConnectingPoint num="8" id="227" /> -<TGConnectingPoint num="9" id="228" /> -<TGConnectingPoint num="10" id="229" /> -<TGConnectingPoint num="11" id="230" /> -<TGConnectingPoint num="12" id="231" /> -<TGConnectingPoint num="13" id="232" /> -<TGConnectingPoint num="14" id="233" /> -<TGConnectingPoint num="15" id="234" /> -<TGConnectingPoint num="16" id="235" /> -<TGConnectingPoint num="17" id="236" /> -<TGConnectingPoint num="18" id="237" /> -<TGConnectingPoint num="19" id="238" /> -<TGConnectingPoint num="20" id="239" /> -<TGConnectingPoint num="21" id="240" /> -<TGConnectingPoint num="22" id="241" /> -<TGConnectingPoint num="23" id="242" /> -<extraparam> -<info stereotype="CPU" nodeName="CPU0" /> -<attributes nbOfIrq="6" iCacheWays="1" iCacheSets="8" iCacheWords="4" dCacheWays="1" dCacheSets="8" dCacheWords="4" /> -</extraparam> -</COMPONENT> -<SUBCOMPONENT type="5352" id="218" > -<father id="243" num="0" /> -<cdparam x="172" y="134" /> -<sizeparam width="176" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="74" minY="0" maxY="160" /> -<infoparam name="TGComponent" value="AVATAR Design::Block0" /> -<TGConnectingPoint num="0" id="210" /> -<TGConnectingPoint num="1" id="211" /> -<TGConnectingPoint num="2" id="212" /> -<TGConnectingPoint num="3" id="213" /> -<TGConnectingPoint num="4" id="214" /> -<TGConnectingPoint num="5" id="215" /> -<TGConnectingPoint num="6" id="216" /> -<TGConnectingPoint num="7" id="217" /> -<extraparam> -<info value="AVATAR Design::Block0" taskName="Block0" referenceTaskName="AVATAR Design" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5350" id="244" > -<cdparam x="1177" y="563" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="{info}" /> -<P1 x="1177" y="563" id="95" /> -<P2 x="773" y="346" id="148" /> -<AutomaticDrawing data="true" /> -<extraparam> -<spy value="false" /> -</extraparam> -</CONNECTOR> -<CONNECTOR type="5350" id="245" > -<cdparam x="1006" y="263" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="{info}" /> -<P1 x="995" y="178" id="120" /> -<P2 x="773" y="309" id="137" /> -<AutomaticDrawing data="true" /> -<extraparam> -<spy value="false" /> -</extraparam> -</CONNECTOR> -<CONNECTOR type="5350" id="246" > -<cdparam x="701" y="474" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="{info}" /> -<P1 x="701" y="474" id="193" /> -<P2 x="648" y="359" id="141" /> -<AutomaticDrawing data="true" /> -<extraparam> -<spy value="false" /> -</extraparam> -</CONNECTOR> -<CONNECTOR type="5350" id="247" > -<cdparam x="418" y="436" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="{info}" /> -<P1 x="418" y="436" id="171" /> -<P2 x="523" y="359" id="140" /> -<AutomaticDrawing data="true" /> -<extraparam> -<spy value="false" /> -</extraparam> -</CONNECTOR> -<CONNECTOR type="5350" id="248" > -<cdparam x="300" y="244" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="{info}" /> -<P1 x="300" y="244" id="234" /> -<P2 x="523" y="309" id="135" /> -<AutomaticDrawing data="true" /> -<extraparam> -<spy value="false" /> -</extraparam> -</CONNECTOR> - -</ADDDiagramPanel> - -</Modeling> - - - - -<Modeling type="SystemC-AMS" nameTab="SystemC_AMS" > -<SysCAMSComponentTaskDiagramPanel name="SystemC-AMS Component Diagram" minX="10" maxX="2500" minY="10" maxY="1500" TDF="true" DE="true" zoom="1.0" > -<CONNECTOR type="1601" id="386" > -<cdparam x="681" y="329" /> -<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="681" y="329" id="291" /> -<P2 x="572" y="324" id="377" /> -<AutomaticDrawing data="true" /> -</CONNECTOR> -<CONNECTOR type="1601" id="250" > -<cdparam x="733" 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="811" y="410" id="281" /> -<P2 x="816" y="455" id="310" /> -<AutomaticDrawing data="true" /> -</CONNECTOR> -<CONNECTOR type="1601" id="251" > -<cdparam x="860" y="449" /> -<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="907" y="333" id="271" /> -<P2 x="1232" y="447" id="252" /> -<AutomaticDrawing data="true" /> -</CONNECTOR> -<COMPONENT type="1608" id="270" > -<cdparam x="1245" y="364" /> -<sizeparam width="200" height="150" 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="Primitive component - Block GPIO2VCI" value="Block_GPIO2VCI" /> -<TGConnectingPoint num="0" id="262" /> -<TGConnectingPoint num="1" id="263" /> -<TGConnectingPoint num="2" id="264" /> -<TGConnectingPoint num="3" id="265" /> -<TGConnectingPoint num="4" id="266" /> -<TGConnectingPoint num="5" id="267" /> -<TGConnectingPoint num="6" id="268" /> -<TGConnectingPoint num="7" id="269" /> -</COMPONENT> -<SUBCOMPONENT type="1605" id="261" > -<father id="270" num="0" /> -<cdparam x="1232" y="434" /> -<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 - Port DE" value="in" /> -<TGConnectingPoint num="0" id="252" /> -<TGConnectingPoint num="1" id="253" /> -<TGConnectingPoint num="2" id="254" /> -<TGConnectingPoint num="3" id="255" /> -<TGConnectingPoint num="4" id="256" /> -<TGConnectingPoint num="5" id="257" /> -<TGConnectingPoint num="6" id="258" /> -<TGConnectingPoint num="7" id="259" /> -<TGConnectingPoint num="8" id="260" /> -<extraparam> -<Prop commName="in" commType="0" origin="0" type="int" sensitive="false" sensitive_method="positive" /> -</extraparam> -</SUBCOMPONENT> - -<COMPONENT type="1607" id="356" > -<cdparam x="303" y="181" /> -<sizeparam width="808" height="458" 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="Composite component - Cluster" value="cluster" /> -<TGConnectingPoint num="0" id="348" /> -<TGConnectingPoint num="1" id="349" /> -<TGConnectingPoint num="2" id="350" /> -<TGConnectingPoint num="3" id="351" /> -<TGConnectingPoint num="4" id="352" /> -<TGConnectingPoint num="5" id="353" /> -<TGConnectingPoint num="6" id="354" /> -<TGConnectingPoint num="7" id="355" /> -</COMPONENT> -<SUBCOMPONENT type="1603" id="358" > -<father id="356" num="0" /> -<cdparam x="359" y="277" /> -<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="608" minY="0" maxY="308" /> -<infoparam name="Primitive component - Block DE" value="Block_DE_0" /> -<TGConnectingPoint num="0" id="359" /> -<TGConnectingPoint num="1" id="360" /> -<TGConnectingPoint num="2" id="361" /> -<TGConnectingPoint num="3" id="362" /> -<TGConnectingPoint num="4" id="363" /> -<TGConnectingPoint num="5" id="364" /> -<TGConnectingPoint num="6" id="365" /> -<TGConnectingPoint num="7" id="366" /> -<extraparam> -<Attribute name_function="test" code="void test() { - test_code; -}" listStruct="" nameTemplate="" typeTemplate="int" listTypedef="" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1605" id="376" > -<father id="358" num="0" /> -<cdparam x="546" y="311" /> -<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 - Port DE" value="port" /> -<TGConnectingPoint num="0" id="377" /> -<TGConnectingPoint num="1" id="378" /> -<TGConnectingPoint num="2" id="379" /> -<TGConnectingPoint num="3" id="380" /> -<TGConnectingPoint num="4" id="381" /> -<TGConnectingPoint num="5" id="382" /> -<TGConnectingPoint num="6" id="383" /> -<TGConnectingPoint num="7" id="384" /> -<TGConnectingPoint num="8" id="385" /> -<extraparam> -<Prop commName="in_de" commType="0" origin="0" type="int" sensitive="false" sensitive_method="positive" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1602" id="309" > -<father id="356" num="1" /> -<cdparam x="694" y="247" /> -<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="608" minY="0" maxY="308" /> -<infoparam name="Primitive component - Block TDF" value="Sine" /> -<TGConnectingPoint num="0" id="301" /> -<TGConnectingPoint num="1" id="302" /> -<TGConnectingPoint num="2" id="303" /> -<TGConnectingPoint num="3" id="304" /> -<TGConnectingPoint num="4" id="305" /> -<TGConnectingPoint num="5" id="306" /> -<TGConnectingPoint num="6" id="307" /> -<TGConnectingPoint num="7" id="308" /> -<extraparam> -<Attribute period="6" time="us" processCode="void processing() { - double t = out_de.get_time().to_seconds(); - double x = sin(2.0 * M_PI * 5000000.0 * t); - out_de.write( (int) x); - tdf_out.write(x); -} - " listStruct="" nameTemplate="" typeTemplate="int" listTypedef="" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1606" id="280" > -<father id="309" num="0" /> -<cdparam x="881" y="320" /> -<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 - Port Converter" value="out_de" /> -<TGConnectingPoint num="0" id="271" /> -<TGConnectingPoint num="1" id="272" /> -<TGConnectingPoint num="2" id="273" /> -<TGConnectingPoint num="3" id="274" /> -<TGConnectingPoint num="4" id="275" /> -<TGConnectingPoint num="5" id="276" /> -<TGConnectingPoint num="6" id="277" /> -<TGConnectingPoint num="7" id="278" /> -<TGConnectingPoint num="8" id="279" /> -<extraparam> -<Prop commName="out_de" commType="0" origin="1" period="6" time="us" rate="1" delay="0" type="int" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1604" id="290" > -<father id="309" num="1" /> -<cdparam x="798" y="384" /> -<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 - Port TDF" value="tdf_out" /> -<TGConnectingPoint num="0" id="281" /> -<TGConnectingPoint num="1" id="282" /> -<TGConnectingPoint num="2" id="283" /> -<TGConnectingPoint num="3" id="284" /> -<TGConnectingPoint num="4" id="285" /> -<TGConnectingPoint num="5" id="286" /> -<TGConnectingPoint num="6" id="287" /> -<TGConnectingPoint num="7" id="288" /> -<TGConnectingPoint num="8" id="289" /> -<extraparam> -<Prop commName="tdf_out" commType="0" origin="1" period="6" time="us" rate="1" delay="-1" type="double" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1606" id="300" > -<father id="309" num="2" /> -<cdparam x="681" y="316" /> -<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 - Port Converter" value="out2_de" /> -<TGConnectingPoint num="0" id="291" /> -<TGConnectingPoint num="1" id="292" /> -<TGConnectingPoint num="2" id="293" /> -<TGConnectingPoint num="3" id="294" /> -<TGConnectingPoint num="4" id="295" /> -<TGConnectingPoint num="5" id="296" /> -<TGConnectingPoint num="6" id="297" /> -<TGConnectingPoint num="7" id="298" /> -<TGConnectingPoint num="8" id="299" /> -<extraparam> -<Prop commName="out2_de" commType="0" origin="1" period="-1" time="us" rate="-1" delay="-1" type="int" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1602" id="328" > -<father id="356" num="2" /> -<cdparam x="705" y="468" /> -<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="608" minY="0" maxY="308" /> -<infoparam name="Primitive component - Block TDF" value="Sink" /> -<TGConnectingPoint num="0" id="320" /> -<TGConnectingPoint num="1" id="321" /> -<TGConnectingPoint num="2" id="322" /> -<TGConnectingPoint num="3" id="323" /> -<TGConnectingPoint num="4" id="324" /> -<TGConnectingPoint num="5" id="325" /> -<TGConnectingPoint num="6" id="326" /> -<TGConnectingPoint num="7" id="327" /> -<extraparam> -<Attribute period="-1" time="" processCode="void processing() { - in.read(); -} - " listStruct="" nameTemplate="" typeTemplate="int" listTypedef="" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="1604" id="319" > -<father id="328" num="0" /> -<cdparam x="803" y="455" /> -<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 - Port TDF" value="in" /> -<TGConnectingPoint num="0" id="310" /> -<TGConnectingPoint num="1" id="311" /> -<TGConnectingPoint num="2" id="312" /> -<TGConnectingPoint num="3" id="313" /> -<TGConnectingPoint num="4" id="314" /> -<TGConnectingPoint num="5" id="315" /> -<TGConnectingPoint num="6" id="316" /> -<TGConnectingPoint num="7" id="317" /> -<TGConnectingPoint num="8" id="318" /> -<extraparam> -<Prop commName="in" commType="0" origin="0" period="-1" time="us" rate="1" delay="-1" type="double" /> -</extraparam> -</SUBCOMPONENT> - - -</SysCAMSComponentTaskDiagramPanel> - -</Modeling> - - - - -</TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/my_eln_filter.xml b/modeling/my_eln_filter.xml new file mode 100644 index 0000000000000000000000000000000000000000..8ada6fa11bb1ecb8444e0a34153ebe5da5c18b8b --- /dev/null +++ b/modeling/my_eln_filter.xml @@ -0,0 +1,249 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="ELN" nameTab="ELN" > +<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" zoom="1.0" > +<CONNECTOR type="1610" id="1" > +<cdparam x="388" y="231" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="388" y="231" id="62" /> +<P2 x="388" y="209" id="3" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="2" > +<cdparam x="176" y="206" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="174" y="209" id="39" /> +<P2 x="234" y="209" id="73" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="5" > +<cdparam x="336" y="206" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="334" y="209" id="72" /> +<P2 x="464" y="209" id="50" /> +<Point x="388" y="209" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4" > +<father id="5" num="0" /> +<cdparam x="388" y="209" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="3" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="6" > +<cdparam x="390" y="328" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="388" y="331" id="61" /> +<P2 x="388" y="358" id="29" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="7" > +<cdparam x="476" y="206" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="474" y="209" id="51" /> +<P2 x="514" y="209" id="9" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="8" > +<cdparam x="124" y="203" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="124" y="209" id="19" /> +<P2 x="164" y="209" id="40" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="1627" id="100" > +<cdparam x="119" y="79" /> +<sizeparam width="400" height="400" 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="TGComponent" value="cluster" /> +<TGConnectingPoint num="0" id="92" /> +<TGConnectingPoint num="1" id="93" /> +<TGConnectingPoint num="2" id="94" /> +<TGConnectingPoint num="3" id="95" /> +<TGConnectingPoint num="4" id="96" /> +<TGConnectingPoint num="5" id="97" /> +<TGConnectingPoint num="6" id="98" /> +<TGConnectingPoint num="7" id="99" /> +</COMPONENT> +<SUBCOMPONENT type="1630" id="18" > +<father id="100" num="0" /> +<cdparam x="514" y="204" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="395" minY="-5" maxY="395" /> +<infoparam name="TGComponent" value="out" /> +<TGConnectingPoint num="0" id="9" /> +<TGConnectingPoint num="1" id="10" /> +<TGConnectingPoint num="2" id="11" /> +<TGConnectingPoint num="3" id="12" /> +<TGConnectingPoint num="4" id="13" /> +<TGConnectingPoint num="5" id="14" /> +<TGConnectingPoint num="6" id="15" /> +<TGConnectingPoint num="7" id="16" /> +<TGConnectingPoint num="8" id="17" /> +<extraparam> +<attributes name="out"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1630" id="28" > +<father id="100" num="1" /> +<cdparam x="114" y="204" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="395" minY="-5" maxY="395" /> +<infoparam name="TGComponent" value="in" /> +<TGConnectingPoint num="0" id="19" /> +<TGConnectingPoint num="1" id="20" /> +<TGConnectingPoint num="2" id="21" /> +<TGConnectingPoint num="3" id="22" /> +<TGConnectingPoint num="4" id="23" /> +<TGConnectingPoint num="5" id="24" /> +<TGConnectingPoint num="6" id="25" /> +<TGConnectingPoint num="7" id="26" /> +<TGConnectingPoint num="8" id="27" /> +<extraparam> +<attributes name="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1623" id="91" > +<father id="100" num="2" /> +<cdparam x="169" y="126" /> +<sizeparam width="300" height="300" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="100" minY="0" maxY="100" /> +<infoparam name="TGComponent" value="my_eln_filter" /> +<TGConnectingPoint num="0" id="83" /> +<TGConnectingPoint num="1" id="84" /> +<TGConnectingPoint num="2" id="85" /> +<TGConnectingPoint num="3" id="86" /> +<TGConnectingPoint num="4" id="87" /> +<TGConnectingPoint num="5" id="88" /> +<TGConnectingPoint num="6" id="89" /> +<TGConnectingPoint num="7" id="90" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="38" > +<father id="91" num="0" /> +<cdparam x="368" y="358" /> +<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="260" minY="0" maxY="260" /> +<infoparam name="TGComponent" value="gnd" /> +<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" /> +<TGConnectingPoint num="8" id="37" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="49" > +<father id="91" num="1" /> +<cdparam x="164" y="204" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="295" /> +<infoparam name="TGComponent" value="a" /> +<TGConnectingPoint num="0" id="39" /> +<TGConnectingPoint num="1" id="40" /> +<TGConnectingPoint num="2" id="41" /> +<TGConnectingPoint num="3" id="42" /> +<TGConnectingPoint num="4" id="43" /> +<TGConnectingPoint num="5" id="44" /> +<TGConnectingPoint num="6" id="45" /> +<TGConnectingPoint num="7" id="46" /> +<TGConnectingPoint num="8" id="47" /> +<TGConnectingPoint num="9" id="48" /> +<extraparam> +<attributes name="a"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="60" > +<father id="91" num="2" /> +<cdparam x="464" y="204" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="295" /> +<infoparam name="TGComponent" value="b" /> +<TGConnectingPoint num="0" id="50" /> +<TGConnectingPoint num="1" id="51" /> +<TGConnectingPoint num="2" id="52" /> +<TGConnectingPoint num="3" id="53" /> +<TGConnectingPoint num="4" id="54" /> +<TGConnectingPoint num="5" id="55" /> +<TGConnectingPoint num="6" id="56" /> +<TGConnectingPoint num="7" id="57" /> +<TGConnectingPoint num="8" id="58" /> +<TGConnectingPoint num="9" id="59" /> +<extraparam> +<attributes name="b"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="71" > +<father id="91" num="3" /> +<cdparam x="368" y="231" /> +<sizeparam width="40" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="260" minY="0" maxY="200" /> +<infoparam name="TGComponent" value="c1" /> +<TGConnectingPoint num="0" id="61" /> +<TGConnectingPoint num="1" id="62" /> +<TGConnectingPoint num="2" id="63" /> +<TGConnectingPoint num="3" id="64" /> +<TGConnectingPoint num="4" id="65" /> +<TGConnectingPoint num="5" id="66" /> +<TGConnectingPoint num="6" id="67" /> +<TGConnectingPoint num="7" id="68" /> +<TGConnectingPoint num="8" id="69" /> +<TGConnectingPoint num="9" id="70" /> +<extraparam> +<attributes value="1.0" unit0="F" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="true" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="82" > +<father id="91" num="4" /> +<cdparam x="234" y="199" /> +<sizeparam width="100" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="200" minY="0" maxY="280" /> +<infoparam name="TGComponent" value="r1" /> +<TGConnectingPoint num="0" id="72" /> +<TGConnectingPoint num="1" id="73" /> +<TGConnectingPoint num="2" id="74" /> +<TGConnectingPoint num="3" id="75" /> +<TGConnectingPoint num="4" id="76" /> +<TGConnectingPoint num="5" id="77" /> +<TGConnectingPoint num="6" id="78" /> +<TGConnectingPoint num="7" id="79" /> +<TGConnectingPoint num="8" id="80" /> +<TGConnectingPoint num="9" id="81" /> +<extraparam> +<attributes value="1.0" unit="Ω" position="2" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> + + +</ELNDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/my_structural_eln_model.xml b/modeling/my_structural_eln_model.xml new file mode 100644 index 0000000000000000000000000000000000000000..530305308f98565b584c8dd827a1e5376babbf26 --- /dev/null +++ b/modeling/my_structural_eln_model.xml @@ -0,0 +1,278 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="ELN" nameTab="ELN" > +<ELNDiagramPanel name="ELN Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" zoom="1.0" > +<CONNECTOR type="1610" id="1" > +<cdparam x="538" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="538" y="198" id="94" /> +<P2 x="501" y="198" id="11" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="2" > +<cdparam x="143" y="205" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="143" y="198" id="84" /> +<P2 x="191" y="198" id="22" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="3" > +<cdparam x="267" y="194" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="280" y="222" id="43" /> +<P2 x="280" y="198" id="4" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="6" > +<cdparam x="328" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="340" y="198" id="32" /> +<P2 x="201" y="198" id="21" /> +<Point x="280" y="198" type="-1" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="5" > +<father id="6" num="0" /> +<cdparam x="280" y="198" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +<TGConnectingPoint num="0" id="4" /> +</SUBCOMPONENT> + +<CONNECTOR type="1610" id="7" > +<cdparam x="479" y="169" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="491" y="198" id="10" /> +<P2 x="440" y="198" id="33" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="8" > +<cdparam x="274" y="491" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<P1 x="280" y="492" id="65" /> +<P2 x="280" y="454" id="55" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1610" id="9" > +<cdparam x="268" y="340" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="net1" /> +<P1 x="280" y="354" id="54" /> +<P2 x="280" y="322" id="44" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="1627" id="112" > +<cdparam x="138" y="70" /> +<sizeparam width="405" height="528" 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="TGComponent" value="Cluster0" /> +<TGConnectingPoint num="0" id="104" /> +<TGConnectingPoint num="1" id="105" /> +<TGConnectingPoint num="2" id="106" /> +<TGConnectingPoint num="3" id="107" /> +<TGConnectingPoint num="4" id="108" /> +<TGConnectingPoint num="5" id="109" /> +<TGConnectingPoint num="6" id="110" /> +<TGConnectingPoint num="7" id="111" /> +</COMPONENT> +<SUBCOMPONENT type="1623" id="83" > +<father id="112" num="0" /> +<cdparam x="196" y="117" /> +<sizeparam width="300" height="440" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="105" minY="0" maxY="88" /> +<infoparam name="TGComponent" value="my_structural_eln_model" /> +<TGConnectingPoint num="0" id="75" /> +<TGConnectingPoint num="1" id="76" /> +<TGConnectingPoint num="2" id="77" /> +<TGConnectingPoint num="3" id="78" /> +<TGConnectingPoint num="4" id="79" /> +<TGConnectingPoint num="5" id="80" /> +<TGConnectingPoint num="6" id="81" /> +<TGConnectingPoint num="7" id="82" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="20" > +<father id="83" num="0" /> +<cdparam x="491" y="193" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="435" /> +<infoparam name="TGComponent" value="b" /> +<TGConnectingPoint num="0" id="10" /> +<TGConnectingPoint num="1" id="11" /> +<TGConnectingPoint num="2" id="12" /> +<TGConnectingPoint num="3" id="13" /> +<TGConnectingPoint num="4" id="14" /> +<TGConnectingPoint num="5" id="15" /> +<TGConnectingPoint num="6" id="16" /> +<TGConnectingPoint num="7" id="17" /> +<TGConnectingPoint num="8" id="18" /> +<TGConnectingPoint num="9" id="19" /> +<extraparam> +<attributes name="b"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1624" id="31" > +<father id="83" num="1" /> +<cdparam x="191" y="193" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="295" minY="-5" maxY="435" /> +<infoparam name="TGComponent" value="a" /> +<TGConnectingPoint num="0" id="21" /> +<TGConnectingPoint num="1" id="22" /> +<TGConnectingPoint num="2" id="23" /> +<TGConnectingPoint num="3" id="24" /> +<TGConnectingPoint num="4" id="25" /> +<TGConnectingPoint num="5" id="26" /> +<TGConnectingPoint num="6" id="27" /> +<TGConnectingPoint num="7" id="28" /> +<TGConnectingPoint num="8" id="29" /> +<TGConnectingPoint num="9" id="30" /> +<extraparam> +<attributes name="a"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="42" > +<father id="83" num="2" /> +<cdparam x="340" y="188" /> +<sizeparam width="100" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="200" minY="0" maxY="420" /> +<infoparam name="TGComponent" value="r1" /> +<TGConnectingPoint num="0" id="32" /> +<TGConnectingPoint num="1" id="33" /> +<TGConnectingPoint num="2" id="34" /> +<TGConnectingPoint num="3" id="35" /> +<TGConnectingPoint num="4" id="36" /> +<TGConnectingPoint num="5" id="37" /> +<TGConnectingPoint num="6" id="38" /> +<TGConnectingPoint num="7" id="39" /> +<TGConnectingPoint num="8" id="40" /> +<TGConnectingPoint num="9" id="41" /> +<extraparam> +<attributes value="10.0" unit="kΩ" position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1611" id="53" > +<father id="83" num="3" /> +<cdparam x="270" y="222" /> +<sizeparam width="20" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="280" minY="0" maxY="340" /> +<infoparam name="TGComponent" value="r2" /> +<TGConnectingPoint num="0" id="43" /> +<TGConnectingPoint num="1" id="44" /> +<TGConnectingPoint num="2" id="45" /> +<TGConnectingPoint num="3" id="46" /> +<TGConnectingPoint num="4" id="47" /> +<TGConnectingPoint num="5" id="48" /> +<TGConnectingPoint num="6" id="49" /> +<TGConnectingPoint num="7" id="50" /> +<TGConnectingPoint num="8" id="51" /> +<TGConnectingPoint num="9" id="52" /> +<extraparam> +<attributes value="100.0" unit="Ω" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1612" id="64" > +<father id="83" num="4" /> +<cdparam x="260" y="354" /> +<sizeparam width="40" height="100" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="260" minY="0" maxY="340" /> +<infoparam name="TGComponent" value="c1" /> +<TGConnectingPoint num="0" id="54" /> +<TGConnectingPoint num="1" id="55" /> +<TGConnectingPoint num="2" id="56" /> +<TGConnectingPoint num="3" id="57" /> +<TGConnectingPoint num="4" id="58" /> +<TGConnectingPoint num="5" id="59" /> +<TGConnectingPoint num="6" id="60" /> +<TGConnectingPoint num="7" id="61" /> +<TGConnectingPoint num="8" id="62" /> +<TGConnectingPoint num="9" id="63" /> +<extraparam> +<attributes value="100.0" unit0="μF" q0="0.0" unit1="C" position="1" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1620" id="74" > +<father id="83" num="5" /> +<cdparam x="260" y="492" /> +<sizeparam width="40" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="260" minY="0" maxY="400" /> +<infoparam name="TGComponent" value="gnd" /> +<TGConnectingPoint num="0" id="65" /> +<TGConnectingPoint num="1" id="66" /> +<TGConnectingPoint num="2" id="67" /> +<TGConnectingPoint num="3" id="68" /> +<TGConnectingPoint num="4" id="69" /> +<TGConnectingPoint num="5" id="70" /> +<TGConnectingPoint num="6" id="71" /> +<TGConnectingPoint num="7" id="72" /> +<TGConnectingPoint num="8" id="73" /> +<extraparam> +<attributes position="0" fv_0_2="false" fv_1_3="false" fh_0_2="false" fh_1_3="false" first="true"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1630" id="93" > +<father id="112" num="1" /> +<cdparam x="133" y="193" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="400" minY="-5" maxY="523" /> +<infoparam name="TGComponent" value="in" /> +<TGConnectingPoint num="0" id="84" /> +<TGConnectingPoint num="1" id="85" /> +<TGConnectingPoint num="2" id="86" /> +<TGConnectingPoint num="3" id="87" /> +<TGConnectingPoint num="4" id="88" /> +<TGConnectingPoint num="5" id="89" /> +<TGConnectingPoint num="6" id="90" /> +<TGConnectingPoint num="7" id="91" /> +<TGConnectingPoint num="8" id="92" /> +<extraparam> +<attributes name="in"/> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1630" id="103" > +<father id="112" num="2" /> +<cdparam x="538" y="193" /> +<sizeparam width="10" height="10" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-5" maxX="400" minY="-5" maxY="523" /> +<infoparam name="TGComponent" value="out" /> +<TGConnectingPoint num="0" id="94" /> +<TGConnectingPoint num="1" id="95" /> +<TGConnectingPoint num="2" id="96" /> +<TGConnectingPoint num="3" id="97" /> +<TGConnectingPoint num="4" id="98" /> +<TGConnectingPoint num="5" id="99" /> +<TGConnectingPoint num="6" id="100" /> +<TGConnectingPoint num="7" id="101" /> +<TGConnectingPoint num="8" id="102" /> +<extraparam> +<attributes name="out"/> +</extraparam> +</SUBCOMPONENT> + + +</ELNDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/src/.classpath b/src/.classpath index 42454fe50719774f5a6a8794720018e4cf0640eb..5f8345db70e5eabf790de1dcd959855873e4f1fc 100644 --- a/src/.classpath +++ b/src/.classpath @@ -14,5 +14,8 @@ <classpathentry kind="lib" path="/libs/commons-math3-3.6.1.jar"/> <classpathentry kind="lib" path="/libs/batik-dom.jar"/> <classpathentry kind="lib" path="/libs/batik-svggen.jar"/> + <classpathentry kind="lib" path="/libs/batik-awt-util.jar"/> + <classpathentry kind="lib" path="/libs/batik-xml.jar"/> + <classpathentry kind="lib" path="/libs/batik-util.jar"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/src/main/java/avatartranslator/AvatarAction.java b/src/main/java/avatartranslator/AvatarAction.java index 1ecfd5e3b42f7a99db2f9262661260eed95d4aa2..b0c957a25fd134201ce4ef2d4fe9314af0e92575 100644 --- a/src/main/java/avatartranslator/AvatarAction.java +++ b/src/main/java/avatartranslator/AvatarAction.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarAction @@ -75,5 +72,5 @@ public interface AvatarAction { * @param attributesMapping * The mapping used to replace the attributes of the action. All the attributes of the block should be present as keys. */ - void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping); + void replaceAttributes(Map<AvatarAttribute, AvatarAttribute> attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarActionAssignment.java b/src/main/java/avatartranslator/AvatarActionAssignment.java index 0fb0455ef78bb0edec33fe2695947b3cb5c85652..d758d35991a90fe54ccc55e8e696edddc7254921 100644 --- a/src/main/java/avatartranslator/AvatarActionAssignment.java +++ b/src/main/java/avatartranslator/AvatarActionAssignment.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarActionAssignment @@ -99,7 +95,7 @@ public class AvatarActionAssignment implements AvatarAction { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { if (this.leftHand instanceof AvatarAttribute) this.leftHand = attributesMapping.get (this.leftHand); else diff --git a/src/main/java/avatartranslator/AvatarActionOnSignal.java b/src/main/java/avatartranslator/AvatarActionOnSignal.java index 0f4ccc50002cb4aba158e683ff82e28351fdf86f..431bbff681a7eda8963d4157ebeff2fbceaca5f2 100644 --- a/src/main/java/avatartranslator/AvatarActionOnSignal.java +++ b/src/main/java/avatartranslator/AvatarActionOnSignal.java @@ -42,6 +42,7 @@ package avatartranslator; import myutil.TraceManager; import java.util.LinkedList; +import java.util.List; /** @@ -52,20 +53,23 @@ import java.util.LinkedList; */ public class AvatarActionOnSignal extends AvatarStateMachineElement { private AvatarSignal signal; - private LinkedList<String> values; + private List<String> values; private boolean checkLatency; - public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject) { - super(_name, _referenceObject); - signal = _signal; - values = new LinkedList<String>(); - } - public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject, boolean _isCheckable, boolean _isChecked) { - super(_name, _referenceObject, _isCheckable, _isChecked); - signal = _signal; - values = new LinkedList<String>(); - } + public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject ) { + this( _name, _signal, _referenceObject, false ); + } + + public AvatarActionOnSignal( String _name, + AvatarSignal _signal, + Object _referenceObject, + boolean _isCheckable ) { + super( _name, _referenceObject, _isCheckable, false ); + + signal = _signal; + values = new LinkedList<String>(); + } public AvatarSignal getSignal() { return signal; @@ -75,7 +79,7 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement { values.add(_val); } - public LinkedList<String> getValues() { + public List<String> getValues() { return values; } @@ -104,32 +108,32 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement { } public AvatarActionOnSignal basicCloneMe(AvatarStateMachineOwner _block) { - //TraceManager.addDev("I HAVE BEEN CLONED: " + this); - AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName()); - if (sig != null) { - AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable(), isChecked()); - for(int i=0; i<getNbOfValues(); i++) { - aaos.addValue(getValue(i)); - } - return aaos; - } else { - TraceManager.addDev("NULL signal in new spec: " + getSignal().getName()); - } - - return null; + //TraceManager.addDev("I HAVE BEEN CLONED: " + this); + AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName()); + if (sig != null) { + AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable()/*, isChecked()*/); + for(int i=0; i<getNbOfValues(); i++) { + aaos.addValue(getValue(i)); + } + return aaos; + } else { + TraceManager.addDev("NULL signal in new spec: " + getSignal().getName()); + } + + return null; } public String getExtendedName() { - if (getSignal() == null) { - String s = getName() + " refobjt=" + referenceObject.toString(); - TraceManager.addDev("Null signal" + " res=" + s); - return s; - } - if (getName() == null) { - TraceManager.addDev("Null name"); - } - - return getName() + ":" + getSignal().getName(); + if (getSignal() == null) { + String s = getName() + " refobjt=" + referenceObject.toString(); + TraceManager.addDev("Null signal" + " res=" + s); + return s; + } + if (getName() == null) { + TraceManager.addDev("Null name"); + } + + return getName() + ":" + getSignal().getName(); } public String getNiceName() { diff --git a/src/main/java/avatartranslator/AvatarArithmeticOp.java b/src/main/java/avatartranslator/AvatarArithmeticOp.java index 029d0856cebb5b648b1838221d6f6df6bf8da825..c439b3ceda8b6cb601c4344f6d5b36a66480db1b 100644 --- a/src/main/java/avatartranslator/AvatarArithmeticOp.java +++ b/src/main/java/avatartranslator/AvatarArithmeticOp.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarArithmeticOp @@ -114,7 +111,7 @@ public class AvatarArithmeticOp extends AvatarTerm { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { if (this.term1 instanceof AvatarAttribute) this.term1 = attributesMapping.get (this.term1); else diff --git a/src/main/java/avatartranslator/AvatarAttribute.java b/src/main/java/avatartranslator/AvatarAttribute.java index 1701e29ad4eee2d71ce697f516a7f1d416ac152a..775a1f8e68958f117e78519f69220a60498b0ef5 100644 --- a/src/main/java/avatartranslator/AvatarAttribute.java +++ b/src/main/java/avatartranslator/AvatarAttribute.java @@ -39,9 +39,9 @@ package avatartranslator; -import myutil.TraceManager; +import java.util.Map; -import java.util.HashMap; +import myutil.TraceManager; /** * Class AvatarAttribute @@ -189,7 +189,7 @@ public class AvatarAttribute extends AvatarLeftHand { } @Override - public void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { TraceManager.addDev("!!! ERROR !!! (replaceAttributes in AvatarAttribute)"); /* !!! We should never arrive here !!! */ } diff --git a/src/main/java/avatartranslator/AvatarAttributeState.java b/src/main/java/avatartranslator/AvatarAttributeState.java index becf79f442aacfa4094055716c091de373989f7f..fb260813c87a96bfda084d35271908a5407cde3f 100644 --- a/src/main/java/avatartranslator/AvatarAttributeState.java +++ b/src/main/java/avatartranslator/AvatarAttributeState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; /** @@ -52,14 +49,16 @@ public class AvatarAttributeState extends AvatarElement { private AvatarState state; public AvatarAttributeState(String _name, Object _referenceObject, AvatarAttribute attr, AvatarState st) { super(_name, _referenceObject); - attribute = attr; - state = st; + attribute = attr; + state = st; } + public AvatarAttribute getAttribute(){ - return attribute; + return attribute; } + public AvatarState getState(){ - return state; + return state; } public AvatarAttributeState advancedClone (AvatarSpecification avspec) { @@ -72,8 +71,8 @@ public class AvatarAttributeState extends AvatarElement { return result; } - public String toString() - { + @Override + public String toString() { return this.attribute.getBlock().getName().replaceAll("__", ".") + "." + this.state.getName() + "." + this.attribute.getName(); } } diff --git a/src/main/java/avatartranslator/AvatarBinaryGuard.java b/src/main/java/avatartranslator/AvatarBinaryGuard.java index 0c473aaafd6a07fc8d97882b40119766dab8e0b3..070ef547e6d468ee21a29086df8692bc6c45fdd1 100644 --- a/src/main/java/avatartranslator/AvatarBinaryGuard.java +++ b/src/main/java/avatartranslator/AvatarBinaryGuard.java @@ -36,10 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarBinaryGuard @@ -81,7 +80,7 @@ public class AvatarBinaryGuard extends AvatarComposedGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { this.guardA.replaceAttributes (attributesMapping); this.guardB.replaceAttributes (attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarBlock.java b/src/main/java/avatartranslator/AvatarBlock.java index 0053bc1dd849167e8926ecb0735bc1ac5d59e212..58c022392b7f233bad0b25d68b7c8219068692a1 100644 --- a/src/main/java/avatartranslator/AvatarBlock.java +++ b/src/main/java/avatartranslator/AvatarBlock.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; /** @@ -54,9 +52,9 @@ import java.util.LinkedList; public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwner { private AvatarBlock father; - private LinkedList<AvatarAttribute> attributes; - private LinkedList<AvatarMethod> methods; - private LinkedList<AvatarSignal> signals; + private List<AvatarAttribute> attributes; + private List<AvatarMethod> methods; + private List<AvatarSignal> signals; private AvatarStateMachine asm; private AvatarSpecification avspec; @@ -119,16 +117,16 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne signals.add(_signal); } - public LinkedList<AvatarAttribute> getAttributes() { + public List<AvatarAttribute> getAttributes() { return attributes; } - public LinkedList<AvatarMethod> getMethods() { + public List<AvatarMethod> getMethods() { return methods; } - public LinkedList<AvatarSignal> getSignals() { + public List<AvatarSignal> getSignals() { return signals ; } @@ -435,8 +433,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne return (asme != null); } - - public void removeTimers(AvatarSpecification _spec, LinkedList<AvatarBlock> _addedBlocks) { + public void removeTimers(AvatarSpecification _spec, List<AvatarBlock> _addedBlocks) { AvatarSignal as; AvatarAttribute value; @@ -479,25 +476,24 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne // Remove Timer attribute //boolean hasTimerAttribute = false; - LinkedList<AvatarAttribute> tmps = attributes; + List<AvatarAttribute> tmps = attributes; attributes = new LinkedList<AvatarAttribute>(); for (AvatarAttribute aa: tmps) { if (aa.getType() != AvatarType.TIMER) { attributes.add(aa); - } else { + } else { //hasTimerAttribute = true; - } + } } - } public boolean hasTimerAttribute() { - for(AvatarAttribute attr: attributes) { - if (attr.isTimer()) { - return true; - } - } - return false; + for(AvatarAttribute attr: attributes) { + if (attr.isTimer()) { + return true; + } + } + return false; } public AvatarAttribute addTimerAttribute(String _name) { diff --git a/src/main/java/avatartranslator/AvatarComposedGuard.java b/src/main/java/avatartranslator/AvatarComposedGuard.java index 7115e79a910af48a070ef41553a2523e1dcd2df1..e414be224d870cdfbeba99eca46ec5ef1fd97c36 100644 --- a/src/main/java/avatartranslator/AvatarComposedGuard.java +++ b/src/main/java/avatartranslator/AvatarComposedGuard.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; /** @@ -49,7 +45,8 @@ package avatartranslator; * @author Florian LUGOU */ public abstract class AvatarComposedGuard extends AvatarGuard { - public AvatarComposedGuard getOpposite () { + + public AvatarComposedGuard getOpposite () { return new AvatarUnaryGuard ("not", "(", ")", this); } diff --git a/src/main/java/avatartranslator/AvatarConstant.java b/src/main/java/avatartranslator/AvatarConstant.java index f9cf2f5069af9eefab5a1ef855ca0995b66ddcee..03a1710cccf0ad5399c90b7ad2f5ae1ec46ec3ff 100644 --- a/src/main/java/avatartranslator/AvatarConstant.java +++ b/src/main/java/avatartranslator/AvatarConstant.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarTerm @@ -74,19 +70,20 @@ public class AvatarConstant extends AvatarTerm { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } @Override public String toString() { - return getName(); + return getName(); } public AvatarConstant advancedClone() { if (this == AvatarConstant.TRUE || this == AvatarConstant.FALSE) return this; - AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject()); - cloneLinkToReferenceObjects(ac); - return ac; + AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject()); + cloneLinkToReferenceObjects(ac); + + return ac; } } diff --git a/src/main/java/avatartranslator/AvatarConstantGuard.java b/src/main/java/avatartranslator/AvatarConstantGuard.java index d6a3591d65d98925ac9516ac3f1e80646718d3fc..d19b4d8640a8c027e8c6612223a8ff18966f09ed 100644 --- a/src/main/java/avatartranslator/AvatarConstantGuard.java +++ b/src/main/java/avatartranslator/AvatarConstantGuard.java @@ -36,14 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; - +import java.util.Map; /** * An AvatarConstantGuard is an {@link AvatarSimpleGuard} that is of the form: @@ -73,5 +68,5 @@ public class AvatarConstantGuard extends AvatarSimpleGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarDummyState.java b/src/main/java/avatartranslator/AvatarDummyState.java new file mode 100644 index 0000000000000000000000000000000000000000..3bd0f6623725fa38b72984437b1672c22fac7fe3 --- /dev/null +++ b/src/main/java/avatartranslator/AvatarDummyState.java @@ -0,0 +1,18 @@ +package avatartranslator; + +/** + * Issue #69: Created for component disabling. When a state machine element is located between transitions + * that have guards and actions, we need to keep a node to ensure that these are evaluated / executed in + * the same sequence leading to the same semantics. We create replace the disabled node with this dummy state + * that will have no impact on the generation of other specifications (UPPAAL, C Code, Proverif, etc..). + * + * @author dblouin + * + */ +public class AvatarDummyState extends AvatarState { + + public AvatarDummyState( final String name, + final Object _referenceObject ) { + super( name + "_converted_to_dummy_state", _referenceObject ); + } +} diff --git a/src/main/java/avatartranslator/AvatarElement.java b/src/main/java/avatartranslator/AvatarElement.java index 5d40d2f802eb7637a475a611a01f9cdd3f45fdcd..40f3944bf2b1624630438e186462df0ceb0fa16b 100644 --- a/src/main/java/avatartranslator/AvatarElement.java +++ b/src/main/java/avatartranslator/AvatarElement.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; import myutil.TraceManager; @@ -53,7 +50,7 @@ import java.util.Vector; */ public class AvatarElement { - protected static int ID=0; + private static int ID=0; protected String name; protected Object referenceObject; @@ -67,14 +64,14 @@ public class AvatarElement { } public void addReferenceObjectFrom(AvatarElement _elt) { - addReferenceObject(_elt.getReferenceObject()); - Vector<Object> others = _elt.getReferenceObjects(); - if (others != null) { - for(Object o: others) { - addReferenceObject(o); - } - } - + addReferenceObject(_elt.getReferenceObject()); + Vector<Object> others = _elt.getReferenceObjects(); + if (others != null) { + for(Object o: others) { + addReferenceObject(o); + } + } + } public void addReferenceObject(Object _ref) { @@ -113,7 +110,7 @@ public class AvatarElement { } public Vector<Object> getReferenceObjects() { - return otherReferenceObjects; + return otherReferenceObjects; } public int getID(){ @@ -125,16 +122,17 @@ public class AvatarElement { ID = 0; } + @Override public String toString() { - return getName(); + return getName(); } public void cloneLinkToReferenceObjects(AvatarElement ae) { - if (otherReferenceObjects == null) { - return; - } - for(Object o: otherReferenceObjects) { - ae.addReferenceObject(o); - } + if (otherReferenceObjects == null) { + return; + } + for(Object o: otherReferenceObjects) { + ae.addReferenceObject(o); + } } } diff --git a/src/main/java/avatartranslator/AvatarGuard.java b/src/main/java/avatartranslator/AvatarGuard.java index e02812cb685d04ecc3d2b0aab1cd2aebfd718949..f75aedd22226c555cab87f00a05344c0774b9424 100644 --- a/src/main/java/avatartranslator/AvatarGuard.java +++ b/src/main/java/avatartranslator/AvatarGuard.java @@ -36,17 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; +import java.util.Map; + import myutil.Conversion; import myutil.TraceManager; -import java.util.HashMap; - /** * Class AvatarGuard * Creation: 16/09/2015 @@ -233,6 +229,7 @@ public abstract class AvatarGuard { public abstract String getAsString (AvatarSyntaxTranslator translator); + @Override public String toString () { return this.getAsString (new AvatarSyntaxTranslator ()); } @@ -250,5 +247,5 @@ public abstract class AvatarGuard { * @param attributesMapping * The mapping used to replace the attributes of the guard. All the attributes of the block should be present as keys. */ - public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping); + public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarGuardElse.java b/src/main/java/avatartranslator/AvatarGuardElse.java index 61020187adf847de61777dda0892b0622dba420b..3afe3e0fe5ce808bfbf80d17dc65d86f0f2e8d99 100644 --- a/src/main/java/avatartranslator/AvatarGuardElse.java +++ b/src/main/java/avatartranslator/AvatarGuardElse.java @@ -36,14 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; - +import java.util.Map; /** * An AvatarGuardElse is an {@link AvatarGuard} that is of the form: @@ -90,6 +85,7 @@ public class AvatarGuardElse extends AvatarGuard { return "else"; } + @Override public boolean isElseGuard () { return true; } @@ -100,5 +96,5 @@ public class AvatarGuardElse extends AvatarGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarGuardEmpty.java b/src/main/java/avatartranslator/AvatarGuardEmpty.java index 15adf7e6103e4858db7686b2bfc76bea6e8efa96..6e5cdd08edf654cdb97b6f4bf2b82a8fcd7236dc 100644 --- a/src/main/java/avatartranslator/AvatarGuardEmpty.java +++ b/src/main/java/avatartranslator/AvatarGuardEmpty.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** @@ -52,7 +48,8 @@ import java.util.HashMap; * @author Florian LUGOU */ public class AvatarGuardEmpty extends AvatarGuard { - public AvatarGuardEmpty () { + + public AvatarGuardEmpty () { } public boolean isGuarded () { @@ -69,5 +66,5 @@ public class AvatarGuardEmpty extends AvatarGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarLibraryFunction.java b/src/main/java/avatartranslator/AvatarLibraryFunction.java index cba451ea26ec11f1faee1b33cadb9da500b7c06e..c80b6155e231443331effd03ee23ece3b52c8bdb 100644 --- a/src/main/java/avatartranslator/AvatarLibraryFunction.java +++ b/src/main/java/avatartranslator/AvatarLibraryFunction.java @@ -36,15 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; - +import java.util.List; +import java.util.Map; /** * AvatarLibraryFunction is used to represent a library function that can be further used in state machine diagrams. @@ -70,34 +68,34 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarAttribute> parameters; + private List<AvatarAttribute> parameters; /** * The list of variables local to the function. * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarAttribute> attributes; + private List<AvatarAttribute> attributes; /** * The list of signals used by the function. * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarSignal> signals; + private List<AvatarSignal> signals; /** * The list of attribute that will hold the return values of the function. These shouldn't be elements of {@link AvatarLibraryFunction#attributes} or {@link AvatarLibraryFunction#parameters}. * * <p>Note that these are only placeholders and should not be used outside this class.</p> */ - private LinkedList<AvatarAttribute> returnAttributes; + private List<AvatarAttribute> returnAttributes; /** * The list of methods that can be used by the function. * */ - private LinkedList<AvatarMethod> methods; + private List<AvatarMethod> methods; /** * The state machine describing the behaviour of the function. @@ -166,7 +164,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of parameters. */ - public LinkedList<AvatarAttribute> getParameters () { + public List<AvatarAttribute> getParameters () { return this.parameters; } @@ -185,7 +183,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of signals. */ - public LinkedList<AvatarSignal> getSignals () { + public List<AvatarSignal> getSignals () { return this.signals; } @@ -213,7 +211,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of return values. */ - public LinkedList<AvatarAttribute> getReturnAttributes () { + public List<AvatarAttribute> getReturnAttributes () { return this.returnAttributes; } @@ -232,13 +230,13 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of local attributes. */ - public LinkedList<AvatarAttribute> getLocalAttributes () { + public List<AvatarAttribute> getLocalAttributes () { return this.attributes; } @Override - public LinkedList<AvatarAttribute> getAttributes () { - LinkedList<AvatarAttribute> result = new LinkedList<AvatarAttribute> (); + public List<AvatarAttribute> getAttributes () { + List<AvatarAttribute> result = new LinkedList<AvatarAttribute> (); for (AvatarAttribute attr: this.attributes) result.add (attr); @@ -260,7 +258,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The list of methods used by this function. */ - public LinkedList<AvatarMethod> getMethods () { + public List<AvatarMethod> getMethods () { return this.methods; } @@ -310,7 +308,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param mapping * A mapping from placeholders to attributes of the block. */ - public void addAttributesToBlock (AvatarBlock block, HashMap<AvatarAttribute, AvatarAttribute> mapping) { + public void addAttributesToBlock (AvatarBlock block, Map<AvatarAttribute, AvatarAttribute> mapping) { for (AvatarAttribute attribute: this.attributes) { // TODO: We should use different attributes for different library function call String name = this.name + "__" + attribute.getName (); @@ -334,7 +332,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param returnAttributes * A list of the attributes that should receive return values. */ - public void addAttributesToMapping (HashMap<AvatarAttribute, AvatarAttribute> mapping, LinkedList<AvatarAttribute> parameters, LinkedList<AvatarAttribute> returnAttributes) { + public void addAttributesToMapping( Map<AvatarAttribute, AvatarAttribute> mapping, List<AvatarAttribute> parameters, List<AvatarAttribute> returnAttributes) { Iterator<AvatarAttribute> placeholders = this.parameters.iterator (); for (AvatarAttribute attr: parameters) mapping.put (placeholders.next (), attr); @@ -352,7 +350,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param signals * A list of the attributes that were passed as parameters. */ - public void addSignalsToMapping (HashMap<AvatarSignal, AvatarSignal> mapping, LinkedList<AvatarSignal> signals) { + public void addSignalsToMapping( Map<AvatarSignal, AvatarSignal> mapping, List<AvatarSignal> signals) { Iterator<AvatarSignal> placeholders = this.signals.iterator (); for (AvatarSignal signal: signals) mapping.put (placeholders.next (), signal); @@ -366,12 +364,12 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl /** * A mapping from placeholders to attributes of the block. */ - public HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping; + public Map<AvatarAttribute, AvatarAttribute> placeholdersMapping; /** * A mapping from placeholders to signals of the block. */ - public HashMap<AvatarSignal, AvatarSignal> signalsMapping; + public Map<AvatarSignal, AvatarSignal> signalsMapping; /** * The previous element of the state machine being created. @@ -386,7 +384,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl /** * A mapping from placeholder state machine elements to "real" elements. */ - public HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping; + public Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping; /** * The block the function call belongs to. @@ -423,7 +421,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * @param counter * The counter for the library function call. */ - public TranslatorArgument (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) { + public TranslatorArgument( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) { this.placeholdersMapping = placeholdersMapping; this.signalsMapping = signalsMapping; this.previousElement = previousElement; @@ -451,7 +449,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl * * @return The last element of the state machine created. */ - public AvatarState translateASMWithMapping (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) { + public AvatarState translateASMWithMapping( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) { /* Create the last state */ AvatarState lastState = new AvatarState ("exit_" + this.name + "_" + counter, referenceObject); diff --git a/src/main/java/avatartranslator/AvatarMethod.java b/src/main/java/avatartranslator/AvatarMethod.java index d8769e81c0231880689d6334fea90b11f3cc337a..a8d5c41d10c0e90aa0d12cd4371f31b40141fa9c 100644 --- a/src/main/java/avatartranslator/AvatarMethod.java +++ b/src/main/java/avatartranslator/AvatarMethod.java @@ -36,13 +36,10 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; import java.util.LinkedList; +import java.util.List; /** * Class AvatarMethod @@ -55,8 +52,8 @@ public class AvatarMethod extends AvatarElement { protected boolean implementationProvided; - protected LinkedList<AvatarAttribute> parameters; - protected LinkedList<AvatarAttribute> returnParameters; + protected List<AvatarAttribute> parameters; + protected List<AvatarAttribute> returnParameters; public AvatarMethod(String _name, Object _referenceObject) { @@ -81,11 +78,11 @@ public class AvatarMethod extends AvatarElement { returnParameters.add(_attribute); } - public LinkedList<AvatarAttribute> getListOfAttributes() { + public List<AvatarAttribute> getListOfAttributes() { return parameters; } - public LinkedList<AvatarAttribute> getListOfReturnAttributes() { + public List<AvatarAttribute> getListOfReturnAttributes() { return returnParameters; } @@ -93,6 +90,7 @@ public class AvatarMethod extends AvatarElement { return AvatarTerm.isValidName (_method); } + @Override public String toString() { int cpt = 0; String ret = ""; @@ -196,20 +194,18 @@ public class AvatarMethod extends AvatarElement { } protected void setAdvancedClone(AvatarMethod am, AvatarStateMachineOwner _block) { - am.setImplementationProvided(isImplementationProvided()); - for(AvatarAttribute param: parameters) { - am.addParameter(param.advancedClone(_block)); - } - for(AvatarAttribute ret: returnParameters) { - am.addReturnParameter(ret.advancedClone(_block)); - } + am.setImplementationProvided(isImplementationProvided()); + for(AvatarAttribute param: parameters) { + am.addParameter(param.advancedClone(_block)); + } + for(AvatarAttribute ret: returnParameters) { + am.addReturnParameter(ret.advancedClone(_block)); + } } public AvatarMethod advancedClone(AvatarStateMachineOwner _block) { - AvatarMethod am = new AvatarMethod(getName(), getReferenceObject()); - setAdvancedClone(am, _block); - return am; + AvatarMethod am = new AvatarMethod(getName(), getReferenceObject()); + setAdvancedClone(am, _block); + return am; } - - } diff --git a/src/main/java/avatartranslator/AvatarSignal.java b/src/main/java/avatartranslator/AvatarSignal.java index cafc2478f817181a7e5df420a6f99a4e9db82154..1567d085d5e92a575558763b5e92a9acdc87ef41 100644 --- a/src/main/java/avatartranslator/AvatarSignal.java +++ b/src/main/java/avatartranslator/AvatarSignal.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; /** @@ -51,7 +47,7 @@ package avatartranslator; */ public class AvatarSignal extends AvatarMethod { - // Signa type + // Signal type public final static int IN = 0; public final static int OUT = 1; @@ -59,8 +55,9 @@ public class AvatarSignal extends AvatarMethod { public AvatarSignal(String _name, int _inout, Object _referenceObject) { super(_name, _referenceObject); + inout = _inout; - name = _name; + name = _name; } public int getInOut() { @@ -87,6 +84,7 @@ public class AvatarSignal extends AvatarMethod { return AvatarTerm.isValidName (_signal); } + @Override public String toString() { String ret = super.toString(); if (isOut()) { @@ -95,7 +93,7 @@ public class AvatarSignal extends AvatarMethod { return "in " + ret; } - + @Override public String toBasicString() { String ret = super.toBasicString(); if (isOut()) { @@ -139,18 +137,18 @@ public class AvatarSignal extends AvatarMethod { return cumul; }*/ //fin DG - public AvatarSignal advancedClone(AvatarStateMachineOwner _block) { - AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject()); - setAdvancedClone(as, _block); - return as; - } + public AvatarSignal advancedClone(AvatarStateMachineOwner _block) { + AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject()); + setAdvancedClone(as, _block); + return as; + } - public boolean isCompatibleWith(AvatarSignal _as) { - if (getInOut() == _as.getInOut()) { - return false; - } + public boolean isCompatibleWith(AvatarSignal _as) { + if (getInOut() == _as.getInOut()) { + return false; + } - return super.isCompatibleWith(_as); - } + return super.isCompatibleWith(_as); + } } diff --git a/src/main/java/avatartranslator/AvatarSimpleGuard.java b/src/main/java/avatartranslator/AvatarSimpleGuard.java index c45a25e9efc6e98bef828af42729f0112a91b431..7b2ea465a8386035a66cf4df70642f977e57fd99 100644 --- a/src/main/java/avatartranslator/AvatarSimpleGuard.java +++ b/src/main/java/avatartranslator/AvatarSimpleGuard.java @@ -36,13 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; - /** * An AvatarSimpleGuard is an {@link AvatarGuard} that is of the form: * {@link AvatarTerm} binaryOp {@link AvatarTerm} or simply {@link AvatarTerm}, or else diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java index 2054de47883a288f756295951abef95d8b160b3f..d6aa10cb0a4c0669e59db53270b843d7a6f2a4e4 100644 --- a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java +++ b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java @@ -36,14 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; - +import java.util.Map; /** * An AvatarSimpleGuardDuo is an {@link AvatarSimpleGuard} that is of the form: @@ -85,7 +80,7 @@ public class AvatarSimpleGuardDuo extends AvatarSimpleGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { if (this.termA instanceof AvatarAttribute) { this.termA = attributesMapping.get(this.termA); diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java index f7ab27ac03485284847468cddebfd364321901ec..58aeefdd90e87cf1c8dfa12158c546ffab28903d 100644 --- a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java +++ b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java @@ -41,10 +41,9 @@ * Class AvatarSimpleGuardMono */ - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** @@ -75,10 +74,11 @@ public class AvatarSimpleGuardMono extends AvatarSimpleGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { - for (AvatarAttribute attr: attributesMapping.keySet()) - { - } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { +// for (AvatarAttribute attr: attributesMapping.keySet()) +// { +// } + if (this.term instanceof AvatarAttribute) { this.term = attributesMapping.get(this.term); diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java index 00a4340256127afcfe8c87e9f754c7192fc7d4b0..9d2bcf10a0bc03cea16cfe8df34291d32daecc77 100644 --- a/src/main/java/avatartranslator/AvatarSpecification.java +++ b/src/main/java/avatartranslator/AvatarSpecification.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; import myutil.Conversion; @@ -58,7 +54,8 @@ import java.util.ArrayList; * @author Ludovic APVRILLE */ public class AvatarSpecification extends AvatarElement { - public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"}; + + public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"}; private List<AvatarBlock> blocks; private List<AvatarRelation> relations; @@ -72,10 +69,10 @@ public class AvatarSpecification extends AvatarElement { //private AvatarBroadcast broadcast; - private LinkedList<AvatarPragma> pragmas; - private LinkedList<String> safety_pragmas; - private LinkedList<AvatarPragmaLatency> latency_pragmas; - private LinkedList<AvatarConstant> constants; + private List<AvatarPragma> pragmas; + private List<String> safety_pragmas; + private List<AvatarPragmaLatency> latency_pragmas; + private List<AvatarConstant> constants; public List<String> checkedIDs; private boolean robustnessMade = false; @@ -88,8 +85,8 @@ public class AvatarSpecification extends AvatarElement { relations = new LinkedList<AvatarRelation>(); //broadcast = new AvatarBroadcast("Broadcast", _referenceObject); pragmas = new LinkedList<AvatarPragma>(); - constants = new LinkedList<AvatarConstant>(); - safety_pragmas = new LinkedList<String>(); + constants = new LinkedList<AvatarConstant>(); + safety_pragmas = new LinkedList<String>(); latency_pragmas = new LinkedList<AvatarPragmaLatency>(); this.constants.add (AvatarConstant.FALSE); this.constants.add (AvatarConstant.TRUE); @@ -165,11 +162,11 @@ public class AvatarSpecification extends AvatarElement { } public int getNbOfASMGraphicalElements() { - int cpt = 0; - for(AvatarBlock block: blocks) { - cpt += block.getNbOfASMGraphicalElements(); - } - return cpt; + int cpt = 0; + for(AvatarBlock block: blocks) { + cpt += block.getNbOfASMGraphicalElements(); + } + return cpt; } public boolean isASynchronousSignal(AvatarSignal _as) { @@ -180,7 +177,6 @@ public class AvatarSpecification extends AvatarElement { } return false; - } //DG @@ -226,12 +222,13 @@ public class AvatarSpecification extends AvatarElement { } public void addConstant(AvatarConstant _constant) { - //Only add unique constants - if (this.getAvatarConstantWithName(_constant.getName())==null){ - constants.add(_constant); - } + //Only add unique constants + if (this.getAvatarConstantWithName(_constant.getName())==null){ + constants.add(_constant); + } } + @Override public String toString() { //Thread.currentThread().dumpStack(); StringBuffer sb = new StringBuffer("Blocks:\n"); @@ -246,11 +243,11 @@ public class AvatarSpecification extends AvatarElement { for(AvatarPragma pragma: pragmas) { sb.append("Pragma:" + pragma.toString() + "\n"); } - for (AvatarConstant constant: constants){ - sb.append("Constant:" + constant.toString() + "\n"); - } - return sb.toString(); + for (AvatarConstant constant: constants){ + sb.append("Constant:" + constant.toString() + "\n"); + } + return sb.toString(); } public AvatarBlock getBlockWithName(String _name) { @@ -263,9 +260,6 @@ public class AvatarSpecification extends AvatarElement { return null; } - - - public AvatarConstant getAvatarConstantWithName(String _name) { for(AvatarConstant constant: constants) { if (constant.getName().compareTo(_name)== 0) { @@ -275,6 +269,7 @@ public class AvatarSpecification extends AvatarElement { return null; } + public static String putAttributeValueInString(String _source, AvatarAttribute _at) { return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getDefaultInitialValue()); } @@ -283,7 +278,6 @@ public class AvatarSpecification extends AvatarElement { return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getInitialValue()); } - public void removeCompositeStates() { for(AvatarBlock block: blocks) { //TraceManager.addDev("- - - - - - - - Removing composite states of " + block); @@ -291,17 +285,14 @@ public class AvatarSpecification extends AvatarElement { } } - public void makeFullStates() { - for(AvatarBlock block: blocks) { - //TraceManager.addDev("- - - - - - - - Making full states of " + block); + for(AvatarBlock block: blocks) { block.getStateMachine().makeFullStates(block); } } public void removeRandoms() { - for(AvatarBlock block: blocks) { - //TraceManager.addDev("- - - - - - - - Removing randoms of " + block); + for(AvatarBlock block: blocks) { block.getStateMachine().removeRandoms(block); } } @@ -309,11 +300,11 @@ public class AvatarSpecification extends AvatarElement { public void removeTimers() { //renameTimers(); - LinkedList<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>(); + List<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>(); for(AvatarBlock block: blocks) { - if (block.hasTimerAttribute()) { - block.removeTimers(this, addedBlocks); - } + if (block.hasTimerAttribute()) { + block.removeTimers(this, addedBlocks); + } } for(int i=0; i<addedBlocks.size(); i++) { @@ -348,81 +339,75 @@ public class AvatarSpecification extends AvatarElement { * The size of the infinite fifo is max 1024 * and min 1 */ - - public void removeFIFOs(int _maxSizeOfInfiniteFifo) { - - LinkedList<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>(); - LinkedList<AvatarRelation> newOnes = new LinkedList<AvatarRelation>(); - - int FIFO_ID = 0; - for(AvatarRelation ar: relations) { - if (ar.isAsynchronous()) { - // Must be removed - int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO()); - TraceManager.addDev("***************************** Size of FIFO:" + size); - size = Math.max(1, size); - FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID); - } - } - - for(AvatarRelation ar: oldOnes) { - relations.remove(ar); - } - - for(AvatarRelation ar: newOnes) { - relations.add(ar); - } - } - - private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID ) { - for(int i=0; i<_ar.nbOfSignals(); i++) { - if (_ar.getSignal1(i).isIn()) { - FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); - } else { - FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); - } - } - _oldOnes.add(_ar); - return FIFO_ID; + List<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>(); + List<AvatarRelation> newOnes = new LinkedList<AvatarRelation>(); + + int FIFO_ID = 0; + for(AvatarRelation ar: relations) { + if (ar.isAsynchronous()) { + // Must be removed + int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO()); + TraceManager.addDev("***************************** Size of FIFO:" + size); + size = Math.max(1, size); + FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID); + } + } + + for(AvatarRelation ar: oldOnes) { + relations.remove(ar); + } + + for(AvatarRelation ar: newOnes) { + relations.add(ar); + } + } + + private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID ) { + for(int i=0; i<_ar.nbOfSignals(); i++) { + if (_ar.getSignal1(i).isIn()) { + FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); + } else { + FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID); + } + } + _oldOnes.add(_ar); + return FIFO_ID; } - - private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID) { - // We create the new block, and the new relation towards the new block - String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID; - AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID); - blocks.add(fifoBlock); - - // We now need to create the new relation - AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject()); - newAR1.setAsynchronous(false); - newAR1.setPrivate(_ar.isPrivate()); - newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write")); - _newOnes.add(newAR1); - - AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject()); - newAR2.setAsynchronous(false); - newAR2.setPrivate(_ar.isPrivate()); - newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2); - _newOnes.add(newAR2); - - FIFO_ID ++; - return FIFO_ID; + private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID) { + // We create the new block, and the new relation towards the new block + String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID; + AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID); + blocks.add(fifoBlock); + + // We now need to create the new relation + AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject()); + newAR1.setAsynchronous(false); + newAR1.setPrivate(_ar.isPrivate()); + newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write")); + _newOnes.add(newAR1); + + AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject()); + newAR2.setAsynchronous(false); + newAR2.setPrivate(_ar.isPrivate()); + newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2); + _newOnes.add(newAR2); + + FIFO_ID ++; + return FIFO_ID; } - - public boolean areSynchronized(AvatarSignal as1, AvatarSignal as2) { - AvatarRelation ar = getAvatarRelationWithSignal(as1); - if (ar == null) { - return false; - } + AvatarRelation ar = getAvatarRelationWithSignal(as1); + if (ar == null) { + return false; + } - int index1 = ar.getIndexOfSignal(as1); - int index2 = ar.getIndexOfSignal(as2); + int index1 = ar.getIndexOfSignal(as1); + int index2 = ar.getIndexOfSignal(as2); - return (index1 == index2); + return (index1 == index2); } public AvatarRelation getAvatarRelationWithSignal(AvatarSignal _as) { diff --git a/src/main/java/avatartranslator/AvatarState.java b/src/main/java/avatartranslator/AvatarState.java index 99503b3a2abc0caeb2d923e72065765a98b47eaf..13702fb6ca968e817b732758f73aada713c91fa2 100644 --- a/src/main/java/avatartranslator/AvatarState.java +++ b/src/main/java/avatartranslator/AvatarState.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; /** @@ -90,7 +89,6 @@ public class AvatarState extends AvatarStateElement { checkLatency = b; } - public int hasEmptyTransitionsOnItself(AvatarStateMachine _asm) { AvatarTransition at; int cpt = 0; diff --git a/src/main/java/avatartranslator/AvatarStateElement.java b/src/main/java/avatartranslator/AvatarStateElement.java index 65c2258a57d550df0deaf0adbd0861e067b504d7..87584cbd42e3ff09d9856322e5fc6d967bded777 100644 --- a/src/main/java/avatartranslator/AvatarStateElement.java +++ b/src/main/java/avatartranslator/AvatarStateElement.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; /** @@ -49,13 +46,11 @@ package avatartranslator; */ public abstract class AvatarStateElement extends AvatarStateMachineElement { - public AvatarStateElement(String _name, Object _referenceObject) { super(_name, _referenceObject); } - public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) { - super(_name, _referenceObject, _isCheckable, _isChecked); + public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked ) { + super(_name, _referenceObject, _isCheckable, _isChecked ); } - } diff --git a/src/main/java/avatartranslator/AvatarStateMachine.java b/src/main/java/avatartranslator/AvatarStateMachine.java index 5f837d6f1b33f2ca8a5919c1122d3581babc91ec..2170c62dfd269da1f8f4007015d39c54d0d807e8 100644 --- a/src/main/java/avatartranslator/AvatarStateMachine.java +++ b/src/main/java/avatartranslator/AvatarStateMachine.java @@ -36,14 +36,12 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; import myutil.TraceManager; import java.util.*; - /** * Class AvatarStateMachine * State machine, with composite states @@ -57,15 +55,14 @@ public class AvatarStateMachine extends AvatarElement { public AvatarStateElement[] allStates; - protected LinkedList<AvatarStateMachineElement> elements; + protected List<AvatarStateMachineElement> elements; protected AvatarStartState startState; private static int ID_ELT = 0; - protected LinkedList<AvatarStateMachineElement> states; + protected List<AvatarStateMachineElement> states; protected AvatarStateMachineOwner block; - public AvatarStateMachine(AvatarStateMachineOwner _block, String _name, Object _referenceObject) { super(_name, _referenceObject); block = _block; @@ -105,7 +102,7 @@ public class AvatarStateMachine extends AvatarElement { states = null; } - public LinkedList<AvatarStateMachineElement> getListOfElements() { + public List<AvatarStateMachineElement> getListOfElements() { return elements; } @@ -159,7 +156,7 @@ public class AvatarStateMachine extends AvatarElement { return null; } - private int getSimplifiedElementsAux(HashMap<AvatarStateMachineElement, Integer> simplifiedElements, HashSet<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) { + private int getSimplifiedElementsAux( Map<AvatarStateMachineElement, Integer> simplifiedElements, Set<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) { if (visited.contains(root)) { Integer name = simplifiedElements.get(root); if (name == null) { @@ -179,12 +176,13 @@ public class AvatarStateMachine extends AvatarElement { return counter; } - public HashMap<AvatarStateMachineElement, Integer> getSimplifiedElements() { - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>(); + public Map<AvatarStateMachineElement, Integer> getSimplifiedElements() { + Map<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>(); this.getSimplifiedElementsAux(simplifiedElements, new HashSet<AvatarStateMachineElement>(), startState, 0); return simplifiedElements; } + @Override public String toString() { StringBuffer sb = new StringBuffer("State machine Id=" + getID() + "\n"); @@ -204,9 +202,8 @@ public class AvatarStateMachine extends AvatarElement { addStatesToNonEmptyTransitionsBetweenNonStateToState(_block); } - private void addStatesToEmptyNonTerminalEmptyNext(AvatarBlock _b) { - ArrayList<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : elements) { if (!(elt instanceof AvatarStopState)) { if (elt.getNext(0) == null) { @@ -231,7 +228,7 @@ public class AvatarStateMachine extends AvatarElement { private void addStatesToNonEmptyTransitionsBetweenNonStateToState(AvatarBlock _block) { AvatarStateMachineElement next; AvatarStateMachineElement previous; - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); int id = 0; for (AvatarStateMachineElement elt : elements) { @@ -273,7 +270,7 @@ public class AvatarStateMachine extends AvatarElement { private void addStatesToTransitionsBetweenTwoNonStates(AvatarBlock _block) { AvatarStateMachineElement next; AvatarStateMachineElement previous; - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); int id = 0; for (AvatarStateMachineElement elt : elements) { @@ -319,7 +316,7 @@ public class AvatarStateMachine extends AvatarElement { private void addStatesToActionTransitions(AvatarBlock _block) { AvatarStateMachineElement next; AvatarStateMachineElement previous; - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); int id = 0; for (AvatarStateMachineElement elt : elements) { if (elt instanceof AvatarTransition) { @@ -384,11 +381,10 @@ public class AvatarStateMachine extends AvatarElement { } - public void removeRandoms(AvatarBlock _block) { int id = 0; - ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); - ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>(); AvatarStateMachineElement next; AvatarStateMachineElement previous; @@ -444,7 +440,7 @@ public class AvatarStateMachine extends AvatarElement { public void removeCompositeStates(AvatarBlock _block) { //TraceManager.addDev("\n-------------- Remove composite states ---------------\n"); - LinkedList<AvatarState> lists = removeAllInternalStartStates(); + /*LinkedList<AvatarState> lists =*/ removeAllInternalStartStates(); AvatarTransition at = getAvatarCompositeTransition(); @@ -497,10 +493,10 @@ public class AvatarStateMachine extends AvatarElement { // Contains in odd index: composite state // even index: new state replacing the start state - LinkedList<AvatarState> lists = removeAllInternalStartStates(); - ArrayList<AvatarTransition> ats; - ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); - ArrayList<AvatarState> states = new ArrayList<AvatarState>(); + /*List<AvatarState> lists =*/ removeAllInternalStartStates(); + //List<AvatarTransition> ats; + List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>(); + List<AvatarState> states = new ArrayList<AvatarState>(); AvatarTransition at; @@ -536,7 +532,6 @@ public class AvatarStateMachine extends AvatarElement { } //removeCompositeTransition2(at, _block); - } for (AvatarStateMachineElement asme : toRemove) { @@ -678,19 +673,19 @@ public class AvatarStateMachine extends AvatarElement { } } - - private ArrayList<AvatarTransition> getAllAvatarCompositeTransitions() { - ArrayList<AvatarTransition> ats = new ArrayList<AvatarTransition>(); - for (AvatarStateMachineElement element : elements) { - if (element instanceof AvatarTransition) { - if ((isACompositeTransition((AvatarTransition) element))) { - ats.add((AvatarTransition) element); - } - } - } - - return ats; - } +// +// private List<AvatarTransition> getAllAvatarCompositeTransitions() { +// List<AvatarTransition> ats = new ArrayList<AvatarTransition>(); +// for (AvatarStateMachineElement element : elements) { +// if (element instanceof AvatarTransition) { +// if ((isACompositeTransition((AvatarTransition) element))) { +// ats.add((AvatarTransition) element); +// } +// } +// } +// +// return ats; +// } private void addFullInternalStates(AvatarState state, AvatarTransition _at) { @@ -878,160 +873,160 @@ public class AvatarStateMachine extends AvatarElement { }*/ - private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) { - /*if (_at.hasCompute()) { - AvatarState as0 = new AvatarState("splitstate0", null); - AvatarState as1 = new AvatarState("splitstate1", null); - - - - AvatarTransition at = _at.basicCloneMe(); - _at.removeAllActions(); - _at.removeAllNexts(); - _at.addNext(as); - as.addNext(at); - addElement(as); - addElement(at); - splitAvatarTransition(at); - }*/ - - TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction()); - if (_at.getNbOfAction() > 1) { - TraceManager.addDev("New split state"); - AvatarState as = new AvatarState("splitstate", null); - as.setHidden(true); - as.setState(_currentState); - AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block)); - _at.removeAllActionsButTheFirstOne(); - at.removeFirstAction(); - at.addNext(_at.getNext(0)); - _at.removeAllNexts(); - _at.addNext(as); - as.addNext(at); - addElement(as); - addElement(at); - - splitAvatarTransition(_at, _currentState); - } - - if (_at.hasDelay()) { - AvatarStateMachineElement element = getPreviousElementOf(_at); - if (element.hasInUpperState(_currentState) == true) { - if (!(element instanceof AvatarState)) { - // Must add an intermediate state - String tmp = findUniqueStateName("internalstate__"); - AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject()); - addElement(as); - as.setHidden(true); - as.setState(_currentState); - AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null); - addElement(atn); - element.removeNext(_at); - element.addNext(atn); - atn.addNext(as); - as.addNext(_at); - splitAvatarTransition(_at, _currentState); - } - } - } - } - - private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) { - AvatarState as; - AvatarTransition at; - LinkedList<AvatarStateMachineElement> ll; - String tmp; - - // It cannot be a start / stop state since they have been previously removed .. - if (_element instanceof AvatarActionOnSignal) { - AvatarStateMachineElement element = _element.getNext(0); - if (element instanceof AvatarTransition) { - if (!(((AvatarTransition) element).isEmpty())) { - //We need to create a new state - tmp = findUniqueStateName("internalstate__"); - TraceManager.addDev("Creating state with name=" + tmp); - as = new AvatarState(tmp, null); - addElement(as); - as.setHidden(true); - at = new AvatarTransition(_at.getBlock(), "internaltransition", null); - addElement(at); - //_element -> at -> as -> element - - _element.removeNext(element); - _element.addNext(at); - - at.addNext(as); - as.addNext(element); - - at = cloneCompositeTransition(_at); - //addElement(at); - as.addNext(at); - } else { - // We see if a state follows it. Otherwise, we create one - if (!(element.getNext(0) instanceof AvatarState)) { - //We need to create a new state - tmp = findUniqueStateName("internalstate__"); - TraceManager.addDev("Creating state with name=" + tmp); - as = new AvatarState(tmp, null); - addElement(as); - as.setHidden(true); - at = new AvatarTransition(_at.getBlock(), "internaltransition", null); - addElement(at); - //_element -> at -> as -> element - - _element.removeNext(element); - _element.addNext(at); - - at.addNext(as); - as.addNext(element); - - at = cloneCompositeTransition(_at); - //addElement(at); - as.addNext(at); - - } else { - //We link to this state-> will be done later - } - } - } - /*ll = getPreviousElementsOf(_element); - for(AvatarStateMachineElement element: ll) { - if (element instanceof AvatarTransition) { - // if empty transition: we do just nothing - if (!(((AvatarTransition)element).isEmpty())) { - tmp = findUniqueStateName("internalstate__"); - TraceManager.addDev("Creating state with name=" + tmp); - as = new AvatarState(tmp, null); - as.setHidden(true); - element.removeNext(_element); - element.addNext(as); - at = new AvatarTransition("internaltransition", null); - addElement(at); - at.addNext(_element); - as.addNext(at); - addElement(as); - - at = cloneCompositeTransition(_at); - addElement(at); - as.addNext(at); - } - - } else { - // Badly formed machine! - TraceManager.addError("Badly formed sm (removing composite transition)"); - } - }*/ - - } else if (_element instanceof AvatarState) { - at = cloneCompositeTransition(_at); - //addElement(at); - _element.addNext(at); - } else if (_element instanceof AvatarTransition) { - // Nothing to do since they shall have been split before - } else { - // Nothing to do either - } - } +// private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) { +// /*if (_at.hasCompute()) { +// AvatarState as0 = new AvatarState("splitstate0", null); +// AvatarState as1 = new AvatarState("splitstate1", null); +// +// +// +// AvatarTransition at = _at.basicCloneMe(); +// _at.removeAllActions(); +// _at.removeAllNexts(); +// _at.addNext(as); +// as.addNext(at); +// addElement(as); +// addElement(at); +// splitAvatarTransition(at); +// }*/ +// +// TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction()); +// if (_at.getNbOfAction() > 1) { +// TraceManager.addDev("New split state"); +// AvatarState as = new AvatarState("splitstate", null); +// as.setHidden(true); +// as.setState(_currentState); +// AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block)); +// _at.removeAllActionsButTheFirstOne(); +// at.removeFirstAction(); +// at.addNext(_at.getNext(0)); +// _at.removeAllNexts(); +// _at.addNext(as); +// as.addNext(at); +// addElement(as); +// addElement(at); +// +// splitAvatarTransition(_at, _currentState); +// } +// +// if (_at.hasDelay()) { +// AvatarStateMachineElement element = getPreviousElementOf(_at); +// if (element.hasInUpperState(_currentState) == true) { +// if (!(element instanceof AvatarState)) { +// // Must add an intermediate state +// String tmp = findUniqueStateName("internalstate__"); +// AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject()); +// addElement(as); +// as.setHidden(true); +// as.setState(_currentState); +// AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null); +// addElement(atn); +// element.removeNext(_at); +// element.addNext(atn); +// atn.addNext(as); +// as.addNext(_at); +// splitAvatarTransition(_at, _currentState); +// } +// } +// } +// } + +// private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) { +// AvatarState as; +// AvatarTransition at; +// LinkedList<AvatarStateMachineElement> ll; +// String tmp; +// +// // It cannot be a start / stop state since they have been previously removed .. +// if (_element instanceof AvatarActionOnSignal) { +// AvatarStateMachineElement element = _element.getNext(0); +// if (element instanceof AvatarTransition) { +// if (!(((AvatarTransition) element).isEmpty())) { +// //We need to create a new state +// tmp = findUniqueStateName("internalstate__"); +// TraceManager.addDev("Creating state with name=" + tmp); +// as = new AvatarState(tmp, null); +// addElement(as); +// as.setHidden(true); +// at = new AvatarTransition(_at.getBlock(), "internaltransition", null); +// addElement(at); +// //_element -> at -> as -> element +// +// _element.removeNext(element); +// _element.addNext(at); +// +// at.addNext(as); +// as.addNext(element); +// +// at = cloneCompositeTransition(_at); +// //addElement(at); +// as.addNext(at); +// } else { +// // We see if a state follows it. Otherwise, we create one +// if (!(element.getNext(0) instanceof AvatarState)) { +// //We need to create a new state +// tmp = findUniqueStateName("internalstate__"); +// TraceManager.addDev("Creating state with name=" + tmp); +// as = new AvatarState(tmp, null); +// addElement(as); +// as.setHidden(true); +// at = new AvatarTransition(_at.getBlock(), "internaltransition", null); +// addElement(at); +// //_element -> at -> as -> element +// +// _element.removeNext(element); +// _element.addNext(at); +// +// at.addNext(as); +// as.addNext(element); +// +// at = cloneCompositeTransition(_at); +// //addElement(at); +// as.addNext(at); +// +// } else { +// //We link to this state-> will be done later +// } +// } +// } +// /*ll = getPreviousElementsOf(_element); +// for(AvatarStateMachineElement element: ll) { +// if (element instanceof AvatarTransition) { +// // if empty transition: we do just nothing +// if (!(((AvatarTransition)element).isEmpty())) { +// tmp = findUniqueStateName("internalstate__"); +// TraceManager.addDev("Creating state with name=" + tmp); +// as = new AvatarState(tmp, null); +// as.setHidden(true); +// element.removeNext(_element); +// element.addNext(as); +// at = new AvatarTransition("internaltransition", null); +// addElement(at); +// at.addNext(_element); +// as.addNext(at); +// addElement(as); +// +// at = cloneCompositeTransition(_at); +// addElement(at); +// as.addNext(at); +// } +// +// } else { +// // Badly formed machine! +// TraceManager.addError("Badly formed sm (removing composite transition)"); +// } +// }*/ +// +// } else if (_element instanceof AvatarState) { +// at = cloneCompositeTransition(_at); +// //addElement(at); +// _element.addNext(at); +// } else if (_element instanceof AvatarTransition) { +// // Nothing to do since they shall have been split before +// } else { +// // Nothing to do either +// } +// } // Return the first previous element met. Shall be used preferably only for transitions @@ -1045,8 +1040,8 @@ public class AvatarStateMachine extends AvatarElement { return null; } - private LinkedList<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) { - LinkedList<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>(); + private List<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) { + List<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement element : elements) { if (element.hasNext(_elt)) { ll.add(element); @@ -1083,11 +1078,11 @@ public class AvatarStateMachine extends AvatarElement { // All transitions reaching a state that has an internal start state // shall in fact go directly to the nexts of the start state - public LinkedList<AvatarState> removeAllInternalStartStates() { + public List<AvatarState> removeAllInternalStartStates() { // identify allstart state - LinkedList<AvatarStartState> ll = new LinkedList<AvatarStartState>(); + List<AvatarStartState> ll = new LinkedList<AvatarStartState>(); - LinkedList<AvatarState> removedinfos = new LinkedList<AvatarState>(); + List<AvatarState> removedinfos = new LinkedList<AvatarState>(); for (AvatarStateMachineElement element : elements) { if ((element instanceof AvatarStartState) && (element.getState() != null)) { @@ -1097,7 +1092,7 @@ public class AvatarStateMachine extends AvatarElement { } AvatarState as0; - LinkedList<AvatarStateMachineElement> le; + List<AvatarStateMachineElement> le; for (AvatarStartState as : ll) { AvatarState astate = as.getState(); if (as != null) { @@ -1163,8 +1158,8 @@ public class AvatarStateMachine extends AvatarElement { AvatarSetTimer ast; AvatarTimerOperator ato; - LinkedList<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>(); - LinkedList<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>(); + List<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : elements) { @@ -1177,7 +1172,7 @@ public class AvatarStateMachine extends AvatarElement { news.add(aaos); // Modifying the transition just before - LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(ast); + List<AvatarStateMachineElement> previous = getPreviousElementsOf(ast); if (previous.size() == 1) { if (previous.get(0) instanceof AvatarTransition) { AvatarTransition at = (AvatarTransition) (previous.get(0)); @@ -1225,7 +1220,7 @@ public class AvatarStateMachine extends AvatarElement { removeElement(oldone); // Previous elements - LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone); + List<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone); for (AvatarStateMachineElement elt : previous) { elt.replaceAllNext(oldone, newone); } @@ -1251,7 +1246,7 @@ public class AvatarStateMachine extends AvatarElement { //TraceManager.addDev("ADDING TIMER: " + aa.getName()); // Timer is set at the entrance in the composite state - LinkedList<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at))); + List<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at))); AvatarTransition newat0, newat1; AvatarSetTimer ast; @@ -1300,7 +1295,7 @@ public class AvatarStateMachine extends AvatarElement { newat1.addNext(as); _at.setDelays("", ""); - LinkedList<AvatarStateMachineElement> elts = getElementsLeadingTo(_at); + List<AvatarStateMachineElement> elts = getElementsLeadingTo(_at); for (AvatarStateMachineElement elt : elts) { elt.removeNext(_at); @@ -1312,9 +1307,9 @@ public class AvatarStateMachine extends AvatarElement { return newat0; } - public LinkedList<AvatarTransition> findEntranceTransitionElements(AvatarState _state) { + public List<AvatarTransition> findEntranceTransitionElements(AvatarState _state) { //TraceManager.addDev("Searching for transitions entering:" + _state.getName()); - LinkedList<AvatarTransition> ll = new LinkedList<AvatarTransition>(); + List<AvatarTransition> ll = new LinkedList<AvatarTransition>(); for (AvatarStateMachineElement elt : elements) { if (elt instanceof AvatarTransition) { @@ -1330,8 +1325,8 @@ public class AvatarStateMachine extends AvatarElement { return ll; } - public LinkedList<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) { - LinkedList<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>(); + public List<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) { + List<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : elements) { if (elt.hasNext(_elt)) { @@ -1340,10 +1335,8 @@ public class AvatarStateMachine extends AvatarElement { } return elts; - } - public void modifyAvatarTransition(AvatarTransition _at) { /*if ((_at.getNbOfAction() > 0) || (_at.hasCompute())) { return; @@ -1468,7 +1461,7 @@ public class AvatarStateMachine extends AvatarElement { } public void removeStopStatesOf(AvatarState _as) { - LinkedList<AvatarStopState> ll = new LinkedList<AvatarStopState>(); + List<AvatarStopState> ll = new LinkedList<AvatarStopState>(); for (AvatarStateMachineElement elt : elements) { if (elt instanceof AvatarStopState) { @@ -1486,7 +1479,6 @@ public class AvatarStateMachine extends AvatarElement { } } - public String findUniqueStateName(String name) { int id = 0; boolean found; @@ -1529,8 +1521,8 @@ public class AvatarStateMachine extends AvatarElement { /* Perform BFS for AvatarLibraryFunctionCall elements. When one is found, replace it by the state machine and fix the links */ LinkedList<AvatarStateMachineElement> toVisit = new LinkedList<AvatarStateMachineElement>(); toVisit.add(this.startState); - HashSet<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>(); - HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>(); + Set<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>(); + Map<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>(); while (!toVisit.isEmpty()) { /* Get the first element of the queue */ @@ -1706,4 +1698,21 @@ public class AvatarStateMachine extends AvatarElement { } } } + + public AvatarTransition findEmptyTransition( final AvatarStateMachineElement elementSource, + final AvatarStateMachineElement elementTarget ) { + for ( final AvatarStateMachineElement element : elements ) { + if ( element instanceof AvatarTransition ) { + final AvatarTransition transition = (AvatarTransition) element; + + if ( transition.isEmpty() && !transition.getNexts().isEmpty() ) { + if ( getPreviousElementOf( transition ) == elementSource && transition.getNexts().get( 0 ) == elementTarget ) { + return transition; + } + } + } + } + + return null; + } } diff --git a/src/main/java/avatartranslator/AvatarStateMachineElement.java b/src/main/java/avatartranslator/AvatarStateMachineElement.java index e93dc6a3009e831c5671be4208b69a22facd3294..90e69d16b2a05b13d94e840c7b2254d6aae9bdef 100644 --- a/src/main/java/avatartranslator/AvatarStateMachineElement.java +++ b/src/main/java/avatartranslator/AvatarStateMachineElement.java @@ -43,6 +43,7 @@ import ui.TGComponent; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; /** @@ -54,7 +55,7 @@ import java.util.LinkedList; */ public abstract class AvatarStateMachineElement extends AvatarElement { - protected LinkedList<AvatarStateMachineElement> nexts; + protected List<AvatarStateMachineElement> nexts; private AvatarState myState; private boolean isCheckable; @@ -63,18 +64,21 @@ public abstract class AvatarStateMachineElement extends AvatarElement { private boolean isHidden = false; - public AvatarStateMachineElement(String _name, Object _referenceObject) { - super(_name, _referenceObject); - nexts = new LinkedList<AvatarStateMachineElement>(); - canBeVerified = false; + public AvatarStateMachineElement( final String _name, + final Object _referenceObject ) { + this( _name, _referenceObject, false, false ); } - public AvatarStateMachineElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) { - super(_name, _referenceObject); + public AvatarStateMachineElement( String _name, + Object _referenceObject, + boolean _isCheckable, + final boolean _isChecked ) { + super( _name, _referenceObject ); + nexts = new LinkedList<AvatarStateMachineElement>(); isCheckable = _isCheckable; - isChecked = _isChecked; canBeVerified = false; + isChecked = _isChecked; } public void setAsVerifiable(boolean _canBeVerified) { @@ -107,7 +111,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement { } } - public LinkedList<AvatarStateMachineElement> getNexts() { + public List<AvatarStateMachineElement> getNexts() { return this.nexts; } @@ -203,11 +207,12 @@ public abstract class AvatarStateMachineElement extends AvatarElement { } + @Override public String toString() { return toString(null); } - public String toString(String val) { + protected String toString(String val) { String ret = getExtendedName() + " ID=" + getID(); if (myState == null) { ret += " / top level operator\n"; @@ -255,7 +260,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement { public void replaceAllNext(AvatarStateMachineElement oldone, AvatarStateMachineElement newone) { if (nexts.contains(oldone)) { - LinkedList<AvatarStateMachineElement> oldnexts = nexts; + List<AvatarStateMachineElement> oldnexts = nexts; nexts = new LinkedList<AvatarStateMachineElement>(); for (AvatarStateMachineElement elt : oldnexts) { if (elt == oldone) { @@ -391,6 +396,4 @@ public abstract class AvatarStateMachineElement extends AvatarElement { public abstract String getNiceName(); public abstract void translate(AvatarTranslator translator, Object arg); - - } diff --git a/src/main/java/avatartranslator/AvatarStateMachineOwner.java b/src/main/java/avatartranslator/AvatarStateMachineOwner.java index c5dba3d280cbd5efd95769edd11dfb4bf38a958e..0957a6226769f3bb57da7d2022dd9ae59634bf34 100644 --- a/src/main/java/avatartranslator/AvatarStateMachineOwner.java +++ b/src/main/java/avatartranslator/AvatarStateMachineOwner.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.LinkedList; - +import java.util.List; /** * @@ -50,10 +46,14 @@ import java.util.LinkedList; * @author Florian LUGOU */ public interface AvatarStateMachineOwner { - String getName(); - AvatarStateMachine getStateMachine(); - AvatarSignal getAvatarSignalWithName(String signalName); - AvatarMethod getAvatarMethodWithName(String methodName); + + String getName(); + + AvatarStateMachine getStateMachine(); + + AvatarSignal getAvatarSignalWithName(String signalName); + + AvatarMethod getAvatarMethodWithName(String methodName); /** * Look for an attribute in the list of local attributes, parameters and return values. @@ -66,7 +66,10 @@ public interface AvatarStateMachineOwner { AvatarAttribute getAvatarAttributeWithName(String attributeName); AvatarSpecification getAvatarSpecification(); - LinkedList<AvatarAttribute> getAttributes(); + + List<AvatarAttribute> getAttributes(); + void addAttribute(AvatarAttribute attribute); + AvatarStateMachineOwner advancedClone(AvatarSpecification avspec); } diff --git a/src/main/java/avatartranslator/AvatarStopState.java b/src/main/java/avatartranslator/AvatarStopState.java index acea1bbec529acb17181700be126ee090b4de1d2..99fa3c7fb620ec15543732132649ae42719b29ac 100644 --- a/src/main/java/avatartranslator/AvatarStopState.java +++ b/src/main/java/avatartranslator/AvatarStopState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; /** @@ -55,8 +52,9 @@ public class AvatarStopState extends AvatarStateElement { public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) { AvatarStopState astop = new AvatarStopState(getName(), getReferenceObject()); - astop.setAsVerifiable(canBeVerified()); - return astop; + astop.setAsVerifiable(canBeVerified()); + + return astop; //return null; } @@ -64,7 +62,7 @@ public class AvatarStopState extends AvatarStateElement { return "Stop state"; } - public void translate (AvatarTranslator translator, Object arg) { + public void translate(AvatarTranslator translator, Object arg) { translator.translateStopState (this, arg); } } diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java index 253302658ff05aecd99f9dcfab384ee7ed974f2a..96360b83b7db41ad844cd324bd2bbd1446d350ea 100644 --- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java +++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java @@ -36,11 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; +import java.io.StringReader; +import java.util.List; + import compiler.tmlparser.ParseException; import compiler.tmlparser.SimpleNode; import compiler.tmlparser.TMLExprParser; @@ -50,9 +50,6 @@ import myutil.Conversion; import myutil.IntExpressionEvaluator; import myutil.TraceManager; -import java.io.StringReader; -import java.util.ArrayList; - /** * Class AvatarSyntaxChecker @@ -62,7 +59,6 @@ import java.util.ArrayList; */ public class AvatarSyntaxChecker { - public AvatarSyntaxChecker() { } @@ -87,7 +83,7 @@ public class AvatarSyntaxChecker { BoolExpressionEvaluator bee = new BoolExpressionEvaluator(); //TraceManager.addDev("Evaluating (modified) guard:" + act); - boolean result = bee.getResultOf(act); + //boolean result = bee.getResultOf(act); if (bee.getError() != null) { //TraceManager.addDev("Error: " + bee.getError()); return -1; @@ -114,7 +110,7 @@ public class AvatarSyntaxChecker { IntExpressionEvaluator iee = new IntExpressionEvaluator(); //TraceManager.addDev("Evaluating int:" + act); - double result = iee.getResultOf(act); + //double result = iee.getResultOf(act); if (iee.getError() != null) { //TraceManager.addDev("Error: " + iee.getError()); return -1; @@ -163,7 +159,7 @@ public class AvatarSyntaxChecker { BoolExpressionEvaluator bee = new BoolExpressionEvaluator(); //TraceManager.addDev("IsValidBoolExpr Evaluating bool:" + act); - boolean result = bee.getResultOf(act); + //boolean result = bee.getResultOf(act); if (bee.getError() != null) { //TraceManager.addDev("Error: " + bee.getError()); return -1; @@ -264,7 +260,7 @@ public class AvatarSyntaxChecker { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); for(String s: vars) { // is that string a variable? if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) { diff --git a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java index 15e403fe145730444caf76b39e3bf9b95e80c97b..65cf724cdb308f4416f9c244e2691711dce95982 100644 --- a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java +++ b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; /** diff --git a/src/main/java/avatartranslator/AvatarTerm.java b/src/main/java/avatartranslator/AvatarTerm.java index a1a3b96671587561fabd5a1b12b4036353260d68..45d9b5dfaae6b52e59a3893fca590d87388bd68b 100644 --- a/src/main/java/avatartranslator/AvatarTerm.java +++ b/src/main/java/avatartranslator/AvatarTerm.java @@ -36,17 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; +import java.util.Map; + import myutil.TraceManager; -import translator.RTLOTOSKeyword; import translator.JKeyword; - -import java.util.HashMap; +import translator.RTLOTOSKeyword; /** * Class AvatarTerm @@ -94,7 +90,7 @@ public abstract class AvatarTerm extends AvatarElement { try { // TODO: replace that by a true AvatarNumeric - int i = Integer.parseInt (toParse); + //int i = Integer.parseInt (toParse); result = new AvatarConstant (toParse, block); block.getAvatarSpecification ().addConstant ((AvatarConstant) result); return result; @@ -176,5 +172,5 @@ public abstract class AvatarTerm extends AvatarElement { * @param attributesMapping * The mapping used to replace the attributes of the term. All the attributes of the block should be present as keys. */ - public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping); + public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping); } diff --git a/src/main/java/avatartranslator/AvatarTermFunction.java b/src/main/java/avatartranslator/AvatarTermFunction.java index 67da1aeb40e0f4b306c4c3a33f1fc9723a1db34b..ee3b154c59c1b7d8a2977c53a57392b728a4c2aa 100644 --- a/src/main/java/avatartranslator/AvatarTermFunction.java +++ b/src/main/java/avatartranslator/AvatarTermFunction.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarTermFunction @@ -111,6 +108,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction { return false; } + @Override public String toString () { return this.method.getName () + " " + this.args.toString (); } @@ -126,7 +124,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { this.args.replaceAttributes (attributesMapping); } } diff --git a/src/main/java/avatartranslator/AvatarTermRaw.java b/src/main/java/avatartranslator/AvatarTermRaw.java index 5ac5006c7459e4bd731302f572bf2a03a39ae592..2eb9fb21f03deaa5e1fb730eb308380278402685 100644 --- a/src/main/java/avatartranslator/AvatarTermRaw.java +++ b/src/main/java/avatartranslator/AvatarTermRaw.java @@ -36,12 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarTermRaw @@ -61,6 +58,7 @@ public class AvatarTermRaw extends AvatarTerm { return false; } + @Override public String toString () { return this.raw; } @@ -76,5 +74,5 @@ public class AvatarTermRaw extends AvatarTerm { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { } + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { } } diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java index 5413bfb2e1e02c43dd847f1fdf54fd17767b6042..257b17e8f9a9fc55d5000221fcefa80648eb3a5e 100644 --- a/src/main/java/avatartranslator/AvatarTransition.java +++ b/src/main/java/avatartranslator/AvatarTransition.java @@ -36,12 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package avatartranslator; import java.util.Iterator; import java.util.LinkedList; - +import java.util.List; /** * Class AvatarTransition @@ -73,7 +72,7 @@ public class AvatarTransition extends AvatarStateMachineElement { private String minCompute = "", maxCompute = ""; private AvatarStateMachineOwner block; - private LinkedList<AvatarAction> actions; // actions on variable, or method call + private List<AvatarAction> actions; // actions on variable, or method call public AvatarTransition(AvatarStateMachineOwner _block, String _name, Object _referenceObject) { super(_name, _referenceObject); @@ -135,7 +134,7 @@ public class AvatarTransition extends AvatarStateMachineElement { return false; } - public LinkedList<AvatarAction> getActions() { + public List<AvatarAction> getActions() { return this.actions; } diff --git a/src/main/java/avatartranslator/AvatarTuple.java b/src/main/java/avatartranslator/AvatarTuple.java index 973c9059020bc38373c2aee81a2e9c0a60aa6bf3..4386fe06f5aa479f3d67bd7b677d09608beb90b3 100644 --- a/src/main/java/avatartranslator/AvatarTuple.java +++ b/src/main/java/avatartranslator/AvatarTuple.java @@ -36,14 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * Class AvatarTuple @@ -52,7 +49,7 @@ import java.util.LinkedList; * @author Florian LUGOU */ public class AvatarTuple extends AvatarLeftHand { - LinkedList<AvatarTerm> components; + List<AvatarTerm> components; public AvatarTuple (Object _referenceObject) { super (null, _referenceObject); @@ -96,7 +93,7 @@ public class AvatarTuple extends AvatarLeftHand { this.components.add (term); } - public LinkedList<AvatarTerm> getComponents () { + public List<AvatarTerm> getComponents () { return this.components; } @@ -104,6 +101,7 @@ public class AvatarTuple extends AvatarLeftHand { return this.toString (); } + @Override public String toString () { String result = "("; boolean first = true; @@ -142,8 +140,8 @@ public class AvatarTuple extends AvatarLeftHand { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { - LinkedList<AvatarTerm> components = new LinkedList<AvatarTerm> (); + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { + List<AvatarTerm> components = new LinkedList<AvatarTerm> (); for (AvatarTerm term: this.components) if (term instanceof AvatarAttribute) components.add (attributesMapping.get (term)); diff --git a/src/main/java/avatartranslator/AvatarUnaryGuard.java b/src/main/java/avatartranslator/AvatarUnaryGuard.java index 21c188478311f191a40529d9c0ba5d695ff3d85f..ed463e1d253e776a92bfb6eeded0ee038867ad28 100644 --- a/src/main/java/avatartranslator/AvatarUnaryGuard.java +++ b/src/main/java/avatartranslator/AvatarUnaryGuard.java @@ -36,13 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator; -import java.util.HashMap; +import java.util.Map; /** * Class AvatarUnaryGuard @@ -98,7 +94,7 @@ public class AvatarUnaryGuard extends AvatarComposedGuard { } @Override - public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { + public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { this.guard.replaceAttributes (attributesMapping); } } diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java index e0768d667d19fda7306dc536c89194b5b6e2d5b2..c5c5564faf23285ed974b40e7a0868ba1db67752 100644 --- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java +++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java @@ -547,7 +547,7 @@ public class AvatarSimulationBlock { public void makeAction(String _action, Vector<String> _attributeValues, Vector<String> _actions) { String nameOfVar; String act; - String nameOfMethod; + //String nameOfMethod; int ind; AvatarAction action = AvatarTerm.createActionFromString(block, _action); @@ -568,12 +568,12 @@ public class AvatarSimulationBlock { } act = act.substring(0, ind); - ind = nameOfVar.indexOf("="); - if (ind != -1) { - nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length()); - } else { - nameOfMethod = nameOfVar; - } + //ind = nameOfVar.indexOf("="); +// if (ind != -1) { +// nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length()); +// } else { +// nameOfMethod = nameOfVar; +// } String[] params = act.split(","); String parameters = ""; diff --git a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java index ef6ed4cd49395b4f15f0648977e0304db7ca4be2..517040496fd1d7b60ea3d17c01c1b5245ea7373c 100644 --- a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java +++ b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java @@ -36,18 +36,14 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package avatartranslator.modelchecker; +import java.util.Arrays; +import java.util.List; + import avatartranslator.AvatarAttribute; import avatartranslator.AvatarBlock; -import java.util.Arrays; -import java.util.LinkedList; - /** * Class SpecificationBlock * Coding of a block @@ -74,53 +70,53 @@ public class SpecificationBlock { } public int getHash() { - return Arrays.hashCode(values); + return Arrays.hashCode(values); } public void init(AvatarBlock _block, boolean _ignoreEmptyTransitions) { - - LinkedList<AvatarAttribute> attrs = _block.getAttributes(); - //TraceManager.addDev("Nb of attributes:" + attrs.size()); - //TraceManager.addDev("in block=" + _block.toString()); - values = new int[HEADER_VALUES+attrs.size()]; - - // Initial state - if (_ignoreEmptyTransitions) { - values[STATE_INDEX] = _block.getIndexOfRealStartState(); - } else { - values[STATE_INDEX] = _block.getIndexOfStartState(); - } - - // Clock - values[CLOCKMIN_INDEX] = 0; - values[CLOCKMAX_INDEX] = 0; - - // Attributes - int cpt = HEADER_VALUES; - String initial; - for(AvatarAttribute attr: attrs) { - values[cpt++] = attr.getInitialValueInInt(); - } + List<AvatarAttribute> attrs = _block.getAttributes(); + //TraceManager.addDev("Nb of attributes:" + attrs.size()); + //TraceManager.addDev("in block=" + _block.toString()); + values = new int[HEADER_VALUES+attrs.size()]; + + // Initial state + if (_ignoreEmptyTransitions) { + values[STATE_INDEX] = _block.getIndexOfRealStartState(); + } else { + values[STATE_INDEX] = _block.getIndexOfStartState(); + } + + // Clock + values[CLOCKMIN_INDEX] = 0; + values[CLOCKMAX_INDEX] = 0; + + // Attributes + int cpt = HEADER_VALUES; + //String initial; + for(AvatarAttribute attr: attrs) { + values[cpt++] = attr.getInitialValueInInt(); + } } + @Override public String toString() { - StringBuffer sb = new StringBuffer("Hash="); - //sb.append(getHash()); - for (int i=0; i<values.length; i++) { - sb.append(" "); - sb.append(values[i]); - } - return sb.toString(); + StringBuffer sb = new StringBuffer("Hash="); + //sb.append(getHash()); + for (int i=0; i<values.length; i++) { + sb.append(" "); + sb.append(values[i]); + } + return sb.toString(); } public SpecificationBlock advancedClone() { - SpecificationBlock sb = new SpecificationBlock(); - sb.values = values.clone(); - sb.maxClock = maxClock; - return sb; + SpecificationBlock sb = new SpecificationBlock(); + sb.values = values.clone(); + sb.maxClock = maxClock; + return sb; } public boolean hasTimedTransition() { - return true; + return true; } } diff --git a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java index 45765f96438e21dc9b033676aad3018685a27d49..2b66923be93a465a562185a01b8985f798edcb32 100755 --- a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java +++ b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java @@ -39,14 +39,41 @@ package avatartranslator.toexecutable; -import avatartranslator.*; -import common.SpecConfigTTool; -import myutil.*; - import java.io.File; -import java.util.LinkedList; +import java.util.List; import java.util.Vector; +import avatartranslator.AvatarAction; +import avatartranslator.AvatarActionAssignment; +import avatartranslator.AvatarActionOnSignal; +import avatartranslator.AvatarArithmeticOp; +import avatartranslator.AvatarAttribute; +import avatartranslator.AvatarBlock; +import avatartranslator.AvatarConstant; +import avatartranslator.AvatarLeftHand; +import avatartranslator.AvatarMethod; +import avatartranslator.AvatarRandom; +import avatartranslator.AvatarRelation; +import avatartranslator.AvatarSignal; +import avatartranslator.AvatarSpecification; +import avatartranslator.AvatarStartState; +import avatartranslator.AvatarState; +import avatartranslator.AvatarStateMachine; +import avatartranslator.AvatarStateMachineElement; +import avatartranslator.AvatarStopState; +import avatartranslator.AvatarTerm; +import avatartranslator.AvatarTermFunction; +import avatartranslator.AvatarTermRaw; +import avatartranslator.AvatarTransition; +import avatartranslator.AvatarTuple; +import avatartranslator.AvatarType; +import common.SpecConfigTTool; +import myutil.Conversion; +import myutil.FileException; +import myutil.FileUtils; +import myutil.Plugin; +import myutil.TraceManager; + /** * Class AVATAR2CPOSIX * Creation: 29/03/2011 @@ -63,7 +90,7 @@ public class AVATAR2CPOSIX { private final static String UNUSED_ATTR = "__attribute__((unused))"; private final static String GENERATED_PATH = "generated_src" + File.separator; - private final static String UNKNOWN = "UNKNOWN"; + //private final static String UNKNOWN = "UNKNOWN"; private final static String CR = "\n"; private AvatarSpecification avspec; @@ -305,8 +332,8 @@ public class AVATAR2CPOSIX { private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFile _taskFile) { String ret = ""; - LinkedList<AvatarAttribute> list; - LinkedList<AvatarAttribute> listA; + List<AvatarAttribute> list; + List<AvatarAttribute> listA; String nameMethod = _block.getName() + "__" + _am.getName(); @@ -503,8 +530,7 @@ public class AVATAR2CPOSIX { } public String makeBehaviourFromElement(AvatarBlock _block, AvatarStateMachineElement _asme, boolean firstCall) { - AvatarStateMachineElement asme0; - + //AvatarStateMachineElement asme0; if (_asme == null) { return ""; @@ -536,7 +562,7 @@ public class AVATAR2CPOSIX { ret += "waitFor(" + reworkDelay(at.getMinDelay()) + ", " + reworkDelay(at.getMaxDelay()) + ");" + CR; } - String act; + //String act; ret += makeActionsOfTransaction(_block, at); /*for(i=0; i<at.getNbOfAction(); i++) { // Must know whether this is an action or a method call @@ -649,7 +675,7 @@ public class AVATAR2CPOSIX { AvatarActionOnSignal aaos = (AvatarActionOnSignal) _asme; ret += makeSignalAction(aaos, 0, false, "", ""); AvatarSignal as = aaos.getSignal(); - AvatarRelation ar = avspec.getAvatarRelationWithSignal(as); + //AvatarRelation ar = avspec.getAvatarRelationWithSignal(as); ret += executeOneRequest("__req0"); ret += traceRequest(); } diff --git a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java index 932a74073f476b904837c299c1bcb87c231b266c..a6f3ba1905b04256836ae85d99aa63fbb09074bb 100755 --- a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java +++ b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator.toproverif; import avatartranslator.*; @@ -62,6 +59,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Map; /** * Class AVATAR2ProVerif @@ -228,7 +226,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { return result; } - protected static String translateTerm (AvatarTerm term, HashMap<AvatarAttribute, Integer> attributeCmp) { + protected static String translateTerm (AvatarTerm term, Map<AvatarAttribute, Integer> attributeCmp) { if (term instanceof AvatarAttribute) { AvatarAttribute attr = (AvatarAttribute) term; if (attributeCmp != null) { @@ -341,7 +339,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { // Supported guards: a == b, not(a == b), g1 and g2, g1 or g2 // -> transformed into a = b, a <> b, g1 && g2, g1 || g2 // Returns nulls otherwise - private static String translateGuard (AvatarGuard _guard, HashMap<AvatarAttribute, Integer> attributeCmp) { + private static String translateGuard (AvatarGuard _guard, Map<AvatarAttribute, Integer> attributeCmp) { TraceManager.addDev(_guard.toString()); if (_guard == null || _guard instanceof AvatarGuardEmpty) return null; @@ -501,7 +499,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { List<AvatarBlock> blocks = this.avspec.getListOfBlocks(); // String action = "("; for(AvatarBlock block: blocks) { - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); + Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null) simplifiedElements.put (block.getStateMachine ().getStartState (), new Integer (0)); @@ -734,7 +732,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { lastInstr = lastInstr.setNextInstr (paral); for(AvatarBlock block: blocks) { - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); + Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements (); if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null) paral.addInstr (new ProVerifProcCall (block.getName () + ATTR_DELIM + "0", new ProVerifVar[] {new ProVerifVar ("sessionID", "bitstring")})); @@ -944,7 +942,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { lastInstr = lastInstr.setNextInstr (new ProVerifProcRaw (tmp + ")))")); // Generate a new process for every simplified element of the block's state machine - HashMap<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements (); + Map<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements (); if (simplifiedElements.get (ab.getStateMachine ().getStartState ()) == null) simplifiedElements.put (ab.getStateMachine ().getStartState (), new Integer (0)); @@ -993,8 +991,8 @@ public class AVATAR2ProVerif implements AvatarTranslator { class ProVerifTranslatorParameter { AvatarBlock block; ProVerifProcInstr lastInstr; - HashMap<AvatarStateMachineElement, Integer> simplifiedElements; - HashMap<AvatarAttribute, Integer> attributeCmp; + Map<AvatarStateMachineElement, Integer> simplifiedElements; + Map<AvatarAttribute, Integer> attributeCmp; AvatarStateMachineElement lastASME; } @@ -1200,7 +1198,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { if (rightHand instanceof AvatarTermFunction) { // If it's a function call String name = ((AvatarTermFunction) rightHand).getMethod ().getName (); - LinkedList<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents (); + List<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents (); if (name.equals ("concat2") || name.equals ("concat3") || name.equals ("concat4")) { // If it's a concat function, just use tuples @@ -1279,7 +1277,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { if (name.equals ("get2") || name.equals ("get3") || name.equals ("get4")) { // If the function called is get[234] - LinkedList<AvatarTerm> args = action.getArgs ().getComponents (); + List<AvatarTerm> args = action.getArgs ().getComponents (); int index = (int) name.charAt (3) - 48; boolean ok = true; @@ -1393,7 +1391,7 @@ public class AVATAR2ProVerif implements AvatarTranslator { } _lastInstr = _lastInstr.setNextInstr (new ProVerifProcIn (CH_MAINCH, new ProVerifVar[] {new ProVerifVar ("choice" + ATTR_DELIM + _asme.getName (), "bitstring")})); - HashMap<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp; + Map<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp; for (int i=0; i<nbOfNexts-1; i++) { String choice = "choice" + ATTR_DELIM + _asme.getName () + ATTR_DELIM + i; ProVerifProcITE ite = new ProVerifProcITE ("choice" + ATTR_DELIM + _asme.getName () + " = " + choice); diff --git a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java index c7da1aa5f675c38a8990891252105be5add4b7b2..2f30039703dcc8b81e3913a9f04a0b001229a26b 100755 --- a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java +++ b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator.touppaal; import avatartranslator.*; @@ -53,10 +50,12 @@ import uppaaldesc.UPPAALSpec; import uppaaldesc.UPPAALTemplate; import uppaaldesc.UPPAALTransition; -import java.awt.*; +import java.awt.Point; import java.util.Hashtable; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * Class AVATAR2UPPAAL @@ -74,20 +73,20 @@ public class AVATAR2UPPAAL { private UPPAALSpec spec; private AvatarSpecification avspec; - private LinkedList<CheckingError> warnings; + private List<CheckingError> warnings; private int currentX, currentY; - private java.util.List<String> gatesNotSynchronized; // String - private java.util.List<String> gatesSynchronized; - private java.util.List<AvatarRelation> gatesSynchronizedRelations; - private java.util.List<String> gatesAsynchronized; - private java.util.List<String> unoptStates; + private List<String> gatesNotSynchronized; // String + private List<String> gatesSynchronized; + private List<AvatarRelation> gatesSynchronizedRelations; + private List<String> gatesAsynchronized; + private List<String> unoptStates; private int nbOfIntParameters, nbOfBooleanParameters; - private Hashtable <AvatarStateMachineElement, UPPAALLocation> hash; - private Hashtable <AvatarStateMachineElement, UPPAALLocation> hashChecking; - private Hashtable <String, String> translateString; + private Map<AvatarStateMachineElement, UPPAALLocation> hash; + private Map<AvatarStateMachineElement, UPPAALLocation> hashChecking; + private Map<String, String> translateString; public final static int STEP_X = 5; public final static int STEP_Y = 70; public final static int STEP_LOOP_X = 150; @@ -150,22 +149,22 @@ public class AVATAR2UPPAAL { // } - - public LinkedList<CheckingError> getWarnings() { + public List<CheckingError> getWarnings() { return warnings; } /*public RelationTIFUPPAAL getRelationTIFUPPAAL () { return table; }*/ - public Hashtable <String, String> getHash(){ - return translateString; + public Map<String, String> getHash(){ + return translateString; } + public UPPAALSpec generateUPPAAL(boolean _debug, boolean _optimize) { warnings = new LinkedList<CheckingError>(); hash = new Hashtable<AvatarStateMachineElement, UPPAALLocation>(); hashChecking = new Hashtable<AvatarStateMachineElement, UPPAALLocation>(); - translateString = new Hashtable<String, String>(); + translateString = new Hashtable<String, String>(); spec = new UPPAALSpec(); avspec.removeCompositeStates(); @@ -173,16 +172,17 @@ public class AVATAR2UPPAAL { avspec.removeTimers(); //avspec.removeFIFOs(2); avspec.makeRobustness(); - java.util.List<String> uppaalPragmas = avspec.getSafetyPragmas(); - unoptStates= new LinkedList<String>(); - for (String s: uppaalPragmas){ - String[] split = s.split("[^a-zA-Z0-9\\.]"); - for (String t:split){ - if (t.contains(".")){ - unoptStates.add(t); - } - } - } + List<String> uppaalPragmas = avspec.getSafetyPragmas(); + unoptStates= new LinkedList<String>(); + + for (String s: uppaalPragmas){ + String[] split = s.split("[^a-zA-Z0-9\\.]"); + for (String t:split){ + if (t.contains(".")){ + unoptStates.add(t); + } + } + } //TraceManager.addDev("-> Spec:" + avspec.toString()); @@ -582,7 +582,7 @@ public class AVATAR2UPPAAL { TraceManager.addDev("************************* NULL PREVIOUS !!!!!!!*****************"); } //TraceManager.addDev("Linking myself = " + _elt + " to " + loc); - UPPAALLocation locc = hashChecking.get(_elt); + //UPPAALLocation locc = hashChecking.get(_elt); if (_elt != null) { //TraceManager.addDev("In hash:" + _elt + " in location:" + locc); } @@ -1059,7 +1059,7 @@ public class AVATAR2UPPAAL { //TraceManager.addDev("Method name:" + mc); setSynchronization(_tr, mc); - LinkedList<AvatarTerm> arguments = action.getArgs ().getComponents (); + List<AvatarTerm> arguments = action.getArgs ().getComponents (); for(AvatarTerm arg: arguments) { if (!(arg instanceof AvatarAttribute)) continue; diff --git a/src/main/java/compiler/tmlparser/SimpleNode.java b/src/main/java/compiler/tmlparser/SimpleNode.java index dbe16a462639bc6ae950a2ca2525fd6fc29b9ffa..13759d2b13e2dcfc1e4e7621b395202ae4215dfa 100755 --- a/src/main/java/compiler/tmlparser/SimpleNode.java +++ b/src/main/java/compiler/tmlparser/SimpleNode.java @@ -36,21 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package compiler.tmlparser; - - - - - /* Has been partially generated by: JJTree */ /* Generated By:JJTree: Do not edit this line. SimpleNode.java */ import java.util.ArrayList; +import java.util.List; /** @@ -88,6 +80,7 @@ public class SimpleNode implements Node { } public void jjtSetParent(Node n) { parent = n; } + public Node jjtGetParent() { return parent; } public void jjtAddChild(Node n, int i) { @@ -116,6 +109,7 @@ public class SimpleNode implements Node { you need to do. */ //public String toString() { return TMLExprParserTreeConstants.jjtNodeName[id]; } + @Override public String toString() { return TMLExprParserTreeConstants.jjtNodeName[id] + "/" + kind + "/" + value; } @@ -136,13 +130,13 @@ public class SimpleNode implements Node { } } - public ArrayList<String> getVariables() { - ArrayList<String> list = new ArrayList<String>(); + public List<String> getVariables() { + List<String> list = new ArrayList<String>(); getVariables(list); return list; } - public void getVariables(ArrayList<String> list) { + public void getVariables( List<String> list) { String s; s = TMLExprParserTreeConstants.jjtNodeName[id]; diff --git a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java index 3ef5b9b2ea6885d86bd90121714adef4bad1b78e..d1a5a5c5ee0e18f9ac6664d4bd3f29facffd7a24 100755 --- a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java +++ b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java @@ -36,14 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ddtranslatorSoclib.toSoclib; -import avatartranslator.*; -import ddtranslatorSoclib.AvatarRAM; +import java.io.File; +import java.util.List; +import java.util.Vector; + +import avatartranslator.AvatarAction; +import avatartranslator.AvatarActionAssignment; +import avatartranslator.AvatarActionOnSignal; +import avatartranslator.AvatarAttribute; +import avatartranslator.AvatarBlock; +import avatartranslator.AvatarMethod; +import avatartranslator.AvatarRandom; +import avatartranslator.AvatarRelation; +import avatartranslator.AvatarSignal; +import avatartranslator.AvatarSpecification; +import avatartranslator.AvatarStartState; +import avatartranslator.AvatarState; +import avatartranslator.AvatarStateMachine; +import avatartranslator.AvatarStateMachineElement; +import avatartranslator.AvatarStopState; +import avatartranslator.AvatarTransition; +import avatartranslator.AvatarType; import ddtranslatorSoclib.AvatarCoproMWMR; +import ddtranslatorSoclib.AvatarRAM; import ddtranslatorSoclib.AvatarTask; import ddtranslatorSoclib.AvatarddSpecification; import ddtranslatorSoclib.toTopCell.TopCellGenerator; @@ -52,11 +69,6 @@ import myutil.FileException; import myutil.FileUtils; import myutil.TraceManager; -import java.io.File; -import java.util.LinkedList; -import java.util.List; -import java.util.Vector; - /** * Class AVATAR2CSOCLIB * Creation: 01/07/2014 @@ -114,8 +126,7 @@ public class TasksAndMainGenerator { } public void saveInFiles(String path) throws FileException { - - System.err.println("ok"); + System.err.println("ok"); TraceManager.addDev("Generating files"); if (mainFile != null) { @@ -125,8 +136,8 @@ public class TasksAndMainGenerator { } for(TaskFileSoclib taskFile: taskFiles) { - FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2)); - FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2)); + FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2)); + FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2)); } // Standard Makefile @@ -164,11 +175,11 @@ public class TasksAndMainGenerator { makeMainMutex(); - makeSynchronousChannels(); + makeSynchronousChannels(); makeAsynchronousChannels(); - makeThreadsInMain(debug); + makeThreadsInMain(debug); } public void makeMainMutex() { @@ -185,17 +196,17 @@ public class TasksAndMainGenerator { //for(AvatarRelation ar: avspec.getRelations()) { for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { - - for(AvatarRelation ar: avspec.getRelations()) { - - for(int i=0; i<ar.nbOfSignals() ; i++) { - - mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); - mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel - d++; - } - } - } + + for(AvatarRelation ar: avspec.getRelations()) { + + for(int i=0; i<ar.nbOfSignals() ; i++) { + + mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); + mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel + d++; + } + } + } mainFile.appendToBeforeMainCode("#define base(arg) arg" + CR2 ); mainFile.appendToBeforeMainCode("typedef struct mwmr_s mwmr_t;" + CR2); @@ -204,143 +215,142 @@ public class TasksAndMainGenerator { mainFile.appendToMainCode("pthread_attr_t *attr_t = malloc(sizeof(pthread_attr_t));" +CR); mainFile.appendToMainCode("pthread_attr_init(attr_t);" + CR ); mainFile.appendToMainCode("pthread_mutex_init(&__mainMutex, NULL);" +CR2); - mainFile.appendToMainCode("int sizeParams;" +CR2); //DG 13.06. + mainFile.appendToMainCode("int sizeParams;" +CR2); //DG 13.06. } public void makeSynchronousChannels() { - int i=0; int j=0; + int i=0; //int j=0; // Create synchronous channel signals mainFile.appendToHCode("/* Synchronous channels */" + CR); mainFile.appendToBeforeMainCode("/* Synchronous channels */" + CR); mainFile.appendToMainCode("/* Synchronous channels */" + CR); - k=0; + k=0; for(AvatarRelation ar: avspec.getRelations()) { - - if (!ar.isAsynchronous()) { - - - for(i=0; i<ar.nbOfSignals() ; i++) { - ar.setId(i); - mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); + if (!ar.isAsynchronous()) { - mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR); + for(i=0; i<ar.nbOfSignals() ; i++) { + ar.setId(i); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); - + mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); - AvatarSignal sig = ar.getSignal1(i); - int nbParams= sig.getNbParams(); - - int sizeParams = 0; - - if (nbParams>0) - mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); - - else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR); - - mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2); + mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR); - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); - mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); - - if(sig.isIn()){ - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR); - } + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); - if(sig.isOut()){ - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR); - } - /* init because mutekh initializer does not work for this */ - mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); + AvatarSignal sig = ar.getSignal1(i); + int nbParams= sig.getNbParams(); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR); - - mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); - mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); - - mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); - - mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); - k++; - - } - } - } - } + //int sizeParams = 0; - public void makeAsynchronousChannels() { - if (avspec.ASynchronousExist()){ - // Create an asynchronous channel per relation/signal - mainFile.appendToHCode("/* Asynchronous channels */" + CR); - mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR); - mainFile.appendToMainCode("/* Asynchronous channels */" + CR); - int j=0; - for(AvatarRelation ar: avspec.getRelations()) { - - if (ar.isAsynchronous()) { - for(int i=0; i<ar.nbOfSignals() ; i++) { + if (nbParams>0) + mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); - ar.setId(i); - mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); + else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR); - mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR); - - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); + mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2); - - AvatarSignal sig = ar.getSignal1(i); - int nbParams= sig.getNbParams(); - - if (nbParams>0) - mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); - else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); - - mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR); - - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); - mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); - if (ar.isBlocking()) { - mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR); - } else { - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR); - } - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR); - - mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); - - /* force init because mutekh initializer does not work her */ - mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); - mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR); - mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); - mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); - mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); - mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); - k++; - } - } - } - } + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); + mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); + + if(sig.isIn()){ + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR); + } + + if(sig.isOut()){ + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR); + } + + /* init because mutekh initializer does not work for this */ + mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); + + mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR); + + mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); + mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); + + mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); + + mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); + k++; + + } + } + } + } + + public void makeAsynchronousChannels() { + if (avspec.ASynchronousExist()){ + // Create an asynchronous channel per relation/signal + mainFile.appendToHCode("/* Asynchronous channels */" + CR); + mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR); + mainFile.appendToMainCode("/* Asynchronous channels */" + CR); + //int j=0; + for(AvatarRelation ar: avspec.getRelations()) { + + if (ar.isAsynchronous()) { + for(int i=0; i<ar.nbOfSignals() ; i++) { + + ar.setId(i); + mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); + + mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR); + + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2); + + + AvatarSignal sig = ar.getSignal1(i); + int nbParams= sig.getNbParams(); + + if (nbParams>0) + mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR); + else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR); + + mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR); + + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); + mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); + if (ar.isBlocking()) { + mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR); + } else { + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR); + } + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR); + + mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR); + + /* force init because mutekh initializer does not work her */ + mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR); + mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR); + mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); + mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); + mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR); + mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2); + k++; + } + } + } + } } //DG 19.09. need this for main program generation @@ -356,7 +366,7 @@ public class TasksAndMainGenerator { return -1; }*/ - public int FindCPUidFromTask(AvatarBlock block){ + public int findCPUidFromTask(AvatarBlock block){ List<AvatarTask> tasks = avddspec.getAllMappedTask(); for (AvatarTask task : tasks){ @@ -370,41 +380,40 @@ public class TasksAndMainGenerator { /* DG 7.7. give CPUid of outer block to block created e.g. for a timer */ public void makeTasks() { - for(AvatarBlock block: avspec.getListOfBlocks()) { - if (FindCPUidFromTask(block)!=-1) - makeTask(block,FindCPUidFromTask(block)); - else { - //AvatarBlock father = block.getFather(); - //if(father!=null){ //DG bug: donne null pointer - //makeTask(block,FindCPUidFromTask(father)); - makeTask(block,0); - - - } - //DG 19.09. found coproc do not make task - - } - } + for(AvatarBlock block: avspec.getListOfBlocks()) { + if (findCPUidFromTask(block)!=-1) + makeTask(block,findCPUidFromTask(block)); + else { + //AvatarBlock father = block.getFather(); + //if(father!=null){ //DG bug: donne null pointer + //makeTask(block,FindCPUidFromTask(father)); + makeTask(block,0); + + } + //DG 19.09. found coproc do not make task + + } + } public void makeTask(AvatarBlock block , int cpuId) { - TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId); - - if (includeUserCode) { - String tmp = block.getGlobalCode(); - if (tmp != null) { - taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR); - } - } - defineAllSignal(block,taskFile); + TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId); + + if (includeUserCode) { + String tmp = block.getGlobalCode(); + if (tmp != null) { + taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR); + } + } + defineAllSignal(block,taskFile); - defineAllStates(block, taskFile); + defineAllStates(block, taskFile); - defineAllMethods(block, taskFile); + defineAllMethods(block, taskFile); - makeMainFunction(block, taskFile); + makeMainFunction(block, taskFile); - taskFiles.add(taskFile); + taskFiles.add(taskFile); } // --------------------------------------------------------- @@ -457,8 +466,8 @@ public class TasksAndMainGenerator { private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFileSoclib _taskFile) { String ret = ""; - LinkedList<AvatarAttribute> list; - LinkedList<AvatarAttribute> listA; + List<AvatarAttribute> list; + List<AvatarAttribute> listA; String nameMethod = _block.getName() + "__" +_am.getName(); diff --git a/src/main/java/elntranslator/ELNSpecification.java b/src/main/java/elntranslator/ELNSpecification.java index 002a22c6f29bd7e26c5c0f23fa28083753feb046..bea04473f2b5905b218d43b55912374e90b2a967 100644 --- a/src/main/java/elntranslator/ELNSpecification.java +++ b/src/main/java/elntranslator/ELNSpecification.java @@ -47,260 +47,427 @@ import java.util.List; * Creation: 23/07/2018 * @version 1.0 23/07/2018 * @author Irina Kit Yan LEE -*/ + */ public class ELNSpecification{ - private List<ELNTComponent> components; - private List<ELNTConnector> connectors; - - public ELNSpecification(List<ELNTComponent> _components, List<ELNTConnector> _connectors){ - components = _components ; - connectors = _connectors ; - } - - public List<ELNTComponent> getComponents(){ - return components; - } - - public List<ELNTConnector> getConnectors(){ - return connectors; - } - - public LinkedList<ELNTComponentCapacitor> getAllComponentCapacitor(){ + private List<ELNTComponent> elnComponents; + private List<ELNTConnector> elnConnectors; + + public ELNSpecification(List<ELNTComponent> _elnComponents, List<ELNTConnector> _elnConnectors){ + elnComponents = _elnComponents ; + elnConnectors = _elnConnectors ; + } + + public List<ELNTComponent> getELNComponents(){ + return elnComponents; + } + + public List<ELNTConnector> getELNConnectors(){ + return elnConnectors; + } + + public LinkedList<ELNTConnector> getAllConnectorsInCluster(){ + LinkedList<ELNTConnector> cons = new LinkedList<ELNTConnector>(); + for (ELNTConnector con : elnConnectors) { + if ((con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal) + || (con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTClusterTerminal) + || (con.get_p1().getComponent() instanceof ELNTClusterTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal) + || (con.get_p1().getComponent() instanceof ELNTModulePortDE && con.get_p2().getComponent() instanceof ELNTClusterPortDE) + || (con.get_p1().getComponent() instanceof ELNTClusterPortDE && con.get_p2().getComponent() instanceof ELNTModulePortDE) + || (con.get_p1().getComponent() instanceof ELNTModulePortTDF && con.get_p2().getComponent() instanceof ELNTClusterPortTDF) + || (con.get_p1().getComponent() instanceof ELNTClusterPortTDF && con.get_p2().getComponent() instanceof ELNTModulePortTDF)) { + cons.add(con); + } + } + return cons; + } + + public LinkedList<ELNTConnector> getAllConnectorsInModule(){ + LinkedList<ELNTConnector> cons = new LinkedList<ELNTConnector>(); + for (ELNTConnector con : elnConnectors) { + if (!((con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal) + || (con.get_p1().getComponent() instanceof ELNTModuleTerminal && con.get_p2().getComponent() instanceof ELNTClusterTerminal) + || (con.get_p1().getComponent() instanceof ELNTClusterTerminal && con.get_p2().getComponent() instanceof ELNTModuleTerminal) + || (con.get_p1().getComponent() instanceof ELNTModulePortDE && con.get_p2().getComponent() instanceof ELNTClusterPortDE) + || (con.get_p1().getComponent() instanceof ELNTClusterPortDE && con.get_p2().getComponent() instanceof ELNTModulePortDE) + || (con.get_p1().getComponent() instanceof ELNTModulePortTDF && con.get_p2().getComponent() instanceof ELNTClusterPortTDF) + || (con.get_p1().getComponent() instanceof ELNTClusterPortTDF && con.get_p2().getComponent() instanceof ELNTModulePortTDF))) { + cons.add(con); + } + } + return cons; + } + + public ELNTCluster getCluster(){ + for (ELNTComponent comp : elnComponents) { + if (comp instanceof ELNTCluster) { + return (ELNTCluster) comp; + } + } + return null; + } + + public LinkedList<ELNTClusterTerminal> getAllClusterTerminal(){ + LinkedList<ELNTClusterTerminal> clusterTerminals = new LinkedList<ELNTClusterTerminal>(); + for (ELNTComponent clusterTerminal : elnComponents) { + if (clusterTerminal instanceof ELNTClusterTerminal) { + clusterTerminals.add((ELNTClusterTerminal) clusterTerminal); + } + } + return clusterTerminals; + } + + public LinkedList<ELNTClusterPortDE> getAllClusterPortDE(){ + LinkedList<ELNTClusterPortDE> clusterPortsDE = new LinkedList<ELNTClusterPortDE>(); + for (ELNTComponent clusterPortDE : elnComponents) { + if (clusterPortDE instanceof ELNTClusterPortDE) { + clusterPortsDE.add((ELNTClusterPortDE) clusterPortDE); + } + } + return clusterPortsDE; + } + + public LinkedList<ELNTClusterPortTDF> getAllClusterPortTDF(){ + LinkedList<ELNTClusterPortTDF> clusterPortsTDF = new LinkedList<ELNTClusterPortTDF>(); + for (ELNTComponent clusterPortTDF : elnComponents) { + if (clusterPortTDF instanceof ELNTClusterPortTDF) { + clusterPortsTDF.add((ELNTClusterPortTDF) clusterPortTDF); + } + } + return clusterPortsTDF; + } + + public LinkedList<ELNTComponentCapacitor> getAllComponentCapacitor(){ LinkedList<ELNTComponentCapacitor> capacitors = new LinkedList<ELNTComponentCapacitor>(); - for (ELNTComponent capacitor : components) { + for (ELNTComponent capacitor : elnComponents) { if (capacitor instanceof ELNTComponentCapacitor) { capacitors.add((ELNTComponentCapacitor) capacitor); } } return capacitors; - } - - public LinkedList<ELNTComponentCurrentSinkTDF> getAllComponentCurrentSinkTDF(){ + } + + public LinkedList<ELNTComponentCurrentSinkDE> getAllComponentCurrentSinkDE(){ + LinkedList<ELNTComponentCurrentSinkDE> DE_isinks = new LinkedList<ELNTComponentCurrentSinkDE>(); + for (ELNTComponent DE_isink : elnComponents) { + if (DE_isink instanceof ELNTComponentCurrentSinkDE) { + DE_isinks.add((ELNTComponentCurrentSinkDE) DE_isink); + } + } + return DE_isinks; + } + + public LinkedList<ELNTComponentCurrentSourceDE> getAllComponentCurrentSourceDE(){ + LinkedList<ELNTComponentCurrentSourceDE> DE_isources = new LinkedList<ELNTComponentCurrentSourceDE>(); + for (ELNTComponent DE_isource : elnComponents) { + if (DE_isource instanceof ELNTComponentCurrentSourceDE) { + DE_isources.add((ELNTComponentCurrentSourceDE) DE_isource); + } + } + return DE_isources; + } + + public LinkedList<ELNTComponentCurrentSinkTDF> getAllComponentCurrentSinkTDF(){ LinkedList<ELNTComponentCurrentSinkTDF> TDF_isinks = new LinkedList<ELNTComponentCurrentSinkTDF>(); - for (ELNTComponent TDF_isink : components) { + for (ELNTComponent TDF_isink : elnComponents) { if (TDF_isink instanceof ELNTComponentCurrentSinkTDF) { TDF_isinks.add((ELNTComponentCurrentSinkTDF) TDF_isink); } } return TDF_isinks; - } - - public LinkedList<ELNTComponentCurrentSourceTDF> getAllComponentCurrentSourceTDF(){ + } + + public LinkedList<ELNTComponentCurrentSourceTDF> getAllComponentCurrentSourceTDF(){ LinkedList<ELNTComponentCurrentSourceTDF> TDF_isources = new LinkedList<ELNTComponentCurrentSourceTDF>(); - for (ELNTComponent TDF_isource : components) { + for (ELNTComponent TDF_isource : elnComponents) { if (TDF_isource instanceof ELNTComponentCurrentSourceTDF) { TDF_isources.add((ELNTComponentCurrentSourceTDF) TDF_isource); } } return TDF_isources; - } - - public LinkedList<ELNTComponentIdealTransformer> getAllComponentIdealTransformer(){ + } + + public LinkedList<ELNTComponentIdealTransformer> getAllComponentIdealTransformer(){ LinkedList<ELNTComponentIdealTransformer> idealTransformers = new LinkedList<ELNTComponentIdealTransformer>(); - for (ELNTComponent idealTransformer : components) { + for (ELNTComponent idealTransformer : elnComponents) { if (idealTransformer instanceof ELNTComponentIdealTransformer) { idealTransformers.add((ELNTComponentIdealTransformer) idealTransformer); } } return idealTransformers; - } - - public LinkedList<ELNTComponentIndependentCurrentSource> getAllComponentIndependentCurrentSource(){ + } + + public LinkedList<ELNTComponentIndependentCurrentSource> getAllComponentIndependentCurrentSource(){ LinkedList<ELNTComponentIndependentCurrentSource> isources = new LinkedList<ELNTComponentIndependentCurrentSource>(); - for (ELNTComponent isource : components) { + for (ELNTComponent isource : elnComponents) { if (isource instanceof ELNTComponentIndependentCurrentSource) { isources.add((ELNTComponentIndependentCurrentSource) isource); } } return isources; - } - - public LinkedList<ELNTComponentIndependentVoltageSource> getAllComponentIndependentVoltageSource(){ + } + + public LinkedList<ELNTComponentIndependentVoltageSource> getAllComponentIndependentVoltageSource(){ LinkedList<ELNTComponentIndependentVoltageSource> vsources = new LinkedList<ELNTComponentIndependentVoltageSource>(); - for (ELNTComponent vsource : components) { + for (ELNTComponent vsource : elnComponents) { if (vsource instanceof ELNTComponentIndependentVoltageSource) { vsources.add((ELNTComponentIndependentVoltageSource) vsource); } } return vsources; - } - - public LinkedList<ELNTComponentInductor> getAllComponentInductor(){ + } + + public LinkedList<ELNTComponentInductor> getAllComponentInductor(){ LinkedList<ELNTComponentInductor> inductors = new LinkedList<ELNTComponentInductor>(); - for (ELNTComponent inductor : components) { + for (ELNTComponent inductor : elnComponents) { if (inductor instanceof ELNTComponentInductor) { inductors.add((ELNTComponentInductor) inductor); } } return inductors; - } - - public LinkedList<ELNTComponentNodeRef> getAllComponentNodeRef(){ - LinkedList<ELNTComponentNodeRef> nodeRefs = new LinkedList<ELNTComponentNodeRef>(); - for (ELNTComponent nodeRef : components) { - if (nodeRef instanceof ELNTComponentNodeRef) { - nodeRefs.add((ELNTComponentNodeRef) nodeRef); + } + + public LinkedList<ELNTNodeRef> getAllComponentNodeRef(){ + LinkedList<ELNTNodeRef> nodeRefs = new LinkedList<ELNTNodeRef>(); + for (ELNTComponent nodeRef : elnComponents) { + if (nodeRef instanceof ELNTNodeRef) { + nodeRefs.add((ELNTNodeRef) nodeRef); } } return nodeRefs; - } - - public LinkedList<ELNTComponentResistor> getAllComponentResistor(){ + } + + public LinkedList<ELNTComponentResistor> getAllComponentResistor(){ LinkedList<ELNTComponentResistor> resistors = new LinkedList<ELNTComponentResistor>(); - for (ELNTComponent resistor : components) { + for (ELNTComponent resistor : elnComponents) { if (resistor instanceof ELNTComponentResistor) { resistors.add((ELNTComponentResistor) resistor); } } return resistors; - } - - public LinkedList<ELNTComponentTransmissionLine> getAllComponentTransmissionLine(){ + } + + public LinkedList<ELNTComponentTransmissionLine> getAllComponentTransmissionLine(){ LinkedList<ELNTComponentTransmissionLine> transmissionLines = new LinkedList<ELNTComponentTransmissionLine>(); - for (ELNTComponent transmissionLine : components) { + for (ELNTComponent transmissionLine : elnComponents) { if (transmissionLine instanceof ELNTComponentTransmissionLine) { transmissionLines.add((ELNTComponentTransmissionLine) transmissionLine); } } return transmissionLines; - } - - public LinkedList<ELNTComponentVoltageControlledCurrentSource> getAllComponentVoltageControlledCurrentSource(){ + } + + public LinkedList<ELNTComponentVoltageControlledCurrentSource> getAllComponentVoltageControlledCurrentSource(){ LinkedList<ELNTComponentVoltageControlledCurrentSource> vccss = new LinkedList<ELNTComponentVoltageControlledCurrentSource>(); - for (ELNTComponent vccs : components) { + for (ELNTComponent vccs : elnComponents) { if (vccs instanceof ELNTComponentVoltageControlledCurrentSource) { vccss.add((ELNTComponentVoltageControlledCurrentSource) vccs); } } return vccss; - } - - public LinkedList<ELNTComponentVoltageControlledVoltageSource> getAllComponentVoltageControlledVoltageSource(){ + } + + public LinkedList<ELNTComponentVoltageControlledVoltageSource> getAllComponentVoltageControlledVoltageSource(){ LinkedList<ELNTComponentVoltageControlledVoltageSource> vcvss = new LinkedList<ELNTComponentVoltageControlledVoltageSource>(); - for (ELNTComponent vcvs : components) { + for (ELNTComponent vcvs : elnComponents) { if (vcvs instanceof ELNTComponentVoltageControlledVoltageSource) { vcvss.add((ELNTComponentVoltageControlledVoltageSource) vcvs); } } return vcvss; - } - - public LinkedList<ELNTComponentVoltageSinkTDF> getAllComponentVoltageSinkTDF(){ + } + + public LinkedList<ELNTComponentVoltageSinkDE> getAllComponentVoltageSinkDE(){ + LinkedList<ELNTComponentVoltageSinkDE> DE_vsinks = new LinkedList<ELNTComponentVoltageSinkDE>(); + for (ELNTComponent DE_vsink : elnComponents) { + if (DE_vsink instanceof ELNTComponentVoltageSinkDE) { + DE_vsinks.add((ELNTComponentVoltageSinkDE) DE_vsink); + } + } + return DE_vsinks; + } + + public LinkedList<ELNTComponentVoltageSourceDE> getAllComponentVoltageSourceDE(){ + LinkedList<ELNTComponentVoltageSourceDE> DE_vsources = new LinkedList<ELNTComponentVoltageSourceDE>(); + for (ELNTComponent DE_vsource : elnComponents) { + if (DE_vsource instanceof ELNTComponentVoltageSourceDE) { + DE_vsources.add((ELNTComponentVoltageSourceDE) DE_vsource); + } + } + return DE_vsources; + } + + public LinkedList<ELNTComponentVoltageSinkTDF> getAllComponentVoltageSinkTDF(){ LinkedList<ELNTComponentVoltageSinkTDF> TDF_vsinks = new LinkedList<ELNTComponentVoltageSinkTDF>(); - for (ELNTComponent TDF_vsink : components) { + for (ELNTComponent TDF_vsink : elnComponents) { if (TDF_vsink instanceof ELNTComponentVoltageSinkTDF) { TDF_vsinks.add((ELNTComponentVoltageSinkTDF) TDF_vsink); } } return TDF_vsinks; - } - - public LinkedList<ELNTComponentVoltageSourceTDF> getAllComponentVoltageSourceTDF(){ + } + + public LinkedList<ELNTComponentVoltageSourceTDF> getAllComponentVoltageSourceTDF(){ LinkedList<ELNTComponentVoltageSourceTDF> TDF_vsources = new LinkedList<ELNTComponentVoltageSourceTDF>(); - for (ELNTComponent TDF_vsource : components) { + for (ELNTComponent TDF_vsource : elnComponents) { if (TDF_vsource instanceof ELNTComponentVoltageSourceTDF) { TDF_vsources.add((ELNTComponentVoltageSourceTDF) TDF_vsource); } } return TDF_vsources; - } - - public LinkedList<ELNTMidPortTerminal> getAllMidPortTerminal(){ + } + + public LinkedList<ELNTMidPortTerminal> getAllMidPortTerminal(){ LinkedList<ELNTMidPortTerminal> midPortTerminals = new LinkedList<ELNTMidPortTerminal>(); - for (ELNTComponent midPortTerminal : components) { + for (ELNTComponent midPortTerminal : elnComponents) { if (midPortTerminal instanceof ELNTMidPortTerminal) { midPortTerminals.add((ELNTMidPortTerminal) midPortTerminal); } } return midPortTerminals; - } - - public LinkedList<ELNTModule> getAllModule(){ + } + + public LinkedList<ELNTModule> getAllModule(){ LinkedList<ELNTModule> modules = new LinkedList<ELNTModule>(); - for (ELNTComponent module : components) { + for (ELNTComponent module : elnComponents) { if (module instanceof ELNTModule) { modules.add((ELNTModule) module); } } return modules; - } - - public LinkedList<ELNTModuleTerminal> getAllModuleTerminal(){ + } + + public LinkedList<ELNTModuleTerminal> getAllModuleTerminal(){ LinkedList<ELNTModuleTerminal> moduleTerminals = new LinkedList<ELNTModuleTerminal>(); - for (ELNTComponent moduleTerminal : components) { + for (ELNTComponent moduleTerminal : elnComponents) { if (moduleTerminal instanceof ELNTModuleTerminal) { moduleTerminals.add((ELNTModuleTerminal) moduleTerminal); } } return moduleTerminals; - } - - public int getNbComponentCapacitor(){ - return (getAllComponentCapacitor()).size(); - } - - public int getNbComponentCurrentSinkTDF(){ - return (getAllComponentCurrentSinkTDF()).size(); - } - - public int getNbComponentCurrentSourceTDF(){ - return (getAllComponentCurrentSourceTDF()).size(); - } - - public int getNbComponentIdealTransformer(){ - return (getAllComponentIdealTransformer()).size(); - } - - public int getNbComponentIndependentCurrentSource(){ - return (getAllComponentIndependentCurrentSource()).size(); - } - - public int getNbComponentIndependentVoltageSource(){ - return (getAllComponentIndependentVoltageSource()).size(); - } - - public int getNbComponentInductor(){ - return (getAllComponentInductor()).size(); - } - - public int getNbComponentNodeRef(){ - return (getAllComponentNodeRef()).size(); - } - - public int getNbComponentResistor(){ - return (getAllComponentResistor()).size(); - } - - public int getNbComponentTransmissionLine(){ - return (getAllComponentTransmissionLine()).size(); - } - - public int getNbComponentVoltageControlledCurrentSource(){ - return (getAllComponentVoltageControlledCurrentSource()).size(); - } - - public int getNbComponentVoltageControlledVoltageSource(){ - return (getAllComponentVoltageControlledVoltageSource()).size(); - } - - public int getNbComponentVoltageSinkTDF(){ - return (getAllComponentVoltageSinkTDF()).size(); - } - - public int getNbComponentVoltageSourceTDF(){ - return (getAllComponentVoltageSourceTDF()).size(); - } - - public int getNbMidPortTerminal(){ - return (getAllMidPortTerminal()).size(); - } - - public int getNbModule(){ - return (getAllModule()).size(); - } - - public int getNbModuleTerminal(){ - return (getAllModuleTerminal()).size(); - } + } + + public LinkedList<ELNTModulePortDE> getAllModulePortDE(){ + LinkedList<ELNTModulePortDE> modulePortsDE = new LinkedList<ELNTModulePortDE>(); + for (ELNTComponent modulePortDE : elnComponents) { + if (modulePortDE instanceof ELNTModulePortDE) { + modulePortsDE.add((ELNTModulePortDE) modulePortDE); + } + } + return modulePortsDE; + } + + public LinkedList<ELNTModulePortTDF> getAllModulePortTDF(){ + LinkedList<ELNTModulePortTDF> modulePortsTDF = new LinkedList<ELNTModulePortTDF>(); + for (ELNTComponent modulePortTDF : elnComponents) { + if (modulePortTDF instanceof ELNTModulePortTDF) { + modulePortsTDF.add((ELNTModulePortTDF) modulePortTDF); + } + } + return modulePortsTDF; + } + + public int getNbClusterTerminal(){ + return (getAllClusterTerminal()).size(); + } + + public int getNbClusterPortDE(){ + return (getAllClusterPortDE()).size(); + } + + public int getNbClusterPortTDF(){ + return (getAllClusterPortTDF()).size(); + } + + public int getNbComponentCapacitor(){ + return (getAllComponentCapacitor()).size(); + } + + public int getNbComponentCurrentSinkDE(){ + return (getAllComponentCurrentSinkDE()).size(); + } + + public int getNbComponentCurrentSourceDE(){ + return (getAllComponentCurrentSourceDE()).size(); + } + + public int getNbComponentCurrentSinkTDF(){ + return (getAllComponentCurrentSinkTDF()).size(); + } + + public int getNbComponentCurrentSourceTDF(){ + return (getAllComponentCurrentSourceTDF()).size(); + } + + public int getNbComponentIdealTransformer(){ + return (getAllComponentIdealTransformer()).size(); + } + + public int getNbComponentIndependentCurrentSource(){ + return (getAllComponentIndependentCurrentSource()).size(); + } + + public int getNbComponentIndependentVoltageSource(){ + return (getAllComponentIndependentVoltageSource()).size(); + } + + public int getNbComponentInductor(){ + return (getAllComponentInductor()).size(); + } + + public int getNbComponentNodeRef(){ + return (getAllComponentNodeRef()).size(); + } + + public int getNbComponentResistor(){ + return (getAllComponentResistor()).size(); + } + + public int getNbComponentTransmissionLine(){ + return (getAllComponentTransmissionLine()).size(); + } + + public int getNbComponentVoltageControlledCurrentSource(){ + return (getAllComponentVoltageControlledCurrentSource()).size(); + } + + public int getNbComponentVoltageControlledVoltageSource(){ + return (getAllComponentVoltageControlledVoltageSource()).size(); + } + + public int getNbComponentVoltageSinkDE(){ + return (getAllComponentVoltageSinkDE()).size(); + } + + public int getNbComponentVoltageSourceDE(){ + return (getAllComponentVoltageSourceDE()).size(); + } + + public int getNbComponentVoltageSinkTDF(){ + return (getAllComponentVoltageSinkTDF()).size(); + } + + public int getNbComponentVoltageSourceTDF(){ + return (getAllComponentVoltageSourceTDF()).size(); + } + + public int getNbMidPortTerminal(){ + return (getAllMidPortTerminal()).size(); + } + + public int getNbModule(){ + return (getAllModule()).size(); + } + + public int getNbModuleTerminal(){ + return (getAllModuleTerminal()).size(); + } + + public int getNbModulePortDE(){ + return (getAllModulePortDE()).size(); + } + + public int getNbModulePortTDF(){ + return (getAllModulePortTDF()).size(); + } } \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTCluster.java b/src/main/java/elntranslator/ELNTCluster.java new file mode 100644 index 0000000000000000000000000000000000000000..578e8bab0899d61673c69b3d9c1a27f047b9fb27 --- /dev/null +++ b/src/main/java/elntranslator/ELNTCluster.java @@ -0,0 +1,102 @@ +/* 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 elntranslator; + +import java.util.LinkedList; + +/** + * Class ELNTCluster + * Parameters of a ELN component : cluster + * Creation: 30/07/2018 + * @version 1.0 30/07/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTCluster extends ELNTComponent { + private String name; + + private LinkedList<ELNTClusterTerminal> clusterTerminal; + private LinkedList<ELNTClusterPortDE> clusterPortDE; + private LinkedList<ELNTClusterPortTDF> clusterPortTDF; + private LinkedList<ELNTModule> module; + + public ELNTCluster(String _name) { + name = _name; + clusterTerminal = new LinkedList<ELNTClusterTerminal>(); + clusterPortDE = new LinkedList<ELNTClusterPortDE>(); + clusterPortTDF = new LinkedList<ELNTClusterPortTDF>(); + module = new LinkedList<ELNTModule>(); + } + + public String getName() { + return name; + } + + public LinkedList<ELNTClusterTerminal> getClusterTerminal() { + return clusterTerminal; + } + + public void addClusterTerminal(ELNTClusterTerminal _clusterTerminal){ + clusterTerminal.add(_clusterTerminal); + } + + public LinkedList<ELNTClusterPortDE> getClusterPortDE() { + return clusterPortDE; + } + + public void addClusterPortDE(ELNTClusterPortDE _clusterPortDE){ + clusterPortDE.add(_clusterPortDE); + } + + public LinkedList<ELNTClusterPortTDF> getClusterPortTDF() { + return clusterPortTDF; + } + + public void addClusterPortTDF(ELNTClusterPortTDF _clusterPortTDF){ + clusterPortTDF.add(_clusterPortTDF); + } + + public LinkedList<ELNTModule> getModule() { + return module; + } + + public void addModule(ELNTModule _module){ + module.add(_module); + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTClusterPortDE.java b/src/main/java/elntranslator/ELNTClusterPortDE.java new file mode 100644 index 0000000000000000000000000000000000000000..b98311ec7e3fb88f9479394eddd21ea6ae065d55 --- /dev/null +++ b/src/main/java/elntranslator/ELNTClusterPortDE.java @@ -0,0 +1,78 @@ +/* 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 elntranslator; + +/** + * Class ELNTClusterPortDE + * Parameters of a ELN composite component : cluster port DE + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTClusterPortDE extends ELNTComponent { + private String name; + private String type; + private String origin; + + private ELNTCluster cluster; + + public ELNTClusterPortDE(String _name, String _type, String _origin, ELNTCluster _cluster) { + name = _name; + type = _type; + origin = _origin; + cluster = _cluster; + } + + public String getName() { + return name; + } + + public String getType() { + return type; + } + + public String getOrigin() { + return origin; + } + + public ELNTCluster getCluster() { + return cluster; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTClusterPortTDF.java b/src/main/java/elntranslator/ELNTClusterPortTDF.java new file mode 100644 index 0000000000000000000000000000000000000000..2a9f77a435b58896012dcf458885d68c99e24ff0 --- /dev/null +++ b/src/main/java/elntranslator/ELNTClusterPortTDF.java @@ -0,0 +1,78 @@ +/* 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 elntranslator; + +/** + * Class ELNTClusterPortTDF + * Parameters of a ELN composite component : cluster port TDF + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTClusterPortTDF extends ELNTComponent { + private String name; + private String type; + private String origin; + + private ELNTCluster cluster; + + public ELNTClusterPortTDF(String _name, String _type, String _origin, ELNTCluster _cluster) { + name = _name; + type = _type; + origin = _origin; + cluster = _cluster; + } + + public String getName() { + return name; + } + + public String getType() { + return type; + } + + public String getOrigin() { + return origin; + } + + public ELNTCluster getCluster() { + return cluster; + } +} \ No newline at end of file diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java b/src/main/java/elntranslator/ELNTClusterTerminal.java old mode 100755 new mode 100644 similarity index 79% rename from src/main/java/tmltranslator/tmlcp/TMLCPJunction.java rename to src/main/java/elntranslator/ELNTClusterTerminal.java index c0ac565fef1b0776f7e1ae37fd10fcc5f66c2971..1f87a6b11a945e641302d089e84d66c7efa4b134 --- a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java +++ b/src/main/java/elntranslator/ELNTClusterTerminal.java @@ -36,21 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - -package tmltranslator.tmlcp; +package elntranslator; /** -* Class TMLCPJunction -* Creation: 18/02/2014 -* @version 1.0 18/02/2014 -* @author Ludovic APVRILLE - */ -public class TMLCPJunction extends TMLCPElement { + * Class ELNTClusterTerminal + * Parameters of a ELN composite component : cluster terminal + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE +*/ - public TMLCPJunction(String _name, Object _referenceObject) { - super(_name, _referenceObject); - } +public class ELNTClusterTerminal extends ELNTComponent { + private String name; -} + private ELNTCluster cluster; + + public ELNTClusterTerminal(String _name, ELNTCluster _cluster) { + name = _name; + cluster = _cluster; + } + + public String getName() { + return name; + } + + public ELNTCluster getCluster() { + return cluster; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTComponentCapacitor.java b/src/main/java/elntranslator/ELNTComponentCapacitor.java index 6090df53f48928298ee0701ad9b3be47f64a12c8..27932ae8bf848c20a0f416d8923365cf8b9a5167 100644 --- a/src/main/java/elntranslator/ELNTComponentCapacitor.java +++ b/src/main/java/elntranslator/ELNTComponentCapacitor.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentCapacitor @@ -48,21 +48,21 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentCapacitor extends ELNTComponent { +public class ELNTComponentCapacitor extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double val, q0; private String unit0, unit1; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentCapacitor(String _name, double _val, double _q0, String _unit0, String _unit1, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentCapacitor(String _name, double _val, double _q0, String _unit0, String _unit1, ELNTModule _module) { name = _name; val = _val; q0 = _q0; unit0 = _unit0; unit1 = _unit1; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -86,9 +86,13 @@ public class ELNTComponentCapacitor extends ELNTComponent { return unit1; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } public ELNTModule getModule() { return module; diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSinkDE.java b/src/main/java/elntranslator/ELNTComponentCurrentSinkDE.java new file mode 100644 index 0000000000000000000000000000000000000000..a76230fcdf34b1c9fa7d2be77104937d02276eec --- /dev/null +++ b/src/main/java/elntranslator/ELNTComponentCurrentSinkDE.java @@ -0,0 +1,84 @@ +/* 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 elntranslator; + +import java.util.LinkedList; + +/** + * Class ELNTComponentCurrentSinkDE + * Parameters of a ELN primitive component : DE current sink + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTComponentCurrentSinkDE extends ELNTComponent implements ELNTPrimitiveComponent { + private String name; + private double scale; + private LinkedList<ELNTConnectingPoint> cp; + + private ELNTModule module; + + public ELNTComponentCurrentSinkDE(String _name, double _scale, ELNTModule _module) { + name = _name; + scale = _scale; + cp = new LinkedList<ELNTConnectingPoint>(); + module = _module; + } + + public String getName() { + return name; + } + + public double getScale() { + return scale; + } + + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { + return cp; + } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + + public ELNTModule getModule() { + return module; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java b/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java index a0ffc2cba466b95be2dd66873c63b860aabb0475..f12685a13252fb5d19b37dc61f7d9cb8bb423678 100644 --- a/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java +++ b/src/main/java/elntranslator/ELNTComponentCurrentSinkTDF.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentCurrentSinkTDF @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentCurrentSinkTDF extends ELNTComponent { +public class ELNTComponentCurrentSinkTDF extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double scale; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentCurrentSinkTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentCurrentSinkTDF(String _name, double _scale, ELNTModule _module) { name = _name; scale = _scale; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -70,10 +70,14 @@ public class ELNTComponentCurrentSinkTDF extends ELNTComponent { return scale; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSourceDE.java b/src/main/java/elntranslator/ELNTComponentCurrentSourceDE.java new file mode 100644 index 0000000000000000000000000000000000000000..b549553d76b7f9538e6319dec99efd54d4dac1f6 --- /dev/null +++ b/src/main/java/elntranslator/ELNTComponentCurrentSourceDE.java @@ -0,0 +1,84 @@ +/* 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 elntranslator; + +import java.util.LinkedList; + +/** + * Class ELNTComponentCurrentSourceDE + * Parameters of a ELN primitive component : DE current source + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTComponentCurrentSourceDE extends ELNTComponent implements ELNTPrimitiveComponent { + private String name; + private double scale; + private LinkedList<ELNTConnectingPoint> cp; + + private ELNTModule module; + + public ELNTComponentCurrentSourceDE(String _name, double _scale, ELNTModule _module) { + name = _name; + scale = _scale; + cp = new LinkedList<ELNTConnectingPoint>(); + module = _module; + } + + public String getName() { + return name; + } + + public double getScale() { + return scale; + } + + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { + return cp; + } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + + public ELNTModule getModule() { + return module; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java b/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java index 464097cd520e59a8af192e98f86b219343cd4fe0..0eb6fb5b3592cf8e36789e235f1189e15424d8d1 100644 --- a/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java +++ b/src/main/java/elntranslator/ELNTComponentCurrentSourceTDF.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentCurrentSourceTDF @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentCurrentSourceTDF extends ELNTComponent { +public class ELNTComponentCurrentSourceTDF extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double scale; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentCurrentSourceTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentCurrentSourceTDF(String _name, double _scale, ELNTModule _module) { name = _name; scale = _scale; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -70,10 +70,14 @@ public class ELNTComponentCurrentSourceTDF extends ELNTComponent { return scale; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentIdealTransformer.java b/src/main/java/elntranslator/ELNTComponentIdealTransformer.java index e6e8588bc085b5c0fb58d8b71ea2fbb93f969a6a..e2485fedc3e4d57d331fdfab72cdc1f5f8ed894d 100644 --- a/src/main/java/elntranslator/ELNTComponentIdealTransformer.java +++ b/src/main/java/elntranslator/ELNTComponentIdealTransformer.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentIdealTransformer @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentIdealTransformer extends ELNTComponent { +public class ELNTComponentIdealTransformer extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double ratio; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentIdealTransformer(String _name, double _ratio, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentIdealTransformer(String _name, double _ratio, ELNTModule _module) { name = _name; ratio = _ratio; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -70,10 +70,14 @@ public class ELNTComponentIdealTransformer extends ELNTComponent { return ratio; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } - + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java b/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java index 9596a8b4ae9b0bb3379510e7510cbd9d1786fa9f..a5697164fe4e990737da04cfcb138f6ee2f56155 100644 --- a/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java +++ b/src/main/java/elntranslator/ELNTComponentIndependentCurrentSource.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentIndependentCurrentSource @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentIndependentCurrentSource extends ELNTComponent { +public class ELNTComponentIndependentCurrentSource extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmplitude; private String delay; private String unit0; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; public ELNTComponentIndependentCurrentSource(String _name, double _initValue, double _offset, double _amplitude, double _frequency, double _phase, - double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNConnectingPoint[] _cp, ELNTModule _module) { + double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNTModule _module) { name = _name; initValue = _initValue; offset = _offset; @@ -70,7 +70,7 @@ public class ELNTComponentIndependentCurrentSource extends ELNTComponent { acNoiseAmplitude = _acNoiseAmplitude; delay = _delay; unit0 = _unit0; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -118,9 +118,13 @@ public class ELNTComponentIndependentCurrentSource extends ELNTComponent { return unit0; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } public ELNTModule getModule() { return module; diff --git a/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java b/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java index 9b2c8c944a1fb08636e2897f21f83480a56acd99..4fe9495c7ad3606a91783ed954965e1aecccf03f 100644 --- a/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java +++ b/src/main/java/elntranslator/ELNTComponentIndependentVoltageSource.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentIndependentVoltageSource @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentIndependentVoltageSource extends ELNTComponent { +public class ELNTComponentIndependentVoltageSource extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmplitude; private String delay; private String unit0; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; public ELNTComponentIndependentVoltageSource(String _name, double _initValue, double _offset, double _amplitude, double _frequency, double _phase, - double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNConnectingPoint[] _cp, ELNTModule _module) { + double _acAmplitude, double _acPhase, double _acNoiseAmplitude, String _delay, String _unit0, ELNTModule _module) { name = _name; initValue = _initValue; offset = _offset; @@ -70,7 +70,7 @@ public class ELNTComponentIndependentVoltageSource extends ELNTComponent { acNoiseAmplitude = _acNoiseAmplitude; delay = _delay; unit0 = _unit0; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -118,10 +118,14 @@ public class ELNTComponentIndependentVoltageSource extends ELNTComponent { return unit0; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentInductor.java b/src/main/java/elntranslator/ELNTComponentInductor.java index 96020bf0903a5260c292a217c4465f9bf492730a..806cb21c4c680b6c5ec10e8fde3304d31e82d126 100644 --- a/src/main/java/elntranslator/ELNTComponentInductor.java +++ b/src/main/java/elntranslator/ELNTComponentInductor.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentInductor @@ -48,21 +48,21 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentInductor extends ELNTComponent { +public class ELNTComponentInductor extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double val, phi0; private String unit0, unit1; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentInductor(String _name, double _val, double _phi0, String _unit0, String _unit1, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentInductor(String _name, double _val, double _phi0, String _unit0, String _unit1, ELNTModule _module) { name = _name; val = _val; phi0 = _phi0; unit0 = _unit0; unit1 = _unit1; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -86,10 +86,14 @@ public class ELNTComponentInductor extends ELNTComponent { return unit1; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentResistor.java b/src/main/java/elntranslator/ELNTComponentResistor.java index fc015176c7978f5fdd9568b3d3955c4cc92a36a1..ab88e0b6f603f8350516a9751d4b722040e78071 100644 --- a/src/main/java/elntranslator/ELNTComponentResistor.java +++ b/src/main/java/elntranslator/ELNTComponentResistor.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentResistor @@ -48,19 +48,19 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentResistor extends ELNTComponent { +public class ELNTComponentResistor extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double val; private String unit; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentResistor(String _name, double _val, String _unit, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentResistor(String _name, double _val, String _unit, ELNTModule _module) { name = _name; val = _val; unit = _unit; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -76,9 +76,13 @@ public class ELNTComponentResistor extends ELNTComponent { return unit; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } public ELNTModule getModule() { return module; diff --git a/src/main/java/elntranslator/ELNTComponentTransmissionLine.java b/src/main/java/elntranslator/ELNTComponentTransmissionLine.java index 8211c380ec978c9017db51538d5dba8b4b305dbe..140788fdfcdd201ebc9886acecb3d48dbbdbfa77 100644 --- a/src/main/java/elntranslator/ELNTComponentTransmissionLine.java +++ b/src/main/java/elntranslator/ELNTComponentTransmissionLine.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentTransmissionLine @@ -48,23 +48,23 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentTransmissionLine extends ELNTComponent { +public class ELNTComponentTransmissionLine extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double z0, delta0; private String delay; private String unit0, unit2; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentTransmissionLine(String _name, double _z0, double _delta0, String _delay, String _unit0, String _unit2, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentTransmissionLine(String _name, double _z0, double _delta0, String _delay, String _unit0, String _unit2, ELNTModule _module) { name = _name; z0 = _z0; delta0 = _delta0; delay = _delay; unit0 = _unit0; unit2 = _unit2; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -92,10 +92,14 @@ public class ELNTComponentTransmissionLine extends ELNTComponent { return unit2; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java b/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java index fa7c19ba104a6788cfaf07b8bdcca40484ae70b5..52015c1427cced2e81c09109ec579b2f1875f724 100644 --- a/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java +++ b/src/main/java/elntranslator/ELNTComponentVoltageControlledCurrentSource.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentVoltageControlledCurrentSource @@ -48,19 +48,19 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentVoltageControlledCurrentSource extends ELNTComponent { +public class ELNTComponentVoltageControlledCurrentSource extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double val; private String unit; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentVoltageControlledCurrentSource(String _name, double _val, String _unit, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentVoltageControlledCurrentSource(String _name, double _val, String _unit, ELNTModule _module) { name = _name; val = _val; unit = _unit; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -76,9 +76,13 @@ public class ELNTComponentVoltageControlledCurrentSource extends ELNTComponent { return unit; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } public ELNTModule getModule() { return module; diff --git a/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java b/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java index 7a1e9e28924f03617097debfd9b6c5d7f57f7eae..f6a2d9bc373b4c1748cf1be01321062fbf81194b 100644 --- a/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java +++ b/src/main/java/elntranslator/ELNTComponentVoltageControlledVoltageSource.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentVoltageControlledVoltageSource @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentVoltageControlledVoltageSource extends ELNTComponent { +public class ELNTComponentVoltageControlledVoltageSource extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double val; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentVoltageControlledVoltageSource(String _name, double _val, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentVoltageControlledVoltageSource(String _name, double _val, ELNTModule _module) { name = _name; val = _val; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -70,10 +70,14 @@ public class ELNTComponentVoltageControlledVoltageSource extends ELNTComponent { return val; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } - + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSinkDE.java b/src/main/java/elntranslator/ELNTComponentVoltageSinkDE.java new file mode 100644 index 0000000000000000000000000000000000000000..cc238400bb0867c088161611ffb0249bc7abe7be --- /dev/null +++ b/src/main/java/elntranslator/ELNTComponentVoltageSinkDE.java @@ -0,0 +1,84 @@ +/* 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 elntranslator; + +import java.util.LinkedList; + +/** + * Class ELNTComponentVoltageSinkDE + * Parameters of a ELN primitive component : DE voltage sink + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTComponentVoltageSinkDE extends ELNTComponent implements ELNTPrimitiveComponent { + private String name; + private double scale; + private LinkedList<ELNTConnectingPoint> cp; + + private ELNTModule module; + + public ELNTComponentVoltageSinkDE(String _name, double _scale, ELNTModule _module) { + name = _name; + scale = _scale; + cp = new LinkedList<ELNTConnectingPoint>(); + module = _module; + } + + public String getName() { + return name; + } + + public double getScale() { + return scale; + } + + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { + return cp; + } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + + public ELNTModule getModule() { + return module; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java b/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java index da0e9c10838da1a6bbdc2a752c1ddcad3346de03..5f2b4c023744068c2b012c601501bc3fa0aefa81 100644 --- a/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java +++ b/src/main/java/elntranslator/ELNTComponentVoltageSinkTDF.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentVoltageSinkTDF @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentVoltageSinkTDF extends ELNTComponent { +public class ELNTComponentVoltageSinkTDF extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double scale; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentVoltageSinkTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentVoltageSinkTDF(String _name, double _scale, ELNTModule _module) { name = _name; scale = _scale; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -70,10 +70,14 @@ public class ELNTComponentVoltageSinkTDF extends ELNTComponent { return scale; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + public ELNTModule getModule() { return module; } diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSourceDE.java b/src/main/java/elntranslator/ELNTComponentVoltageSourceDE.java new file mode 100644 index 0000000000000000000000000000000000000000..f36c1465755b1b7dc5279c92a1bd4489485c6ba9 --- /dev/null +++ b/src/main/java/elntranslator/ELNTComponentVoltageSourceDE.java @@ -0,0 +1,84 @@ +/* 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 elntranslator; + +import java.util.LinkedList; + +/** + * Class ELNTComponentVoltageSourceDE + * Parameters of a ELN primitive component : DE voltage source + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTComponentVoltageSourceDE extends ELNTComponent implements ELNTPrimitiveComponent { + private String name; + private double scale; + private LinkedList<ELNTConnectingPoint> cp; + + private ELNTModule module; + + public ELNTComponentVoltageSourceDE(String _name, double _scale, ELNTModule _module) { + name = _name; + scale = _scale; + cp = new LinkedList<ELNTConnectingPoint>(); + module = _module; + } + + public String getName() { + return name; + } + + public double getScale() { + return scale; + } + + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { + return cp; + } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } + + public ELNTModule getModule() { + return module; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java b/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java index 6f51b41e0e710f5f517a99db9452e8d7e7ccd5fb..4bc0e3781d15d66517b0f946e90ac482dba6d631 100644 --- a/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java +++ b/src/main/java/elntranslator/ELNTComponentVoltageSourceTDF.java @@ -38,7 +38,7 @@ package elntranslator; -import ui.eln.ELNConnectingPoint; +import java.util.LinkedList; /** * Class ELNTComponentVoltageSourceTDF @@ -48,17 +48,17 @@ import ui.eln.ELNConnectingPoint; * @author Irina Kit Yan LEE */ -public class ELNTComponentVoltageSourceTDF extends ELNTComponent { +public class ELNTComponentVoltageSourceTDF extends ELNTComponent implements ELNTPrimitiveComponent { private String name; private double scale; - private ELNConnectingPoint[] cp; + private LinkedList<ELNTConnectingPoint> cp; private ELNTModule module; - public ELNTComponentVoltageSourceTDF(String _name, double _scale, ELNConnectingPoint[] _cp, ELNTModule _module) { + public ELNTComponentVoltageSourceTDF(String _name, double _scale, ELNTModule _module) { name = _name; scale = _scale; - cp = _cp; + cp = new LinkedList<ELNTConnectingPoint>(); module = _module; } @@ -70,9 +70,13 @@ public class ELNTComponentVoltageSourceTDF extends ELNTComponent { return scale; } - public ELNConnectingPoint[] getCp() { + public LinkedList<ELNTConnectingPoint> getConnectingPoint() { return cp; } + + public void addConnectingPoint(ELNTConnectingPoint _cp) { + cp.add(_cp); + } public ELNTModule getModule() { return module; diff --git a/src/main/java/elntranslator/ELNTConnectingPoint.java b/src/main/java/elntranslator/ELNTConnectingPoint.java index 92c5d1cbccd6bc398ee06d9b9a47d2b0ad37c183..5bb09510b0b472362d09a001085463f91d2626b9 100644 --- a/src/main/java/elntranslator/ELNTConnectingPoint.java +++ b/src/main/java/elntranslator/ELNTConnectingPoint.java @@ -46,13 +46,14 @@ package elntranslator; * @author Irina Kit Yan LEE */ -public class ELNTConnectingPoint{ +public class ELNTConnectingPoint { private String name; - private ELNTConnector ownerConnector ; + private ELNTConnector ownerConnector; private ELNTComponent ownerComponent; - public ELNTConnectingPoint(ELNTComponent _ownerComponent, String _name) { + public ELNTConnectingPoint(String _name, ELNTComponent _ownerComponent) { + name = _name; ownerComponent = _ownerComponent; } @@ -63,6 +64,10 @@ public class ELNTConnectingPoint{ public ELNTConnector getConnector() { return ownerConnector; } + + public void setOwnerConnector(ELNTConnector _ownerConnector) { + ownerConnector = _ownerConnector; + } public ELNTComponent getComponent() { return ownerComponent; diff --git a/src/main/java/elntranslator/ELNTModule.java b/src/main/java/elntranslator/ELNTModule.java index b345c68ef8d0c9ab5049c8607568a51a356baa2a..e0c3e970fd61348758d71cd83e45f37ba08812a6 100644 --- a/src/main/java/elntranslator/ELNTModule.java +++ b/src/main/java/elntranslator/ELNTModule.java @@ -56,7 +56,7 @@ public class ELNTModule extends ELNTComponent { private LinkedList<ELNTComponentIndependentCurrentSource> isource; private LinkedList<ELNTComponentIndependentVoltageSource> vsource; private LinkedList<ELNTComponentInductor> inductor; - private LinkedList<ELNTComponentNodeRef> nodeRef; + private LinkedList<ELNTNodeRef> nodeRef; private LinkedList<ELNTComponentResistor> resistor; private LinkedList<ELNTComponentTransmissionLine> transmissionLine; private LinkedList<ELNTComponentVoltageControlledCurrentSource> vccs; @@ -65,16 +65,24 @@ public class ELNTModule extends ELNTComponent { private LinkedList<ELNTComponentCurrentSourceTDF> TDF_isource; private LinkedList<ELNTComponentVoltageSinkTDF> TDF_vsink; private LinkedList<ELNTComponentVoltageSourceTDF> TDF_vsource; + private LinkedList<ELNTComponentCurrentSinkDE> DE_isink; + private LinkedList<ELNTComponentCurrentSourceDE> DE_isource; + private LinkedList<ELNTComponentVoltageSinkDE> DE_vsink; + private LinkedList<ELNTComponentVoltageSourceDE> DE_vsource; private LinkedList<ELNTModuleTerminal> moduleTerminal; + private LinkedList<ELNTModulePortDE> modulePortDE; + private LinkedList<ELNTModulePortTDF> modulePortTDF; - public ELNTModule(String _name) { + private ELNTCluster cluster; + + public ELNTModule(String _name, ELNTCluster _cluster) { name = _name; capacitor = new LinkedList<ELNTComponentCapacitor>(); idealTransformer = new LinkedList<ELNTComponentIdealTransformer>(); isource = new LinkedList<ELNTComponentIndependentCurrentSource>(); vsource = new LinkedList<ELNTComponentIndependentVoltageSource>(); inductor = new LinkedList<ELNTComponentInductor>(); - nodeRef = new LinkedList<ELNTComponentNodeRef>(); + nodeRef = new LinkedList<ELNTNodeRef>(); resistor = new LinkedList<ELNTComponentResistor>(); transmissionLine = new LinkedList<ELNTComponentTransmissionLine>(); vccs = new LinkedList<ELNTComponentVoltageControlledCurrentSource>(); @@ -83,7 +91,14 @@ public class ELNTModule extends ELNTComponent { TDF_isource = new LinkedList<ELNTComponentCurrentSourceTDF>(); TDF_vsink = new LinkedList<ELNTComponentVoltageSinkTDF>(); TDF_vsource = new LinkedList<ELNTComponentVoltageSourceTDF>(); + DE_isink = new LinkedList<ELNTComponentCurrentSinkDE>(); + DE_isource = new LinkedList<ELNTComponentCurrentSourceDE>(); + DE_vsink = new LinkedList<ELNTComponentVoltageSinkDE>(); + DE_vsource = new LinkedList<ELNTComponentVoltageSourceDE>(); moduleTerminal = new LinkedList<ELNTModuleTerminal>(); + modulePortDE = new LinkedList<ELNTModulePortDE>(); + modulePortTDF = new LinkedList<ELNTModulePortTDF>(); + cluster = _cluster; } public String getName() { @@ -130,11 +145,11 @@ public class ELNTModule extends ELNTComponent { inductor.add(_inductor); } - public LinkedList<ELNTComponentNodeRef> getNodeRef() { + public LinkedList<ELNTNodeRef> getNodeRef() { return nodeRef; } - public void addNodeRef(ELNTComponentNodeRef _nodeRef){ + public void addNodeRef(ELNTNodeRef _nodeRef){ nodeRef.add(_nodeRef); } @@ -202,6 +217,38 @@ public class ELNTModule extends ELNTComponent { TDF_vsource.add(_TDF_vsource); } + public LinkedList<ELNTComponentCurrentSinkDE> getDE_isink() { + return DE_isink; + } + + public void addDE_isink(ELNTComponentCurrentSinkDE _DE_isink){ + DE_isink.add(_DE_isink); + } + + public LinkedList<ELNTComponentCurrentSourceDE> getDE_isource() { + return DE_isource; + } + + public void addDE_isource(ELNTComponentCurrentSourceDE _DE_isource){ + DE_isource.add(_DE_isource); + } + + public LinkedList<ELNTComponentVoltageSinkDE> getDE_vsink() { + return DE_vsink; + } + + public void addDE_vsink(ELNTComponentVoltageSinkDE _DE_vsink){ + DE_vsink.add(_DE_vsink); + } + + public LinkedList<ELNTComponentVoltageSourceDE> getDE_vsource() { + return DE_vsource; + } + + public void addDE_vsource(ELNTComponentVoltageSourceDE _DE_vsource){ + DE_vsource.add(_DE_vsource); + } + public LinkedList<ELNTModuleTerminal> getModuleTerminal() { return moduleTerminal; } @@ -209,4 +256,24 @@ public class ELNTModule extends ELNTComponent { public void addModuleTerminal(ELNTModuleTerminal _moduleTerminal){ moduleTerminal.add(_moduleTerminal); } + + public LinkedList<ELNTModulePortDE> getModulePortDE() { + return modulePortDE; + } + + public void addModulePortDE(ELNTModulePortDE _portDE){ + modulePortDE.add(_portDE); + } + + public LinkedList<ELNTModulePortTDF> getModulePortTDF() { + return modulePortTDF; + } + + public void addModulePortTDF(ELNTModulePortTDF _portTDF){ + modulePortTDF.add(_portTDF); + } + + public ELNTCluster getCluster() { + return cluster; + } } \ No newline at end of file diff --git a/src/main/java/ui/CanBeDisabled.java b/src/main/java/elntranslator/ELNTModulePortDE.java old mode 100755 new mode 100644 similarity index 73% rename from src/main/java/ui/CanBeDisabled.java rename to src/main/java/elntranslator/ELNTModulePortDE.java index e7261314e735b085217b52062cf7a791547c3581..6da66413c1821f06698e661e7f2a9cc231dfd0f1 --- a/src/main/java/ui/CanBeDisabled.java +++ b/src/main/java/elntranslator/ELNTModulePortDE.java @@ -36,20 +36,43 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package elntranslator; +/** + * Class ELNTModulePortDE + * Parameters of a ELN primitive component : module port DE + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE +*/ +public class ELNTModulePortDE extends ELNTComponent { + private String name; + private String type; + private String origin; + + private ELNTModule module; + + public ELNTModulePortDE(String _name, String _type, String _origin, ELNTModule _module) { + name = _name; + type = _type; + origin = _origin; + module = _module; + } + public String getName() { + return name; + } + + public String getType() { + return type; + } -package ui; + public String getOrigin() { + return origin; + } -/** - * Class CanBeDisabled - * Components that can be enabled/disabled with a mouse click - * Creation: 22/04/2015 - * @version 1.0 22/04/2015 - * @author Ludovic APVRILLE - */ -public interface CanBeDisabled { - boolean isEnabled(); - void setEnabled(boolean _enabled); -} + public ELNTModule getModule() { + return module; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTModulePortTDF.java b/src/main/java/elntranslator/ELNTModulePortTDF.java new file mode 100644 index 0000000000000000000000000000000000000000..498fa908db82435adde740b8828b4d7890642a49 --- /dev/null +++ b/src/main/java/elntranslator/ELNTModulePortTDF.java @@ -0,0 +1,78 @@ +/* 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 elntranslator; + +/** + * Class ELNTModulePortTDF + * Parameters of a ELN primitive component : module port TDF + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE +*/ + +public class ELNTModulePortTDF extends ELNTComponent { + private String name; + private String type; + private String origin; + + private ELNTModule module; + + public ELNTModulePortTDF(String _name, String _type, String _origin, ELNTModule _module) { + name = _name; + type = _type; + origin = _origin; + module = _module; + } + + public String getName() { + return name; + } + + public String getType() { + return type; + } + + public String getOrigin() { + return origin; + } + + public ELNTModule getModule() { + return module; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/ELNTComponentNodeRef.java b/src/main/java/elntranslator/ELNTNodeRef.java similarity index 93% rename from src/main/java/elntranslator/ELNTComponentNodeRef.java rename to src/main/java/elntranslator/ELNTNodeRef.java index 548bc524714a759f7ae1d1fc22f3d35c0e779787..dc6a76fed21a2599ece7870c6470348cedbefc0f 100644 --- a/src/main/java/elntranslator/ELNTComponentNodeRef.java +++ b/src/main/java/elntranslator/ELNTNodeRef.java @@ -39,19 +39,19 @@ package elntranslator; /** - * Class ELNTComponentNodeRef + * Class ELNTNodeRef * Parameters of a ELN primitive component : node ref * Creation: 23/07/2018 * @version 1.0 23/07/2018 * @author Irina Kit Yan LEE */ -public class ELNTComponentNodeRef extends ELNTComponent { +public class ELNTNodeRef extends ELNTComponent { private String name; private ELNTModule module; - public ELNTComponentNodeRef(String _name, ELNTModule _module) { + public ELNTNodeRef(String _name, ELNTModule _module) { name = _name; module = _module; } diff --git a/src/main/java/elntranslator/ELNTPrimitiveComponent.java b/src/main/java/elntranslator/ELNTPrimitiveComponent.java new file mode 100644 index 0000000000000000000000000000000000000000..7c79e07a3c0fa3d0b3ebddc93f01c6c27595211b --- /dev/null +++ b/src/main/java/elntranslator/ELNTPrimitiveComponent.java @@ -0,0 +1,5 @@ +package elntranslator; + +public interface ELNTPrimitiveComponent { + public ELNTModule getModule(); +} diff --git a/src/main/java/elntranslator/toELN/ClusterCode.java b/src/main/java/elntranslator/toELN/ClusterCode.java new file mode 100644 index 0000000000000000000000000000000000000000..6ac4257cdca9f6473ed07ba609a5322352233816 --- /dev/null +++ b/src/main/java/elntranslator/toELN/ClusterCode.java @@ -0,0 +1,204 @@ +/* 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. + */ + +/* this class produces the lines containing essentially the initial #includes; we include all potential components event if they are not used in the deployment diagram*/ + +/* authors: v1.0 Raja GATGOUT 2014 + v2.0 Daniela GENIUS, Julien HENON 2015 */ + +package elntranslator.toELN; + +import java.util.LinkedList; +import elntranslator.*; + +/** + * Class ClusterCode + * Principal code of a cluster component + * Creation: 31/07/2018 + * @version 1.0 31/07/2018 + * @author Irina Kit Yan LEE + */ + +public class ClusterCode { + static private String corpsCluster; + private final static String CR = "\n"; + private final static String CR2 = "\n\n"; + + ClusterCode() { + } + + public static String getClusterCode(ELNTCluster cluster, LinkedList<ELNTConnector> connectors) { + LinkedList<String> ELNnames = new LinkedList<String>(); + + if (cluster != null) { + LinkedList<ELNTModule> modules = cluster.getModule(); + + corpsCluster = "#include <systemc-ams>" + CR; + + for (int i = 0; i < modules.size(); i++) { + corpsCluster = corpsCluster + "#include \"" + modules.get(i).getName() + ".h\"" + CR; + if (i == modules.size()-1) { + corpsCluster = corpsCluster + CR; + } + } + corpsCluster = corpsCluster + "int sc_main(int argc, char *argv[])" + CR + "{" + CR; + + for (int i = 0; i < connectors.size(); i++) { + if (connectors.get(i).getName().equals("")) { + if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterTerminal) { + corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterTerminal) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("n_" + ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterTerminal) connectors.get(i).get_p2().getComponent()).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + ((ELNTClusterTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("n_" + ((ELNTClusterTerminal) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortDE) { + corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortDE) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("s_" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortDE) connectors.get(i).get_p2().getComponent()).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("s_" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortTDF) { + corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortTDF) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("s_" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTClusterPortTDF) connectors.get(i).get_p2().getComponent()).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getName() + ";" + CR; + ELNnames.add("s_" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getName() + "_" + ((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getName()); + } + } else { + if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("n_" + connectors.get(i).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterTerminal) { + corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("n_" + connectors.get(i).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterTerminal && connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsCluster = corpsCluster + "\tsca_eln::sca_node " + "n_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("n_" + connectors.get(i).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortDE) { + corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("s_" + connectors.get(i).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortDE && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsCluster = corpsCluster + "\tsc_core::sc_signal<" + ((ELNTClusterPortDE) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("s_" + connectors.get(i).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTClusterPortTDF) { + corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("s_" + connectors.get(i).getName()); + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTClusterPortTDF && connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsCluster = corpsCluster + "\tsca_tdf::sca_signal<" + ((ELNTClusterPortTDF) connectors.get(i).get_p1().getComponent()).getType() + "> s_" + connectors.get(i).getName() + ";" + CR; + ELNnames.add("s_" + connectors.get(i).getName()); + } + } + if (i == connectors.size()-1) { + corpsCluster = corpsCluster + CR; + } + } + + for (ELNTModule t : modules) { + corpsCluster = corpsCluster + "\t" + t.getName() + " i_" + t.getName() + "(\"i_" + t.getName() + "\");" + CR; + + LinkedList<ELNTModuleTerminal> term = t.getModuleTerminal(); + LinkedList<ELNTModulePortTDF> portTDF = t.getModulePortTDF(); + LinkedList<ELNTModulePortDE> portDE = t.getModulePortDE(); + + for (ELNTModuleTerminal p : term) { + for (int i = 0; i < connectors.size(); i++) { + if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal) { + if (((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getName().equals(p.getName()) && ((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getModule().getName().equals(t.getName())) { + corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR; + } + } + if (connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) { + if (((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getName().equals(p.getName()) && ((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getModule().getName().equals(t.getName())) { + corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR; + } + } + } + } + + for (ELNTModulePortTDF p : portTDF) { + for (int i = 0; i < connectors.size(); i++) { + if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF) { + if (((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getModule().getName().equals(t.getName())) { + corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR; + } + } + if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) { + if (((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getModule().getName().equals(t.getName())) { + corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR; + } + } + } + } + + for (ELNTModulePortDE p : portDE) { + for (int i = 0; i < connectors.size(); i++) { + if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE) { + if (((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getModule().getName().equals(t.getName())) { + corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR; + } + } + if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) { + if (((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getName().equals(p.getName()) && ((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getModule().getName().equals(t.getName())) { + corpsCluster = corpsCluster + "\ti_" + t.getName() + "." + p.getName() + "(" + ELNnames.get(i) + ");" + CR; + } + } + } + } + corpsCluster = corpsCluster + CR; + } + + corpsCluster = corpsCluster + "\tsca_util::sca_trace_file* tfp = sca_util::sca_create_tabular_trace_file(\"" + cluster.getName() + "_tb\");" + CR; + + for (int i = 0; i < connectors.size(); i++) { + corpsCluster = corpsCluster + "\tsca_util::sca_trace(tfp, "+ ELNnames.get(i) + ", \"" + ELNnames.get(i) + "\");" + CR; + } + + corpsCluster = corpsCluster + CR + "\tsc_start(100.0, sc_core::SC_MS);" + CR2 + + "\tsca_util::sca_close_tabular_trace_file(tfp);" + CR + + "\tsc_core::sc_stop();" + CR + "\treturn 0;" + CR + "}" + CR2; + } else { + corpsCluster = ""; + } + return corpsCluster; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/toELN/MakefileCode.java b/src/main/java/elntranslator/toELN/MakefileCode.java new file mode 100644 index 0000000000000000000000000000000000000000..a846679eb7f12895b9386936d585be01cdba3670 --- /dev/null +++ b/src/main/java/elntranslator/toELN/MakefileCode.java @@ -0,0 +1,109 @@ +/* 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. + */ + +/* this class produces the lines containing essentially the initial #includes; we include all potential components event if they are not used in the deployment diagram*/ + +/* authors: v1.0 Raja GATGOUT 2014 + v2.0 Daniela GENIUS, Julien HENON 2015 */ + +package elntranslator.toELN; + +import java.util.LinkedList; +import elntranslator.*; + +/** + * Class MakefileCode + * Principal code of a makefile + * Creation: 31/07/2018 + * @version 1.0 31/07/2018 + * @author Irina Kit Yan LEE + */ + +public class MakefileCode { + static private String corpsMakefile; + private final static String CR = "\n"; + private final static String CR2 = "\n\n"; + + MakefileCode() { + } + + public static String getMakefileCode(LinkedList<ELNTCluster> 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 + + "EXECUTABLES = "; + + for (int i = 0; i < clusters.size(); i++) { + if (i == 0) { + corpsMakefile = corpsMakefile + clusters.get(i).getName() + "_tb"; + } + if (i > 0) { + corpsMakefile = corpsMakefile + " " + clusters.get(i).getName() + "_tb"; + } + if (i == clusters.size() - 1) { + corpsMakefile = corpsMakefile + CR2; + } + } + + corpsMakefile = corpsMakefile + "# .PHONY targets don't generate files" + CR + ".PHONY: all clean" + CR2 + + "# Default targets" + CR + "all: $(EXECUTABLES)" + CR2; + + for (int i = 0; i < clusters.size(); i++) { + LinkedList<ELNTModule> modules = clusters.get(i).getModule(); + + corpsMakefile = corpsMakefile + clusters.get(i).getName() + "_tb: " + + clusters.get(i).getName() + "_tb.cpp"; + + for (ELNTModule t : modules) { + corpsMakefile = corpsMakefile + " " + t.getName() + ".h"; + } + + corpsMakefile = corpsMakefile + CR + + "\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -lsystemc-ams -lsystemc | c++filt" + CR2; + } + + corpsMakefile = corpsMakefile + "# Clean rule to delete temporary and generated files" + CR + "clean:" + CR + + "\trm -rf *~ *.o *.dat *.vcd *.dSYM $(EXECUTABLES)" + CR; + } else { + corpsMakefile = ""; + } + return corpsMakefile; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/toELN/ModuleCode.java b/src/main/java/elntranslator/toELN/ModuleCode.java new file mode 100644 index 0000000000000000000000000000000000000000..7d69feb9f3c0d56b6fa7027b48cd3d0ee1d26c28 --- /dev/null +++ b/src/main/java/elntranslator/toELN/ModuleCode.java @@ -0,0 +1,2617 @@ +/* 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. + */ + +/* this class produces the lines containing essentially the initial #includes; we include all potential components event if they are not used in the deployment diagram*/ + +/* authors: v1.0 Raja GATGOUT 2014 + v2.0 Daniela GENIUS, Julien HENON 2015 */ + +package elntranslator.toELN; + +import java.util.*; +import elntranslator.*; + +/** + * Class ModuleCode Principal code of a module Creation: 25/07/2018 + * + * @version 1.0 25/07/2018 + * @author Irina Kit Yan LEE + */ + +public class ModuleCode { + static private String corpsModule; + private final static String CR = "\n"; + private final static String CR2 = "\n\n"; + + ModuleCode() { + } + + public static String getModuleCode(ELNTModule module, List<ELNTConnector> connectors) { + LinkedList<ELNTConnector> connectorsModule = new LinkedList<ELNTConnector>(); + + for (int i = 0; i < connectors.size(); i++) { + if (connectors.get(i).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + if (((ELNTPrimitiveComponent) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortDE) { + if (((ELNTModulePortDE) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF) { + if (((ELNTModulePortTDF) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTModuleTerminal) { + if (((ELNTModuleTerminal) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p1().getComponent() instanceof ELNTNodeRef) { + if (((ELNTNodeRef) connectors.get(i).get_p1().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + if (((ELNTPrimitiveComponent) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortDE) { + if (((ELNTModulePortDE) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF) { + if (((ELNTModulePortTDF) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p2().getComponent() instanceof ELNTModuleTerminal) { + if (((ELNTModuleTerminal) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } else if (connectors.get(i).get_p2().getComponent() instanceof ELNTNodeRef) { + if (((ELNTNodeRef) connectors.get(i).get_p2().getComponent()).getModule().equals(module)) { + connectorsModule.add(connectors.get(i)); + } + } + } + + if (module != null) { + corpsModule = "#ifndef " + module.getName().toUpperCase() + "_H" + CR + "#define " + + module.getName().toUpperCase() + "_H" + CR2 + "#include <cmath>" + CR + "#include <iostream>" + CR + + "#include <systemc-ams>" + CR2; + + corpsModule = corpsModule + "SC_MODULE(" + module.getName() + ")" + CR + "{" + CR; + + LinkedList<ELNTModuleTerminal> terms = module.getModuleTerminal(); + for (int i = 0; i < terms.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_terminal " + terms.get(i).getName() + ";" + CR; + if (i == terms.size() - 1) { + corpsModule = corpsModule + CR; + } + } + + LinkedList<ELNTModulePortDE> portsDE = module.getModulePortDE(); + for (int i = 0; i < portsDE.size(); i++) { + corpsModule = corpsModule + "\tsc_core::sc_" + portsDE.get(i).getOrigin() + "<" + + portsDE.get(i).getType() + "> " + portsDE.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTModulePortTDF> portsTDF = module.getModulePortTDF(); + for (int i = 0; i < portsTDF.size(); i++) { + corpsModule = corpsModule + "\tsca_tdf::sca_" + portsTDF.get(i).getOrigin() + "<" + + portsTDF.get(i).getType() + "> " + portsTDF.get(i).getName() + ";" + CR; + if (i == portsTDF.size() - 1) { + corpsModule = corpsModule + CR; + } + } + + LinkedList<ELNTComponentCapacitor> capacitors = module.getCapacitor(); + for (int i = 0; i < capacitors.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_c " + capacitors.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentIdealTransformer> idealTransformers = module.getIdealTransformer(); + for (int i = 0; i < idealTransformers.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_ideal_transformer " + idealTransformers.get(i).getName() + + ";" + CR; + } + + LinkedList<ELNTComponentIndependentCurrentSource> isources = module.getIsource(); + for (int i = 0; i < isources.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_isource " + isources.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentIndependentVoltageSource> vsources = module.getVsource(); + for (int i = 0; i < vsources.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_vsource " + vsources.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentInductor> inductors = module.getInductor(); + for (int i = 0; i < inductors.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_l " + inductors.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentResistor> resistors = module.getResistor(); + for (int i = 0; i < resistors.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_r " + resistors.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentTransmissionLine> transmissionLines = module.getTransmissionLine(); + for (int i = 0; i < transmissionLines.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_transmission_line " + transmissionLines.get(i).getName() + + ";" + CR; + } + + LinkedList<ELNTComponentVoltageControlledCurrentSource> vccss = module.getVccs(); + for (int i = 0; i < vccss.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_vccs " + vccss.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentVoltageControlledVoltageSource> vcvss = module.getVcvs(); + for (int i = 0; i < vcvss.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_vcvs " + vcvss.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentCurrentSinkDE> DE_isinks = module.getDE_isink(); + for (int i = 0; i < DE_isinks.size(); i++) { + // corps = corps + "\tsca_eln::sca_de::sca_isink" + DE_isinks.get(i).getName() + // + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_de_isink " + DE_isinks.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentCurrentSourceDE> DE_isources = module.getDE_isource(); + for (int i = 0; i < DE_isources.size(); i++) { + // corps = corps + "\tsca_eln::sca_de::sca_isource " + + // DE_isources.get(i).getName() + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_de_isource " + DE_isources.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentCurrentSinkTDF> TDF_isinks = module.getTDF_isink(); + for (int i = 0; i < TDF_isinks.size(); i++) { + // corps = corps + "\tsca_eln::sca_tdf::sca_isink" + TDF_isinks.get(i).getName() + // + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_tdf_isink " + TDF_isinks.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentCurrentSourceTDF> TDF_isources = module.getTDF_isource(); + for (int i = 0; i < TDF_isources.size(); i++) { + // corps = corps + "\tsca_eln::sca_tdf::sca_isource " + + // TDF_isources.get(i).getName() + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_tdf_isource " + TDF_isources.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentVoltageSinkDE> DE_vsinks = module.getDE_vsink(); + for (int i = 0; i < DE_vsinks.size(); i++) { + // corps = corps + "\tsca_eln::sca_de::sca_vsink " + + // DE_vsinks.get(i).getName() + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_de_vsink " + DE_vsinks.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentVoltageSourceDE> DE_vsources = module.getDE_vsource(); + for (int i = 0; i < DE_vsources.size(); i++) { + // corps = corps + "\tsca_eln::sca_de::sca_vsource " + + // DE_vsources.get(i).getName() + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_de_vsource " + DE_vsources.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentVoltageSinkTDF> TDF_vsinks = module.getTDF_vsink(); + for (int i = 0; i < TDF_vsinks.size(); i++) { + // corps = corps + "\tsca_eln::sca_tdf::sca_vsink " + + // TDF_vsinks.get(i).getName() + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_tdf_vsink " + TDF_vsinks.get(i).getName() + ";" + CR; + } + + LinkedList<ELNTComponentVoltageSourceTDF> TDF_vsources = module.getTDF_vsource(); + for (int i = 0; i < TDF_vsources.size(); i++) { + // corps = corps + "\tsca_eln::sca_tdf::sca_vsource " + + // TDF_vsources.get(i).getName() + ";" + CR; + corpsModule = corpsModule + "\tsca_eln::sca_tdf_vsource " + TDF_vsources.get(i).getName() + ";" + CR; + } + + corpsModule = corpsModule + CR + "\tSC_CTOR(" + module.getName() + ")" + CR; + + int cpt = 0; + for (int i = 0; i < terms.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + terms.get(i).getName() + "(\"" + terms.get(i).getName() + "\")" + + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + terms.get(i).getName() + "(\"" + terms.get(i).getName() + "\")" + + CR; + } + } + for (int i = 0; i < portsDE.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + portsDE.get(i).getName() + "(\"" + portsDE.get(i).getName() + "\")" + + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + portsDE.get(i).getName() + "(\"" + portsDE.get(i).getName() + "\")" + + CR; + } + } + for (int i = 0; i < portsTDF.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + portsTDF.get(i).getName() + "(\"" + portsTDF.get(i).getName() + "\")" + + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + portsTDF.get(i).getName() + "(\"" + portsTDF.get(i).getName() + "\")" + + CR; + } + } + for (int i = 0; i < capacitors.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + capacitors.get(i).getName() + "(\"" + + capacitors.get(i).getName() + "\", " + + encode(capacitors.get(i).getVal(), capacitors.get(i).getUnit0()) + ", " + + encode(capacitors.get(i).getQ0(), capacitors.get(i).getUnit1()) + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + capacitors.get(i).getName() + "(\"" + + capacitors.get(i).getName() + "\", " + + encode(capacitors.get(i).getVal(), capacitors.get(i).getUnit0()) + ", " + + encode(capacitors.get(i).getQ0(), capacitors.get(i).getUnit1()) + ")" + CR; + } + } + for (int i = 0; i < idealTransformers.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + idealTransformers.get(i).getName() + "(\"" + + idealTransformers.get(i).getName() + "\", " + idealTransformers.get(i).getRatio() + ")" + + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + idealTransformers.get(i).getName() + "(\"" + + idealTransformers.get(i).getName() + "\", " + idealTransformers.get(i).getRatio() + ")" + + CR; + } + } + for (int i = 0; i < isources.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + isources.get(i).getName() + "(\"" + isources.get(i).getName() + + "\", " + isources.get(i).getInitValue() + ", " + isources.get(i).getOffset() + ", " + + isources.get(i).getAmplitude() + ", " + + encode(isources.get(i).getFrequency(), isources.get(i).getUnit0()) + ", " + + isources.get(i).getPhase() + ", " + isources.get(i).getDelay() + ", " + + isources.get(i).getAcAmplitude() + ", " + isources.get(i).getAcPhase() + ", " + + isources.get(i).getAcNoiseAmplitude() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + isources.get(i).getName() + "(\"" + isources.get(i).getName() + + "\", " + isources.get(i).getInitValue() + ", " + isources.get(i).getOffset() + ", " + + isources.get(i).getAmplitude() + ", " + + encode(isources.get(i).getFrequency(), isources.get(i).getUnit0()) + ", " + + isources.get(i).getPhase() + ", " + isources.get(i).getDelay() + ", " + + isources.get(i).getAcAmplitude() + ", " + isources.get(i).getAcPhase() + ", " + + isources.get(i).getAcNoiseAmplitude() + ")" + CR; + } + } + for (int i = 0; i < vsources.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + vsources.get(i).getName() + "(\"" + vsources.get(i).getName() + + "\", " + vsources.get(i).getInitValue() + ", " + vsources.get(i).getOffset() + ", " + + vsources.get(i).getAmplitude() + ", " + + encode(vsources.get(i).getFrequency(), vsources.get(i).getUnit0()) + ", " + + vsources.get(i).getPhase() + ", " + vsources.get(i).getDelay() + ", " + + vsources.get(i).getAcAmplitude() + ", " + vsources.get(i).getAcPhase() + ", " + + vsources.get(i).getAcNoiseAmplitude() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + vsources.get(i).getName() + "(\"" + vsources.get(i).getName() + + "\", " + vsources.get(i).getInitValue() + ", " + vsources.get(i).getOffset() + ", " + + vsources.get(i).getAmplitude() + ", " + + encode(vsources.get(i).getFrequency(), vsources.get(i).getUnit0()) + ", " + + vsources.get(i).getPhase() + ", " + vsources.get(i).getDelay() + ", " + + vsources.get(i).getAcAmplitude() + ", " + vsources.get(i).getAcPhase() + ", " + + vsources.get(i).getAcNoiseAmplitude() + ")" + CR; + } + } + for (int i = 0; i < inductors.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + inductors.get(i).getName() + "(\"" + inductors.get(i).getName() + + "\", " + encode(inductors.get(i).getVal(), inductors.get(i).getUnit0()) + ", " + + encode(inductors.get(i).getPhi0(), inductors.get(i).getUnit1()) + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + inductors.get(i).getName() + "(\"" + inductors.get(i).getName() + + "\", " + encode(inductors.get(i).getVal(), inductors.get(i).getUnit0()) + ", " + + encode(inductors.get(i).getPhi0(), inductors.get(i).getUnit1()) + ")" + CR; + } + } + for (int i = 0; i < resistors.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + resistors.get(i).getName() + "(\"" + resistors.get(i).getName() + + "\", " + encode(resistors.get(i).getVal(), resistors.get(i).getUnit()) + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + resistors.get(i).getName() + "(\"" + resistors.get(i).getName() + + "\", " + encode(resistors.get(i).getVal(), resistors.get(i).getUnit()) + ")" + CR; + } + } + for (int i = 0; i < transmissionLines.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + transmissionLines.get(i).getName() + "(\"" + + transmissionLines.get(i).getName() + "\", " + + encode(transmissionLines.get(i).getZ0(), transmissionLines.get(i).getUnit0()) + ", " + + transmissionLines.get(i).getDelay() + ", " + + encode(transmissionLines.get(i).getDelta0(), transmissionLines.get(i).getUnit2()) + ")" + + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + transmissionLines.get(i).getName() + "(\"" + + transmissionLines.get(i).getName() + "\", " + + encode(transmissionLines.get(i).getZ0(), transmissionLines.get(i).getUnit0()) + ", " + + transmissionLines.get(i).getDelay() + ", " + + encode(transmissionLines.get(i).getDelta0(), transmissionLines.get(i).getUnit2()) + ")" + + CR; + } + } + for (int i = 0; i < vccss.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + vccss.get(i).getName() + "(\"" + vccss.get(i).getName() + + "\", " + encode(vccss.get(i).getVal(), vccss.get(i).getUnit()) + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + vccss.get(i).getName() + "(\"" + vccss.get(i).getName() + + "\", " + encode(vccss.get(i).getVal(), vccss.get(i).getUnit()) + ")" + CR; + } + } + for (int i = 0; i < vcvss.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + vcvss.get(i).getName() + "(\"" + vcvss.get(i).getName() + + "\", " + vcvss.get(i).getVal() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + vcvss.get(i).getName() + "(\"" + vcvss.get(i).getName() + + "\", " + vcvss.get(i).getVal() + ")" + CR; + } + } + for (int i = 0; i < DE_isinks.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + DE_isinks.get(i).getName() + "(\"" + + DE_isinks.get(i).getName() + "\", " + DE_isinks.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + DE_isinks.get(i).getName() + "(\"" + + DE_isinks.get(i).getName() + "\", " + DE_isinks.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < DE_isources.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + DE_isources.get(i).getName() + "(\"" + + DE_isources.get(i).getName() + "\", " + DE_isources.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + DE_isources.get(i).getName() + "(\"" + + DE_isources.get(i).getName() + "\", " + DE_isources.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < TDF_isinks.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + TDF_isinks.get(i).getName() + "(\"" + + TDF_isinks.get(i).getName() + "\", " + TDF_isinks.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + TDF_isinks.get(i).getName() + "(\"" + + TDF_isinks.get(i).getName() + "\", " + TDF_isinks.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < TDF_isources.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + TDF_isources.get(i).getName() + "(\"" + + TDF_isources.get(i).getName() + "\", " + TDF_isources.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + TDF_isources.get(i).getName() + "(\"" + + TDF_isources.get(i).getName() + "\", " + TDF_isources.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < DE_vsinks.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + DE_vsinks.get(i).getName() + "(\"" + + DE_vsinks.get(i).getName() + "\", " + DE_vsinks.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + DE_vsinks.get(i).getName() + "(\"" + + DE_vsinks.get(i).getName() + "\", " + DE_vsinks.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < DE_vsources.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + DE_vsources.get(i).getName() + "(\"" + + DE_vsources.get(i).getName() + "\", " + DE_vsources.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + DE_vsources.get(i).getName() + "(\"" + + DE_vsources.get(i).getName() + "\", " + DE_vsources.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < TDF_vsinks.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + TDF_vsinks.get(i).getName() + "(\"" + + TDF_vsinks.get(i).getName() + "\", " + TDF_vsinks.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + TDF_vsinks.get(i).getName() + "(\"" + + TDF_vsinks.get(i).getName() + "\", " + TDF_vsinks.get(i).getScale() + ")" + CR; + } + } + for (int i = 0; i < TDF_vsources.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + TDF_vsources.get(i).getName() + "(\"" + + TDF_vsources.get(i).getName() + "\", " + TDF_vsources.get(i).getScale() + ")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + TDF_vsources.get(i).getName() + "(\"" + + TDF_vsources.get(i).getName() + "\", " + TDF_vsources.get(i).getScale() + ")" + CR; + } + } + + // List of nodes + LinkedList<ELNTConnector> nodes = new LinkedList<ELNTConnector>(); + for (int i = 0; i < connectorsModule.size(); i++) { + if (!connectorsModule.get(i).getName().equals("")) { + if (!((connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF + && (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceTDF + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkTDF + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceTDF + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkTDF)) + || (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF + && (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceTDF + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkTDF + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceTDF + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkTDF)) + || (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortTDF + && (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceTDF + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkTDF + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceTDF + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkTDF)) + || (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortTDF + && (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceTDF + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkTDF + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceTDF + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkTDF)) + || (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortDE + && (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceDE + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkDE + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceDE + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkDE)) + || (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortDE + && (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceDE + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkDE + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceDE + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkDE)) + || (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTModulePortDE + && (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSourceDE + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentVoltageSinkDE + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSourceDE + || connectorsModule.get(i).get_p2().getComponent() instanceof ELNTComponentCurrentSinkDE)) + || (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTModulePortDE + && (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSourceDE + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentVoltageSinkDE + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSourceDE + || connectorsModule.get(i).get_p1().getComponent() instanceof ELNTComponentCurrentSinkDE)) + || (connectorsModule.get(i).get_p1().getComponent() instanceof ELNTMidPortTerminal + && connectorsModule.get(i).get_p2().getComponent() instanceof ELNTPrimitiveComponent) + || (connectorsModule.get(i).get_p2().getComponent() instanceof ELNTMidPortTerminal + && connectorsModule.get(i).get_p1().getComponent() instanceof ELNTPrimitiveComponent))) { + nodes.add(connectorsModule.get(i)); + } + } + } + + for (int i = 0; i < nodes.size(); i++) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + nodes.get(i).getName() + "(\"" + nodes.get(i).getName() + "\")" + + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + nodes.get(i).getName() + "(\"" + nodes.get(i).getName() + "\")" + + CR; + } + } + + LinkedList<ELNTNodeRef> nodeRefs = module.getNodeRef(); + if (nodeRefs.size() >= 1) { + if (cpt == 0) { + corpsModule = corpsModule + "\t: " + nodeRefs.get(0).getName() + "(\"" + nodeRefs.get(0).getName() + + "\")" + CR; + cpt++; + } else { + corpsModule = corpsModule + "\t, " + nodeRefs.get(0).getName() + "(\"" + nodeRefs.get(0).getName() + + "\")" + CR; + } + } + + corpsModule = corpsModule + "\t{" + CR; + + for (int i = 0; i < capacitors.size(); i++) { + for (int j = 0; j < capacitors.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + capacitors.get(i).getName() + "." + + capacitors.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(capacitors.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(capacitors.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(capacitors.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(capacitors.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < idealTransformers.size(); i++) { + for (int j = 0; j < idealTransformers.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + idealTransformers.get(i).getName() + "." + + idealTransformers.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(idealTransformers.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(idealTransformers.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(idealTransformers.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(idealTransformers.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < isources.size(); i++) { + for (int j = 0; j < isources.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + isources.get(i).getName() + "." + + isources.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(isources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(isources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(isources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(isources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < vsources.size(); i++) { + for (int j = 0; j < vsources.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + vsources.get(i).getName() + "." + + vsources.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(vsources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(vsources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(vsources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(vsources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < inductors.size(); i++) { + for (int j = 0; j < inductors.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + inductors.get(i).getName() + "." + + inductors.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(inductors.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(inductors.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(inductors.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(inductors.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < resistors.size(); i++) { + for (int j = 0; j < resistors.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + resistors.get(i).getName() + "." + + resistors.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(resistors.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(resistors.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(resistors.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(resistors.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < transmissionLines.size(); i++) { + for (int j = 0; j < transmissionLines.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + transmissionLines.get(i).getName() + "." + + transmissionLines.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(transmissionLines.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(transmissionLines.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(transmissionLines.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(transmissionLines.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < vccss.size(); i++) { + for (int j = 0; j < vccss.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + vccss.get(i).getName() + "." + + vccss.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(vccss.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(vccss.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(vccss.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(vccss.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < vcvss.size(); i++) { + for (int j = 0; j < vcvss.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + vcvss.get(i).getName() + "." + + vcvss.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(vcvss.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(vcvss.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(vcvss.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(vcvss.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < DE_isinks.size(); i++) { + for (int j = 0; j < DE_isinks.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + DE_isinks.get(i).getName() + "." + + DE_isinks.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(DE_isinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(DE_isinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(DE_isinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(DE_isinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < DE_isources.size(); i++) { + for (int j = 0; j < DE_isources.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + DE_isources.get(i).getName() + "." + + DE_isources.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(DE_isources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(DE_isources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(DE_isources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(DE_isources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < TDF_isinks.size(); i++) { + for (int j = 0; j < TDF_isinks.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + TDF_isinks.get(i).getName() + "." + + TDF_isinks.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(TDF_isinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(TDF_isinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(TDF_isinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(TDF_isinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < TDF_isources.size(); i++) { + for (int j = 0; j < TDF_isources.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + TDF_isources.get(i).getName() + "." + + TDF_isources.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(TDF_isources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(TDF_isources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(TDF_isources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(TDF_isources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < DE_vsinks.size(); i++) { + for (int j = 0; j < DE_vsinks.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + DE_vsinks.get(i).getName() + "." + + DE_vsinks.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(DE_vsinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(DE_vsinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(DE_vsinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(DE_vsinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < DE_vsources.size(); i++) { + for (int j = 0; j < DE_vsources.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + DE_vsources.get(i).getName() + "." + + DE_vsources.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(DE_vsources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(DE_vsources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(DE_vsources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(DE_vsources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < TDF_vsinks.size(); i++) { + for (int j = 0; j < TDF_vsinks.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + TDF_vsinks.get(i).getName() + "." + + TDF_vsinks.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(TDF_vsinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(TDF_vsinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(TDF_vsinks.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(TDF_vsinks.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + for (int i = 0; i < TDF_vsources.size(); i++) { + for (int j = 0; j < TDF_vsources.get(i).getConnectingPoint().size(); j++) { + corpsModule = corpsModule + "\t\t" + TDF_vsources.get(i).getName() + "." + + TDF_vsources.get(i).getConnectingPoint().get(j).getName() + "("; + for (int k = 0; k < connectorsModule.size(); k++) { + if (connectorsModule.get(k).get_p1().getName() + .equals(TDF_vsources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p1().getComponent().equals(TDF_vsources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p2().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + if (connectorsModule.get(k).get_p2().getName() + .equals(TDF_vsources.get(i).getConnectingPoint().get(j).getName()) + && connectorsModule.get(k).get_p2().getComponent().equals(TDF_vsources.get(i))) { + if (!connectorsModule.get(k).getName().equals("")) { + corpsModule = corpsModule + connectorsModule.get(k).getName() + ");" + CR; + } else { + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + LinkedList<ELNTMidPortTerminal> mids = connectorsModule.get(k).getMidPortTerminal(); + boolean stop = false; + for (ELNTMidPortTerminal mid : mids) { + for (int l = 0; l < connectorsModule.size(); l++) { + if (connectorsModule.get(l).get_p1().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } else if (connectorsModule.get(l).get_p2().getComponent().equals(mid)) { + if (!searchName(connectorsModule.get(l)).equals("")) { + corpsModule = corpsModule + searchName(connectorsModule.get(l)) + ");" + CR; + stop = true; + break; + } + } + } + if (stop == true) { + break; + } + } + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModuleTerminal) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTNodeRef) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortDE) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTModulePortTDF) { + corpsModule = corpsModule + connectorsModule.get(k).get_p1().getComponent().getName() + + ");" + CR; + } + if (connectorsModule.get(k).get_p1().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector connector = ((ELNTMidPortTerminal) connectorsModule.get(k).get_p2() + .getComponent()).getConnector(); + corpsModule = corpsModule + searchName(connector) + ");" + CR; + } + } + } + } + } + } + + corpsModule = corpsModule + "\t}" + CR2 + "private:" + CR; + + for (int i = 0; i < nodes.size(); i++) { + corpsModule = corpsModule + "\tsca_eln::sca_node " + nodes.get(i).getName() + ";" + CR; + } + + if (nodeRefs.size() >= 1) { + corpsModule = corpsModule + "\tsca_eln::sca_node_ref " + nodeRefs.get(0).getName() + ";" + CR; + } + + corpsModule = corpsModule + "};" + CR2 + "#endif" + " // " + module.getName().toUpperCase() + "_H"; + } else { + corpsModule = ""; + } + return corpsModule; + } + + private static String encode(double value, String unit) { + StringBuffer unit_buf = new StringBuffer(unit); + if (unit_buf.length() == 1) { + return "" + value; + } else if (unit_buf.length() == 2) { + char c = unit_buf.charAt(0); + switch (c) { + case 'G': + return value + "e9"; + case 'M': + return value + "e6"; + case 'k': + return value + "e3"; + case 'm': + return value + "e-3"; + case '\u03BC': + return value + "e-6"; + case 'n': + return value + "e-9"; + case 'p': + return value + "e-12"; + case 'f': + return value + "e-15"; + default: + return "" + value; + } + } + return ""; + } + + private static String searchName(ELNTConnector connector) { + if (connector.get_p1().getComponent() instanceof ELNTPrimitiveComponent) { + if (connector.get_p2().getComponent() instanceof ELNTModulePortTDF) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTModulePortDE) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTModuleTerminal) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTNodeRef) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTMidPortTerminal) { + ELNTConnector c = ((ELNTMidPortTerminal) connector.get_p2().getComponent()).getConnector(); + return searchName(c); + } + } + if (connector.get_p1().getComponent() instanceof ELNTModulePortTDF) { + return connector.get_p1().getComponent().getName(); + } + if (connector.get_p1().getComponent() instanceof ELNTModulePortDE) { + return connector.get_p1().getComponent().getName(); + } + if (connector.get_p1().getComponent() instanceof ELNTModuleTerminal) { + return connector.get_p1().getComponent().getName(); + } + if (connector.get_p1().getComponent() instanceof ELNTNodeRef) { + return connector.get_p1().getComponent().getName(); + } + if (connector.get_p1().getComponent() instanceof ELNTMidPortTerminal) { + if (connector.get_p2().getComponent() instanceof ELNTModulePortTDF) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTModulePortDE) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTModuleTerminal) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTNodeRef) { + return connector.get_p2().getComponent().getName(); + } + if (connector.get_p2().getComponent() instanceof ELNTPrimitiveComponent) { + ELNTConnector c = ((ELNTMidPortTerminal) connector.get_p1().getComponent()).getConnector(); + return searchName(c); + } + } + return ""; + } +} \ No newline at end of file diff --git a/src/main/java/elntranslator/toELN/TopCellGenerator.java b/src/main/java/elntranslator/toELN/TopCellGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..44ccd478c42081d9f2a7725ced74b55d9f67a3d7 --- /dev/null +++ b/src/main/java/elntranslator/toELN/TopCellGenerator.java @@ -0,0 +1,134 @@ +/**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. +*/ + +/* Generator of the top cell for simulation with SoCLib virtual component + library */ + +/* authors: v1.0 Raja GATGOUT 2014 + v2.0 Daniela GENIUS, Julien HENON 2015 */ + +package elntranslator.toELN; + +import java.io.*; +import java.util.LinkedList; +import java.util.List; +import elntranslator.*; + +/** + * Class TopCellGenerator + * Save the components and connectors in files + * Creation: 27/07/2018 + * @version 1.0 27/07/2018 + * @author Irina Kit Yan LEE +*/ + +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; + + public TopCellGenerator(ELNSpecification _eln) { + eln = _eln; + } + + public String generateTopCell(ELNTCluster cluster, LinkedList<ELNTConnector> connectors) { + if (TopCellGenerator.eln.getCluster() == null) { + System.out.println("***Warning: require at least one cluster***"); + } + if (TopCellGenerator.eln.getNbModule() == 0) { + System.out.println("***Warning: require at least one module***"); + } + if (TopCellGenerator.eln.getNbComponentCapacitor() + TopCellGenerator.eln.getNbComponentCurrentSinkTDF() + + TopCellGenerator.eln.getNbComponentCurrentSourceTDF() + TopCellGenerator.eln.getNbComponentIdealTransformer() + + TopCellGenerator.eln.getNbComponentIndependentCurrentSource() + TopCellGenerator.eln.getNbComponentIndependentVoltageSource() + + TopCellGenerator.eln.getNbComponentInductor() + TopCellGenerator.eln.getNbComponentResistor() + TopCellGenerator.eln.getNbComponentTransmissionLine() + + TopCellGenerator.eln.getNbComponentVoltageControlledCurrentSource() + TopCellGenerator.eln.getNbComponentVoltageControlledVoltageSource() + + TopCellGenerator.eln.getNbComponentVoltageSinkTDF() + TopCellGenerator.eln.getNbComponentVoltageSourceTDF() + + TopCellGenerator.eln.getNbComponentVoltageSinkDE() + TopCellGenerator.eln.getNbComponentVoltageSourceDE() + + TopCellGenerator.eln.getNbComponentCurrentSinkDE() + TopCellGenerator.eln.getNbComponentCurrentSourceDE()== 0) { + System.out.println("***Warning: require at least one primitive component***"); + } + if (TopCellGenerator.eln.getNbComponentNodeRef() == 0) { + System.out.println("***Warning: require at least one node ref***"); + } + String top = ClusterCode.getClusterCode(cluster, connectors); + return (top); + } + + public void saveFile(String path) { + ELNTCluster cluster = TopCellGenerator.eln.getCluster(); + LinkedList<ELNTConnector> connectorsModule = TopCellGenerator.eln.getAllConnectorsInModule(); + LinkedList<ELNTConnector> connectorsCluster = TopCellGenerator.eln.getAllConnectorsInCluster(); + + String top; + + try { + // Save file .cpp + System.err.println(path + GENERATED_PATH1 + cluster.getName() + ".cpp"); + FileWriter fw = new FileWriter(path + GENERATED_PATH1 + "/" + cluster.getName() + "_tb.cpp"); + top = generateTopCell(cluster, connectorsCluster); + fw.write(top); + fw.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + // Save files .h + saveFileModule(path, cluster, connectorsModule); + } + + public void saveFileModule(String path, ELNTCluster cluster, List<ELNTConnector> connectors) { + LinkedList<ELNTModule> modules = cluster.getModule(); + + String code; + + for (ELNTModule module : modules) { + try { + System.err.println(path + GENERATED_PATH2 + module.getName() + ".h"); + FileWriter fw = new FileWriter(path + GENERATED_PATH2 + "/" + module.getName() + ".h"); + code = ModuleCode.getModuleCode(module, connectors); + fw.write(code); + fw.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/proverifspec/ProVerifResultTrace.java b/src/main/java/proverifspec/ProVerifResultTrace.java index 65d43fcb0fa9480003e7963b9ba60be696bdda0e..80cc8c1284f605d2463bd2f0192d0c275ba21910 100644 --- a/src/main/java/proverifspec/ProVerifResultTrace.java +++ b/src/main/java/proverifspec/ProVerifResultTrace.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package proverifspec; import avatartranslator.toproverif.AVATAR2ProVerif; @@ -51,6 +48,8 @@ import java.io.BufferedWriter; import java.io.IOException; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -66,10 +65,10 @@ public class ProVerifResultTrace { private static Pattern blockNamePattern; private static Pattern attrPattern; - private LinkedList<ProVerifResultTraceStep> trace; + private List<ProVerifResultTraceStep> trace; private StringBuilder buffer; - private LinkedList<String> proverifProcess; - private HashMap<String, Integer> attackerNamesMap; + private List<String> proverifProcess; + private Map<String, Integer> attackerNamesMap; static @@ -192,7 +191,7 @@ public class ProVerifResultTrace { } } - public ProVerifResultTrace(LinkedList<String> proverifProcess) + public ProVerifResultTrace(List<String> proverifProcess) { this.proverifProcess = proverifProcess; this.trace = new LinkedList<ProVerifResultTraceStep> (); @@ -200,7 +199,7 @@ public class ProVerifResultTrace { this.buffer = null; } - public LinkedList<ProVerifResultTraceStep> getTrace() + public List<ProVerifResultTraceStep> getTrace() { return this.trace; } @@ -272,7 +271,7 @@ public class ProVerifResultTrace { else { // TODO: is it possible that subtype is itself composed ? - LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther()); + List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther()); if (types.size() > 1) attrPart = attrName[0] + "." + attrName[1]; else diff --git a/src/main/java/syscamstranslator/SysCAMSTPortDE.java b/src/main/java/syscamstranslator/SysCAMSTPortDE.java index 3ef0d4c8adc383253d7dc3168419cd8aa2055f9e..961db9e4e08a851feb59bb8e1ac5cc10ec3eba2e 100644 --- a/src/main/java/syscamstranslator/SysCAMSTPortDE.java +++ b/src/main/java/syscamstranslator/SysCAMSTPortDE.java @@ -38,6 +38,8 @@ package syscamstranslator; +import elntranslator.*; + /** * Class SysCAMSTPortDE * Parameters of a SystemC-AMS port DE @@ -60,6 +62,8 @@ public class SysCAMSTPortDE extends SysCAMSTComponent { private SysCAMSTBlockDE blockDE; private SysCAMSTBlockGPIO2VCI blockGPIO2VCI; + private ELNTCluster cluster; + private ELNTModule module; public SysCAMSTPortDE(String _name, int _origin, String _DEType, boolean _sensitive, String _sensitiveMethod, SysCAMSTBlockDE _blockDE) { name = _name; @@ -86,7 +90,33 @@ public class SysCAMSTPortDE extends SysCAMSTComponent { sensitiveMethod = _sensitiveMethod; blockGPIO2VCI = _blockGPIO2VCI; } + + public SysCAMSTPortDE(String _name, int _origin, String _DEType, boolean _sensitive, String _sensitiveMethod, ELNTCluster _cluster) { + name = _name; +// period = _period; +// time = _time; +// rate = _rate; +// delay = _delay;ELNTCluster + origin = _origin; + DEType = _DEType; + sensitive = _sensitive; + sensitiveMethod = _sensitiveMethod; + cluster = _cluster; + } + public SysCAMSTPortDE(String _name, int _origin, String _DEType, boolean _sensitive, String _sensitiveMethod, ELNTModule _module) { + name = _name; +// period = _period; +// time = _time; +// rate = _rate; +// delay = _delay;ELNTCluster + origin = _origin; + DEType = _DEType; + sensitive = _sensitive; + sensitiveMethod = _sensitiveMethod; + module = _module; + } + public String getName() { return name; } @@ -130,4 +160,12 @@ public class SysCAMSTPortDE extends SysCAMSTComponent { public SysCAMSTBlockGPIO2VCI getBlockGPIO2VCI() { return blockGPIO2VCI; } + + public ELNTCluster getCluster() { + return cluster; + } + + public ELNTModule getModule() { + return module; + } } \ No newline at end of file diff --git a/src/main/java/syscamstranslator/SysCAMSTPortTDF.java b/src/main/java/syscamstranslator/SysCAMSTPortTDF.java index 0871fd1fd80ac378ff25d81eb0dee7847464edc3..ef12060e8313aa8acdb27fda1f9e783d4bb10a37 100644 --- a/src/main/java/syscamstranslator/SysCAMSTPortTDF.java +++ b/src/main/java/syscamstranslator/SysCAMSTPortTDF.java @@ -38,6 +38,9 @@ package syscamstranslator; +import elntranslator.ELNTCluster; +import elntranslator.ELNTModule; + /** * Class SysCAMSTPortTDF * Parameters of a SystemC-AMS port TDF @@ -57,6 +60,8 @@ public class SysCAMSTPortTDF extends SysCAMSTComponent { private String TDFType; private SysCAMSTBlockTDF blockTDF; + private ELNTCluster cluster; + private ELNTModule module; public SysCAMSTPortTDF(String _name, double _period, String _time, int _rate, int _delay, int _origin, String _TDFType, SysCAMSTBlockTDF _blockTDF) { name = _name; @@ -68,6 +73,28 @@ public class SysCAMSTPortTDF extends SysCAMSTComponent { TDFType = _TDFType; blockTDF = _blockTDF; } + + public SysCAMSTPortTDF(String _name, int _period, String _time, int _rate, int _delay, int _origin, String _TDFType, ELNTCluster _cluster) { + name = _name; + period = _period; + time = _time; + rate = _rate; + delay = _delay; + origin = _origin; + TDFType = _TDFType; + cluster = _cluster; + } + + public SysCAMSTPortTDF(String _name, int _period, String _time, int _rate, int _delay, int _origin, String _TDFType, ELNTModule _module) { + name = _name; + period = _period; + time = _time; + rate = _rate; + delay = _delay; + origin = _origin; + TDFType = _TDFType; + module = _module; + } public String getName() { return name; @@ -112,4 +139,12 @@ public class SysCAMSTPortTDF extends SysCAMSTComponent { public SysCAMSTBlockTDF getBlockTDF() { return blockTDF; } -} + + public ELNTCluster getCluster() { + return cluster; + } + + public ELNTModule getModule() { + return module; + } +} diff --git a/src/main/java/tmltranslator/TMLActivity.java b/src/main/java/tmltranslator/TMLActivity.java index e1fa1378e72668a0417a43339089d70b198d473d..f131566e7ef1c6b2867dec730eb5097fa2c07558 100755 --- a/src/main/java/tmltranslator/TMLActivity.java +++ b/src/main/java/tmltranslator/TMLActivity.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package tmltranslator; import myutil.Conversion; @@ -46,7 +43,6 @@ import myutil.TraceManager; import java.util.Vector; - /** * Class TMLActivity * Creation: 23/11/2005 @@ -571,13 +567,13 @@ public class TMLActivity extends TMLElement { } public String toXML() { - String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n"); - for(TMLActivityElement elt: elements) { - s += elt.toXML(elements); - } - s += "</ACTIVITY>\n"; - return s; + String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n"); + + for(TMLActivityElement elt: elements) { + s += elt.toXML(elements); + } + s += "</ACTIVITY>\n"; + + return s; } - - } diff --git a/src/main/java/tmltranslator/TMLCP.java b/src/main/java/tmltranslator/TMLCP.java index fc2f87bd8749668a79411490550f44d7d00de29b..f4510692a2f40d1a3cbcbbdbaf10ac3300e8a0d7 100755 --- a/src/main/java/tmltranslator/TMLCP.java +++ b/src/main/java/tmltranslator/TMLCP.java @@ -37,7 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package tmltranslator; import myutil.TraceManager; @@ -329,15 +328,16 @@ public class TMLCP extends TMLElement { } } - public void splitADs() { - - ArrayList<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>(); - all.addAll(mainCP.splitADs()); - for (TMLCPActivityDiagram diag : otherCPs) { - all.addAll(diag.splitADs()); - } - otherCPs.addAll(all); - } + // Issue #69; Unused TMLCPJunction +// public void splitADs() { +// +// List<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>(); +// all.addAll(mainCP.splitADs()); +// for (TMLCPActivityDiagram diag : otherCPs) { +// all.addAll(diag.splitADs()); +// } +// otherCPs.addAll(all); +// } public TMLCPElement getNonConnectedElement() { TMLCPElement elt; @@ -378,10 +378,10 @@ public class TMLCP extends TMLElement { List<TMLCPActivityDiagram> CPlist = new ArrayList<TMLCPActivityDiagram>(); List<TMLCPSequenceDiagram> SDlist = new ArrayList<TMLCPSequenceDiagram>(); - List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>(); + // List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>(); TMLCPActivityDiagram tempCP; TMLCPSequenceDiagram tempSD; - TMLAttribute attr; + // TMLAttribute attr; int i, j, k; TraceManager.addDev("The data structure contains " + getNumSections() + " CP sections (AD) and " + @@ -450,22 +450,22 @@ public class TMLCP extends TMLElement { TraceManager.addDev("Sequence Diagram n. " + (i+1) + ": " + tempSD.getName() + "\n"); //Print Variables - listAttributes = tempSD.getAttributes(); + //listAttributes = tempSD.getAttributes(); //TraceManager.addDevf("\tAttributes:\n"); - for (j = 0; j < listAttributes.size(); j++) { - attr = listAttributes.get(j); + // for (j = 0; j < listAttributes.size(); j++) { + // attr = listAttributes.get(j); //TraceManager.addDev("\t\t %s\t%s\t%s\n", attr.getName(), attr.getType(), attr.getInitialValue()); - } + //} //Print Instances - List<TMLSDInstance> listInstances; - TMLSDInstance inst; - listInstances = tempSD.getInstances(); - TraceManager.addDev("\tInstances:"); - for (j = 0; j < listInstances.size(); j++) { - inst = listInstances.get(j); + //List<TMLSDInstance> listInstances; + //TMLSDInstance inst; + //listInstances = tempSD.getInstances(); + //TraceManager.addDev("\tInstances:"); + // for (j = 0; j < listInstances.size(); j++) { + // inst = listInstances.get(j); //TraceManager.addDev("\t\t" + inst.getName() + "\n"); - } + //} //Print Messages List<TMLSDMessage> listMessages; diff --git a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java index ef21bc989f8f434470c23d51e90c0ca8a9f4b9ee..acf7e2bc222c2c996cba9912fe0ea57cf0f107f3 100755 --- a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java +++ b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java @@ -586,11 +586,11 @@ public class TMLCPSyntaxChecking { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); //Do not raise a syntax error when variables appear in actions - ArrayList<String> boolAttrNamesList = new ArrayList<String>(); //a list of the boolean attribute names - ArrayList<String> natAttrNamesList = new ArrayList<String>(); //a list of the natural attribute names + List<String> boolAttrNamesList = new ArrayList<String>(); //a list of the boolean attribute names + List<String> natAttrNamesList = new ArrayList<String>(); //a list of the natural attribute names for (TMLAttribute attr : attributes) { if (attr.isNat()) { natAttrNamesList.add(attr.getName()); diff --git a/src/main/java/tmltranslator/TMLChoice.java b/src/main/java/tmltranslator/TMLChoice.java index b4c8703865807b0c15385f209a79455a1975a234..9a2f7aa31caeb755effb7fcc1dc08faf3de9560e 100755 --- a/src/main/java/tmltranslator/TMLChoice.java +++ b/src/main/java/tmltranslator/TMLChoice.java @@ -36,14 +36,12 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package tmltranslator; import myutil.Conversion; import java.util.ArrayList; +import java.util.List; /** * Class TMLChoice @@ -52,7 +50,7 @@ import java.util.ArrayList; * @author Ludovic APVRILLE */ public class TMLChoice extends TMLActivityElement{ - private ArrayList<String> guards; + private List<String> guards; public TMLChoice(String _name, Object _referenceObject) { super(_name, _referenceObject); @@ -331,13 +329,11 @@ public class TMLChoice extends TMLActivityElement{ } } - public String customExtraToXML() { - String g = ""; - for(String s: guards) { - g += s + ";"; - } - return " guards=\"" + g + "\" "; + String g = ""; + for(String s: guards) { + g += s + ";"; + } + return " guards=\"" + g + "\" "; } - } diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java index c1beb52121a7413ec1daadc682ab8b080d06a21e..0fe1dfd17a0dfd29a5bd8d9575657590219ba9e1 100755 --- a/src/main/java/tmltranslator/TMLSyntaxChecking.java +++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java @@ -50,6 +50,7 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; /** @@ -608,7 +609,7 @@ public class TMLSyntaxChecking { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); for (String s : vars) { addError(t, elt, UNDECLARED_VARIABLE + " :" + s + " in expression " + action, TMLError.ERROR_BEHAVIOR); } diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java index 7cdd59a3c08fb1ae8184191861b4a61705474339..4076aa65b88407bf149640dd1c9a4459c874c1e8 100755 --- a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java +++ b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java @@ -37,9 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package tmltranslator.tmlcp; import tmltranslator.TMLCP; @@ -314,118 +311,119 @@ public class TMLCPActivityDiagram extends TMLElement { } } + // Issue #69; Unused TMLCPJunction // The splitting works only if there is no other operations than sequences and references to ADs/SDs // between forks and joins // The function removes junctions, and creates one new AD per junction - public Collection<TMLCPActivityDiagram> splitADs() { - int id = 0; - TMLCPActivityDiagram diag; - - //TraceManager.addDev("Splitting AD: " + getName()); - - // For each junction, we create a new AD - ArrayList<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>(); - ArrayList<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>(); - ArrayList<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>(); - HashMap<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>(); - for(TMLCPElement elt: elements) { - if (elt instanceof TMLCPJunction) { - junctions.add((TMLCPJunction)elt); - diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject); - TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject()); - diag.setStartElement(start); - diag.addTMLCPElement(start); - refs.put((TMLCPJunction)elt, diag); - //TraceManager.addDev("Adding a new diag named: " + diag.getName()); - } - } - - // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts - for(TMLCPJunction junction: junctions) { - TMLCPActivityDiagram toAD = refs.get(junction); - //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); - //refsAD.add(ref); - elements.remove(junction); - //elements.add(ref); - - // Replacing next to junction by new refs - int index; - // int ID = 0; - for(TMLCPElement elt: elements) { - while(((index = elt.getNextElements().indexOf(junction)) != -1)) { - //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject()); - //ID ++; - TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); - //ID ++; - refsAD.add(ref); - //elements.add(ref); - elt.setNextElementAtIndex(ref, index); - /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject()); - elements.add(stop); - ref.addNextElement(stop);*/ - } - //ref.setNexts(junction.getNextElements()); - } - } - - // Removing nexts in new refs, and putting a stop - for(TMLCPRefAD ref: refsAD) { - ref.clearNexts(); - elements.add(ref); - TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject()); - elements.add(stop); - ref.addNextElement(stop); - } - - // Moving elements from old AD to split ADs - //int cpt = 0; - for(TMLCPJunction junction: junctions) { - diag = refs.get(junction); - //TMLCPRefAD refAD = refsAD.get(cpt); - //cpt++; - - // To be modified-> add elements from RefADs - // Also, avoid to add already met elements - addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved); - } - - // Removing elements from main diagram - for(TMLCPElement elt: toBeRemoved) { - elements.remove(elt); - } - - - - // Returns new elements - return refs.values(); - } - - private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) { - if (originInOld.getNextElements() == null) { - return; - } - - for(TMLCPElement elt: originInOld.getNextElements()) { - //TraceManager.addDev("Exploring elt (0):" + elt.getName()); - if (elt instanceof TMLCPJunction) { - // Must replace the junction by a ref to an AD - TMLCPActivityDiagram toAD = refs.get(elt); - TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject()); - newDiag.addTMLCPElement(ref); - originInNew.setNextElement(ref); - } else { - //TraceManager.addDev("Exploring elt (1):" + elt.getName()); - if (originInOld != originInNew) { - originInNew.addNextElement(elt); - } - if (!newDiag.contains(elt)) { - newDiag.addTMLCPElement(elt); - toBeRemoved.add(elt); - addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved); - } - } - } - } +// private Collection<TMLCPActivityDiagram> splitADs() { +// int id = 0; +// TMLCPActivityDiagram diag; +// +// //TraceManager.addDev("Splitting AD: " + getName()); +// +// // For each junction, we create a new AD +//// List<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>(); +// List<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>(); +// List<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>(); +//// Map<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>(); +// for(TMLCPElement elt: elements) { +// if (elt instanceof TMLCPJunction) { +// junctions.add((TMLCPJunction)elt); +// diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject); +// TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject()); +// diag.setStartElement(start); +// diag.addTMLCPElement(start); +// refs.put((TMLCPJunction)elt, diag); +// //TraceManager.addDev("Adding a new diag named: " + diag.getName()); +// } +// } +// +// // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts +// for(TMLCPJunction junction: junctions) { +// TMLCPActivityDiagram toAD = refs.get(junction); +// //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); +// //refsAD.add(ref); +// elements.remove(junction); +// //elements.add(ref); +// +// // Replacing next to junction by new refs +// int index; +// // int ID = 0; +// for(TMLCPElement elt: elements) { +// while(((index = elt.getNextElements().indexOf(junction)) != -1)) { +// //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject()); +// //ID ++; +// TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject()); +// //ID ++; +// refsAD.add(ref); +// //elements.add(ref); +// elt.setNextElementAtIndex(ref, index); +// /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject()); +// elements.add(stop); +// ref.addNextElement(stop);*/ +// } +// //ref.setNexts(junction.getNextElements()); +// } +// } +// +// // Removing nexts in new refs, and putting a stop +// for(TMLCPRefAD ref: refsAD) { +// ref.clearNexts(); +// elements.add(ref); +// TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject()); +// elements.add(stop); +// ref.addNextElement(stop); +// } +// +// // Moving elements from old AD to split ADs +// //int cpt = 0; +// for(TMLCPJunction junction: junctions) { +// diag = refs.get(junction); +// //TMLCPRefAD refAD = refsAD.get(cpt); +// //cpt++; +// +// // To be modified-> add elements from RefADs +// // Also, avoid to add already met elements +// addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved); +// } +// +// // Removing elements from main diagram +// for(TMLCPElement elt: toBeRemoved) { +// elements.remove(elt); +// } +// +// +// +// // Returns new elements +// return refs.values(); +// } + +// private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) { +// if (originInOld.getNextElements() == null) { +// return; +// } +// +// for(TMLCPElement elt: originInOld.getNextElements()) { +// //TraceManager.addDev("Exploring elt (0):" + elt.getName()); +// if (elt instanceof TMLCPJunction) { +// // Must replace the junction by a ref to an AD +// TMLCPActivityDiagram toAD = refs.get(elt); +// TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject()); +// newDiag.addTMLCPElement(ref); +// originInNew.setNextElement(ref); +// } else { +// //TraceManager.addDev("Exploring elt (1):" + elt.getName()); +// if (originInOld != originInNew) { +// originInNew.addNextElement(elt); +// } +// if (!newDiag.contains(elt)) { +// newDiag.addTMLCPElement(elt); +// toBeRemoved.add(elt); +// addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved); +// } +// } +// } +// } public TMLCPElement getNonConnectedElement() { @@ -509,6 +507,7 @@ public class TMLCPActivityDiagram extends TMLElement { } } + @Override public String toString() { String s = "*** Activity diagram " + getName() + "\n"; for(TMLCPElement elt: elements) { @@ -516,5 +515,4 @@ public class TMLCPActivityDiagram extends TMLElement { } return s + "\n"; } - } //End of class diff --git a/src/main/java/ui/AbstractCDElement.java b/src/main/java/ui/AbstractCDElement.java new file mode 100644 index 0000000000000000000000000000000000000000..afd37aeedc40af60a30811e394202b36c919fa2e --- /dev/null +++ b/src/main/java/ui/AbstractCDElement.java @@ -0,0 +1,79 @@ +package ui; + +public abstract class AbstractCDElement implements CDElement { + + private boolean enabled; + + protected AbstractCDElement() { + enabled = true; + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + doSetEnabled( _enabled ); + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void doSetEnabled( final boolean _enabled ) { + enabled = _enabled; + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public boolean isEnabled( boolean checkBranch ) { + return isEnabled(); + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + return false; + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canLabelBeDisabled( TGCOneLineText label ) { + return false; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptForward(ui.ICDElementVisitor) + */ + @Override + public void acceptForward( final ICDElementVisitor visitor ) { + visitor.visit( this ); + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( final ICDElementVisitor visitor ) { + visitor.visit( this ); + } +// +// @Override +// public boolean isFullDisabler() { +// return false; +// } +} diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java index 824db9d610d07990df7f5ee2423baaf1a8efadc6..efe75185ecb3d7373761ac6e80456567a692b3fa 100644 --- a/src/main/java/ui/ActionPerformer.java +++ b/src/main/java/ui/ActionPerformer.java @@ -367,8 +367,8 @@ public class ActionPerformer { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RECEIVE_SIGNAL); } else if (command.equals(mgui.actions[TGUIAction.ASMD_LIBRARY_FUNCTION_CALL].getActionCommand())) { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_LIBRARY_FUNCTION_CALL); - } else if (command.equals(mgui.actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) { - mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL); +// Issue #69 } else if (command.equals(mgui.actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) { +// mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL); } else if (command.equals(mgui.actions[TGUIAction.ASMD_STATE].getActionCommand())) { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STATE); } else if (command.equals(mgui.actions[TGUIAction.ASMD_CHOICE].getActionCommand())) { @@ -895,8 +895,9 @@ public class ActionPerformer { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE); } else if (command.equals(mgui.actions[TGUIAction.TMLCP_STOP].getActionCommand())) { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE); - } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) { - mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION); + // Issue #69 Removed unused TMLCPJunction +// } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) { +// mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION); } else if (command.equals(mgui.actions[TGUIAction.TMLCP_FOR_LOOP].getActionCommand())) { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FOR_LOOP); } else if (command.equals(mgui.actions[TGUIAction.TMLSD_EDIT].getActionCommand())) { @@ -975,6 +976,26 @@ public class ActionPerformer { mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_TDF_CURRENT_SOURCE); } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER].getActionCommand())){ mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER); + } else if (command.equals(mgui.actions[TGUIAction.ELN_GENCODE].getActionCommand())){ + mgui.elnExecutableCodeGeneration(); + } else if (command.equals(mgui.actions[TGUIAction.ELN_MODULE_PORT_DE].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_MODULE_PORT_DE); + } else if (command.equals(mgui.actions[TGUIAction.ELN_MODULE_PORT_TDF].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_MODULE_PORT_TDF); + } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER_TERMINAL].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER_TERMINAL); + } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_DE].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER_PORT_DE); + } else if (command.equals(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_TDF].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_CLUSTER_PORT_TDF); + } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_CURRENT_SINK].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_CURRENT_SINK); + } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_CURRENT_SOURCE].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_CURRENT_SOURCE); + } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SINK].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_VOLTAGE_SINK); + } else if (command.equals(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SOURCE].getActionCommand())){ + mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_DE_VOLTAGE_SOURCE); // Attack Tree Diagrams } else if (command.equals(mgui.actions[TGUIAction.ATD_BLOCK].getActionCommand())) { diff --git a/src/main/java/ui/ActivityDiagram2TMLTranslator.java b/src/main/java/ui/ActivityDiagram2TMLTranslator.java new file mode 100644 index 0000000000000000000000000000000000000000..73dacbb477b7a2d03b8c797a0703b7dc2daffb8c --- /dev/null +++ b/src/main/java/ui/ActivityDiagram2TMLTranslator.java @@ -0,0 +1,965 @@ +package ui; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Vector; + +import myutil.Conversion; +import myutil.TraceManager; +import tmltranslator.SecurityPattern; +import tmltranslator.TMLActionState; +import tmltranslator.TMLActivity; +import tmltranslator.TMLActivityElement; +import tmltranslator.TMLAttribute; +import tmltranslator.TMLChannel; +import tmltranslator.TMLCheckingError; +import tmltranslator.TMLChoice; +import tmltranslator.TMLDelay; +import tmltranslator.TMLEvent; +import tmltranslator.TMLExecC; +import tmltranslator.TMLExecCInterval; +import tmltranslator.TMLExecI; +import tmltranslator.TMLExecIInterval; +import tmltranslator.TMLForLoop; +import tmltranslator.TMLJunction; +import tmltranslator.TMLModeling; +import tmltranslator.TMLNotifiedEvent; +import tmltranslator.TMLRandom; +import tmltranslator.TMLRandomSequence; +import tmltranslator.TMLReadChannel; +import tmltranslator.TMLRequest; +import tmltranslator.TMLSelectEvt; +import tmltranslator.TMLSendEvent; +import tmltranslator.TMLSendRequest; +import tmltranslator.TMLSequence; +import tmltranslator.TMLStartState; +import tmltranslator.TMLStopState; +import tmltranslator.TMLTask; +import tmltranslator.TMLType; +import tmltranslator.TMLWaitEvent; +import tmltranslator.TMLWriteChannel; +import translator.CheckingError; +import ui.tmlad.TMLADActionState; +import ui.tmlad.TMLADChoice; +import ui.tmlad.TMLADDecrypt; +import ui.tmlad.TMLADDelay; +import ui.tmlad.TMLADDelayInterval; +import ui.tmlad.TMLADEncrypt; +import ui.tmlad.TMLADExecC; +import ui.tmlad.TMLADExecCInterval; +import ui.tmlad.TMLADExecI; +import ui.tmlad.TMLADExecIInterval; +import ui.tmlad.TMLADForEverLoop; +import ui.tmlad.TMLADForLoop; +import ui.tmlad.TMLADForStaticLoop; +import ui.tmlad.TMLADNotifiedEvent; +import ui.tmlad.TMLADRandom; +import ui.tmlad.TMLADReadChannel; +import ui.tmlad.TMLADReadRequestArg; +import ui.tmlad.TMLADSelectEvt; +import ui.tmlad.TMLADSendEvent; +import ui.tmlad.TMLADSendRequest; +import ui.tmlad.TMLADSequence; +import ui.tmlad.TMLADStartState; +import ui.tmlad.TMLADStopState; +import ui.tmlad.TMLADUnorderedSequence; +import ui.tmlad.TMLADWaitEvent; +import ui.tmlad.TMLADWriteChannel; +import ui.tmlad.TMLActivityDiagramPanel; + +public class ActivityDiagram2TMLTranslator { + + public static final ActivityDiagram2TMLTranslator INSTANCE = new ActivityDiagram2TMLTranslator(); + + private ActivityDiagram2TMLTranslator() { + } + + public void generateTaskActivityDiagrams( final TMLTask tmltask, + final List<CheckingError> checkingErrors, + final List<CheckingError> warnings, + final CorrespondanceTGElement corrTgElement, + final TMLModeling<TGComponent> tmlm, + final Map<String, SecurityPattern> securityPatterns, + final Map<String, String> table, + final List<String> removedChannels, + final List<String> removedEvents, + final List<String> removedRequests ) + throws MalformedTMLDesignException { + TMLActivity activity = tmltask.getActivityDiagram(); + TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel)(activity.getReferenceObject()); + + TraceManager.addDev( "Generating activity diagram of: " + tmltask.getName()); + + // search for start state + List<TGComponent> list = tadp.getComponentList(); + Iterator<TGComponent> iterator = list.listIterator(); + TGComponent tgc; + TMLADStartState tss = null; + int cptStart = 0; + // boolean rndAdded = false; + + while(iterator.hasNext()) { + tgc = iterator.next(); + + if (tgc instanceof TMLADStartState) { + tss = (TMLADStartState) tgc; + cptStart ++; + } + } + + if (tss == null) { + TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the TML activity diagram of " + tmltask.getName()); + ce.setTMLTask(tmltask); + checkingErrors.add(ce); + return; + } + + if (cptStart > 1) { + TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the TML activity diagram of " + tmltask.getName()); + ce.setTMLTask(tmltask); + checkingErrors.add(ce); + return; + } + + // Adding start state + TMLStartState tmlss = new TMLStartState("start", tss); + corrTgElement.addCor(tmlss, tss); + activity.setFirst(tmlss); + + // Creation of other elements + TMLChannel channel; + String [] channels; + TMLEvent event; + TMLRequest request; + + TMLADRandom tmladrandom; + TMLRandom tmlrandom; + TMLActionState tmlaction; + TMLChoice tmlchoice; + TMLExecI tmlexeci; + TMLExecIInterval tmlexecii; + TMLExecC tmlexecc; + TMLExecCInterval tmlexecci; + TMLForLoop tmlforloop; + TMLReadChannel tmlreadchannel; + TMLSendEvent tmlsendevent; + TMLSendRequest tmlsendrequest; + TMLStopState tmlstopstate; + TMLWaitEvent tmlwaitevent; + TMLNotifiedEvent tmlnotifiedevent; + TMLWriteChannel tmlwritechannel; + TMLSequence tmlsequence; + TMLRandomSequence tmlrsequence; + TMLSelectEvt tmlselectevt; + TMLDelay tmldelay; + int staticLoopIndex = 0; + String sl = "", tmp; + TMLType tt; + TMLAttribute tmlt; + + iterator = list.listIterator(); + while(iterator.hasNext()) { + tgc = iterator.next(); + // Issue #69: Manage component enablement + if ( tgc.isEnabled() ) { + if (tgc.getCheckLatency()){ + String name = tmltask.getName() + ":" + tgc.getName(); + name = name.replaceAll(" ",""); + //TraceManager.addDev("To check " + name); + if (tgc.getValue().contains("(")) { + tmlm.addCheckedActivity(tgc, name + ":" + tgc.getValue().split("\\(")[0]); + } else { + if (tgc instanceof TMLADExecI) { + tmlm.addCheckedActivity(tgc, ((TMLADExecI) tgc).getDelayValue()); + } + } + } + if (tgc instanceof TMLADActionState) { + tmlaction = new TMLActionState("action", tgc); + tmp = ((TMLADActionState)(tgc)).getAction(); + tmp = modifyActionString(tmp); + tmlaction.setAction(tmp); + activity.addElement(tmlaction); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlaction, tgc); + + } else if (tgc instanceof TMLADRandom) { + tmladrandom = (TMLADRandom)tgc; + tmlrandom = new TMLRandom("random" + tmladrandom.getValue(), tgc); + tmp = tmladrandom.getVariable(); + tmp = modifyActionString(tmp); + tmlrandom.setVariable(tmp); + tmp = tmladrandom.getMinValue(); + tmp = modifyActionString(tmp); + tmlrandom.setMinValue(tmp); + tmp = tmladrandom.getMaxValue(); + tmp = modifyActionString(tmp); + tmlrandom.setMaxValue(tmp); + tmlrandom.setFunctionId(tmladrandom.getFunctionId()); + activity.addElement(tmlrandom); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlrandom, tgc); + + } else if (tgc instanceof TMLADChoice) { + tmlchoice = new TMLChoice("choice", tgc); + // Guards are added at the same time as next activities + activity.addElement(tmlchoice); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlchoice, tgc); + + } else if (tgc instanceof TMLADSelectEvt) { + tmlselectevt = new TMLSelectEvt("select", tgc); + activity.addElement(tmlselectevt); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlselectevt, tgc); + + } else if (tgc instanceof TMLADExecI) { + tmlexeci = new TMLExecI("execi", tgc); + tmlexeci.setAction(modifyString(((TMLADExecI)tgc).getDelayValue())); + tmlexeci.setValue(((TMLADExecI)tgc).getDelayValue()); + activity.addElement(tmlexeci); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlexeci, tgc); + + } else if (tgc instanceof TMLADExecIInterval) { + tmlexecii = new TMLExecIInterval("execi", tgc); + tmlexecii.setValue(tgc.getValue()); + tmlexecii.setMinDelay(modifyString(((TMLADExecIInterval)tgc).getMinDelayValue())); + tmlexecii.setMaxDelay(modifyString(((TMLADExecIInterval)tgc).getMaxDelayValue())); + activity.addElement(tmlexecii); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlexecii, tgc); + + } else if (tgc instanceof TMLADEncrypt) { + tmlexecc = new TMLExecC("encrypt_"+((TMLADEncrypt)tgc).securityContext, tgc); + activity.addElement(tmlexecc); + SecurityPattern sp = securityPatterns.get(((TMLADEncrypt)tgc).securityContext); + if (sp ==null){ + //Throw error for missing security pattern + UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADEncrypt)tgc).securityContext + " not found"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + else { + tmlexecc.securityPattern = sp; + tmlexecc.setAction(Integer.toString(sp.encTime)); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + tmlm.securityTaskMap.get(sp).add(tmltask); + corrTgElement.addCor(tmlexecc, tgc); + } + } else if (tgc instanceof TMLADDecrypt) { + tmlexecc = new TMLExecC("decrypt_"+((TMLADDecrypt)tgc).securityContext, tgc); + activity.addElement(tmlexecc); + SecurityPattern sp = securityPatterns.get(((TMLADDecrypt)tgc).securityContext); + if (sp ==null){ + //Throw error for missing security pattern + UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADDecrypt)tgc).securityContext + " not found"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + else { + tmlexecc.securityPattern = sp; + tmlexecc.setAction(Integer.toString(sp.decTime)); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlexecc, tgc); + tmlm.securityTaskMap.get(sp).add(tmltask); + } + + } else if (tgc instanceof TMLADExecC) { + tmlexecc = new TMLExecC("execc", tgc); + tmlexecc.setValue(((TMLADExecC)tgc).getDelayValue()); + tmlexecc.setAction(modifyString(((TMLADExecC)tgc).getDelayValue())); + activity.addElement(tmlexecc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlexecc, tgc); + + } else if (tgc instanceof TMLADExecCInterval) { + tmlexecci = new TMLExecCInterval("execci", tgc); + tmlexecci.setMinDelay(modifyString(((TMLADExecCInterval)tgc).getMinDelayValue())); + tmlexecci.setMaxDelay(modifyString(((TMLADExecCInterval)tgc).getMaxDelayValue())); + activity.addElement(tmlexecci); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlexecci, tgc); + + } else if (tgc instanceof TMLADDelay) { + tmldelay = new TMLDelay("d-delay", tgc); + tmldelay.setMinDelay(modifyString(((TMLADDelay)tgc).getDelayValue())); + tmldelay.setMaxDelay(modifyString(((TMLADDelay)tgc).getDelayValue())); + tmldelay.setUnit(((TMLADDelay)tgc).getUnit()); + activity.addElement(tmldelay); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmldelay, tgc); + + } else if (tgc instanceof TMLADDelayInterval) { + tmldelay = new TMLDelay("nd-delay", tgc); + tmldelay.setMinDelay(modifyString(((TMLADDelayInterval)tgc).getMinDelayValue())); + tmldelay.setMaxDelay(modifyString(((TMLADDelayInterval)tgc).getMaxDelayValue())); + tmldelay.setUnit(((TMLADDelayInterval)tgc).getUnit()); + activity.addElement(tmldelay); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmldelay, tgc); + + } else if (tgc instanceof TMLADForLoop) { + tmlforloop = new TMLForLoop("loop", tgc); + tmlforloop.setInit(modifyString(((TMLADForLoop)tgc).getInit())); + tmp = ((TMLADForLoop)tgc).getCondition(); + /*if (tmp.trim().length() == 0) { + tmp = "true"; + }*/ + tmlforloop.setCondition(modifyString(tmp)); + tmlforloop.setIncrement(modifyActionString(((TMLADForLoop)tgc).getIncrement())); + + activity.addElement(tmlforloop); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlforloop, tgc); + + } else if (tgc instanceof TMLADForStaticLoop) { + sl = "loop__" + staticLoopIndex; + tt = new TMLType(TMLType.NATURAL); + tmlt = new TMLAttribute(sl, tt); + tmlt.initialValue = "0"; + tmltask.addAttribute(tmlt); + tmlforloop = new TMLForLoop(sl, tgc); + tmlforloop.setInit(sl + " = 0"); + tmlforloop.setCondition(sl + "<" + modifyString(tgc.getValue())); + tmlforloop.setIncrement(sl + " = " + sl + " + 1"); + activity.addElement(tmlforloop); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlforloop, tgc); + staticLoopIndex++; + + } else if (tgc instanceof TMLADForEverLoop) { + /*sl = "loop__" + staticLoopIndex; + tt = new TMLType(TMLType.NATURAL); + tmlt = new TMLAttribute(sl, tt); + tmlt.initialValue = "0"; + tmltask.addAttribute(tmlt);*/ + tmlforloop = new TMLForLoop("infiniteloop", tgc); + tmlforloop.setInit(""); + tmlforloop.setCondition(""); + tmlforloop.setIncrement(""); + tmlforloop.setInfinite(true); + activity.addElement(tmlforloop); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlforloop, tgc); + staticLoopIndex++; + + tmlstopstate = new TMLStopState("Stop after infinite loop", null); + activity.addElement(tmlstopstate); + tmlforloop.addNext(tmlstopstate); + + } else if (tgc instanceof TMLADSequence) { + tmlsequence = new TMLSequence("seq", tgc); + activity.addElement(tmlsequence); + corrTgElement.addCor(tmlsequence, tgc); + + } else if (tgc instanceof TMLADUnorderedSequence) { + tmlrsequence = new TMLRandomSequence("rseq", tgc); + activity.addElement(tmlrsequence); + corrTgElement.addCor(tmlrsequence, tgc); + + } else if (tgc instanceof TMLADReadChannel) { + // Get the channel + //TMLADReadChannel rd = (TMLADReadChannel) tgc; + channel = tmlm.getChannelByName( getFromTable( tmltask, ((TMLADReadChannel)tgc).getChannelName(), table ) ); + /*if (rd.isAttacker()){ + channel = tmlm.getChannelByName(getAttackerChannel(((TMLADReadChannel)tgc).getChannelName())); + }*/ + if (channel == null) { + if (Conversion.containsStringInList(removedChannels, ((TMLADReadChannel)tgc).getChannelName())) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADReadChannel)tgc).getChannelName() + " has been removed because the corresponding channel is not taken into account"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + warnings.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + activity.addElement(new TMLJunction("void junction", tgc)); + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel)tgc).getChannelName() + " is an unknown channel"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + checkingErrors.add(ce); + } + + } else { + tmlreadchannel = new TMLReadChannel("read channel", tgc); + tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel)tgc).getSamplesValue())); + tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm()); + tmlreadchannel.addChannel(channel); + //security pattern + if (securityPatterns.get(((TMLADReadChannel)tgc).getSecurityContext())!=null){ + tmlreadchannel.securityPattern= securityPatterns.get(((TMLADReadChannel)tgc).getSecurityContext()); + //NbOfSamples will increase due to extra overhead from MAC + int cur=1; + try { + cur = Integer.valueOf(modifyString(((TMLADReadChannel)tgc).getSamplesValue())); + } catch(NumberFormatException e) { + } catch(NullPointerException e) { + } + int add = Integer.valueOf(tmlreadchannel.securityPattern.overhead); + if (!tmlreadchannel.securityPattern.nonce.equals("")){ + SecurityPattern nonce = securityPatterns.get(tmlreadchannel.securityPattern.nonce); + if (nonce!=null){ + add = Integer.valueOf(nonce.overhead); + } + } + cur = cur+ add; + tmlreadchannel.setNbOfSamples(Integer.toString(cur)); + } + 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"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + if (tmltask.isAttacker()){ + tmlreadchannel.setAttacker(true); + } + activity.addElement(tmlreadchannel); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlreadchannel, tgc); + } + } else if (tgc instanceof TMLADSendEvent) { + event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADSendEvent)tgc).getEventName(), table )); + if (event == null) { + if (Conversion.containsStringInList(removedEvents, ((TMLADSendEvent)tgc).getEventName())) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendEvent)tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + warnings.add(ce); + activity.addElement(new TMLJunction("void junction", tgc)); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent)tgc).getEventName() + " is an unknown event"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } + } else { + tmlsendevent = new TMLSendEvent("send event", tgc); + tmlsendevent.setEvent(event); + + for(int i=0; i<((TMLADSendEvent)tgc).realNbOfParams(); i++) { + tmp = modifyString(((TMLADSendEvent)tgc).getRealParamValue(i)); + Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); + if (allVariables.size() > 0) { + for(int k=0; k<allVariables.size(); k++) { + //TraceManager.addDev("Adding record: " + allVariables.get(k)); + tmlsendevent.addParam(allVariables.get(k)); + } + } else { + //TraceManager.addDev("Adding param: " + tmp); + tmlsendevent.addParam(tmp); + } + } + if (event.getNbOfParams() != tmlsendevent.getNbOfParams()) { + TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " sendevent#:" + tmlsendevent.getNbOfParams()); + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent)tgc).getEventName() + ": wrong number of parameters"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + activity.addElement(tmlsendevent); + corrTgElement.addCor(tmlsendevent, tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + } + } + + } else if (tgc instanceof TMLADSendRequest) { + request = tmlm.getRequestByName(getFromTable(tmltask, ((TMLADSendRequest)tgc).getRequestName(), table ) ); + if (request == null) { + if (Conversion.containsStringInList(removedRequests, ((TMLADSendRequest)tgc).getRequestName())) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendRequest)tgc).getRequestName() + " has been removed because the corresponding request is not taken into account"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + warnings.add(ce); + activity.addElement(new TMLJunction("void junction", tgc)); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest)tgc).getRequestName() + " is an unknown request"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } + } else { + tmlsendrequest = new TMLSendRequest("send request", tgc); + tmlsendrequest.setRequest(request); + for(int i=0; i<((TMLADSendRequest)tgc).realNbOfParams(); i++) { + tmp = modifyString(((TMLADSendRequest)tgc).getRealParamValue(i)); + Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); + if (allVariables.size() > 0) { + for(int k=0; k<allVariables.size(); k++) { + //TraceManager.addDev("Adding record: " + allVariables.get(k)); + tmlsendrequest.addParam(allVariables.get(k)); + request.addParamName(allVariables.get(k)); + } + } else { + //TraceManager.addDev("Adding param: " + tmp); + tmlsendrequest.addParam(tmp); + request.addParamName(tmp); + } + } + if (request.getNbOfParams() != tmlsendrequest.getNbOfParams()) { + TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " sendrequest#:" + tmlsendrequest.getNbOfParams()); + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest)tgc).getRequestName() + ": wrong number of parameters"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + activity.addElement(tmlsendrequest); + corrTgElement.addCor(tmlsendrequest, tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + } + } + + } else if (tgc instanceof TMLADReadRequestArg) { + request = tmlm.getRequestToMe(tmltask); + if (request == null) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "This task is not requested: cannot use \"reading request arg\" operator"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + tmlaction = new TMLActionState("action reading args", tgc); + String act = ""; + int cpt = 1; + for(int i=0; i<((TMLADReadRequestArg)tgc).realNbOfParams(); i++) { + tmp = modifyString(((TMLADReadRequestArg)tgc).getRealParamValue(i)); + Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); + + if (allVariables.size() > 0) { + for(int k=0; k<allVariables.size(); k++) { + //TraceManager.addDev("Adding record: " + allVariables.get(k)); + if (cpt != 1) { + act += "$"; + } + act += allVariables.get(k) + " = arg" + cpt + "__req"; + cpt ++; + } + } else { + //TraceManager.addDev("Adding param: " + tmp); + if (cpt != 1) { + act += "$"; + } + act += tmp + " = arg" + cpt + "__req"; + cpt ++; + } + } + if (request.getNbOfParams() != (cpt-1)) { + //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " read request arg#:" + (cpt-1)); + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Wrong number of parameters in \"reading request arg\" operator"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + //TraceManager.addDev("Adding action = " + act); + tmlaction.setAction(act); + activity.addElement(tmlaction); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlaction, tgc); + } + } + + } else if (tgc instanceof TMLADStopState) { + tmlstopstate = new TMLStopState("stop state", tgc); + activity.addElement(tmlstopstate); + corrTgElement.addCor(tmlstopstate, tgc); + + } else if (tgc instanceof TMLADNotifiedEvent) { + event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADNotifiedEvent)tgc).getEventName(), table ) ); + if (event == null) { + if( removedEvents.size() > 0 ) { + if (Conversion.containsStringInList(removedEvents, ((TMLADNotifiedEvent)tgc).getEventName())) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADNotifiedEvent)tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + warnings.add(ce); + activity.addElement(new TMLJunction("void junction", tgc)); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent)tgc).getEventName() + " is an unknown event"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent)tgc).getEventName() + " is an unknown event"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } + } else { + event.setNotified(true); + tmlnotifiedevent = new TMLNotifiedEvent("notified event", tgc); + tmlnotifiedevent.setEvent(event); + tmlnotifiedevent.setVariable(modifyString(((TMLADNotifiedEvent)tgc).getVariable())); + activity.addElement(tmlnotifiedevent); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlnotifiedevent, tgc); + } + + } else if (tgc instanceof TMLADWaitEvent) { + event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADWaitEvent)tgc).getEventName(), table ) ); + if (event == null) { + if( removedEvents.size() > 0 ) { + if (Conversion.containsStringInList(removedEvents, ((TMLADWaitEvent)tgc).getEventName())) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWaitEvent)tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + warnings.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + activity.addElement(new TMLJunction("void junction", tgc)); + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent)tgc).getEventName() + " is an unknown event"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + checkingErrors.add(ce); + } + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent)tgc).getEventName() + " is an unknown event"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + checkingErrors.add(ce); + } + } else { + //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams()); + tmlwaitevent = new TMLWaitEvent("wait event", tgc); + tmlwaitevent.setEvent(event); + for(int i=0; i<((TMLADWaitEvent)tgc).realNbOfParams(); i++) { + tmp = modifyString(((TMLADWaitEvent)tgc).getRealParamValue(i)); + Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); + if (allVariables.size() > 0) { + for(int k=0; k<allVariables.size(); k++) { + //TraceManager.addDev("Adding record: " + allVariables.get(k)); + tmlwaitevent.addParam(allVariables.get(k)); + } + } else { + //TraceManager.addDev("Adding param: " + tmp); + tmlwaitevent.addParam(tmp); + } + } + if (event.getNbOfParams() != tmlwaitevent.getNbOfParams()) { + //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " waitevent#:" + tmlwaitevent.getNbOfParams()); + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent)tgc).getEventName() + ": wrong number of parameters"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else { + activity.addElement(tmlwaitevent); + corrTgElement.addCor(tmlwaitevent, tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + } + + } + + } else if (tgc instanceof TMLADWriteChannel) { + // Get channels + //TMLADWriteChannel wr = (TMLADWriteChannel) tgc; + channels = ((TMLADWriteChannel)tgc).getChannelsByName(); + boolean error = false; + for(int i=0; i<channels.length; i++) { + //TraceManager.addDev("Getting from table " + tmltask.getName() + "/" +channels[i]); + channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i], table ) ); + if (channel == null) { + if (Conversion.containsStringInList(removedChannels, ((TMLADWriteChannel)tgc).getChannelName(i))) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWriteChannel)tgc).getChannelName(i) + " has been removed because the corresponding channel is not taken into account"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + warnings.add(ce); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + activity.addElement(new TMLJunction("void junction", tgc)); + } else { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel)tgc).getChannelName(i) + " is an unknown channel"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.UNKNOWN); + checkingErrors.add(ce); + } + error = true; + + } + } + if (!error) { + tmlwritechannel = new TMLWriteChannel("write channel", tgc); + tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel)tgc).getSamplesValue())); + tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm()); + + for(int i=0; i<channels.length; i++) { + channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i], table ) ); + tmlwritechannel.addChannel(channel); + } + //if (wr.isAttacker()){ + //channel = tmlm.getChannelByName(getAttackerChannel(channels[0])); + //tmlwritechannel.addChannel(channel); + //} + //add sec pattern + if (securityPatterns.get(((TMLADWriteChannel)tgc).getSecurityContext())!=null){ + tmlwritechannel.securityPattern= securityPatterns.get(((TMLADWriteChannel)tgc).getSecurityContext()); + int cur = Integer.valueOf(modifyString(((TMLADWriteChannel)tgc).getSamplesValue())); + int add = Integer.valueOf(tmlwritechannel.securityPattern.overhead); + if (!tmlwritechannel.securityPattern.nonce.equals("")){ + SecurityPattern nonce = securityPatterns.get(tmlwritechannel.securityPattern.nonce); + if (nonce!=null){ + add = Integer.valueOf(nonce.overhead); + } + } + cur = cur+ add; + tmlwritechannel.setNbOfSamples(Integer.toString(cur)); + } + else if (!((TMLADWriteChannel)tgc).getSecurityContext().isEmpty()){ + //Throw error for missing security pattern + UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADWriteChannel)tgc).getSecurityContext() + " not found"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + if (tmltask.isAttacker()){ + tmlwritechannel.setAttacker(true); + } + activity.addElement(tmlwritechannel); + ((BasicErrorHighlight)tgc).setStateAction(ErrorHighlight.OK); + corrTgElement.addCor(tmlwritechannel, tgc); + } + } + } + } + + // Interconnection between elements + //TGConnectorTMLAD tgco; + //TGConnectingPoint p1, p2; + //TMLActivityElement ae1, ae2; + //TGComponent /*tgc1, tgc2,*/ tgc3; + //int j, index; + + final List<TGConnector> connectors = tadp.getConnectors(); + final Set<TGConnector> prunedConectors = new HashSet<TGConnector>(); + + for ( final TGConnector connector : connectors ) { + if ( !prunedConectors.contains( connector ) ) { + FindNextEnabledConnectingPointVisitor visitor = new FindNextEnabledConnectingPointVisitor( prunedConectors ); + connector.getTGConnectingPointP1().acceptBackward( visitor ); + final TGConnectingPoint conPoint1 = visitor.getEnabledComponentPoint(); + + if ( conPoint1 != null ) { + visitor = new FindNextEnabledConnectingPointVisitor( prunedConectors ); + connector.getTGConnectingPointP2().acceptForward( visitor ); + final TGConnectingPoint conPoint2 = visitor.getEnabledComponentPoint(); + + if ( conPoint2 != null ) { + final TGComponent compo1 = (TGComponent) conPoint1.getFather(); + final TGComponent compo2 = (TGComponent) conPoint2.getFather(); + + final TMLActivityElement ae1 = activity.findReferenceElement( compo1 ); + final TMLActivityElement ae2 = activity.findReferenceElement( compo2 ); + + //Special case if "for loop" or if "choice" + if (ae1 instanceof TMLForLoop) { + final int index = compo1.indexOf( conPoint1 ) - 1; + + if (index == 0) { + ae1.addNext( 0, ae2 ); + } + else { + ae1.addNext( ae2 ); + } + + } + else if (ae1 instanceof TMLChoice) { + //final int index = compo1.indexOf( conPoint1 ) - 1; + //TraceManager.addDev("Adding next:" + ae2); + ae1.addNext(ae2); + + final TMLADChoice choice = (TMLADChoice) compo1; + final TGCOneLineText guard = choice.getGuardForConnectingPoint( conPoint1 ); + ( (TMLChoice) ae1 ).addGuard( modifyString( choice.getEffectiveCondition( guard ) ) ); + } + else if (ae1 instanceof TMLSequence) { + final int index = compo1.indexOf( conPoint1 ) - 1; + ((TMLSequence)ae1).addIndex(index); + ae1.addNext(ae2); + //TraceManager.addDev("Adding " + ae2 + " at index " + index); + + } + else if (ae1 instanceof TMLRandomSequence) { + final int index = compo1.indexOf( conPoint1 ) - 1; + ((TMLRandomSequence)ae1).addIndex(index); + ae1.addNext(ae2); + } + else { + ae1.addNext(ae2); + } + } + } + } + } + + // Check that each "for" has two nexts + // Check that TMLChoice have compatible guards + // Check TML select evts + iterator = list.listIterator(); + while(iterator.hasNext()) { + tgc = iterator.next(); + + // Issue #69: Disabling of AD components + if ( tgc.isEnabled() ) { + if ((tgc instanceof TMLADForLoop) || (tgc instanceof TMLADForStaticLoop)) { + final TMLActivityElement ae1 = activity.findReferenceElement(tgc); + + if (ae1 != null) { + if (ae1.getNbNext() != 2) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted for loop: a loop must have an internal behavior, and an exit behavior "); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + } + } + else if (tgc instanceof TMLADChoice) { + tmlchoice = (TMLChoice)(activity.findReferenceElement(tgc)); + tmlchoice.orderGuards(); + + int nbNonDeter = tmlchoice.nbOfNonDeterministicGuard(); + int nbStocha = tmlchoice.nbOfStochasticGuard(); + if ((nbNonDeter > 0) && (nbStocha > 0)) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic and stochastic guards"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + int nb = Math.max(nbNonDeter, nbStocha); + if (nb > 0) { + nb = nb + tmlchoice.nbOfElseAndAfterGuards(); + if (nb != tmlchoice.getNbGuard()) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, UICheckingError.MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC );//"Badly formatted choice: it has both non-determinitic/ stochastic and regular guards"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + } + + //if (tmlchoice.nbOfNonDeterministicGuard() > 0) { + /*if (!rndAdded) { + TMLAttribute tmlt = new TMLAttribute("rnd__0", new TMLType(TMLType.NATURAL)); + tmlt.initialValue = ""; + tmltask.addAttribute(tmlt); + rndAdded = true; + }*/ + //} + if (tmlchoice.hasMoreThanOneElse()) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [else] guard"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } else if ( tmlchoice.getElseGuard() > -1 ) { + final int index = tmlchoice.getElseGuard(); + + if (index == 0) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have a regular guard"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + } + if (tmlchoice.hasMoreThanOneAfter()) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [after] guard"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + } + else if (tgc instanceof TMLADSelectEvt) { + tmlselectevt = (TMLSelectEvt)(activity.findReferenceElement(tgc)); + if (!tmlselectevt.isARealSelectEvt()) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'Select events' should be followed by only event receiving operators"); + ce.setTDiagramPanel(tadp); + ce.setTGComponent(tgc); + checkingErrors.add(ce); + } + } + } + } + + // Sorting nexts elements of Sequence + for( int j=0; j<activity.nElements(); j++) { + final TMLActivityElement ae1 = activity.get(j); + + if (ae1 instanceof TMLSequence) { + ((TMLSequence)ae1).sortNexts(); + } + else if (ae1 instanceof TMLRandomSequence) { + ((TMLRandomSequence)ae1).sortNexts(); + } + } + + TraceManager.addDev( tmltask.getActivityDiagram().toXML() ); + } + + private String modifyActionString(String _input) { + int index = _input.indexOf("++"); + boolean b1, b2; + String tmp; + + if(index > -1) { + tmp = _input.substring(0, index).trim(); + + b1 = (tmp.substring(0,1)).matches("[a-zA-Z]"); + b2 = tmp.matches("\\w*"); + if (b1 && b2) { + return tmp + " = " + tmp + " + 1"; + } + } + + index = _input.indexOf("--"); + if(index > -1) { + tmp = _input.substring(0, index).trim(); + + b1 = (tmp.substring(0,1)).matches("[a-zA-Z]"); + b2 = tmp.matches("\\w*"); + if (b1 && b2) { + return tmp + " = " + tmp + " - 1"; + } + } + + return modifyString(_input); + } + + private String modifyString(String _input) { + return Conversion.replaceAllChar(_input, '.', "__"); + } + + private String getFromTable( final TMLTask task, + final String s, + final Map<String, String> table ) { + //TraceManager.addDev("TABLE GET: Getting from task=" + task.getName() + " element=" + s); + + if (table == null) { + return s; + } + + String ret = table.get(task.getName() + "/" + s); + //TraceManager.addDev("Returning=" + ret); + + if (ret == null) { + return s; + } + + return ret; + } +} diff --git a/src/main/java/ui/AttackTreePanelTranslator.java b/src/main/java/ui/AttackTreePanelTranslator.java index cd1642f8946d72be448665c9879ba65fb6954f3c..b9de2310ee2af9a333011d8bf884fac95ede78e2 100644 --- a/src/main/java/ui/AttackTreePanelTranslator.java +++ b/src/main/java/ui/AttackTreePanelTranslator.java @@ -57,10 +57,10 @@ public class AttackTreePanelTranslator { protected AttackTree at; protected AttackTreePanel atp; - protected LinkedList<CheckingError> checkingErrors, warnings; + protected List<CheckingError> checkingErrors, warnings; protected CorrespondanceTGElement listE; // usual list //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks - protected LinkedList<TDiagramPanel> panels; + protected List<TDiagramPanel> panels; public AttackTreePanelTranslator(AttackTreePanel _atp) { @@ -75,11 +75,11 @@ public class AttackTreePanelTranslator { panels = new LinkedList<TDiagramPanel>(); } - public LinkedList<CheckingError> getCheckingErrors() { + public List<CheckingError> getCheckingErrors() { return checkingErrors; } - public LinkedList<CheckingError> getWarnings() { + public List<CheckingError> getWarnings() { return warnings; } diff --git a/src/main/java/ui/AvatarDesignPanel.java b/src/main/java/ui/AvatarDesignPanel.java index 0b3194ef27d7efe7c20a4d37d372227b87a2b6b8..96febefa9e04545b9707a56a23c3c4ab41737cfb 100644 --- a/src/main/java/ui/AvatarDesignPanel.java +++ b/src/main/java/ui/AvatarDesignPanel.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import avatartranslator.AvatarAttribute; @@ -65,8 +62,12 @@ import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; -import java.util.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Vector; /** * Class AvatarDesignPanel @@ -77,8 +78,8 @@ import java.util.List; * @see MainGUI */ public class AvatarDesignPanel extends TURTLEPanel { - public AvatarBDPanel abdp; - + + public AvatarBDPanel abdp; public AvatarDesignPanel(MainGUI _mgui) { super(_mgui); @@ -103,13 +104,13 @@ public class AvatarDesignPanel extends TURTLEPanel { } - public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) { + public void setValidated( List<AvatarBDStateMachineOwner> _validated) { if (abdp != null) { abdp.setValidated(_validated); } } - public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) { + public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) { if (abdp != null) { abdp.setIgnored(_ignored); } @@ -121,14 +122,14 @@ public class AvatarDesignPanel extends TURTLEPanel { } } - public LinkedList<AvatarBDStateMachineOwner> getValidated() { + public List<AvatarBDStateMachineOwner> getValidated() { if (abdp != null) { return abdp.getValidated(); } return null; } - public LinkedList<AvatarBDStateMachineOwner> getIgnored() { + public List<AvatarBDStateMachineOwner> getIgnored() { if (abdp != null) { return abdp.getIgnored(); } @@ -179,6 +180,7 @@ public class AvatarDesignPanel extends TURTLEPanel { return; } + @Override public void init() { // Class Diagram toolbar @@ -209,37 +211,41 @@ public class AvatarDesignPanel extends TURTLEPanel { } - public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) { + public List<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) { return abdp.getAllLibraryFunctionsForBlock (_name); } - public LinkedList<TAttribute> getAllAttributes(String _name) { + public List<TAttribute> getAllAttributes(String _name) { return abdp.getAllAttributesOfBlock(_name); } - public LinkedList<AvatarMethod> getAllMethods(String _name) { + public List<AvatarMethod> getAllMethods(String _name) { return abdp.getAllMethodsOfBlock(_name); } - public LinkedList<AvatarSignal> getAllSignals(String _name) { + public List<AvatarSignal> getAllSignals(String _name) { return abdp.getAllSignalsOfBlock(_name); } - public LinkedList<String> getAllTimers(String _name) { + public List<String> getAllTimers(String _name) { return abdp.getAllTimersOfBlock(_name); } + @Override public String saveHeaderInXml(String extensionToName) { - if (extensionToName == null) { - return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; - } - return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + if (extensionToName == null) { + return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + + return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } + @Override public String saveTailInXml() { return "</Modeling>\n\n\n"; } + @Override public String toString() { return mgui.getTitleAt(this) + " (Design)"; } @@ -260,13 +266,11 @@ public class AvatarDesignPanel extends TURTLEPanel { } - - - public LinkedList<TGComponent> getListOfComponentsInMutex() { + public List<TGComponent> getListOfComponentsInMutex() { TGComponent tgc; TDiagramPanel tdp; - LinkedList<TGComponent> list = new LinkedList<TGComponent>(); + List<TGComponent> list = new LinkedList<TGComponent>(); for(int i=0; i<panels.size(); i++) { tdp = panels.get(i); @@ -337,8 +341,8 @@ public class AvatarDesignPanel extends TURTLEPanel { } - public LinkedList<String> getPropertyPragmas() { - LinkedList<String> result = new LinkedList<String> (); + public List<String> getPropertyPragmas() { + List<String> result = new LinkedList<String> (); for (Object tgc: abdp.getComponentList()) { if (tgc instanceof AvatarBDPragma) { result.addAll(((AvatarBDPragma) tgc).getProperties()); @@ -348,8 +352,8 @@ public class AvatarDesignPanel extends TURTLEPanel { return result; } - public LinkedList<String> getModelPragmas() { - LinkedList<String> result = new LinkedList<String> (); + public List<String> getModelPragmas() { + List<String> result = new LinkedList<String> (); for (Object tgc: abdp.getComponentList()) { if (tgc instanceof AvatarBDPragma) { result.addAll(((AvatarBDPragma) tgc).getModels()); @@ -359,7 +363,6 @@ public class AvatarDesignPanel extends TURTLEPanel { return result; } - public void resetModelBacktracingProVerif() { if (abdp == null) { return; @@ -445,7 +448,6 @@ public class AvatarDesignPanel extends TURTLEPanel { } } - public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) { if (abdp == null) { @@ -456,8 +458,8 @@ public class AvatarDesignPanel extends TURTLEPanel { // Confidential attributes Map<AvatarPragmaSecret, ProVerifQueryResult> confResults = pvoa.getConfidentialityResults(); - HashMap<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); - HashMap<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); + Map<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); + Map<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> (); for (AvatarPragmaSecret pragma: confResults.keySet()) { ProVerifQueryResult result = confResults.get(pragma); @@ -473,7 +475,7 @@ public class AvatarDesignPanel extends TURTLEPanel { for (AvatarBDBlock bdBlock: abdp.getFullBlockList ()) for (TAttribute tattr: bdBlock.getAttributeList ()) { if (tattr.getType () == TAttribute.OTHER) { - LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ()); + List<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ()); int toBeFound = types.size (); boolean ko = false; for (TAttribute type: types) { @@ -584,7 +586,7 @@ public class AvatarDesignPanel extends TURTLEPanel { if (! tattrA.getTypeOther ().equals (tattrB.getTypeOther ())) continue; - LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ()); + List<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ()); int toBeFound = types.size (); boolean ko = false; boolean weakKo = false; @@ -711,13 +713,11 @@ public class AvatarDesignPanel extends TURTLEPanel { } } - public ArrayList<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { + public List<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { return abdp.getAllNonMappedAvatarBlockNames(_name, _tadp, ref, name); } - public ArrayList<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { + public List<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) { return abdp.getAllNonMappedAvatarChannelNames(_name, _tadp); } - - } diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index 879587c3372fcb9e6726c0163b6ff01acb23fd55..19f86b72de68de83f4d875110032d72427d8feb6 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import avatartranslator.*; @@ -57,24 +54,24 @@ import java.util.*; */ public class AvatarDesignPanelTranslator { - protected AvatarDesignPanel adp; - protected List<CheckingError> checkingErrors, warnings; - protected CorrespondanceTGElement listE; // usual list + private final AvatarDesignPanel adp; + private final List<CheckingError> checkingErrors, warnings; + private final CorrespondanceTGElement listE; // usual list //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks - protected List <TDiagramPanel> panels; - protected Map<String, List<TAttribute>> typeAttributesMap; - protected Map<String, String> nameTypeMap; + //protected List <TDiagramPanel> panels; + private Map<String, List<TAttribute>> typeAttributesMap; + private Map<String, String> nameTypeMap; public AvatarDesignPanelTranslator(AvatarDesignPanel _adp) { adp = _adp; - reinit(); - } + // reinit(); + // } - public void reinit() { + //public void reinit() { checkingErrors = new LinkedList<CheckingError> (); warnings = new LinkedList<CheckingError> (); listE = new CorrespondanceTGElement(); - panels = new LinkedList <TDiagramPanel>(); + //panels = new LinkedList <TDiagramPanel>(); } public List<CheckingError> getErrors() { @@ -130,19 +127,21 @@ public class AvatarDesignPanelTranslator { public class ErrorAccumulator extends avatartranslator.ErrorAccumulator { private TGComponent tgc; private TDiagramPanel tdp; - private AvatarBlock ab; + // private AvatarBlock ab; - public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) { - this.tgc = tgc; - this.tdp = tdp; - this.ab = ab; - } +// public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) { +// this.tgc = tgc; +// this.tdp = tdp; +// this.ab = ab; +// } public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp) { - this (tgc, tdp, null); + this.tgc = tgc; + this.tdp = tdp; +// this (tgc, tdp, null); } - public CheckingError createError (String msg) { + public CheckingError createError(String msg) { UICheckingError ce = new UICheckingError (CheckingError.BEHAVIOR_ERROR, msg); ce.setTGComponent (this.tgc); ce.setTDiagramPanel (this.tdp); @@ -167,7 +166,7 @@ public class AvatarDesignPanelTranslator { } } - public void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { + private void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator(); TGComponent tgc; AvatarBDPragma tgcn; @@ -240,7 +239,7 @@ public class AvatarDesignPanelTranslator { } } - public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ + public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ if (_pragma.contains("=") || (!_pragma.contains(">") && !_pragma.contains("<") && !_pragma.contains("?")) || !_pragma.contains("Latency(")){ UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "No latency expression found in pragma "+ _pragma); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -416,7 +415,8 @@ public class AvatarDesignPanelTranslator { } - public boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ + + private boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){ //Todo: check types //Todo: handle complex types _pragma = _pragma.trim(); @@ -466,7 +466,8 @@ public class AvatarDesignPanelTranslator { } return true; } - public boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){ + + private boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){ //check the syntax of a single statement @@ -659,243 +660,243 @@ public class AvatarDesignPanelTranslator { } return true; } - public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) { - String ret = ""; - int i; - - // Identify first keyword - _pragma = _pragma.trim(); - - int index = _pragma.indexOf(" "); - - if (index == -1) { - return null; - } - - String header = _pragma.substring(0, index).trim(); - - for(i=0; i<AvatarPragma.PRAGMAS.length; i++) { - if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) { - break; - } - } - - // Invalid header? - if (i == AvatarPragma.PRAGMAS.length) { - TraceManager.addDev("Invalid Pragma " + 0); - return null; - } - - - - ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " "; - - // Checking for arguments - - - boolean b = ret.startsWith("Authenticity "); - boolean b1 = ret.startsWith("PrivatePublicKeys "); - String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" "); - String tmp; - String blockName, stateName, paramName = ""; - boolean found = false; - LinkedList<TAttribute> types; - AvatarBDBlock block; - TAttribute ta; - // AvatarBlock ab; - String myBlockName = ""; - - - - - for(i=0; i<arguments.length; i++) { - tmp = arguments[i]; - TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp); - - if (b1) { - - // Private Public keys? - if (i == 0) { - // Must be a block name - // Look for at least a block - found = false; - for(Object o: _blocks) { - block = (AvatarBDBlock)o; - //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp); - if (block.getBlockName().compareTo(tmp) ==0) { - myBlockName = block.getBlockName(); - found = true; - ret = ret + tmp; - break; - } - /*for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - if (ta.getId().compareTo(tmp) == 0) { - found = true; - - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + tmp + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - TraceManager.addDev("Invalid Pragma " + 1); - return null; - - } else { - for(int j=0; j<types.size(); j++) { - ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " "; - } - } - } - - } - }*/ - } - if (found == false) { - TraceManager.addDev("Invalid Pragma " + 2); - return null; - } - - } else if ((i == 1) || (i == 2)) { - // Shall be an attribute - TraceManager.addDev("i= " + i); - for(Object o: _blocks) { - block = (AvatarBDBlock)o; - TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName); - if (block.getBlockName().compareTo(myBlockName) == 0) { - TraceManager.addDev("Found the block " + ret); - for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - TraceManager.addDev("Attribute: " + ta.getId()); - if (ta.getId().compareTo(tmp) == 0) { - paramName = ta.getId(); - found = true; - TraceManager.addDev("Pragma " + ret + " found=" + found); - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + " " + paramName + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - TraceManager.addDev("Invalid Pragma " + 3); - return null; - } else { - TraceManager.addDev("Pragma " + ret + " types size=" + types.size()); - for (TAttribute type: types) - ret = ret + " " + paramName + "__" + type.getId() + " "; - } - - } else { - TraceManager.addDev("Invalid Pragma " + 4); - return null; - } - - break; - } - } - } - } - } else { - // Badly formatted - TraceManager.addDev("Invalid Pragma " + 5); - return null; - } - - // Other than PrivatePublicKeys - } else { - index = tmp.indexOf("."); - if (index == -1) { - return null; - } - blockName = tmp.substring(0, index); - - //TraceManager.addDev("blockName=" + blockName); - // Search for the block - for(Object o: _blocks) { - block = (AvatarBDBlock)o; - if (block.getBlockName().compareTo(blockName) == 0) { - - if (b) { - // Authenticity - stateName = tmp.substring(index+1, tmp.length()); - //TraceManager.addDev("stateName=" + stateName); - index = stateName.indexOf("."); - if (index == -1) { - return null; - } - paramName = stateName.substring(index+1, stateName.length()); - stateName = stateName.substring(0, index); - - for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - if (ta.getId().compareTo(paramName) == 0) { - found = true; - - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + blockName + "." + stateName + "." + paramName + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - return null; - } else { - for (TAttribute type: types) - ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " "; - } - - } else { - return null; - } - - break; - } - } - - } else { - // Other: confidentiality, initial system knowledge, initial session knowledge, constant - - paramName = tmp.substring(index+1, tmp.length()); - for(Object oo: block.getAttributeList()) { - ta = (TAttribute)oo; - if (ta.getId().compareTo(paramName) == 0) { - found = true; - - if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { - ret = ret + blockName + "." + paramName + " "; - } else if (ta.getType() == TAttribute.OTHER) { - // Must find all subsequent types - types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); - if (types == null) { - return null; - } else { - for (TAttribute type: types) - ret = ret + blockName + "." + paramName + "__" + type.getId() + " "; - } - - } else { - return null; - } - - break; - } - } - - } - } - } - } - - if (!found) { - return null; - } - - } - - TraceManager.addDev("Reworked pragma: " + ret); - - return ret.trim(); - } +// public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) { +// String ret = ""; +// int i; +// +// // Identify first keyword +// _pragma = _pragma.trim(); +// +// int index = _pragma.indexOf(" "); +// +// if (index == -1) { +// return null; +// } +// +// String header = _pragma.substring(0, index).trim(); +// +// for(i=0; i<AvatarPragma.PRAGMAS.length; i++) { +// if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) { +// break; +// } +// } +// +// // Invalid header? +// if (i == AvatarPragma.PRAGMAS.length) { +// TraceManager.addDev("Invalid Pragma " + 0); +// return null; +// } +// +// +// +// ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " "; +// +// // Checking for arguments +// +// +// boolean b = ret.startsWith("Authenticity "); +// boolean b1 = ret.startsWith("PrivatePublicKeys "); +// String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" "); +// String tmp; +// String blockName, stateName, paramName = ""; +// boolean found = false; +// LinkedList<TAttribute> types; +// AvatarBDBlock block; +// TAttribute ta; +// // AvatarBlock ab; +// String myBlockName = ""; +// +// +// +// +// for(i=0; i<arguments.length; i++) { +// tmp = arguments[i]; +// TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp); +// +// if (b1) { +// +// // Private Public keys? +// if (i == 0) { +// // Must be a block name +// // Look for at least a block +// found = false; +// for(Object o: _blocks) { +// block = (AvatarBDBlock)o; +// //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp); +// if (block.getBlockName().compareTo(tmp) ==0) { +// myBlockName = block.getBlockName(); +// found = true; +// ret = ret + tmp; +// break; +// } +// /*for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// if (ta.getId().compareTo(tmp) == 0) { +// found = true; +// +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + tmp + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// TraceManager.addDev("Invalid Pragma " + 1); +// return null; +// +// } else { +// for(int j=0; j<types.size(); j++) { +// ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " "; +// } +// } +// } +// +// } +// }*/ +// } +// if (found == false) { +// TraceManager.addDev("Invalid Pragma " + 2); +// return null; +// } +// +// } else if ((i == 1) || (i == 2)) { +// // Shall be an attribute +// TraceManager.addDev("i= " + i); +// for(Object o: _blocks) { +// block = (AvatarBDBlock)o; +// TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName); +// if (block.getBlockName().compareTo(myBlockName) == 0) { +// TraceManager.addDev("Found the block " + ret); +// for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// TraceManager.addDev("Attribute: " + ta.getId()); +// if (ta.getId().compareTo(tmp) == 0) { +// paramName = ta.getId(); +// found = true; +// TraceManager.addDev("Pragma " + ret + " found=" + found); +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + " " + paramName + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// TraceManager.addDev("Invalid Pragma " + 3); +// return null; +// } else { +// TraceManager.addDev("Pragma " + ret + " types size=" + types.size()); +// for (TAttribute type: types) +// ret = ret + " " + paramName + "__" + type.getId() + " "; +// } +// +// } else { +// TraceManager.addDev("Invalid Pragma " + 4); +// return null; +// } +// +// break; +// } +// } +// } +// } +// } else { +// // Badly formatted +// TraceManager.addDev("Invalid Pragma " + 5); +// return null; +// } +// +// // Other than PrivatePublicKeys +// } else { +// index = tmp.indexOf("."); +// if (index == -1) { +// return null; +// } +// blockName = tmp.substring(0, index); +// +// //TraceManager.addDev("blockName=" + blockName); +// // Search for the block +// for(Object o: _blocks) { +// block = (AvatarBDBlock)o; +// if (block.getBlockName().compareTo(blockName) == 0) { +// +// if (b) { +// // Authenticity +// stateName = tmp.substring(index+1, tmp.length()); +// //TraceManager.addDev("stateName=" + stateName); +// index = stateName.indexOf("."); +// if (index == -1) { +// return null; +// } +// paramName = stateName.substring(index+1, stateName.length()); +// stateName = stateName.substring(0, index); +// +// for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// if (ta.getId().compareTo(paramName) == 0) { +// found = true; +// +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + blockName + "." + stateName + "." + paramName + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// return null; +// } else { +// for (TAttribute type: types) +// ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " "; +// } +// +// } else { +// return null; +// } +// +// break; +// } +// } +// +// } else { +// // Other: confidentiality, initial system knowledge, initial session knowledge, constant +// +// paramName = tmp.substring(index+1, tmp.length()); +// for(Object oo: block.getAttributeList()) { +// ta = (TAttribute)oo; +// if (ta.getId().compareTo(paramName) == 0) { +// found = true; +// +// if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) { +// ret = ret + blockName + "." + paramName + " "; +// } else if (ta.getType() == TAttribute.OTHER) { +// // Must find all subsequent types +// types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()); +// if (types == null) { +// return null; +// } else { +// for (TAttribute type: types) +// ret = ret + blockName + "." + paramName + "__" + type.getId() + " "; +// } +// +// } else { +// return null; +// } +// +// break; +// } +// } +// +// } +// } +// } +// } +// +// if (!found) { +// return null; +// } +// +// } +// +// TraceManager.addDev("Reworked pragma: " + ret); +// +// return ret.trim(); +// } private AvatarAttribute createRegularAttribute (AvatarStateMachineOwner _ab, TAttribute _a, String _preName) { AvatarType type = AvatarType.UNDEFINED; @@ -914,11 +915,11 @@ public class AvatarDesignPanelTranslator { return aa; } - public void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) { + private void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) { _ab.addAttribute(this.createRegularAttribute (_ab, _a, _preName)); } - public void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) { + private void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) { for (AvatarBDLibraryFunction libraryFunction: _libraryFunctions) { AvatarLibraryFunction alf = new AvatarLibraryFunction (libraryFunction.getFunctionName (), _as, libraryFunction); _as.addLibraryFunction (alf); @@ -934,7 +935,7 @@ public class AvatarDesignPanelTranslator { alf.addParameter (this.createRegularAttribute (alf, attr, "")); else { // other - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + attr.getTypeOther() + " used in " + alf.getName()); // TODO: adapt @@ -964,7 +965,7 @@ public class AvatarDesignPanelTranslator { alf.addReturnAttribute (this.createRegularAttribute (alf, attr, "")); else { // other - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + attr.getTypeOther() + " used in " + alf.getName()); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -993,7 +994,7 @@ public class AvatarDesignPanelTranslator { alf.addAttribute (this.createRegularAttribute (alf, attr, "")); else { // other - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + attr.getTypeOther() + " used in " + alf.getName()); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -1036,7 +1037,7 @@ public class AvatarDesignPanelTranslator { } } - public void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { + private void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { for(AvatarBDBlock block: _blocks) { AvatarBlock ab = new AvatarBlock(block.getBlockName(), _as, block); _as.addBlock(ab); @@ -1056,7 +1057,7 @@ public class AvatarDesignPanelTranslator { } else { // other // TraceManager.addDev(" -> Other type found: " + a.getTypeOther()); - LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther()); + List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther()); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + a.getTypeOther() + " used in " + ab.getName()); ce.setTDiagramPanel(adp.getAvatarBDPanel()); @@ -1117,7 +1118,7 @@ public class AvatarDesignPanelTranslator { } } - public void makeBlockStateMachines(AvatarSpecification _as) { + private void makeBlockStateMachines(AvatarSpecification _as) { // Make state machine of blocks for(AvatarBlock block: _as.getListOfBlocks()) this.makeStateMachine(_as, block); @@ -1127,7 +1128,7 @@ public class AvatarDesignPanelTranslator { this.makeStateMachine (_as, libraryFunction); } - public void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { + private void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { String rt = _uiam.getReturnType().trim(); AvatarAttribute aa; AvatarType type = AvatarType.UNDEFINED; @@ -1140,7 +1141,7 @@ public class AvatarDesignPanelTranslator { aa = new AvatarAttribute("return__0", AvatarType.getType(rt), _ab, _block); _atam.addReturnParameter(aa); } else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt); + List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt); if (types == null) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + rt + " declared as a return parameter of a method of " + _block.getOwnerName()); // TODO: adapt @@ -1167,12 +1168,12 @@ public class AvatarDesignPanelTranslator { } - public void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { + private void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) { String typeIds[] = _uiam.getTypeIds(); String types[] = _uiam.getTypes(); for(int i=0; i<types.length; i++) { - LinkedList<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]); + List<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]); if (v == null) { if (AvatarType.getType(types[i]) == AvatarType.UNDEFINED) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: \"" + types[i] + "\" declared in method " + _atam + " of block " + _block.getName()); @@ -1202,7 +1203,7 @@ public class AvatarDesignPanelTranslator { } } - public void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) { + private void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) { TAttribute ta = adp.getAvatarBDPanel().getAttribute(_name, _ab.getName()); if (ta == null) { UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + _name + " in signal expression: " + _idOperator); @@ -1217,7 +1218,7 @@ public class AvatarDesignPanelTranslator { //TraceManager.addDev("Found: " + ta.getId()); - LinkedList<String> v = new LinkedList<String> (); + List<String> v = new LinkedList<String> (); if (ta.getType() == TAttribute.OTHER) for (TAttribute tatmp: adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther())) @@ -1236,81 +1237,91 @@ public class AvatarDesignPanelTranslator { ce.setTGComponent(_tgc); addCheckingError(ce); return ; - } else { + }// else { //TraceManager.addDev("-> Adding attr in action on signal in block " + _ab.getName() + ":" + _name + "__" + tatmp.getId()); - _aaos.addValue(name); - } + _aaos.addValue(name); + //} } } private void translateAvatarSMDSendSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDSendSignal asmdss) throws CheckingError { - AvatarStateMachine asm = _ab.getStateMachine (); - avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ()); - if (atas == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName()); - - // Get relation of that signal - if (_ab instanceof AvatarBlock) { - // Note that for library functions, signals are just placeholders so they don't need to be connected to anything - AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); - if (ar == null) { - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Send/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; - } - //TraceManager.addDev("Spec:" + _as.toString()); - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel"); - } - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Send/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; - } - } + AvatarStateMachine asm = _ab.getStateMachine (); + avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ()); + if (atas == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName()); + + // Get relation of that signal + if (_ab instanceof AvatarBlock) { + // Note that for library functions, signals are just placeholders so they don't need to be connected to anything + AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); + if (ar == null) { + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Send/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; + } + //TraceManager.addDev("Spec:" + _as.toString()); + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel"); + } + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Send/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; + } + } + final AvatarStateMachineElement element; + final String name = "action_on_signal"; + + if ( asmdss.isEnabled() ) { + element = new AvatarActionOnSignal( name, atas, asmdss ); + + final AvatarActionOnSignal aaos = (AvatarActionOnSignal) element; + if (asmdss.hasCheckedAccessibility()) + aaos.setCheckable(); - AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdss); - if (asmdss.hasCheckedAccessibility()) - aaos.setCheckable(); - - if (asmdss.hasCheckedAccessibility()) - aaos.setChecked(); - - if (aaos.isReceiving ()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue()); - - if (asmdss.getNbOfValues() == -1) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue()); - - for(int i=0; i<asmdss.getNbOfValues(); i++) { - String tmp = asmdss.getValue(i); - if (tmp.isEmpty ()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue()); - - this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue()); + if (asmdss.hasCheckedAccessibility()) + aaos.setChecked(); + + if (aaos.isReceiving ()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue()); + + if (asmdss.getNbOfValues() == -1) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue()); + + for(int i=0; i<asmdss.getNbOfValues(); i++) { + String tmp = asmdss.getValue(i); + if (tmp.isEmpty ()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue()); + + this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue()); + } + + if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition"); + + // Checking expressions passed as parameter + for (int i=0; i<aaos.getNbOfValues(); i++) { + String theVal = aaos.getValue(i); + if (atas.getListOfAttributes ().get (i).isInt ()) { + if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); + } else { + // We assume it is a bool attribute + if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); + } + } + + if (asmdss.getCheckLatency()){ + aaos.setCheckLatency( true ); + _as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID()); + } } - - if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition"); - - // Checking expressions passed as parameter - for (int i=0; i<aaos.getNbOfValues(); i++) { - String theVal = aaos.getValue(i); - if (atas.getListOfAttributes ().get (i).isInt ()) { - if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); - } else { - // We assume it is a bool attribute - if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition"); - } + else { + element = new AvatarDummyState( name + ":" + atas.getName(), asmdss ); } - this.listE.addCor (aaos, asmdss); - asmdss.setAVATARID (aaos.getID()); - if (asmdss.getCheckLatency()){ - aaos.setCheckLatency(true); - _as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID()); - } - asm.addElement (aaos); + listE.addCor(element, asmdss); + asmdss.setAVATARID (element.getID()); + asm.addElement(element); } private void translateAvatarSMDLibraryFunctionCall (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDLibraryFunctionCall asmdlfc) throws CheckingError { @@ -1327,331 +1338,403 @@ public class AvatarDesignPanelTranslator { throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown library function '" + libraryFunction.getFunctionName () + "'"); /* create Avatar representation of the function call */ - AvatarLibraryFunctionCall alfc = new AvatarLibraryFunctionCall ("library_function_call", aLibraryFunction, asmdlfc); - - /* Get the list of parameters passed to the function */ - LinkedList<TAttribute> parameters = asmdlfc.getParameters (); - /* If the number of parameters does not match raise an error */ - if (parameters.size () != libraryFunction.getParameters ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getParameters ().size () + "parameters (" + parameters.size () + " provided)"); - - /* Loop through the parameters */ - int i=0; - for (TAttribute ta: parameters) { - i ++; - /* If parameter has not be filled in raise an error */ - if (ta == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing parameter #" + i + " when calling library function " + libraryFunction.getFunctionName ()); - - /* Check if type of parameter matches what's expected */ - TAttribute returnTA = libraryFunction.getParameters ().get (i-1); - if (!ta.hasSameType (returnTA)) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of parameter #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); - - /* Creates all the parameters corresponding to this parameter */ - LinkedList<String> parameterNames = new LinkedList<String> (); - if (ta.getType() == TAttribute.INTEGER - || ta.getType() == TAttribute.NATURAL - || ta.getType() == TAttribute.BOOLEAN - || ta.getType() == TAttribute.TIMER) - parameterNames.add (ta.getId ()); - else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); - if (types == null || types.isEmpty ()) - throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); - - for (TAttribute type: types) - parameterNames.add (ta.getId () + "__" + type.getId ()); - } - - /* Add flattened parameters */ - for (String parameterName: parameterNames) { - /* Try to get the corresponding attribute */ - AvatarAttribute attr = _ab.getAvatarAttributeWithName (parameterName); - /* If it does not exist raise an error */ - if (attr == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Parameter '" + ta.getId () + "' passed when calling library function " + libraryFunction.getFunctionName () + " does not exist"); - alfc.addParameter (attr); - } + final AvatarStateMachineElement element; + final String name = "library_function_call"; + + if ( asmdlfc.isEnabled() ) { + /* create Avatar representation of the function call */ + element = new AvatarLibraryFunctionCall( name, aLibraryFunction, asmdlfc ); + AvatarLibraryFunctionCall alfc = (AvatarLibraryFunctionCall) element; +// AvatarLibraryFunctionCall alfc = new AvatarLibraryFunctionCall ("library_function_call", aLibraryFunction, asmdlfc); + + /* Get the list of parameters passed to the function */ + List<TAttribute> parameters = asmdlfc.getParameters (); + /* If the number of parameters does not match raise an error */ + if (parameters.size () != libraryFunction.getParameters ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getParameters ().size () + "parameters (" + parameters.size () + " provided)"); + + /* Loop through the parameters */ + int i=0; + for (TAttribute ta: parameters) { + i ++; + /* If parameter has not be filled in raise an error */ + if (ta == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing parameter #" + i + " when calling library function " + libraryFunction.getFunctionName ()); + + /* Check if type of parameter matches what's expected */ + TAttribute returnTA = libraryFunction.getParameters ().get (i-1); + if (!ta.hasSameType (returnTA)) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of parameter #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); + + /* Creates all the parameters corresponding to this parameter */ + List<String> parameterNames = new LinkedList<String> (); + if (ta.getType() == TAttribute.INTEGER + || ta.getType() == TAttribute.NATURAL + || ta.getType() == TAttribute.BOOLEAN + || ta.getType() == TAttribute.TIMER) + parameterNames.add (ta.getId ()); + else { + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); + if (types == null || types.isEmpty ()) + throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); + + for (TAttribute type: types) + parameterNames.add (ta.getId () + "__" + type.getId ()); + } + + /* Add flattened parameters */ + for (String parameterName: parameterNames) { + /* Try to get the corresponding attribute */ + AvatarAttribute attr = _ab.getAvatarAttributeWithName (parameterName); + /* If it does not exist raise an error */ + if (attr == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Parameter '" + ta.getId () + "' passed when calling library function " + libraryFunction.getFunctionName () + " does not exist"); + alfc.addParameter (attr); + } + } + + /* Get the list of signals mapped to the function's placeholders */ + List<ui.AvatarSignal> signals = asmdlfc.getSignals (); + /* If the number of signals does not match raise an error */ + if (signals.size () != libraryFunction.getSignals ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getSignals ().size () + " signals (" + signals.size () + " mapped)"); + + /* Loop through the signals */ + i=0; + for (ui.AvatarSignal uias: signals) { + i ++; + /* If signal has not be filled in raise an error */ + if (uias == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing mapping for signal #" + i + " when calling library function " + libraryFunction.getFunctionName ()); + + /* Check if prototype of signal matches what's expected */ + ui.AvatarSignal expectedSig = libraryFunction.getSignals ().get (i-1); + if (!expectedSig.hasSamePrototype (uias)) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Prototype of signal #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); + + /* Try to get the corresponding signal */ + avatartranslator.AvatarSignal sig = _ab.getAvatarSignalWithName (uias.getId ()); + /* If it does not exist raise an error */ + if (sig == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal '" + uias.getId () + "' mapped when calling library function " + libraryFunction.getFunctionName () + " does not exist"); + alfc.addSignal (sig); + } + + /* Get the list of return attributes passed to the function */ + List<TAttribute> returnAttributes = asmdlfc.getReturnAttributes (); + /* If the number of return attributes is greater that what the function can return raise an error */ + if (returnAttributes.size () > libraryFunction.getReturnAttributes ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " can only return " + libraryFunction.getReturnAttributes ().size () + " values (" + returnAttributes.size () + " expected)"); + + /* Loop through the return attributes */ + i=0; + for (TAttribute ta: returnAttributes) { + List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); + /* If return attribute has not be filled in, add a dummy one */ + if (ta == null) { + TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); + String dummyName = "__dummy_return_attribute_" + returnTA.getId (); + + /* Creates all the attributes corresponding to this return attribute */ + if (returnTA.getType() == TAttribute.INTEGER + || returnTA.getType() == TAttribute.NATURAL + || returnTA.getType() == TAttribute.BOOLEAN + || returnTA.getType() == TAttribute.TIMER) { + AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName); + if (attr == null) { + attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_"); + _ab.addAttribute (attr); + } + attrs.add (attr); + } else { + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); + if (types == null || types.isEmpty ()) + throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); + + for (TAttribute type: types) { + String attributeName = dummyName + "__" + type.getId (); + AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName); + if (attr == null) { + attr = this.createRegularAttribute (_ab, type, dummyName + "__"); + _ab.addAttribute (attr); + } + attrs.add (attr); + } + } + } else { + /* Check if type of return attribute matches what's expected */ + TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); + if (!ta.hasSameType (returnTA)) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of return attribute #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); + + /* Creates all the attributes corresponding to this return attribute */ + List<String> attributeNames = new LinkedList<String> (); + if (ta.getType() == TAttribute.INTEGER + || ta.getType() == TAttribute.NATURAL + || ta.getType() == TAttribute.BOOLEAN + || ta.getType() == TAttribute.TIMER) + attributeNames.add (ta.getId ()); + else { + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); + if (types == null || types.isEmpty ()) + throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); + + for (TAttribute type: types) + attributeNames.add (ta.getId () + "__" + type.getId ()); + } + + /* Add flattened parameters */ + for (String attributeName: attributeNames) { + AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName); + /* If a return attribute was given but we can't find the corresponding one raise an error */ + if (attr == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Attribute '" + ta.getId () + "' expected to hold return value #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not exist"); + attrs.add (attr); + } + } + + for (AvatarAttribute attr: attrs) + alfc.addReturnAttribute (attr); + i ++; + } + + /* If there were missing return attributes, add dummies ones */ + for (; i<libraryFunction.getReturnAttributes ().size (); i++) { + TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); + String dummyName = "__dummy_return_attribute_" + returnTA.getId (); + + List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); + /* Creates all the attributes corresponding to this return attribute */ + if (returnTA.getType() == TAttribute.INTEGER + || returnTA.getType() == TAttribute.NATURAL + || returnTA.getType() == TAttribute.BOOLEAN + || returnTA.getType() == TAttribute.TIMER) { + AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName); + if (attr == null) { + attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_"); + _ab.addAttribute (attr); + } + attrs.add (attr); + } else { + List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); + if (types == null || types.isEmpty ()) + throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); + + for (TAttribute type: types) { + String attributeName = dummyName + "__" + type.getId (); + AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName); + if (attr == null) { + attr = this.createRegularAttribute (_ab, type, dummyName + "__"); + _ab.addAttribute (attr); + } + attrs.add (attr); + } + } + + for (AvatarAttribute attr: attrs) + alfc.addReturnAttribute (attr); + } } - - /* Get the list of signals mapped to the function's placeholders */ - LinkedList<ui.AvatarSignal> signals = asmdlfc.getSignals (); - /* If the number of signals does not match raise an error */ - if (signals.size () != libraryFunction.getSignals ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getSignals ().size () + " signals (" + signals.size () + " mapped)"); - - /* Loop through the signals */ - i=0; - for (ui.AvatarSignal uias: signals) { - i ++; - /* If signal has not be filled in raise an error */ - if (uias == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Missing mapping for signal #" + i + " when calling library function " + libraryFunction.getFunctionName ()); - - /* Check if prototype of signal matches what's expected */ - ui.AvatarSignal expectedSig = libraryFunction.getSignals ().get (i-1); - if (!expectedSig.hasSamePrototype (uias)) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Prototype of signal #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); - - /* Try to get the corresponding signal */ - avatartranslator.AvatarSignal sig = _ab.getAvatarSignalWithName (uias.getId ()); - /* If it does not exist raise an error */ - if (sig == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal '" + uias.getId () + "' mapped when calling library function " + libraryFunction.getFunctionName () + " does not exist"); - alfc.addSignal (sig); - } - - /* Get the list of return attributes passed to the function */ - LinkedList<TAttribute> returnAttributes = asmdlfc.getReturnAttributes (); - /* If the number of return attributes is greater that what the function can return raise an error */ - if (returnAttributes.size () > libraryFunction.getReturnAttributes ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " can only return " + libraryFunction.getReturnAttributes ().size () + " values (" + returnAttributes.size () + " expected)"); - - /* Loop through the return attributes */ - i=0; - for (TAttribute ta: returnAttributes) { - LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); - /* If return attribute has not be filled in, add a dummy one */ - if (ta == null) { - TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); - String dummyName = "__dummy_return_attribute_" + returnTA.getId (); - - /* Creates all the attributes corresponding to this return attribute */ - if (returnTA.getType() == TAttribute.INTEGER - || returnTA.getType() == TAttribute.NATURAL - || returnTA.getType() == TAttribute.BOOLEAN - || returnTA.getType() == TAttribute.TIMER) { - AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName); - if (attr == null) { - attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_"); - _ab.addAttribute (attr); - } - attrs.add (attr); - } else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); - if (types == null || types.isEmpty ()) - throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); - - for (TAttribute type: types) { - String attributeName = dummyName + "__" + type.getId (); - AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName); - if (attr == null) { - attr = this.createRegularAttribute (_ab, type, dummyName + "__"); - _ab.addAttribute (attr); - } - attrs.add (attr); - } - } - } else { - /* Check if type of return attribute matches what's expected */ - TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); - if (!ta.hasSameType (returnTA)) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of return attribute #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not match"); - - /* Creates all the attributes corresponding to this return attribute */ - LinkedList<String> attributeNames = new LinkedList<String> (); - if (ta.getType() == TAttribute.INTEGER - || ta.getType() == TAttribute.NATURAL - || ta.getType() == TAttribute.BOOLEAN - || ta.getType() == TAttribute.TIMER) - attributeNames.add (ta.getId ()); - else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ()); - if (types == null || types.isEmpty ()) - throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); - - for (TAttribute type: types) - attributeNames.add (ta.getId () + "__" + type.getId ()); - } - - /* Add flattened parameters */ - for (String attributeName: attributeNames) { - AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName); - /* If a return attribute was given but we can't find the corresponding one raise an error */ - if (attr == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Attribute '" + ta.getId () + "' expected to hold return value #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not exist"); - attrs.add (attr); - } - } - - for (AvatarAttribute attr: attrs) - alfc.addReturnAttribute (attr); - i ++; - } - - /* If there were missing return attributes, add dummies ones */ - for (; i<libraryFunction.getReturnAttributes ().size (); i++) { - TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i); - String dummyName = "__dummy_return_attribute_" + returnTA.getId (); - - LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> (); - /* Creates all the attributes corresponding to this return attribute */ - if (returnTA.getType() == TAttribute.INTEGER - || returnTA.getType() == TAttribute.NATURAL - || returnTA.getType() == TAttribute.BOOLEAN - || returnTA.getType() == TAttribute.TIMER) { - AvatarAttribute attr = _ab.getAvatarAttributeWithName (dummyName); - if (attr == null) { - attr = this.createRegularAttribute (_ab, returnTA, "__dummy_return_attribute_"); - _ab.addAttribute (attr); - } - attrs.add (attr); - } else { - LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ()); - if (types == null || types.isEmpty ()) - throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type: " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ()); - - for (TAttribute type: types) { - String attributeName = dummyName + "__" + type.getId (); - AvatarAttribute attr = _ab.getAvatarAttributeWithName (attributeName); - if (attr == null) { - attr = this.createRegularAttribute (_ab, type, dummyName + "__"); - _ab.addAttribute (attr); - } - attrs.add (attr); - } - } - - for (AvatarAttribute attr: attrs) - alfc.addReturnAttribute (attr); + else { + element = new AvatarDummyState( name + ":" + aLibraryFunction.getName(), asmdlfc ); } - this.listE.addCor (alfc, asmdlfc); - asmdlfc.setAVATARID (alfc.getID()); - asm.addElement (alfc); + listE.addCor( element, asmdlfc ); + asmdlfc.setAVATARID( element.getID() ); + asm.addElement( element ); } - private void translateAvatarSMDReceiveSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDReceiveSignal asmdrs) throws CheckingError { - AvatarStateMachine asm = _ab.getStateMachine (); - avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ()); - if (atas == null) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName()); - - // Get relation of that signal - if (_ab instanceof AvatarBlock) { - // Note that for library functions, signals are just placeholders so they don't need to be connected to anything - AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); - if (ar == null) { - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Receive/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; - } - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel"); - } - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - //TraceManager.addDev("Receive/ Setting as attached " + atas); - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; - } - } - if (atas.getReferenceObject() instanceof ui.AvatarSignal) { - ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; - } - - AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdrs); - if (asmdrs.hasCheckableAccessibility()) - aaos.setCheckable(); - - if (asmdrs.hasCheckedAccessibility()) - aaos.setChecked(); - - if (aaos.isSending()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue()); - - if (asmdrs.getNbOfValues() == -1) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue()); - - for(int i=0; i<asmdrs.getNbOfValues(); i++) { - String tmp = asmdrs.getValue(i); - if (tmp.isEmpty ()) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue()); + AvatarStateMachine asm = _ab.getStateMachine (); + avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ()); + if (atas == null) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName()); + + // Get relation of that signal + if (_ab instanceof AvatarBlock) { + // Note that for library functions, signals are just placeholders so they don't need to be connected to anything + AvatarRelation ar = _as.getAvatarRelationWithSignal (atas); + if (ar == null) { + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Receive/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false; + } + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel"); + } + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + //TraceManager.addDev("Receive/ Setting as attached " + atas); + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; + } + } + if (atas.getReferenceObject() instanceof ui.AvatarSignal) { + ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true; + } + + final AvatarStateMachineElement element; + final String name = "action_on_signal"; + + if ( asmdrs.isEnabled() ) { + element = new AvatarActionOnSignal( name, atas, asmdrs ); + + final AvatarActionOnSignal aaos = (AvatarActionOnSignal) element; - this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue()); + if (asmdrs.hasCheckableAccessibility()) + aaos.setCheckable(); + + if (asmdrs.hasCheckedAccessibility()) + aaos.setChecked(); + + if (aaos.isSending()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue()); + + if (asmdrs.getNbOfValues() == -1) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue()); + + for(int i=0; i<asmdrs.getNbOfValues(); i++) { + String tmp = asmdrs.getValue(i); + if (tmp.isEmpty ()) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue()); + + this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue()); + } + + if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition"); + + // Checking expressions passed as parameter + for (int i=0; i<aaos.getNbOfValues(); i++) { + String theVal = aaos.getValue(i); + if (atas.getListOfAttributes ().get (i).isInt ()) { + if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) + throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); + } else { + // We assume it is a bool attribute + if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) + throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); + } + } + + if (asmdrs.getCheckLatency()){ + aaos.setCheckLatency(true); + _as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID()); + } } - - if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ()) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition"); - - // Checking expressions passed as parameter - for (int i=0; i<aaos.getNbOfValues(); i++) { - String theVal = aaos.getValue(i); - if (atas.getListOfAttributes ().get (i).isInt ()) { - if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0) - throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); - } else { - // We assume it is a bool attribute - if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0) - throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition"); - } + else { + element = new AvatarDummyState( name + ":" + atas.getName(), asmdrs ); } - this.listE.addCor (aaos, asmdrs); - asmdrs.setAVATARID (aaos.getID()); - asm.addElement (aaos); - if (asmdrs.getCheckLatency()){ - aaos.setCheckLatency(true); - _as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID()); - } + this.listE.addCor( element, asmdrs ); + asmdrs.setAVATARID( element.getID() ); + asm.addElement( element ); } private void translateAvatarSMDState (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDState tgc) throws CheckingError { - AvatarStateMachine asm = _ab.getStateMachine (); - AvatarState astate = asm.getStateWithName(tgc.getValue()); - if (astate == null) { - astate = new AvatarState (tgc.getValue(), tgc); - astate.setAsVerifiable(true); - asm.addElement (astate); - } + AvatarStateMachine stateMachine = _ab.getStateMachine (); + AvatarStateElement stateElement = createState( stateMachine, tgc ); + //AvatarState astate = asm.getStateWithName(tgc.getValue()); +// if (astate == null) { +// astate = new AvatarState (tgc.getValue(), tgc); +// astate.setAsVerifiable(true); +// asm.addElement (astate); +// } if (tgc.hasCheckableAccessibility ()) - astate.setCheckable (); + stateElement.setCheckable (); if (tgc.hasCheckedAccessibility()) - astate.setChecked(); - - // Executable code - astate.addEntryCode(tgc.getEntryCode()); + stateElement.setChecked(); + + // Issue #69 + if ( tgc.isEnabled() ) { + final AvatarState state = (AvatarState) stateElement; + + // Executable code + state.addEntryCode(tgc.getEntryCode()); + + if (tgc.getCheckLatency()){ + state.setCheckLatency(true); + _as.checkedIDs.add(tgc.getName()+"-"+tgc.getValue()+":"+state.getID()); + } + } - this.listE.addCor (astate, tgc); - astate.addReferenceObject (tgc); - tgc.setAVATARID (astate.getID()); - if (tgc.getCheckLatency()){ - astate.setCheckLatency(true); - _as.checkedIDs.add(tgc.getName()+"-"+tgc.getValue()+":"+astate.getID()); - } + listE.addCor(stateElement, tgc); + stateElement.addReferenceObject (tgc); + tgc.setAVATARID(stateElement.getID()); + } + + private AvatarStateElement createState( final AvatarStateMachine stateMachine, + final AvatarSMDState diagramState ) { + AvatarStateElement stateElement = stateMachine.getStateWithName( diagramState.getValue() ); + + if ( stateElement == null ) { + final String name = diagramState.getValue(); + + // Issue #69 + if ( diagramState.isEnabled() ) { + stateElement = new AvatarState( name, diagramState ); + stateElement.setAsVerifiable( true ); + } + else { + if ( diagramState.getOutputConnectors().isEmpty() ) { + stateElement = new AvatarStopState( name + "_state_converted_to_stop", diagramState ); + } + else { + stateElement = new AvatarDummyState( name, diagramState ); + } + } + + stateMachine.addElement( stateElement ); + } + + return stateElement; } private void translateAvatarSMDRandom (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDRandom asmdrand) throws CheckingError { AvatarStateMachine asm = _ab.getStateMachine (); - AvatarRandom arandom = new AvatarRandom ("random", asmdrand); - String tmp1 = modifyString (asmdrand.getMinValue()); - int error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp1); - if (error < 0) - this.makeError (error, tdp, _ab, asmdrand, "min value of random", tmp1); - - String tmp2 = modifyString(asmdrand.getMaxValue()); - error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2); - if (error < 0) - this.makeError (error, tdp, _ab, asmdrand, "max value of random", tmp2); - arandom.setValues (tmp1, tmp2); - arandom.setFunctionId (asmdrand.getFunctionId()); + final AvatarStateMachineElement element; + final String name = "random"; + + if ( asmdrand.isEnabled() ) { + element = new AvatarRandom( name, asmdrand ); + + final AvatarRandom arandom = (AvatarRandom) element; - tmp1 = modifyString(asmdrand.getVariable()); - AvatarAttribute aa = _ab.getAvatarAttributeWithName (tmp1); + String tmp1 = modifyString (asmdrand.getMinValue()); + int error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp1); + + if (error < 0) { + makeError (error, tdp, _ab, asmdrand, "min value of random", tmp1); + } - if (aa == null) - this.makeError (-3, tdp, _ab, asmdrand, "random", tmp1); - // Checking type of variable -> must be an int - else if (!(aa.isInt())) - this.makeError (error, tdp, _ab, asmdrand, ": variable of random must be of type \"int\"", tmp2); + String tmp2 = modifyString(asmdrand.getMaxValue()); + error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2); + + if (error < 0) { + makeError (error, tdp, _ab, asmdrand, "max value of random", tmp2); + } - arandom.setVariable (tmp1); + arandom.setValues (tmp1, tmp2); + arandom.setFunctionId (asmdrand.getFunctionId()); + + tmp1 = modifyString(asmdrand.getVariable()); + AvatarAttribute aa = _ab.getAvatarAttributeWithName (tmp1); + + if (aa == null) + this.makeError (-3, tdp, _ab, asmdrand, "random", tmp1); + // Checking type of variable -> must be an int + else if (!(aa.isInt())) + this.makeError (error, tdp, _ab, asmdrand, ": variable of random must be of type \"int\"", tmp2); + + arandom.setVariable(tmp1); + } + else { + element = new AvatarDummyState( name, asmdrand ); + } - asm.addElement (arandom); - listE.addCor (arandom, asmdrand); - asmdrand.setAVATARID (arandom.getID()); + asm.addElement (element); + listE.addCor( element, asmdrand ); + asmdrand.setAVATARID( element.getID() ); } private void translateAvatarSMDSetTimer (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDSetTimer asmdst) throws CheckingError { @@ -1669,12 +1752,23 @@ public class AvatarDesignPanelTranslator { if (error < 0) this.makeError(error, tdp, _ab, asmdst, "value of the timer setting", tmp); - AvatarSetTimer asettimer = new AvatarSetTimer("settimer__" + aa.getName(), asmdst); - asettimer.setTimer (aa); - asettimer.setTimerValue (tmp); - asm.addElement (asettimer); - this.listE.addCor (asettimer, asmdst); - asmdst.setAVATARID (asettimer.getID()); + final AvatarStateMachineElement element; + final String name = "settimer__" + aa.getName(); + + if ( asmdst.isEnabled() ) { + element = new AvatarSetTimer( name, asmdst ); + + final AvatarSetTimer asettimer = (AvatarSetTimer) element; + asettimer.setTimer( aa ); + asettimer.setTimerValue( tmp ); + } + else { + element = new AvatarDummyState( name, asmdst ); + } + + asm.addElement(element); + listE.addCor(element, asmdst); + asmdst.setAVATARID(element.getID()); } private void translateAvatarSMDResetTimer (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDResetTimer asmdrt) throws CheckingError { @@ -1687,11 +1781,20 @@ public class AvatarDesignPanelTranslator { if (aa.getType() != AvatarType.TIMER) throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + tmp + " in timer reset: shall be a parameter of type \"Timer\""); - AvatarResetTimer aresettimer = new AvatarResetTimer("resettimer__" + aa.getName(), asmdrt); - aresettimer.setTimer (aa); - asm.addElement(aresettimer); - this.listE.addCor (aresettimer, asmdrt); - asmdrt.setAVATARID (aresettimer.getID()); + final AvatarStateMachineElement element; + final String name = "resettimer__" + aa.getName(); + + if ( asmdrt.isEnabled() ) { + element= new AvatarResetTimer( name, asmdrt ); + ( (AvatarResetTimer) element ).setTimer( aa ); + } + else { + element = new AvatarDummyState( name, asmdrt ); + } + + asm.addElement( element ); + listE.addCor( element, asmdrt ); + asmdrt.setAVATARID( element.getID() ); } private void translateAvatarSMDExpireTimer (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDExpireTimer asmdet) throws CheckingError { @@ -1704,14 +1807,178 @@ public class AvatarDesignPanelTranslator { if (aa.getType() != AvatarType.TIMER) throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + tmp + " in timer expiration: shall be a parameter of type \"Timer\""); - AvatarExpireTimer aexpiretimer = new AvatarExpireTimer("expiretimer__" + aa.getName(), asmdet); - aexpiretimer.setTimer(aa); - asm.addElement(aexpiretimer); - this.listE.addCor(aexpiretimer, asmdet); - asmdet.setAVATARID(aexpiretimer.getID()); + final AvatarStateMachineElement avatarElement; + final String name = "expiretimer__" + aa.getName(); + + if ( asmdet.isEnabled() ) { + avatarElement = new AvatarExpireTimer( name, asmdet ); + ( ( AvatarExpireTimer) avatarElement ).setTimer(aa); + } + else { + avatarElement = new AvatarDummyState( name, asmdet ); + } + + asm.addElement( avatarElement ); + this.listE.addCor( avatarElement, asmdet ); + asmdet.setAVATARID( avatarElement.getID() ); +// AvatarExpireTimer aexpiretimer = new AvatarExpireTimer("expiretimer__" + aa.getName(), asmdet); +// aexpiretimer.setTimer(aa); +// asm.addElement(aexpiretimer); +// this.listE.addCor(aexpiretimer, asmdet); +// asmdet.setAVATARID(aexpiretimer.getID()); } + + private void createGuard( final AvatarTransition transition, + final AvatarSMDConnector connector ) { + final AvatarStateMachineOwner block = transition.getBlock(); + final String guardStr = modifyString( connector.getEffectiveGuard() ); + final AvatarGuard guard = AvatarGuard.createFromString( block, guardStr ); + final int error; + + if ( guard.isElseGuard() ) { + error = 0; + } + else { + error = AvatarSyntaxChecker.isAValidGuard( block.getAvatarSpecification(), block, guardStr ); + } + + if ( error < 0 ) { + makeError( error, connector.tdp, block, connector, "transition guard", guardStr ); + } + else { + transition.setGuard( guard ); + } + } + + private void createAfterDelay( final AvatarTransition transition, + final AvatarSMDConnector connector ) { + final AvatarStateMachineOwner block = transition.getBlock(); + final AvatarSpecification spec = block.getAvatarSpecification(); + + String afterMinDelayStr = modifyString( connector.getEffectiveAfterMinDelay() ); + int error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, afterMinDelayStr ); + + if ( error < 0 ) { + makeError( error, connector.tdp, block, connector, "after min delay", afterMinDelayStr ); + afterMinDelayStr = null; + } + + String afterMaxDelayStr = modifyString( connector.getEffectiveAfterMaxDelay() ); + error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, afterMaxDelayStr ); + + if ( error < 0 ) { + makeError(error, connector.tdp, block, connector, "after max delay", afterMaxDelayStr ); + afterMaxDelayStr = null; + } + + if ( afterMinDelayStr != null && afterMaxDelayStr != null ) { + transition.setDelays( afterMinDelayStr, afterMaxDelayStr ); + } + } + + private void createComputeDelay( final AvatarTransition transition, + final AvatarSMDConnector connector ) { + final AvatarStateMachineOwner block = transition.getBlock(); + final AvatarSpecification spec = block.getAvatarSpecification(); + + String computeMinDelayStr = modifyString( connector.getEffectiveComputeMinDelay() ); + int error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, computeMinDelayStr ); + + if (error < 0) { + makeError( error, connector.tdp, block, connector, "compute min ", computeMinDelayStr ); + computeMinDelayStr = null; + } + + String computeMaxDelayStr = modifyString( connector.getEffectiveComputeMaxDelay() ); + error = AvatarSyntaxChecker.isAValidIntExpr( spec, block, computeMaxDelayStr ); + + if (error < 0) { + makeError( error, connector.tdp, block, connector, "compute max ", computeMaxDelayStr ); + computeMaxDelayStr = null; + } - public void makeStateMachine (AvatarSpecification _as, AvatarStateMachineOwner _ab) { + if ( computeMinDelayStr != null && computeMaxDelayStr != null) { + transition.setComputes( computeMinDelayStr, computeMaxDelayStr ); + } + } + + private void createProbability( final AvatarTransition transition, + final AvatarSMDConnector connector ) { + final AvatarStateMachineOwner block = transition.getBlock(); + final AvatarSpecification spec = block.getAvatarSpecification(); + final String probabilityStr = modifyString( connector.getEffectiveProbability() ); + final int error = AvatarSyntaxChecker.isAValidProbabilityExpr( spec, block, probabilityStr ); + + if ( error < 0 ) { + makeError( error, connector.tdp, block, connector, "probability ", probabilityStr ); + } + + if ( probabilityStr != null && !probabilityStr.isEmpty() ) { + transition.setProbability( Double.parseDouble( probabilityStr ) ); + } + } + + private void createActions( final AvatarTransition transition, + final AvatarSMDConnector connector ) { + final AvatarStateMachineOwner block = transition.getBlock(); + int error = 0; + + for( String actionText : connector.getEffectiveActions() ) { + if ( actionText.trim().length() > 0 ) { + actionText = modifyString( actionText.trim() ); + + // Variable assignment or method call? + if ( !isAVariableAssignation( actionText ) ) { + // Method call + int index2 = actionText.indexOf( ";" ); + + if ( index2 != -1 ) { + makeError( error, connector.tdp, block, connector, "transition action", actionText ); + } + + actionText = modifyStringMethodCall( actionText, block.getName() ); + + if ( !AvatarBlock.isAValidMethodCall( block, actionText ) ) { + UICheckingError ce = new UICheckingError( CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + actionText ); + // TODO: adapt + // ce.setAvatarBlock(_ab); + ce.setTDiagramPanel( connector.tdp ); + ce.setTGComponent( connector ); + addCheckingError(ce); + } + else { + transition.addAction( actionText ); + } + } + else { + // Variable assignment + error = AvatarSyntaxChecker.isAValidVariableExpr( block.getAvatarSpecification(), block, actionText); + + if ( error < 0 ) { + makeError( error, connector.tdp, block, connector, "transition action", actionText ); + } + else { + transition.addAction( actionText ); + } + } + } + } + } + + private void createTransitionInfo( final AvatarTransition transition, + final AvatarSMDConnector connector ) { + createGuard( transition,connector ); + + createAfterDelay( transition, connector); + + createComputeDelay( transition, connector ); + + createProbability( transition, connector ); + + createActions( transition, connector ); + } + + private void makeStateMachine (AvatarSpecification _as, AvatarStateMachineOwner _ab) { AvatarBDStateMachineOwner block = (AvatarBDStateMachineOwner) listE.getTG (_ab); AvatarStateMachine asm = _ab.getStateMachine (); @@ -1732,7 +1999,7 @@ public class AvatarDesignPanelTranslator { int size = checkingErrors.size(); - TDiagramPanel tdp = asmdp; + //TDiagramPanel tdp = asmdp; // search for start state AvatarSMDStartState tss = null; @@ -1742,7 +2009,7 @@ public class AvatarDesignPanelTranslator { tss = (AvatarSMDStartState) tgc; else { UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the state machine diagram of " + name); - ce.setTDiagramPanel(tdp); + ce.setTDiagramPanel( asmdp ); addCheckingError(ce); return; } @@ -1750,7 +2017,7 @@ public class AvatarDesignPanelTranslator { if (tss == null) { UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the state machine diagram of " + name); - ce.setTDiagramPanel(tdp); + ce.setTDiagramPanel( asmdp ); addCheckingError(ce); return; } @@ -1758,27 +2025,32 @@ public class AvatarDesignPanelTranslator { // This shall also be true for all composite state: at most one start state! if (checkForStartStateOfCompositeStates (asmdp) != null) { UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in composite state"); - ce.setTDiagramPanel(tdp); + ce.setTDiagramPanel( asmdp ); addCheckingError(ce); return; } int choiceID = 0; // First pass: creating AVATAR components, but no interconnection between them - for (TGComponent tgc: asmdp.getAllComponentList ()) + // Issue #69: + final FindAvatarSMDComponentsToBeTranslatedVisitor componentsToBeTranslatedVisitor = new FindAvatarSMDComponentsToBeTranslatedVisitor(); + tss.acceptForward( componentsToBeTranslatedVisitor ); + final Set<TGComponent> componentsToBeTranslated = componentsToBeTranslatedVisitor.getComponentsToBeTranslated(); + + for (TGComponent tgc: componentsToBeTranslated/*asmdp.getAllComponentList ()*/) try { // Receive signal if (tgc instanceof AvatarSMDReceiveSignal) - this.translateAvatarSMDReceiveSignal (tdp, _as, _ab, (AvatarSMDReceiveSignal) tgc); + this.translateAvatarSMDReceiveSignal ( asmdp, _as, _ab, (AvatarSMDReceiveSignal) tgc); // Send signals else if (tgc instanceof AvatarSMDSendSignal) - this.translateAvatarSMDSendSignal (tdp, _as, _ab, (AvatarSMDSendSignal) tgc); + this.translateAvatarSMDSendSignal ( asmdp, _as, _ab, (AvatarSMDSendSignal) tgc); // Library Function Call else if (tgc instanceof AvatarSMDLibraryFunctionCall) - this.translateAvatarSMDLibraryFunctionCall (tdp, _as, _ab, (AvatarSMDLibraryFunctionCall) tgc); + this.translateAvatarSMDLibraryFunctionCall ( asmdp, _as, _ab, (AvatarSMDLibraryFunctionCall) tgc); // State else if (tgc instanceof AvatarSMDState) - this.translateAvatarSMDState (tdp, _as, _ab, (AvatarSMDState) tgc); + this.translateAvatarSMDState ( asmdp, _as, _ab, (AvatarSMDState) tgc); // Choice else if (tgc instanceof AvatarSMDChoice) { AvatarState astate = new AvatarState ("choice__" + choiceID, tgc); @@ -1789,16 +2061,16 @@ public class AvatarDesignPanelTranslator { } // Random else if (tgc instanceof AvatarSMDRandom) - this.translateAvatarSMDRandom (tdp, _as, _ab, (AvatarSMDRandom) tgc); + this.translateAvatarSMDRandom ( asmdp, _as, _ab, (AvatarSMDRandom) tgc); // Set timer else if (tgc instanceof AvatarSMDSetTimer) - this.translateAvatarSMDSetTimer (tdp, _as, _ab, (AvatarSMDSetTimer) tgc); + this.translateAvatarSMDSetTimer ( asmdp, _as, _ab, (AvatarSMDSetTimer) tgc); // Reset timer else if (tgc instanceof AvatarSMDResetTimer) - this.translateAvatarSMDResetTimer (tdp, _as, _ab, (AvatarSMDResetTimer) tgc); + this.translateAvatarSMDResetTimer ( asmdp, _as, _ab, (AvatarSMDResetTimer) tgc); // Expire timer else if (tgc instanceof AvatarSMDExpireTimer) - this.translateAvatarSMDExpireTimer (tdp, _as, _ab, (AvatarSMDExpireTimer) tgc); + this.translateAvatarSMDExpireTimer ( asmdp, _as, _ab, (AvatarSMDExpireTimer) tgc); // Start state else if (tgc instanceof AvatarSMDStartState) { AvatarStartState astart = new AvatarStartState("start", tgc); @@ -1820,7 +2092,7 @@ public class AvatarDesignPanelTranslator { // TODO: adapt // ce.setAvatarBlock (_ab); UICheckingError uice = new UICheckingError(ce); - uice.setTDiagramPanel (tdp); + uice.setTDiagramPanel ( asmdp ); uice.setTGComponent (tgc); uice.addMessagePrefix ("State Machine of " + name + ": "); this.addCheckingError (uice); @@ -1833,152 +2105,184 @@ public class AvatarDesignPanelTranslator { asm.removeAllInternalStartStates(); // Make hierachy between states and elements - for (TGComponent tgc: asmdp.getAllComponentList ()) + for (TGComponent tgc: componentsToBeTranslated/*asmdp.getAllComponentList ()*/) { if (tgc != null && tgc.getFather() != null) { AvatarStateMachineElement element1 = (AvatarStateMachineElement)(listE.getObject(tgc)); AvatarStateMachineElement element2 = (AvatarStateMachineElement)(listE.getObject(tgc.getFather())); - if (element1 != null && element2 != null && element2 instanceof AvatarState) + + if (element1 != null && /*element2 != null && */element2 instanceof AvatarState) { element1.setState ((AvatarState) element2); + } } + } // Make next: handle transitions - for (TGComponent tgc: asmdp.getAllComponentList ()) - if (tgc instanceof AvatarSMDConnector) { - AvatarSMDConnector asmdco = (AvatarSMDConnector) tgc; - TGComponent tgc1 = tdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP1()); - TGComponent tgc2 = tdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP2()); - if (tgc1 == null || tgc2 == null) - TraceManager.addDev("Tgcs null in Avatar translation"); - else { - AvatarStateMachineElement element1 = (AvatarStateMachineElement)(listE.getObject(tgc1)); - AvatarStateMachineElement element2 = (AvatarStateMachineElement)(listE.getObject(tgc2)); - if (element1 != null && element2 != null) { - AvatarTransition at = new AvatarTransition (_ab, "avatar transition", tgc); - - // Guard - String tmp = modifyString (asmdco.getGuard()); - AvatarGuard guard = AvatarGuard.createFromString (_ab, tmp); - if (guard.isElseGuard()) - at.setGuard(guard); - else { - int error = AvatarSyntaxChecker.isAValidGuard (_as, _ab, tmp); - if (error < 0) - this.makeError (error, tdp, _ab, tgc, "transition guard", tmp); - else - at.setGuard (guard); - } - - // Delays - String tmp1 = modifyString (asmdco.getAfterMinDelay ()); - int error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1); - if (error < 0) { - this.makeError (error, tdp, _ab, tgc, "after min delay", tmp1); - tmp1 = null; - } - String tmp2 = modifyString (asmdco.getAfterMaxDelay ()); - error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp2); - if (error < 0) { - this.makeError(error, tdp, _ab, tgc, "after max delay", tmp2); - tmp2 = null; - } - - if (tmp1 != null && tmp2 != null) - at.setDelays(tmp1, tmp2); - - // Compute min and max - tmp1 = modifyString (asmdco.getComputeMinDelay ()); - error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1); - if (error < 0) { - this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1); - tmp1 = null; - } - tmp2 = modifyString(asmdco.getComputeMaxDelay()); - error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2); - if (error < 0) { - this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2); - tmp2 = null; - } - - if (tmp1 != null && tmp2 != null) - at.setComputes(tmp1, tmp2); - - // Probability - tmp1 = asmdco.getProbability (); - if ((tmp1 != null) && (tmp1.length()>0)) { - error = AvatarSyntaxChecker.isAValidProbabilityExpr(_as, _ab, tmp1); - if (error < 0) { - this.makeError(error, tdp, _ab, tgc, "probability ", tmp1); - tmp1 = null; - } - if (tmp1 != null) { - at.setProbability(new Double(tmp1).doubleValue()); - } - } - - // Actions - for(String s: asmdco.getActions()) - if (s.trim().length() > 0) { - s = modifyString(s.trim()); - - // Variable assignation or method call? - if (!isAVariableAssignation(s)) { - // Method call - int index2 = s.indexOf(";"); - if (index2 != -1) - this.makeError(error, tdp, _ab, tgc, "transition action", s); - - s = modifyStringMethodCall(s, _ab.getName()); - if (!AvatarBlock.isAValidMethodCall (_ab, s)) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + s); - // TODO: adapt - // ce.setAvatarBlock(_ab); - ce.setTDiagramPanel(tdp); - ce.setTGComponent(tgc); - addCheckingError(ce); - } else - at.addAction(s); - } else { - // Variable assignation - error = AvatarSyntaxChecker.isAValidVariableExpr (_as, _ab, s); - if (error < 0) - this.makeError (error, tdp, _ab, tgc, "transition action", s); - else - at.addAction (s); - } - } - - element1.addNext (at); - at.addNext (element2); - this.listE.addCor (at, tgc); - tgc.setAVATARID (at.getID()); - asm.addElement (at); - - // Check for after on composite transitions - if (at.hasDelay() && element1 instanceof AvatarState && asm.isACompositeTransition(at)) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "After clause cannot be used on composite transitions. Use timers instead."); - // TODO: adapt - // ce.setAvatarBlock(_ab); - ce.setTDiagramPanel(tdp); - ce.setTGComponent(tgc); - addCheckingError(ce); - } - } - } - } + final Set<TGConnector> prunedConectors = componentsToBeTranslatedVisitor.getPrunedConnectors(); + + for ( final TGConnector connector : asmdp.getConnectors() ) { + // for (TGComponent tgc: asmdp.getAllComponentList ()) { + // if (tgc instanceof AvatarSMDConnector) { + // AvatarSMDConnector asmdco = (AvatarSMDConnector) tgc; + // Issue #69 + if ( !prunedConectors.contains( connector ) ) { + FindNextEnabledAvatarSMDConnectingPointVisitor visitor = new FindNextEnabledAvatarSMDConnectingPointVisitor( prunedConectors, componentsToBeTranslated ); + connector.getTGConnectingPointP1().acceptBackward( visitor ); + final TGConnectingPoint conPoint1 = visitor.getEnabledComponentPoint(); + + if ( conPoint1 != null ) { + visitor = new FindNextEnabledAvatarSMDConnectingPointVisitor( prunedConectors, componentsToBeTranslated ); + connector.getTGConnectingPointP2().acceptForward( visitor ); + final TGConnectingPoint conPoint2 = visitor.getEnabledComponentPoint(); + + if ( conPoint2 != null ) { + final TGComponent tgc1 = (TGComponent) conPoint1.getFather();//tdp.getComponentToWhichBelongs( connector.getTGConnectingPointP1() ); + final TGComponent tgc2 = (TGComponent) conPoint2.getFather();//tdp.getComponentToWhichBelongs( connector.getTGConnectingPointP2() ); + // TGComponent tgc1 = asmdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP1()); + // TGComponent tgc2 = asmdp.getComponentToWhichBelongs (asmdco.getTGConnectingPointP2()); + if (tgc1 == null || tgc2 == null) { + TraceManager.addDev("Tgcs null in Avatar translation"); + } + else { + final AvatarStateMachineElement element1 = (AvatarStateMachineElement)(listE.getObject(tgc1)); + final AvatarStateMachineElement element2 = (AvatarStateMachineElement)(listE.getObject(tgc2)); + + if ( element1 != null && element2 != null ) { + final AvatarSMDConnector avatarSmdConnector = (AvatarSMDConnector) connector; + + if ( asm.findEmptyTransition( element1, element2 ) == null ) { + final AvatarTransition at = new AvatarTransition( _ab, "avatar transition", connector ); + createTransitionInfo( at, avatarSmdConnector ); + // AvatarTransition at = new AvatarTransition (_ab, "avatar transition", tgc); + // + // // Guard + // String tmp = modifyString (asmdco.getGuard()); + // AvatarGuard guard = AvatarGuard.createFromString (_ab, tmp); + // if (guard.isElseGuard()) + // at.setGuard(guard); + // else { + // int error = AvatarSyntaxChecker.isAValidGuard (_as, _ab, tmp); + // if (error < 0) + // this.makeError (error, tdp, _ab, tgc, "transition guard", tmp); + // else + // at.setGuard (guard); + // } + // + // // Delays + // String tmp1 = modifyString (asmdco.getAfterMinDelay ()); + // int error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1); + // if (error < 0) { + // this.makeError (error, tdp, _ab, tgc, "after min delay", tmp1); + // tmp1 = null; + // } + // String tmp2 = modifyString (asmdco.getAfterMaxDelay ()); + // error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp2); + // if (error < 0) { + // this.makeError(error, tdp, _ab, tgc, "after max delay", tmp2); + // tmp2 = null; + // } + // + // if (tmp1 != null && tmp2 != null) + // at.setDelays(tmp1, tmp2); + + // Compute min and max + // tmp1 = modifyString (asmdco.getComputeMinDelay ()); + // error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1); + // if (error < 0) { + // this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1); + // tmp1 = null; + // } + // tmp2 = modifyString(asmdco.getComputeMaxDelay()); + // error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2); + // if (error < 0) { + // this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2); + // tmp2 = null; + // } + // + // if (tmp1 != null && tmp2 != null) + // at.setComputes(tmp1, tmp2); + + // Probability + // tmp1 = asmdco.getProbability (); + // if ((tmp1 != null) && (tmp1.length()>0)) { + // error = AvatarSyntaxChecker.isAValidProbabilityExpr(_as, _ab, tmp1); + // if (error < 0) { + // this.makeError(error, tdp, _ab, tgc, "probability ", tmp1); + // tmp1 = null; + // } + // if (tmp1 != null) { + // at.setProbability(new Double(tmp1).doubleValue()); + // } + // } + // + // // Actions + // for(String s: asmdco.getActions()) + // if (s.trim().length() > 0) { + // s = modifyString(s.trim()); + // + // // Variable assignation or method call? + // if (!isAVariableAssignation(s)) { + // // Method call + // int index2 = s.indexOf(";"); + // if (index2 != -1) + // this.makeError(error, tdp, _ab, tgc, "transition action", s); + // + // s = modifyStringMethodCall(s, _ab.getName()); + // if (!AvatarBlock.isAValidMethodCall (_ab, s)) { + // UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + s); + // // TODO: adapt + // // ce.setAvatarBlock(_ab); + // ce.setTDiagramPanel(tdp); + // ce.setTGComponent(tgc); + // addCheckingError(ce); + // } else + // at.addAction(s); + // } else { + // // Variable assignation + // error = AvatarSyntaxChecker.isAValidVariableExpr (_as, _ab, s); + // if (error < 0) + // this.makeError (error, tdp, _ab, tgc, "transition action", s); + // else + // at.addAction (s); + // } + // } + + element1.addNext( at ); + at.addNext( element2 ); + listE.addCor( at, connector ); + connector.setAVATARID( at.getID() ); + asm.addElement( at ); + + // Check for after on composite transitions + if (at.hasDelay() && element1 instanceof AvatarState && asm.isACompositeTransition(at)) { + UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "After clause cannot be used on composite transitions. Use timers instead."); + // TODO: adapt + // ce.setAvatarBlock(_ab); + ce.setTDiagramPanel( asmdp ); + ce.setTGComponent( connector ); + addCheckingError( ce ); + } + } + } + } + } + } + } + } asm.handleUnfollowedStartState(_ab); // Investigate all states -> put warnings for all empty transitions from a state to the same one (infinite loop) // int nb; - for (AvatarStateMachineElement asmee: asm.getListOfElements()) + for (AvatarStateMachineElement asmee: asm.getListOfElements()) { if (asmee instanceof AvatarState && ((AvatarState)asmee).hasEmptyTransitionsOnItself(asm) > 0) { UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "State(s) " + asmee.getName() + " has empty transitions on itself"); // TODO: adapt // ce.setAvatarBlock(_ab); - ce.setTDiagramPanel(tdp); + ce.setTDiagramPanel( asmdp ); ce.setTGComponent((TGComponent)(asmee.getReferenceObject())); addWarning(ce); } + } } private void makeError(int _error, TDiagramPanel _tdp, AvatarStateMachineOwner _ab, TGComponent _tgc, String _info, String _element) { @@ -2018,15 +2322,14 @@ public class AvatarDesignPanelTranslator { return null; } - - public void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { + private void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) { adp.getAvatarBDPanel().updateAllSignalsOnConnectors(); Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator(); TGComponent tgc; AvatarBDPortConnector port; AvatarBDBlock block1, block2; - LinkedList<String> l1, l2; + List<String> l1, l2; int i; String name1, name2; AvatarRelation r; @@ -2058,23 +2361,23 @@ public class AvatarDesignPanelTranslator { //TraceManager.addDev("Searching signal with name " + name1 + " in block " + b1.getName()); atas1 = b1.getAvatarSignalWithName(name1); atas2 = b2.getAvatarSignalWithName(name2); - if ((atas1 != null) && (atas2 != null)) { - if(atas1.isCompatibleWith(atas2)) { - //TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are compatible"); - r.addSignals(atas1, atas2); - } else { - //TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are NOT compatible"); - UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Wrong signal association betwen " + atas1 + " and " + atas2); - // TODO: adapt - // ce.setAvatarBlock(_ab); - ce.setTDiagramPanel(tgc.getTDiagramPanel()); - ce.setTGComponent(tgc); - addCheckingError(ce); - } - } else { - TraceManager.addDev("Null signals in AVATAR relation: " + name1 + " " + name2); - } - + + if ((atas1 != null) && (atas2 != null)) { + if(atas1.isCompatibleWith(atas2)) { + //TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are compatible"); + r.addSignals(atas1, atas2); + } else { + //TraceManager.addDev("Signals " + atas1 + " and " + atas2 + " are NOT compatible"); + UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Wrong signal association betwen " + atas1 + " and " + atas2); + // TODO: adapt + // ce.setAvatarBlock(_ab); + ce.setTDiagramPanel(tgc.getTDiagramPanel()); + ce.setTGComponent(tgc); + addCheckingError(ce); + } + } else { + TraceManager.addDev("Null signals in AVATAR relation: " + name1 + " " + name2); + } } // Attribute of the relation @@ -2094,16 +2397,16 @@ public class AvatarDesignPanelTranslator { } private void addCheckingError(CheckingError ce) { - if (checkingErrors == null) { - checkingErrors = new LinkedList<CheckingError> (); - } +// if (checkingErrors == null) { +// checkingErrors = new LinkedList<CheckingError> (); +// } checkingErrors.add (ce); } private void addWarning(CheckingError ce) { - if (warnings == null) { - warnings = new LinkedList<CheckingError> (); - } +// if (warnings == null) { +// warnings = new LinkedList<CheckingError> (); +// } warnings.add (ce); } @@ -2190,7 +2493,7 @@ public class AvatarDesignPanelTranslator { return s; } - public boolean isAVariableAssignation (String _input) { + private boolean isAVariableAssignation (String _input) { int index = _input.indexOf('='); if (index == -1) { return false; @@ -2216,11 +2519,8 @@ public class AvatarDesignPanelTranslator { return !(TAttribute.isAValidId(tmp, false, false)); } - - public void checkForAfterOnCompositeTransition() { - - } - - - +// +// public void checkForAfterOnCompositeTransition() { +// +// } } diff --git a/src/main/java/ui/CDElement.java b/src/main/java/ui/CDElement.java index 3458d8766a22a52c778f04c4e06f6fe06b835cfc..d87b8033e0a203ce347271d39e454bf9fd48a259 100755 --- a/src/main/java/ui/CDElement.java +++ b/src/main/java/ui/CDElement.java @@ -35,14 +35,9 @@ * 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; - /** * Interface CDElement * Creation : 22/12/2003 @@ -55,4 +50,21 @@ public interface CDElement { int getWidth(); int getHeight(); String getName(); + + // Issue #69 + void acceptForward( ICDElementVisitor visitor ); + + void acceptBackward( ICDElementVisitor visitor ); + + boolean canBeDisabled(); + + void setEnabled( boolean _enabled ); + + void doSetEnabled( boolean _enabled ); + + boolean isEnabled(); + + boolean isEnabled( boolean checkBranch ); + + boolean canLabelBeDisabled( TGCOneLineText label ); } diff --git a/src/main/java/ui/ColorManager.java b/src/main/java/ui/ColorManager.java index a454f3a88d285700308620b3a398088dd8810e39..e4a49c55fa04d4265c5ecb3b32b6733c6ef4138c 100755 --- a/src/main/java/ui/ColorManager.java +++ b/src/main/java/ui/ColorManager.java @@ -36,16 +36,12 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import myutil.GraphicLib; import java.awt.*; - /** * Class IconManager * Creation: 15/12/2003 @@ -56,6 +52,11 @@ public class ColorManager { public static final Color DEFAULT = Color.black; public static final Color NORMAL_0 = Color.black; + + // Issue #69: Disabling components in diagram + public static Color DISABLED = new Color(214, 206, 198); + public static Color DISABLED_FILLING = Color.WHITE; + public static final Color POINTER_ON_ME_0 = Color.red; public static final Color ACCESSIBILITY = Color.red; public static final Color ACCESSIBILITY_UNKNOWN = Color.DARK_GRAY; @@ -149,14 +150,20 @@ public class ColorManager { //public static Color ATD_BLOCK = new Color(196, 232, 195); public static Color ATD_BLOCK = new Color(218, 218, 218); public static Color ATD_ATTACK = new Color(214, 187, 158); - public static Color ATD_ATTACK_DISABLED = new Color(214, 206, 198); + + // Issue # 69: Using default disabled color + //public static Color ATD_ATTACK_DISABLED = new Color(214, 206, 198); + public static Color ATD_ROOT_ATTACK = new Color(243, 131, 10); public static Color ATD_CONSTRAINT = new Color(191, 153, 161); public static Color ATD_COUNTERMEASURE = new Color(209, 218, 174); public static Color FTD_BLOCK = new Color(218, 218, 218); public static Color FTD_FAULT = new Color(214, 187, 158); - public static Color FTD_FAULT_DISABLED = new Color(214, 206, 198); + + // Issue # 69: Using default disabled color + // public static Color FTD_FAULT_DISABLED = new Color(214, 206, 198); + public static Color FTD_ROOT_FAULT = new Color(243, 131, 10); public static Color FTD_CONSTRAINT = new Color(191, 153, 161); public static Color FTD_COUNTERMEASURE = new Color(209, 218, 174); @@ -222,37 +229,52 @@ public class ColorManager { public static final Color InteractiveSimulationText_TERM = new Color(241, 6, 6); public static final Color InteractiveSimulationText_UNKNOWN = new Color(6, 6, 241); - public final static void setColor(Graphics g, int state, int type) { + // Issue #69: Managing color for disabled diagram components + public final static void setColor( Graphics g, + int state, + int type ) { + setColor( g, state, type, true ); + } + + public final static void setColor( Graphics g, + int state, + int type, + boolean enabled ) { if (type == 0) { - switch(state) { - case 0: - g.setColor(NORMAL_0); - break; - case 1: - g.setColor(POINTER_ON_ME_0); - GraphicLib.setMediumStroke(g); - break; - case 2: - g.setColor(SELECTED_0); - break; - case 3: - g.setColor(MOVING_0); - break; - case 4: - g.setColor(ADDING_0); - break; - case 5: - g.setColor(POINTED_0); - break; - case 6: - g.setColor(RESIZE_POINTED); - break; - case 7: - g.setColor(RESIZE_POINTED); - break; - default: - g.setColor(DEFAULT); - } + if ( !enabled ) { + g.setColor( DISABLED ); + } + else { + switch(state) { + case 0: + g.setColor(NORMAL_0); + break; + case 1: + g.setColor(POINTER_ON_ME_0); + GraphicLib.setMediumStroke(g); + break; + case 2: + g.setColor(SELECTED_0); + break; + case 3: + g.setColor(MOVING_0); + break; + case 4: + g.setColor(ADDING_0); + break; + case 5: + g.setColor(POINTED_0); + break; + case 6: + g.setColor(RESIZE_POINTED); + break; + case 7: + g.setColor(RESIZE_POINTED); + break; + default: + g.setColor(DEFAULT); + } + } } } @@ -298,10 +320,8 @@ public class ColorManager { AVATAR_RECEIVE_SIGNAL = Color.white; AVATAR_ASSUMPTION_ATTRIBUTES = Color.white; AVATAR_ASSUMPTION_TOP = Color.white; - SYSMLSEC_PARTITIONING = Color.white; - SYSMLSEC_SWDESIGN = Color.white; - SYSMLSEC_REQ = Color.white; - + SYSMLSEC_PARTITIONING = Color.white; + SYSMLSEC_SWDESIGN = Color.white; + SYSMLSEC_REQ = Color.white; } - } // Class Color diff --git a/src/main/java/ui/DesignPanelTranslator.java b/src/main/java/ui/DesignPanelTranslator.java index 82c6fef4c4de012a47df3b7e3043e1c3e8b5b527..ec674a54c8217801c8b6d1e02715a62b176d6698 100755 --- a/src/main/java/ui/DesignPanelTranslator.java +++ b/src/main/java/ui/DesignPanelTranslator.java @@ -60,11 +60,11 @@ import java.util.Vector; */ public class DesignPanelTranslator { protected TURTLEDesignPanelInterface dp; - protected LinkedList<CheckingError> checkingErrors, warnings; + protected List<CheckingError> checkingErrors, warnings; protected CorrespondanceTGElement listE; // usual list protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks - protected LinkedList <TDiagramPanel> panels; - protected LinkedList <ActivityDiagram> activities; + protected List <TDiagramPanel> panels; + protected List <ActivityDiagram> activities; public DesignPanelTranslator(TURTLEDesignPanelInterface _dp) { dp = _dp; @@ -80,11 +80,11 @@ public class DesignPanelTranslator { activities = new LinkedList <ActivityDiagram>(); } - public LinkedList<CheckingError> getErrors() { + public List<CheckingError> getErrors() { return checkingErrors; } - public LinkedList<CheckingError> getWarnings() { + public List<CheckingError> getWarnings() { return warnings; } @@ -93,7 +93,7 @@ public class DesignPanelTranslator { } public TURTLEModeling generateTURTLEModeling() { - LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>(); + List<TClassInterface> tclasses = new LinkedList<TClassInterface>(); for (Object tgc: dp.getStructurePanel ().getComponentList ()) if (tgc instanceof TClassInterface) @@ -102,7 +102,7 @@ public class DesignPanelTranslator { return generateTURTLEModeling(tclasses, ""); } - public TURTLEModeling generateTURTLEModeling(LinkedList<TClassInterface> tclasses, String preName) { + public TURTLEModeling generateTURTLEModeling(List<TClassInterface> tclasses, String preName) { TURTLEModeling tmodel = new TURTLEModeling(); addTClasses(dp, tclasses, preName, tmodel); addRelations(dp, tmodel); @@ -124,7 +124,7 @@ public class DesignPanelTranslator { } - public void addTClasses(TURTLEDesignPanelInterface dp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) { + public void addTClasses(TURTLEDesignPanelInterface dp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) { TDiagramPanel tdp; // search for class diagram panels tdp = dp.panelAt(0); @@ -135,8 +135,8 @@ public class DesignPanelTranslator { addTClassesFromPanel(tdp, (ClassDiagramPanelInterface)tdp, tclasses, preName, tm); } - private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) { - // LinkedList list = tdp.getComponentList(); + private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) { + // List list = tdp.getComponentList(); // search for tclasses for (Object tgc: tdp.getComponentList ()) @@ -1156,7 +1156,7 @@ public class DesignPanelTranslator { return -1; } - private void setGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) { + private void setGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) { Gate g1, g2; for (TTwoAttributes tt: gates) { @@ -1174,7 +1174,7 @@ public class DesignPanelTranslator { * Seems like we can't instantiate TCDWatchdogOperator * and the setWatchdogGatesOf function is buggy: it uses * TTwoAttributes as if they were TAttribute. - private void setWatchdogGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) { + private void setWatchdogGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) { for (TTwoAttributes t: gates) { Gate g1 = tc1.getGateByName(((TAttribute) t).getId()); diff --git a/src/main/java/ui/ELNDesignPanel.java b/src/main/java/ui/ELNDesignPanel.java index 3296df2d18a159a6808bc2ff8bbab3b587ad128b..a0534af0d944571917311f429559ec466e372adf 100644 --- a/src/main/java/ui/ELNDesignPanel.java +++ b/src/main/java/ui/ELNDesignPanel.java @@ -43,7 +43,6 @@ import myutil.GraphicLib; import ui.eln.ELNDiagramPanel; import ui.eln.ELNDiagramToolBar; import ui.util.IconManager; - import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -87,31 +86,7 @@ public class ELNDesignPanel extends TURTLEPanel { } public void init() { - - // Toolbar - ELNDiagramToolBar toolBarELN = new ELNDiagramToolBar(mgui); - toolbars.add(toolBarELN); - - toolBarPanel = new JPanel(); - toolBarPanel.setLayout(new BorderLayout()); - - // Diagram - elndp = new ELNDiagramPanel(mgui, toolBarELN); - elndp.setName("ELN Diagram"); - elndp.tp = this; - tdp = elndp; - panels.add(elndp); // Always first in list - JScrollDiagramPanel jsp = new JScrollDiagramPanel(elndp); - elndp.jsp = jsp; - jsp.setWheelScrollingEnabled(true); - jsp.getVerticalScrollBar().setUnitIncrement(MainGUI.INCREMENT); - toolBarPanel.add(toolBarELN, BorderLayout.NORTH); - toolBarPanel.add(jsp, BorderLayout.CENTER); - tabbedPane.addTab("ELN Diagram", IconManager.imgic1208, toolBarPanel, - "Opens ELN diagram"); - tabbedPane.setSelectedIndex(0); - - mgui.changeMade(elndp, TDiagramPanel.NEW_COMPONENT); + mgui.changeMade(null, TDiagramPanel.NEW_COMPONENT); } public String saveHeaderInXml(String extensionToName) { @@ -128,6 +103,51 @@ public class ELNDesignPanel extends TURTLEPanel { public String toString() { return mgui.getTitleAt(this) + "(ELN Application diagram)"; } + + public boolean canFirstDiagramBeMoved() { + return true; + } + + public boolean removeEnabled(int index) { + return panels.size() > 1; + } + + public boolean renameEnabled(int index) { + if (panels.size() == 0) { + return false; + } + return (panels.elementAt(index) instanceof ELNDiagramPanel); + } + + public boolean isELNEnabled() { + return true; + } + + public boolean addELN(String s) { + ELNDiagramToolBar elntb = new ELNDiagramToolBar(mgui); + toolbars.add(elntb); + + toolBarPanel = new JPanel(); + toolBarPanel.setLayout(new BorderLayout()); + + elndp = new ELNDiagramPanel(mgui, elntb); + elndp.setName(s); + elndp.tp = this; + tdp = elndp; + panels.add(elndp); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(elndp); + elndp.jsp = jsp; + jsp.setWheelScrollingEnabled(true); + jsp.getVerticalScrollBar().setUnitIncrement(MainGUI.INCREMENT); + toolBarPanel.add(elntb, BorderLayout.NORTH); + toolBarPanel.add(jsp, BorderLayout.CENTER); + tabbedPane.addTab(s, IconManager.imgic1208, toolBarPanel, "Opens ELN component diagram"); + tabbedPane.setSelectedIndex(0); + JPanel toolBarPanel = new JPanel(); + toolBarPanel.setLayout(new BorderLayout()); + + return true; + } // public SysCAMSBlockTDF getBlockTDFComponentByName(String _name) { // return elndp.getBlockTDFComponentByName(_name); diff --git a/src/main/java/ui/ELNPanelTranslator.java b/src/main/java/ui/ELNPanelTranslator.java index 451f67658ab263b6bf75bfdf88c0104437042d1b..b6bd1ff9f9f5e37effc4cdd040303cb09f379b44 100644 --- a/src/main/java/ui/ELNPanelTranslator.java +++ b/src/main/java/ui/ELNPanelTranslator.java @@ -40,6 +40,7 @@ package ui; import ui.eln.*; import ui.eln.sca_eln.*; +import ui.eln.sca_eln_sca_de.*; import ui.eln.sca_eln_sca_tdf.*; import java.util.*; import elntranslator.*; @@ -73,6 +74,7 @@ public class ELNPanelTranslator { TGComponent tgc; Iterator<TGComponent> iterator1 = tgcComponents.listIterator(); Iterator<TGComponent> iterator2 = tgcComponents.listIterator(); + Iterator<TGComponent> iterator3 = tgcComponents.listIterator(); List<TGComponent> list = new ArrayList<TGComponent>(); while (iterator1.hasNext()) { @@ -85,256 +87,570 @@ public class ELNPanelTranslator { while (iterator2.hasNext()) { tgc = iterator2.next(); if (tgc instanceof TGConnector) { - list.add(tgc); + if (!(((TGConnector) tgc).getTGConnectingPointP1().getFather() instanceof ELNMidPortTerminal || ((TGConnector) tgc).getTGConnectingPointP2().getFather() instanceof ELNMidPortTerminal)) { + list.add(tgc); + } } } + while (iterator3.hasNext()) { + tgc = iterator3.next(); + if (tgc instanceof TGConnector) { + if (((TGConnector) tgc).getTGConnectingPointP1().getFather() instanceof ELNMidPortTerminal || ((TGConnector) tgc).getTGConnectingPointP2().getFather() instanceof ELNMidPortTerminal) { + list.add(tgc); + } + } + } + for (TGComponent dp : list) { - if (dp instanceof ELNModule) { - ELNModule module = (ELNModule) dp; - - String moduleName = module.getValue(); + if (dp instanceof ELNCluster) { + ELNCluster cluster = (ELNCluster) dp; - ELNTModule elnModule = new ELNTModule(moduleName); - - List<ELNComponentCapacitor> capacitors = module.getAllComponentCapacitor(); - for (int i = 0; i < capacitors.size(); i++) { - ELNComponentCapacitor capacitor = capacitors.get(i); - - String name = capacitor.getValue(); - double val = capacitor.getVal(); - double q0 = capacitor.getQ0(); - String unit0 = capacitor.getUnit0(); - String unit1 = capacitor.getUnit1(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) capacitor.connectingPoint; - - ELNTComponentCapacitor elnCapacitor = new ELNTComponentCapacitor(name, val, q0, unit0, unit1, cp, elnModule); - - elnMap.put(capacitor, elnCapacitor); - elnModule.addCapacitor(elnCapacitor); - elnComponents.add(elnCapacitor); - } - List<ELNComponentCurrentSinkTDF> TDF_isinks = module.getAllComponentCurrentSinkTDF(); - for (int i = 0; i < TDF_isinks.size(); i++) { - ELNComponentCurrentSinkTDF TDF_isink = TDF_isinks.get(i); - - String name = TDF_isink.getValue(); - double scale = TDF_isink.getScale(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_isink.connectingPoint; - - ELNTComponentCurrentSinkTDF elnTDF_isink = new ELNTComponentCurrentSinkTDF(name, scale, cp, elnModule); - - elnMap.put(TDF_isink, elnTDF_isink); - elnModule.addTDF_isink(elnTDF_isink); - elnComponents.add(elnTDF_isink); - } - List<ELNComponentCurrentSourceTDF> TDF_isources = module.getAllComponentCurrentSourceTDF(); - for (int i = 0; i < TDF_isources.size(); i++) { - ELNComponentCurrentSourceTDF TDF_isource = TDF_isources.get(i); - - String name = TDF_isource.getValue(); - double scale = TDF_isource.getScale(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_isource.connectingPoint; - - ELNTComponentCurrentSourceTDF elnTDF_isource = new ELNTComponentCurrentSourceTDF(name, scale, cp, elnModule); - - elnMap.put(TDF_isource, elnTDF_isource); - elnModule.addTDF_isource(elnTDF_isource); - elnComponents.add(elnTDF_isource); - } - List<ELNComponentIdealTransformer> idealTransformers = module.getAllComponentIdealTransformer(); - for (int i = 0; i < idealTransformers.size(); i++) { - ELNComponentIdealTransformer idealTransformer = idealTransformers.get(i); + String clusterName = cluster.getValue(); + + ELNTCluster elnCluster = new ELNTCluster(clusterName); + + List<ELNClusterTerminal> clusterTerminals = cluster.getAllClusterTerminal(); + for (int i = 0; i < clusterTerminals.size(); i++) { + ELNClusterTerminal clusterTerminal = clusterTerminals.get(i); - String name = idealTransformer.getValue(); - double ratio = idealTransformer.getRatio(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) idealTransformer.connectingPoint; + String termName = clusterTerminal.getValue(); - ELNTComponentIdealTransformer elnIdealTransformer = new ELNTComponentIdealTransformer(name, ratio, cp, elnModule); + ELNTClusterTerminal elnClusterTerminal = new ELNTClusterTerminal(termName, elnCluster); - elnMap.put(idealTransformer, elnIdealTransformer); - elnModule.addIdealTransformer(elnIdealTransformer); - elnComponents.add(elnIdealTransformer); - } - List<ELNComponentIndependentCurrentSource> isources = module.getAllComponentIndependentCurrentSource(); - for (int i = 0; i < isources.size(); i++) { - ELNComponentIndependentCurrentSource isource = isources.get(i); - - String name = isource.getValue(); - double initValue = isource.getInitValue(); - double offset = isource.getOffset(); - double amplitude = isource.getAmplitude(); - double frequency = isource.getFrequency(); - double phase = isource.getPhase(); - double acAmplitude = isource.getAcAmplitude(); - double acPhase = isource.getAcPhase(); - double acNoiseAmpliture = isource.getAcNoiseAmplitude(); - String delay = isource.getDelay(); - String unit0 = isource.getUnit0(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) isource.connectingPoint; - - ELNTComponentIndependentCurrentSource elnISource = new ELNTComponentIndependentCurrentSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, cp, elnModule); - - elnMap.put(isource, elnISource); - elnModule.addIsource(elnISource); - elnComponents.add(elnISource); - } - List<ELNComponentIndependentVoltageSource> vsources = module.getAllComponentIndependentVoltageSource(); - for (int i = 0; i < vsources.size(); i++) { - ELNComponentIndependentVoltageSource vsource = vsources.get(i); - - String name = vsource.getValue(); - double initValue = vsource.getInitValue(); - double offset = vsource.getOffset(); - double amplitude = vsource.getAmplitude(); - double frequency = vsource.getFrequency(); - double phase = vsource.getPhase(); - double acAmplitude = vsource.getAcAmplitude(); - double acPhase = vsource.getAcPhase(); - double acNoiseAmpliture = vsource.getAcNoiseAmplitude(); - String delay = vsource.getDelay(); - String unit0 = vsource.getUnit0(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) vsource.connectingPoint; - - ELNTComponentIndependentVoltageSource elnVSource = new ELNTComponentIndependentVoltageSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, cp, elnModule); - - elnMap.put(vsource, elnVSource); - elnModule.addVsource(elnVSource); - elnComponents.add(elnVSource); - } - List<ELNComponentInductor> inductors = module.getAllComponentInductor(); - for (int i = 0; i < inductors.size(); i++) { - ELNComponentInductor inductor = inductors.get(i); - - String name = inductor.getValue(); - double val = inductor.getVal(); - double phi0 = inductor.getPhi0(); - String unit0 = inductor.getUnit0(); - String unit1 = inductor.getUnit1(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) inductor.connectingPoint; - - ELNTComponentInductor elnInductor = new ELNTComponentInductor(name, val, phi0, unit0, unit1, cp, elnModule); - - elnMap.put(inductor, elnInductor); - elnModule.addInductor(elnInductor); - elnComponents.add(elnInductor); + elnMap.put(clusterTerminal, elnClusterTerminal); + elnCluster.addClusterTerminal(elnClusterTerminal); + elnComponents.add(elnClusterTerminal); } - List<ELNComponentNodeRef> nodeRefs = module.getAllComponentNodeRef(); - for (int i = 0; i < nodeRefs.size(); i++) { - ELNComponentNodeRef nodeRef = nodeRefs.get(i); + List<ELNClusterPortDE> clusterPortsDE = cluster.getAllClusterPortDE(); + for (int i = 0; i < clusterPortsDE.size(); i++) { + ELNClusterPortDE clusterPortDE = clusterPortsDE.get(i); - String name = nodeRef.getValue(); - - ELNTComponentNodeRef elnNodeRef = new ELNTComponentNodeRef(name, elnModule); - - elnMap.put(nodeRef, elnNodeRef); - elnModule.addNodeRef(elnNodeRef); - elnComponents.add(elnNodeRef); - } - List<ELNComponentResistor> resistors = module.getAllComponentResistor(); - for (int i = 0; i < resistors.size(); i++) { - ELNComponentResistor resistor = resistors.get(i); + String portName = clusterPortDE.getValue(); + String type = clusterPortDE.getPortType(); + String origin = clusterPortDE.getOrigin(); - String name = resistor.getValue(); - double val = resistor.getVal(); - String unit = resistor.getUnit(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) resistor.connectingPoint; + ELNTClusterPortDE elnClusterPortDE = new ELNTClusterPortDE(portName, type, origin, elnCluster); - ELNTComponentResistor elnResistor = new ELNTComponentResistor(name, val, unit, cp, elnModule); - - elnMap.put(resistor, elnResistor); - elnModule.addResistor(elnResistor); - elnComponents.add(elnResistor); - } - List<ELNComponentTransmissionLine> transmissionLines = module.getAllComponentTransmissionLine(); - for (int i = 0; i < transmissionLines.size(); i++) { - ELNComponentTransmissionLine transmissionLine = transmissionLines.get(i); - - String name = transmissionLine.getValue(); - double z0 = transmissionLine.getZ0(); - double delta0 = transmissionLine.getDelta0(); - String delay = transmissionLine.getDelay(); - String unit0 = transmissionLine.getUnit0(); - String unit2 = transmissionLine.getUnit2(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) transmissionLine.connectingPoint; - - ELNTComponentTransmissionLine elnTransmissionLine = new ELNTComponentTransmissionLine(name, z0, delta0, delay, unit0, unit2, cp, elnModule); - - elnMap.put(transmissionLine, elnTransmissionLine); - elnModule.addTransmissionLine(elnTransmissionLine); - elnComponents.add(elnTransmissionLine); + elnMap.put(clusterPortDE, elnClusterPortDE); + elnCluster.addClusterPortDE(elnClusterPortDE); + elnComponents.add(elnClusterPortDE); } - List<ELNComponentVoltageControlledCurrentSource> vccss = module.getAllComponentVoltageControlledCurrentSource(); - for (int i = 0; i < vccss.size(); i++) { - ELNComponentVoltageControlledCurrentSource vccs = vccss.get(i); + List<ELNClusterPortTDF> clusterPortsTDF = cluster.getAllClusterPortTDF(); + for (int i = 0; i < clusterPortsTDF.size(); i++) { + ELNClusterPortTDF clusterPortTDF = clusterPortsTDF.get(i); - String name = vccs.getValue(); - double val = vccs.getVal(); - String unit = vccs.getUnit(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) vccs.connectingPoint; + String portName = clusterPortTDF.getValue(); + String type = clusterPortTDF.getPortType(); + String origin = clusterPortTDF.getOrigin(); - ELNTComponentVoltageControlledCurrentSource elnVCCS = new ELNTComponentVoltageControlledCurrentSource(name, val, unit, cp, elnModule); + ELNTClusterPortTDF elnClusterPortTDF = new ELNTClusterPortTDF(portName, type, origin, elnCluster); - elnMap.put(vccs, elnVCCS); - elnModule.addVccs(elnVCCS); - elnComponents.add(elnVCCS); - } - List<ELNComponentVoltageControlledVoltageSource> vcvss = module.getAllComponentVoltageControlledVoltageSource(); - for (int i = 0; i < vcvss.size(); i++) { - ELNComponentVoltageControlledVoltageSource vcvs = vcvss.get(i); - - String name = vcvs.getValue(); - double val = vcvs.getVal(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) vcvs.connectingPoint; - - ELNTComponentVoltageControlledVoltageSource elnVCVS = new ELNTComponentVoltageControlledVoltageSource(name, val, cp, elnModule); - - elnMap.put(vcvs, elnVCVS); - elnModule.addVcvs(elnVCVS); - elnComponents.add(elnVCVS); + elnMap.put(clusterPortTDF, elnClusterPortTDF); + elnCluster.addClusterPortTDF(elnClusterPortTDF); + elnComponents.add(elnClusterPortTDF); } - List<ELNComponentVoltageSinkTDF> TDF_vsinks = module.getAllComponentVoltageSinkTDF(); - for (int i = 0; i < TDF_vsinks.size(); i++) { - ELNComponentVoltageSinkTDF TDF_vsink = TDF_vsinks.get(i); - - String name = TDF_vsink.getValue(); - double scale = TDF_vsink.getScale(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_vsink.connectingPoint; - - ELNTComponentVoltageSinkTDF elnTDF_vsink = new ELNTComponentVoltageSinkTDF(name, scale, cp, elnModule); + List<ELNModule> modules = cluster.getAllModule(); + for (int i = 0; i < modules.size(); i++) { + ELNModule module = modules.get(i); - elnMap.put(TDF_vsink, elnTDF_vsink); - elnModule.addTDF_vsink(elnTDF_vsink); - elnComponents.add(elnTDF_vsink); - } - List<ELNComponentVoltageSourceTDF> TDF_vsources = module.getAllComponentVoltageSourceTDF(); - for (int i = 0; i < TDF_vsources.size(); i++) { - ELNComponentVoltageSourceTDF TDF_vsource = TDF_vsources.get(i); - - String name = TDF_vsource.getValue(); - double scale = TDF_vsource.getScale(); - ELNConnectingPoint[] cp = (ELNConnectingPoint[]) TDF_vsource.connectingPoint; - - ELNTComponentVoltageSourceTDF elnTDF_vsource = new ELNTComponentVoltageSourceTDF(name, scale, cp, elnModule); - - elnMap.put(TDF_vsource, elnTDF_vsource); - elnModule.addTDF_vsource(elnTDF_vsource); - elnComponents.add(elnTDF_vsource); - } - List<ELNModuleTerminal> moduleTerminals = module.getAllModuleTerminal(); - for (int i = 0; i < moduleTerminals.size(); i++) { - ELNModuleTerminal moduleTerminal = moduleTerminals.get(i); - - String name = moduleTerminal.getValue(); - - ELNTModuleTerminal elnModuleTerminal = new ELNTModuleTerminal(name, elnModule); - - elnMap.put(moduleTerminal, elnModuleTerminal); - elnModule.addModuleTerminal(elnModuleTerminal); - elnComponents.add(elnModuleTerminal); - } - elnMap.put(module, elnModule); - elnComponents.add(elnModule); + String moduleName = module.getValue(); + + ELNTModule elnModule = new ELNTModule(moduleName, elnCluster); + + List<ELNComponentCapacitor> capacitors = module.getAllComponentCapacitor(); + for (int j = 0; j < capacitors.size(); j++) { + ELNComponentCapacitor capacitor = capacitors.get(j); + + String name = capacitor.getValue(); + double val = capacitor.getVal(); + double q0 = capacitor.getQ0(); + String unit0 = capacitor.getUnit0(); + String unit1 = capacitor.getUnit1(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) capacitor.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) capacitor.getTGConnectingPointAtIndex(1); + + ELNTComponentCapacitor elnCapacitor = new ELNTComponentCapacitor(name, val, q0, unit0, unit1, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnCapacitor); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnCapacitor); + + elnCapacitor.addConnectingPoint(elncp0); + elnCapacitor.addConnectingPoint(elncp1); + + elnMap.put(capacitor, elnCapacitor); + elnModule.addCapacitor(elnCapacitor); + elnComponents.add(elnCapacitor); + } + List<ELNComponentCurrentSinkDE> DE_isinks = module.getAllComponentCurrentSinkDE(); + for (int j = 0; j < DE_isinks.size(); j++) { + ELNComponentCurrentSinkDE DE_isink = DE_isinks.get(j); + + String name = DE_isink.getValue(); + double scale = DE_isink.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_isink.getTGConnectingPointAtIndex(2); + + ELNTComponentCurrentSinkDE elnDE_isink = new ELNTComponentCurrentSinkDE(name, scale,elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_isink); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_isink); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_isink); + + elnDE_isink.addConnectingPoint(elncp0); + elnDE_isink.addConnectingPoint(elncp1); + elnDE_isink.addConnectingPoint(elncp2); + + elnMap.put(DE_isink, elnDE_isink); + elnModule.addDE_isink(elnDE_isink); + elnComponents.add(elnDE_isink); + } + List<ELNComponentCurrentSourceDE> DE_isources = module.getAllComponentCurrentSourceDE(); + for (int j = 0; j < DE_isources.size(); j++) { + ELNComponentCurrentSourceDE DE_isource = DE_isources.get(j); + + String name = DE_isource.getValue(); + double scale = DE_isource.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_isource.getTGConnectingPointAtIndex(2); + + ELNTComponentCurrentSourceDE elnDE_isource = new ELNTComponentCurrentSourceDE(name, scale, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_isource); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_isource); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_isource); + + elnDE_isource.addConnectingPoint(elncp0); + elnDE_isource.addConnectingPoint(elncp1); + elnDE_isource.addConnectingPoint(elncp2); + + elnMap.put(DE_isource, elnDE_isource); + elnModule.addDE_isource(elnDE_isource); + elnComponents.add(elnDE_isource); + } + List<ELNComponentCurrentSinkTDF> TDF_isinks = module.getAllComponentCurrentSinkTDF(); + for (int j = 0; j < TDF_isinks.size(); j++) { + ELNComponentCurrentSinkTDF TDF_isink = TDF_isinks.get(j); + + String name = TDF_isink.getValue(); + double scale = TDF_isink.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_isink.getTGConnectingPointAtIndex(2); + + ELNTComponentCurrentSinkTDF elnTDF_isink = new ELNTComponentCurrentSinkTDF(name, scale,elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_isink); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_isink); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_isink); + + elnTDF_isink.addConnectingPoint(elncp0); + elnTDF_isink.addConnectingPoint(elncp1); + elnTDF_isink.addConnectingPoint(elncp2); + + elnMap.put(TDF_isink, elnTDF_isink); + elnModule.addTDF_isink(elnTDF_isink); + elnComponents.add(elnTDF_isink); + } + List<ELNComponentCurrentSourceTDF> TDF_isources = module.getAllComponentCurrentSourceTDF(); + for (int j = 0; j < TDF_isources.size(); j++) { + ELNComponentCurrentSourceTDF TDF_isource = TDF_isources.get(j); + + String name = TDF_isource.getValue(); + double scale = TDF_isource.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_isource.getTGConnectingPointAtIndex(2); + + ELNTComponentCurrentSourceTDF elnTDF_isource = new ELNTComponentCurrentSourceTDF(name, scale, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_isource); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_isource); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_isource); + + elnTDF_isource.addConnectingPoint(elncp0); + elnTDF_isource.addConnectingPoint(elncp1); + elnTDF_isource.addConnectingPoint(elncp2); + + elnMap.put(TDF_isource, elnTDF_isource); + elnModule.addTDF_isource(elnTDF_isource); + elnComponents.add(elnTDF_isource); + } + List<ELNComponentIdealTransformer> idealTransformers = module.getAllComponentIdealTransformer(); + for (int j = 0; j < idealTransformers.size(); j++) { + ELNComponentIdealTransformer idealTransformer = idealTransformers.get(j); + + String name = idealTransformer.getValue(); + double ratio = idealTransformer.getRatio(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(2); + ELNConnectingPoint cp3 = (ELNConnectingPoint) idealTransformer.getTGConnectingPointAtIndex(3); + + ELNTComponentIdealTransformer elnIdealTransformer = new ELNTComponentIdealTransformer(name, ratio, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnIdealTransformer); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnIdealTransformer); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnIdealTransformer); + ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnIdealTransformer); + + elnIdealTransformer.addConnectingPoint(elncp0); + elnIdealTransformer.addConnectingPoint(elncp1); + elnIdealTransformer.addConnectingPoint(elncp2); + elnIdealTransformer.addConnectingPoint(elncp3); + + elnMap.put(idealTransformer, elnIdealTransformer); + elnModule.addIdealTransformer(elnIdealTransformer); + elnComponents.add(elnIdealTransformer); + } + List<ELNComponentIndependentCurrentSource> isources = module.getAllComponentIndependentCurrentSource(); + for (int j = 0; j < isources.size(); j++) { + ELNComponentIndependentCurrentSource isource = isources.get(j); + + String name = isource.getValue(); + double initValue = isource.getInitValue(); + double offset = isource.getOffset(); + double amplitude = isource.getAmplitude(); + double frequency = isource.getFrequency(); + double phase = isource.getPhase(); + double acAmplitude = isource.getAcAmplitude(); + double acPhase = isource.getAcPhase(); + double acNoiseAmpliture = isource.getAcNoiseAmplitude(); + String delay = isource.getDelay(); + String unit0 = isource.getUnit0(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) isource.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) isource.getTGConnectingPointAtIndex(1); + + ELNTComponentIndependentCurrentSource elnISource = new ELNTComponentIndependentCurrentSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnISource); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnISource); + + elnISource.addConnectingPoint(elncp0); + elnISource.addConnectingPoint(elncp1); + + elnMap.put(isource, elnISource); + elnModule.addIsource(elnISource); + elnComponents.add(elnISource); + } + List<ELNComponentIndependentVoltageSource> vsources = module.getAllComponentIndependentVoltageSource(); + for (int j = 0; j < vsources.size(); j++) { + ELNComponentIndependentVoltageSource vsource = vsources.get(j); + + String name = vsource.getValue(); + double initValue = vsource.getInitValue(); + double offset = vsource.getOffset(); + double amplitude = vsource.getAmplitude(); + double frequency = vsource.getFrequency(); + double phase = vsource.getPhase(); + double acAmplitude = vsource.getAcAmplitude(); + double acPhase = vsource.getAcPhase(); + double acNoiseAmpliture = vsource.getAcNoiseAmplitude(); + String delay = vsource.getDelay(); + String unit0 = vsource.getUnit0(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) vsource.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) vsource.getTGConnectingPointAtIndex(1); + + ELNTComponentIndependentVoltageSource elnVSource = new ELNTComponentIndependentVoltageSource(name, initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmpliture, delay, unit0, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVSource); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVSource); + + elnVSource.addConnectingPoint(elncp0); + elnVSource.addConnectingPoint(elncp1); + + elnMap.put(vsource, elnVSource); + elnModule.addVsource(elnVSource); + elnComponents.add(elnVSource); + } + List<ELNComponentInductor> inductors = module.getAllComponentInductor(); + for (int j = 0; j < inductors.size(); j++) { + ELNComponentInductor inductor = inductors.get(j); + + String name = inductor.getValue(); + double val = inductor.getVal(); + double phi0 = inductor.getPhi0(); + String unit0 = inductor.getUnit0(); + String unit1 = inductor.getUnit1(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) inductor.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) inductor.getTGConnectingPointAtIndex(1); + + ELNTComponentInductor elnInductor = new ELNTComponentInductor(name, val, phi0, unit0, unit1, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnInductor); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnInductor); + + elnInductor.addConnectingPoint(elncp0); + elnInductor.addConnectingPoint(elncp1); + + elnMap.put(inductor, elnInductor); + elnModule.addInductor(elnInductor); + elnComponents.add(elnInductor); + } + List<ELNNodeRef> nodeRefs = module.getAllComponentNodeRef(); + for (int j = 0; j < nodeRefs.size(); j++) { + ELNNodeRef nodeRef = nodeRefs.get(j); + + String name = nodeRef.getValue(); + + ELNTNodeRef elnNodeRef = new ELNTNodeRef(name, elnModule); + + elnMap.put(nodeRef, elnNodeRef); + elnModule.addNodeRef(elnNodeRef); + elnComponents.add(elnNodeRef); + } + List<ELNComponentResistor> resistors = module.getAllComponentResistor(); + for (int j = 0; j < resistors.size(); j++) { + ELNComponentResistor resistor = resistors.get(j); + + String name = resistor.getValue(); + double val = resistor.getVal(); + String unit = resistor.getUnit(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) resistor.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) resistor.getTGConnectingPointAtIndex(1); + + ELNTComponentResistor elnResistor = new ELNTComponentResistor(name, val, unit, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnResistor); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnResistor); + + elnResistor.addConnectingPoint(elncp0); + elnResistor.addConnectingPoint(elncp1); + + elnMap.put(resistor, elnResistor); + elnModule.addResistor(elnResistor); + elnComponents.add(elnResistor); + } + List<ELNComponentTransmissionLine> transmissionLines = module.getAllComponentTransmissionLine(); + for (int j = 0; j < transmissionLines.size(); j++) { + ELNComponentTransmissionLine transmissionLine = transmissionLines.get(j); + + String name = transmissionLine.getValue(); + double z0 = transmissionLine.getZ0(); + double delta0 = transmissionLine.getDelta0(); + String delay = transmissionLine.getDelay(); + String unit0 = transmissionLine.getUnit0(); + String unit2 = transmissionLine.getUnit2(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(2); + ELNConnectingPoint cp3 = (ELNConnectingPoint) transmissionLine.getTGConnectingPointAtIndex(3); + + ELNTComponentTransmissionLine elnTransmissionLine = new ELNTComponentTransmissionLine(name, z0, delta0, delay, unit0, unit2, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTransmissionLine); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTransmissionLine); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTransmissionLine); + ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnTransmissionLine); + + elnTransmissionLine.addConnectingPoint(elncp0); + elnTransmissionLine.addConnectingPoint(elncp1); + elnTransmissionLine.addConnectingPoint(elncp2); + elnTransmissionLine.addConnectingPoint(elncp3); + + elnMap.put(transmissionLine, elnTransmissionLine); + elnModule.addTransmissionLine(elnTransmissionLine); + elnComponents.add(elnTransmissionLine); + } + List<ELNComponentVoltageControlledCurrentSource> vccss = module.getAllComponentVoltageControlledCurrentSource(); + for (int j = 0; j < vccss.size(); j++) { + ELNComponentVoltageControlledCurrentSource vccs = vccss.get(j); + + String name = vccs.getValue(); + double val = vccs.getVal(); + String unit = vccs.getUnit(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(2); + ELNConnectingPoint cp3 = (ELNConnectingPoint) vccs.getTGConnectingPointAtIndex(3); + + ELNTComponentVoltageControlledCurrentSource elnVCCS = new ELNTComponentVoltageControlledCurrentSource(name, val, unit, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVCCS); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVCCS); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnVCCS); + ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnVCCS); + + elnVCCS.addConnectingPoint(elncp0); + elnVCCS.addConnectingPoint(elncp1); + elnVCCS.addConnectingPoint(elncp2); + elnVCCS.addConnectingPoint(elncp3); + + elnMap.put(vccs, elnVCCS); + elnModule.addVccs(elnVCCS); + elnComponents.add(elnVCCS); + } + List<ELNComponentVoltageControlledVoltageSource> vcvss = module.getAllComponentVoltageControlledVoltageSource(); + for (int j = 0; j < vcvss.size(); j++) { + ELNComponentVoltageControlledVoltageSource vcvs = vcvss.get(j); + + String name = vcvs.getValue(); + double val = vcvs.getVal(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(2); + ELNConnectingPoint cp3 = (ELNConnectingPoint) vcvs.getTGConnectingPointAtIndex(3); + + ELNTComponentVoltageControlledVoltageSource elnVCVS = new ELNTComponentVoltageControlledVoltageSource(name, val, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnVCVS); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnVCVS); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnVCVS); + ELNTConnectingPoint elncp3 = new ELNTConnectingPoint(cp3.getName(), elnVCVS); + + elnVCVS.addConnectingPoint(elncp0); + elnVCVS.addConnectingPoint(elncp1); + elnVCVS.addConnectingPoint(elncp2); + elnVCVS.addConnectingPoint(elncp3); + + elnMap.put(vcvs, elnVCVS); + elnModule.addVcvs(elnVCVS); + elnComponents.add(elnVCVS); + } + List<ELNComponentVoltageSinkDE> DE_vsinks = module.getAllComponentVoltageSinkDE(); + for (int j = 0; j < DE_vsinks.size(); j++) { + ELNComponentVoltageSinkDE DE_vsink = DE_vsinks.get(j); + + String name = DE_vsink.getValue(); + double scale = DE_vsink.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_vsink.getTGConnectingPointAtIndex(2); + + ELNTComponentVoltageSinkDE elnDE_vsink = new ELNTComponentVoltageSinkDE(name, scale, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_vsink); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_vsink); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_vsink); + + elnDE_vsink.addConnectingPoint(elncp0); + elnDE_vsink.addConnectingPoint(elncp1); + elnDE_vsink.addConnectingPoint(elncp2); + + elnMap.put(DE_vsink, elnDE_vsink); + elnModule.addDE_vsink(elnDE_vsink); + elnComponents.add(elnDE_vsink); + } + List<ELNComponentVoltageSourceDE> DE_vsources = module.getAllComponentVoltageSourceDE(); + for (int j = 0; j < DE_vsources.size(); j++) { + ELNComponentVoltageSourceDE DE_vsource = DE_vsources.get(j); + + String name = DE_vsource.getValue(); + double scale = DE_vsource.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) DE_vsource.getTGConnectingPointAtIndex(2); + + ELNTComponentVoltageSourceDE elnDE_vsource = new ELNTComponentVoltageSourceDE(name, scale, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnDE_vsource); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnDE_vsource); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnDE_vsource); + + elnDE_vsource.addConnectingPoint(elncp0); + elnDE_vsource.addConnectingPoint(elncp1); + elnDE_vsource.addConnectingPoint(elncp2); + + elnMap.put(DE_vsource, elnDE_vsource); + elnModule.addDE_vsource(elnDE_vsource); + elnComponents.add(elnDE_vsource); + } + List<ELNComponentVoltageSinkTDF> TDF_vsinks = module.getAllComponentVoltageSinkTDF(); + for (int j = 0; j < TDF_vsinks.size(); j++) { + ELNComponentVoltageSinkTDF TDF_vsink = TDF_vsinks.get(j); + + String name = TDF_vsink.getValue(); + double scale = TDF_vsink.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_vsink.getTGConnectingPointAtIndex(2); + + ELNTComponentVoltageSinkTDF elnTDF_vsink = new ELNTComponentVoltageSinkTDF(name, scale, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_vsink); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_vsink); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_vsink); + + elnTDF_vsink.addConnectingPoint(elncp0); + elnTDF_vsink.addConnectingPoint(elncp1); + elnTDF_vsink.addConnectingPoint(elncp2); + + elnMap.put(TDF_vsink, elnTDF_vsink); + elnModule.addTDF_vsink(elnTDF_vsink); + elnComponents.add(elnTDF_vsink); + } + List<ELNComponentVoltageSourceTDF> TDF_vsources = module.getAllComponentVoltageSourceTDF(); + for (int j = 0; j < TDF_vsources.size(); j++) { + ELNComponentVoltageSourceTDF TDF_vsource = TDF_vsources.get(j); + + String name = TDF_vsource.getValue(); + double scale = TDF_vsource.getScale(); + ELNConnectingPoint cp0 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(0); + ELNConnectingPoint cp1 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(1); + ELNConnectingPoint cp2 = (ELNConnectingPoint) TDF_vsource.getTGConnectingPointAtIndex(2); + + ELNTComponentVoltageSourceTDF elnTDF_vsource = new ELNTComponentVoltageSourceTDF(name, scale, elnModule); + + ELNTConnectingPoint elncp0 = new ELNTConnectingPoint(cp0.getName(), elnTDF_vsource); + ELNTConnectingPoint elncp1 = new ELNTConnectingPoint(cp1.getName(), elnTDF_vsource); + ELNTConnectingPoint elncp2 = new ELNTConnectingPoint(cp2.getName(), elnTDF_vsource); + + elnTDF_vsource.addConnectingPoint(elncp0); + elnTDF_vsource.addConnectingPoint(elncp1); + elnTDF_vsource.addConnectingPoint(elncp2); + + elnMap.put(TDF_vsource, elnTDF_vsource); + elnModule.addTDF_vsource(elnTDF_vsource); + elnComponents.add(elnTDF_vsource); + } + List<ELNModuleTerminal> moduleTerminals = module.getAllModuleTerminal(); + for (int j = 0; j < moduleTerminals.size(); j++) { + ELNModuleTerminal moduleTerminal = moduleTerminals.get(j); + + String name = moduleTerminal.getValue(); + + ELNTModuleTerminal elnModuleTerminal = new ELNTModuleTerminal(name, elnModule); + + elnMap.put(moduleTerminal, elnModuleTerminal); + elnModule.addModuleTerminal(elnModuleTerminal); + elnComponents.add(elnModuleTerminal); + } + List<ELNModulePortDE> modulePortsDE = module.getAllModulePortDE(); + for (int j = 0; j < modulePortsDE.size(); j++) { + ELNModulePortDE modulePortDE = modulePortsDE.get(j); + + String portName = modulePortDE.getValue(); + String type = modulePortDE.getPortType(); + String origin = modulePortDE.getOrigin(); + + ELNTModulePortDE elnModulePortDE = new ELNTModulePortDE(portName, type, origin, elnModule); + + elnMap.put(modulePortDE, elnModulePortDE); + elnModule.addModulePortDE(elnModulePortDE); + elnComponents.add(elnModulePortDE); + } + List<ELNModulePortTDF> modulePortsTDF = module.getAllModulePortTDF(); + for (int j = 0; j < modulePortsTDF.size(); j++) { + ELNModulePortTDF modulePortTDF = modulePortsTDF.get(j); + + String portName = modulePortTDF.getValue(); + String type = modulePortTDF.getPortType(); + String origin = modulePortTDF.getOrigin(); + + ELNTModulePortTDF elnModulePortTDF = new ELNTModulePortTDF(portName, type, origin, elnModule); + + elnMap.put(modulePortTDF, elnModulePortTDF); + elnModule.addModulePortTDF(elnModulePortTDF); + elnComponents.add(elnModulePortTDF); + } + elnMap.put(module, elnModule); + elnCluster.addModule(elnModule); + elnComponents.add(elnModule); + } + elnMap.put(cluster, elnCluster); + elnComponents.add(elnCluster); } else if (dp instanceof ELNConnector) { ELNConnector connector = (ELNConnector) dp; @@ -352,8 +668,8 @@ public class ELNPanelTranslator { ELNTComponent avowner_p1 = elnMap.get(owner_p1); ELNTComponent avowner_p2 = elnMap.get(owner_p2); - ELNTConnectingPoint avConnectingPoint1 = new ELNTConnectingPoint(avowner_p1, p1Name); - ELNTConnectingPoint avConnectingPoint2 = new ELNTConnectingPoint(avowner_p2, p2Name); + ELNTConnectingPoint avConnectingPoint1 = new ELNTConnectingPoint(p1Name, avowner_p1); + ELNTConnectingPoint avConnectingPoint2 = new ELNTConnectingPoint(p2Name, avowner_p2); ELNTConnector avconnector = new ELNTConnector(avConnectingPoint1, avConnectingPoint2, name); diff --git a/src/main/java/ui/Expression.java b/src/main/java/ui/Expression.java new file mode 100644 index 0000000000000000000000000000000000000000..08cf3df2c60b9f429e4d5def99aa2d8bec385756 --- /dev/null +++ b/src/main/java/ui/Expression.java @@ -0,0 +1,69 @@ +package ui; + +public class Expression { + + private String text; + + private final String nullText; + + private final String label; + + private boolean enabled; + + public Expression( final String text ) { + this( text, null, null ); + } + + public Expression( final String text, + final String nullText, + final String label ) { + this.text = text; + this.nullText = nullText; + this.label = label; + this.enabled = true; + } +// +// public Expression( final String text, +// final boolean enabled, +// final String nullText ) { +// } + + public String getText() { + return text; + } + + public void setText( String text ) { + this.text = text; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getEffectiveExpression( final String defaultExpr ) { + return isEnabled() ? getText() : defaultExpr; + } + + public boolean isNull() { + if ( nullText == null ) { + return getText() == null; + } + + return nullText.equals( getText() ); + } + + @Override + public String toString() { + final String text = isNull() ? "null" : getText(); + + return label == null ? text : String.format( label, text ); + } + + public String getLabel() { + return label; + } +} diff --git a/src/main/java/ui/FindNextEnabledConnectingPointVisitor.java b/src/main/java/ui/FindNextEnabledConnectingPointVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..32c0a42e98b42e385f282a1c112de69dddd0a9e4 --- /dev/null +++ b/src/main/java/ui/FindNextEnabledConnectingPointVisitor.java @@ -0,0 +1,71 @@ +package ui; + +import java.util.Set; + +public class FindNextEnabledConnectingPointVisitor extends TrackingCDElementVisitor { + + private final Set<TGConnector> disabledConnectors; + + private TGConnectingPoint enabledConnectingPoint; + + private TGConnectingPoint previousEnabledConnectingPoint; + + public FindNextEnabledConnectingPointVisitor( final Set<TGConnector> disabledConnectors ) { + super(); + + this.disabledConnectors = disabledConnectors; + enabledConnectingPoint = null; + } + + @Override + public boolean visit( final CDElement element ) { + if ( !super.visit( element ) ) { + return false; + } + + if ( element instanceof TGConnector ) { + final TGConnector connector = (TGConnector) element; + + if ( pruneConnector( connector ) ) { + disabledConnectors.add( (TGConnector) element ); + + return true; + } + + enabledConnectingPoint = previousEnabledConnectingPoint; + + return false; + } + + if ( element instanceof TGConnectingPoint ) { + final TGConnectingPoint point = (TGConnectingPoint) element; + final CDElement father = point.getFather(); + previousEnabledConnectingPoint = point; + + if ( !pruneElement( father ) ) { + enabledConnectingPoint = point; + + return false; + } + } + + return true; + } + + protected boolean pruneElement( final CDElement diagramElement ) { + return !diagramElement.isEnabled() || !( diagramElement instanceof TGComponent ) || diagramElement instanceof TGConnector; + } + + + protected boolean pruneConnector( final TGConnector connector ) { + return true; + } + + public TGConnectingPoint getEnabledComponentPoint() { + return enabledConnectingPoint; + } + + public Set<TGConnector> getDisabledConnectors() { + return disabledConnectors; + } +} diff --git a/src/main/java/ui/ForwardComponentsEnabledVisitor.java b/src/main/java/ui/ForwardComponentsEnabledVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..21f28cb74f23948114945db84e36564c53024c56 --- /dev/null +++ b/src/main/java/ui/ForwardComponentsEnabledVisitor.java @@ -0,0 +1,31 @@ +package ui; + +public class ForwardComponentsEnabledVisitor extends TrackingCDElementVisitor { + + private boolean enabled; + + public ForwardComponentsEnabledVisitor() { + super(); + + enabled = true; + } + + @Override + public boolean visit(CDElement element) { + if ( !super.visit( element ) ) { + return false; + } + + if ( element.canBeDisabled() && !( element instanceof TGConnector ) ) { + enabled = element.isEnabled(); + + return false; + } + + return true; + } + + public boolean isEnabled() { + return enabled; + } +} diff --git a/src/main/java/ui/GNCModeling.java b/src/main/java/ui/GNCModeling.java index 368b47c25185ac94e2a7bf30567a3499f30f834e..e470accc10c968c1964047f585959a4d647bf325 100755 --- a/src/main/java/ui/GNCModeling.java +++ b/src/main/java/ui/GNCModeling.java @@ -36,10 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package ui; import myutil.TreeCell; @@ -49,6 +45,7 @@ import ui.ncdd.*; import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; import java.util.ListIterator; /** @@ -64,16 +61,14 @@ public class GNCModeling { private NCDiagramPanel ncdp; private LinkedList<CheckingError> checkingErrors, warnings; private CorrespondanceTGElement listE; - private NCStructure nc; + //private NCStructure nc; private static int PATH_INDEX = 0; - - + public GNCModeling(NCPanel _ncp) { ncp = _ncp; ncdp = ncp.ncdp; } - public NCStructure translateToNCStructure() { PATH_INDEX = 0; @@ -93,8 +88,6 @@ public class GNCModeling { manageParameters(); } - // - return ncs; } @@ -102,8 +95,7 @@ public class GNCModeling { return listE; } - - public LinkedList<CheckingError> getCheckingErrors() { + public List<CheckingError> getCheckingErrors() { return checkingErrors; } @@ -112,16 +104,16 @@ public class GNCModeling { } private void addEquipments() { - ListIterator iterator = ncdp.getListOfEqNode().listIterator(); + ListIterator<NCEqNode> iterator = ncdp.getListOfEqNode().listIterator(); NCEqNode node; NCEquipment eq; - NCConnectorNode con; - int cpt; + // NCConnectorNode con; + //int cpt; while(iterator.hasNext()) { - node = (NCEqNode)(iterator.next()); + node = iterator.next(); // Find the only interface of that Equipment // If more than one interface -> error @@ -163,13 +155,13 @@ public class GNCModeling { } private void addSwitches() { - ListIterator iterator = ncdp.getListOfSwitchNode().listIterator(); + ListIterator<NCSwitchNode> iterator = ncdp.getListOfSwitchNode().listIterator(); NCSwitchNode node; NCSwitch sw; NCCapacityUnit unit = new NCCapacityUnit(); while(iterator.hasNext()) { - node = (NCSwitchNode)(iterator.next()); + node = iterator.next(); sw= new NCSwitch(); sw.setName(node.getNodeName()); @@ -184,13 +176,13 @@ public class GNCModeling { } private void addTraffics() { - ListIterator iterator = ncdp.getTrafficArtifacts().listIterator(); + ListIterator<NCTrafficArtifact> iterator = ncdp.getTrafficArtifacts().listIterator(); NCTrafficArtifact arti; NCTraffic tr; NCTimeUnit unit; while(iterator.hasNext()) { - arti = (NCTrafficArtifact)(iterator.next()); + arti = iterator.next(); tr = new NCTraffic(); tr.setName(arti.getValue()); tr.setPeriodicType(arti.getPeriodicType()); @@ -210,9 +202,9 @@ public class GNCModeling { } private void addLinks() { - ListIterator iterator = ncdp.getListOfLinks().listIterator(); + ListIterator<NCConnectorNode> iterator = ncdp.getListOfLinks().listIterator(); NCConnectorNode nccn; - NCLink lk = null, lkr; + NCLink lk = null;//, lkr; boolean added; TGComponent tgc; TGConnectingPoint tp; @@ -223,7 +215,7 @@ public class GNCModeling { while(iterator.hasNext()) { added = false; - nccn = (NCConnectorNode)(iterator.next()); + nccn = iterator.next(); if (ncdp.isALinkBetweenEquipment(nccn)) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Link connected between two equipments: " + nccn.getInterfaceName()); @@ -305,19 +297,24 @@ public class GNCModeling { nccu.setUnit(nccn.getCapacityUnit()); lk.setCapacityUnit(nccu); } else { - if (switch1 == null) { + if (switch1 == null && switch2 != null ) { lk.setCapacity(switch2.getCapacity()); nccu = new NCCapacityUnit(); nccu.setUnit(switch2.getCapacityUnit()); lk.setCapacityUnit(nccu); } - if (switch2 == null) { + // DB: Seems to be a bug... + else if (switch2 == null && switch1 != null ) { lk.setCapacity(switch1.getCapacity()); nccu = new NCCapacityUnit(); - nccu.setUnit(switch2.getCapacityUnit()); + + // DB looks like a copy paste error + nccu.setUnit(switch1.getCapacityUnit()); +// nccu.setUnit(switch2.getCapacityUnit()); lk.setCapacityUnit(nccu); } - if ((switch1 != null) && (switch2 != null)) { + else { + //if ((switch1 != null) && (switch2 != null)) { if (switch1.getCapacity() != switch2.getCapacity()) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Link with no capacity between two switches of different capacity: " + nccn.getInterfaceName()); ce.setTDiagramPanel(ncdp); @@ -357,18 +354,18 @@ public class GNCModeling { // Consider each traffic // For each traffic, its builds a tree // Then, its generates the corresponding paths - ListIterator iterator = ncdp.getTrafficArtifacts().listIterator(); + ListIterator<NCTrafficArtifact> iterator = ncdp.getTrafficArtifacts().listIterator(); NCTrafficArtifact arti; NCTraffic tr; TreeCell tree; int ret; - NCPath path; + //NCPath path; NCEqNode node; NCEquipment eq; - ArrayList<String> list; + List<String> list; while(iterator.hasNext()) { - arti = (NCTrafficArtifact)(iterator.next()); + arti = iterator.next(); tr = ncs.getTrafficByName(arti.getValue()); if (tr == null) { @@ -399,7 +396,7 @@ public class GNCModeling { } } - public void exploreTree(TreeCell tree, ArrayList<String> list, NCEquipment origin, NCTraffic traffic) { + private void exploreTree(TreeCell tree, List<String> list, NCEquipment origin, NCTraffic traffic) { NCSwitchNode sw; NCSwitch ncsw; NCLinkedElement ncle; @@ -505,7 +502,7 @@ public class GNCModeling { // Find the only interface of that Equipment // If more than one interface -> error - ArrayList<NCSwitchNode> listsw = ncdp.getSwitchesOfEq(node); + List<NCSwitchNode> listsw = ncdp.getSwitchesOfEq(node); if (listsw.size() == 0) { UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Equipment " + node.getName() + " has non interface: traffic " + arti.getValue() + " cannot be sent over the network"); @@ -569,10 +566,10 @@ public class GNCModeling { TreeCell cell; NCConnectorNode nextArriving; - ArrayList<NCRoute> computed = new ArrayList<NCRoute>(); + List<NCRoute> computed = new ArrayList<NCRoute>(); // Get all routes concerning that traffic on that switch - ArrayList<NCRoute> routes = ncdp.getAllRoutesFor(sw, arti); + List<NCRoute> routes = ncdp.getAllRoutesFor(sw, arti); // @@ -703,9 +700,9 @@ public class GNCModeling { } public void manageParameters() { - ListIterator iterator; + //ListIterator iterator; NCEqNode node1, node2; - ArrayList<NCConnectorNode> cons1, cons2; + List<NCConnectorNode> cons1, cons2; NCConnectorNode con1, con2; int i; int parameter1, parameter2; @@ -716,14 +713,14 @@ public class GNCModeling { //NCPath path1; //ArrayList<NCEquipment> newEquipments = new ArrayList<NCEquipment>(); - ArrayList<NCTraffic> newTraffics = new ArrayList<NCTraffic>(); - ArrayList<NCLink> newLinks = new ArrayList<NCLink>(); - ArrayList<NCPath> newPaths = new ArrayList<NCPath>(); + //List<NCTraffic> newTraffics = new ArrayList<NCTraffic>(); + //List<NCLink> newLinks = new ArrayList<NCLink>(); + List<NCPath> newPaths = new ArrayList<NCPath>(); - ArrayList<NCEquipment> oldEquipments = new ArrayList<NCEquipment>(); - ArrayList<NCTraffic> oldTraffics = new ArrayList<NCTraffic>(); - ArrayList<NCLink> oldLinks = new ArrayList<NCLink>(); - ArrayList<NCPath> oldPaths = new ArrayList<NCPath>(); + List<NCEquipment> oldEquipments = new ArrayList<NCEquipment>(); + List<NCTraffic> oldTraffics = new ArrayList<NCTraffic>(); + List<NCLink> oldLinks = new ArrayList<NCLink>(); + List<NCPath> oldPaths = new ArrayList<NCPath>(); // Are there any path to duplicate? for(NCPath path: ncs.paths) { @@ -862,5 +859,4 @@ public class GNCModeling { cpt ++; } } - } diff --git a/src/main/java/ui/GTMLModeling.java b/src/main/java/ui/GTMLModeling.java index 545af8aa925b49b37457394b07315957ad9aa89e..f3d8a5b4412a30b2f31ef81b7d28e5886d29ff87 100755 --- a/src/main/java/ui/GTMLModeling.java +++ b/src/main/java/ui/GTMLModeling.java @@ -38,35 +38,103 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui; +import java.awt.Point; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Vector; + import avatartranslator.AvatarSpecification; -import myutil.Conversion; import myutil.TraceManager; -import tmltranslator.*; +import tmltranslator.HwA; +import tmltranslator.HwBridge; +import tmltranslator.HwBus; +import tmltranslator.HwCPU; +import tmltranslator.HwCommunicationNode; +import tmltranslator.HwCrossbar; +import tmltranslator.HwDMA; +import tmltranslator.HwExecutionNode; +import tmltranslator.HwFPGA; +import tmltranslator.HwLink; +import tmltranslator.HwMemory; +import tmltranslator.HwNode; +import tmltranslator.HwVGMN; +import tmltranslator.SecurityPattern; +import tmltranslator.TMLActivity; +import tmltranslator.TMLActivityElement; +import tmltranslator.TMLActivityElementChannel; +import tmltranslator.TMLArchitecture; +import tmltranslator.TMLAttribute; +import tmltranslator.TMLCP; +import tmltranslator.TMLCPError; +import tmltranslator.TMLCPLib; +import tmltranslator.TMLCPLibArtifact; +import tmltranslator.TMLCPSyntaxChecking; +import tmltranslator.TMLChannel; +import tmltranslator.TMLCheckingError; +import tmltranslator.TMLElement; +import tmltranslator.TMLError; +import tmltranslator.TMLEvent; +import tmltranslator.TMLExecI; +import tmltranslator.TMLMapping; +import tmltranslator.TMLModeling; +import tmltranslator.TMLPort; +import tmltranslator.TMLRequest; +import tmltranslator.TMLSyntaxChecking; +import tmltranslator.TMLTask; +import tmltranslator.TMLType; import tmltranslator.modelcompiler.ArchUnitMEC; import tmltranslator.tmlcp.TMLCPElement; import tmltranslator.tmlcp.TMLSDAction; import tmltranslator.tmlcp.TMLSDEvent; import tmltranslator.tmlcp.TMLSDMessage; import translator.CheckingError; -import ui.tmlad.*; +import ui.tmlad.TMLADEncrypt; +import ui.tmlad.TMLADReadChannel; +import ui.tmlad.TMLADWriteChannel; +import ui.tmlad.TMLActivityDiagramPanel; import ui.tmlcd.TMLChannelOperator; import ui.tmlcd.TMLEventOperator; import ui.tmlcd.TMLRequestOperator; import ui.tmlcd.TMLTaskOperator; -import ui.tmlcompd.*; -import ui.tmldd.*; +import ui.tmlcompd.TMLCChannelOutPort; +import ui.tmlcompd.TMLCFork; +import ui.tmlcompd.TMLCJoin; +import ui.tmlcompd.TMLCPath; +import ui.tmlcompd.TMLCPortConnector; +import ui.tmlcompd.TMLCPrimitiveComponent; +import ui.tmlcompd.TMLCPrimitivePort; +import ui.tmlcompd.TMLCRecordComponent; +import ui.tmldd.TMLArchiArtifact; +import ui.tmldd.TMLArchiBUSNode; +import ui.tmldd.TMLArchiBridgeNode; +import ui.tmldd.TMLArchiCPNode; +import ui.tmldd.TMLArchiCPUNode; +import ui.tmldd.TMLArchiCommunicationArtifact; +import ui.tmldd.TMLArchiCommunicationNode; +import ui.tmldd.TMLArchiConnectorNode; +import ui.tmldd.TMLArchiCrossbarNode; +import ui.tmldd.TMLArchiDMANode; +import ui.tmldd.TMLArchiEventArtifact; +import ui.tmldd.TMLArchiFPGANode; +import ui.tmldd.TMLArchiFirewallNode; +import ui.tmldd.TMLArchiHWANode; +import ui.tmldd.TMLArchiKey; +import ui.tmldd.TMLArchiMemoryNode; +import ui.tmldd.TMLArchiNode; +import ui.tmldd.TMLArchiPortArtifact; +import ui.tmldd.TMLArchiVGMNNode; import ui.tmlsd.TGConnectorMessageTMLSD; import ui.tmlsd.TMLSDControllerInstance; import ui.tmlsd.TMLSDStorageInstance; import ui.tmlsd.TMLSDTransferInstance; -import java.awt.*; -import java.util.*; -import java.util.List; - /** * Class GTMLModeling * Use to translate graphical TML modeling to "tmlmodeling" @@ -1078,7 +1146,7 @@ public class GTMLModeling { if (!(alreadyConsidered.contains(port1))) { portstome = tmlcdp.tmlctdp.getPortsConnectedTo(port1, componentsToTakeIntoAccount); //TraceManager.addDev("Considering port1 = " +port1.getPortName() + " size of connecting ports:" + portstome.size()); - Iterator<?> ite = portstome.listIterator(); + // Iterator<?> ite = portstome.listIterator(); /*while(ite.hasNext()) { TraceManager.addDev("port=" + ((TMLCPrimitivePort)(ite.next())).getPortName()); }*/ @@ -1595,7 +1663,7 @@ public class GTMLModeling { } else { // Adding all elements of record //TraceManager.addDev("Found a record named: " + rc.getValue()); - LinkedList<TAttribute> attr = rc.getAttributes(); + List<TAttribute> attr = rc.getAttributes(); for (TAttribute tat : attr) { if (tat.getType() == TAttribute.NATURAL) { tt = new TMLType(TMLType.NATURAL); @@ -1654,860 +1722,873 @@ public class GTMLModeling { while (iterator.hasNext()) { tmltask = iterator.next(); - generateTaskActivityDiagrams(tmltask); + + // Issue #69: Component disabling + ActivityDiagram2TMLTranslator.INSTANCE.generateTaskActivityDiagrams( tmltask, + checkingErrors, + warnings, + listE, + tmlm, + securityPatterns, + table, + removedChannels, + removedEvents, + removedRequests ); +// generateTaskActivityDiagrams(tmltask); } //TraceManager.addDev( "errors: " + checkingErrors.size() ); if (checkingErrors.size() > 0) { throw new MalformedTMLDesignException("Error(s) found in activity diagrams"); } } - - private String modifyActionString(String _input) { - int index = _input.indexOf("++"); - boolean b1, b2; - String tmp; - - if (index > -1) { - tmp = _input.substring(0, index).trim(); - - b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]"); - b2 = tmp.matches("\\w*"); - if (b1 && b2) { - return tmp + " = " + tmp + " + 1"; - } - } - - index = _input.indexOf("--"); - if (index > -1) { - tmp = _input.substring(0, index).trim(); - - b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]"); - b2 = tmp.matches("\\w*"); - if (b1 && b2) { - return tmp + " = " + tmp + " - 1"; - } - } - - return modifyString(_input); - } - - private String modifyString(String _input) { - return Conversion.replaceAllChar(_input, '.', "__"); - } - - private void generateTaskActivityDiagrams(TMLTask tmltask) throws MalformedTMLDesignException { - TMLActivity activity = tmltask.getActivityDiagram(); - TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel) (activity.getReferenceObject()); - - //TraceManager.addDev("Generating activity diagram of:" + tmltask.getName()); - - // search for start state - List<TGComponent> list = tadp.getComponentList(); - Iterator<TGComponent> iterator = list.listIterator(); - TGComponent tgc; - TMLADStartState tss = null; - int cptStart = 0; - // boolean rndAdded = false; - - while (iterator.hasNext()) { - tgc = iterator.next(); - - if (tgc instanceof TMLADStartState) { - tss = (TMLADStartState) tgc; - cptStart++; - } - } - - if (tss == null) { - TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the TML activity diagram of " + tmltask.getName()); - ce.setTMLTask(tmltask); - checkingErrors.add(ce); - return; - } - - if (cptStart > 1) { - TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the TML activity diagram of " + tmltask.getName()); - ce.setTMLTask(tmltask); - checkingErrors.add(ce); - return; - } - - // Adding start state - TMLStartState tmlss = new TMLStartState("start", tss); - listE.addCor(tmlss, tss); - activity.setFirst(tmlss); - - // Creation of other elements - TMLChannel channel; - String[] channels; - TMLEvent event; - TMLRequest request; - - TMLADRandom tmladrandom; - TMLRandom tmlrandom; - TMLActionState tmlaction; - TMLChoice tmlchoice; - TMLExecI tmlexeci; - TMLExecIInterval tmlexecii; - TMLExecC tmlexecc; - TMLExecCInterval tmlexecci; - TMLForLoop tmlforloop; - TMLReadChannel tmlreadchannel; - TMLSendEvent tmlsendevent; - TMLSendRequest tmlsendrequest; - TMLStopState tmlstopstate; - TMLWaitEvent tmlwaitevent; - TMLNotifiedEvent tmlnotifiedevent; - TMLWriteChannel tmlwritechannel; - TMLSequence tmlsequence; - TMLRandomSequence tmlrsequence; - TMLSelectEvt tmlselectevt; - TMLDelay tmldelay; - int staticLoopIndex = 0; - String sl = "", tmp; - TMLType tt; - TMLAttribute tmlt; - - iterator = list.listIterator(); - while (iterator.hasNext()) { - tgc = iterator.next(); - if (tgc.getCheckLatency()) { - String name = tmltask.getName() + ":" + tgc.getName(); - name = name.replaceAll(" ", ""); - //TraceManager.addDev("To check " + name); - if (tgc.getValue().contains("(")) { - tmlm.addCheckedActivity(tgc, name + ":" + tgc.getValue().split("\\(")[0]); - } else { - if (tgc instanceof TMLADExecI) { - tmlm.addCheckedActivity(tgc, ((TMLADExecI) tgc).getDelayValue()); - } - } - } - if (tgc instanceof TMLADActionState) { - tmlaction = new TMLActionState("action", tgc); - tmp = ((TMLADActionState) (tgc)).getAction(); - tmp = modifyActionString(tmp); - tmlaction.setAction(tmp); - activity.addElement(tmlaction); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlaction, tgc); - - } else if (tgc instanceof TMLADRandom) { - tmladrandom = (TMLADRandom) tgc; - tmlrandom = new TMLRandom("random" + tmladrandom.getValue(), tgc); - tmp = tmladrandom.getVariable(); - tmp = modifyActionString(tmp); - tmlrandom.setVariable(tmp); - tmp = tmladrandom.getMinValue(); - tmp = modifyActionString(tmp); - tmlrandom.setMinValue(tmp); - tmp = tmladrandom.getMaxValue(); - tmp = modifyActionString(tmp); - tmlrandom.setMaxValue(tmp); - tmlrandom.setFunctionId(tmladrandom.getFunctionId()); - activity.addElement(tmlrandom); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlrandom, tgc); - - } else if (tgc instanceof TMLADChoice) { - tmlchoice = new TMLChoice("choice", tgc); - // Guards are added at the same time as next activities - activity.addElement(tmlchoice); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlchoice, tgc); - - } else if (tgc instanceof TMLADSelectEvt) { - tmlselectevt = new TMLSelectEvt("select", tgc); - activity.addElement(tmlselectevt); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlselectevt, tgc); - - } else if (tgc instanceof TMLADExecI) { - tmlexeci = new TMLExecI("execi", tgc); - tmlexeci.setAction(modifyString(((TMLADExecI) tgc).getDelayValue())); - tmlexeci.setValue(((TMLADExecI) tgc).getDelayValue()); - activity.addElement(tmlexeci); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlexeci, tgc); - - } else if (tgc instanceof TMLADExecIInterval) { - tmlexecii = new TMLExecIInterval("execi", tgc); - tmlexecii.setValue(tgc.getValue()); - tmlexecii.setMinDelay(modifyString(((TMLADExecIInterval) tgc).getMinDelayValue())); - tmlexecii.setMaxDelay(modifyString(((TMLADExecIInterval) tgc).getMaxDelayValue())); - activity.addElement(tmlexecii); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlexecii, tgc); - - } else if (tgc instanceof TMLADEncrypt) { - tmlexecc = new TMLExecC("encrypt_" + ((TMLADEncrypt) tgc).securityContext, tgc); - activity.addElement(tmlexecc); - SecurityPattern sp = securityPatterns.get(((TMLADEncrypt) tgc).securityContext); - if (sp == null) { - //Throw error for missing security pattern - UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADEncrypt) tgc).securityContext + " not found"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } else { - tmlexecc.securityPattern = sp; - tmlexecc.setAction(Integer.toString(sp.encTime)); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - tmlm.securityTaskMap.get(sp).add(tmltask); - listE.addCor(tmlexecc, tgc); - } - } else if (tgc instanceof TMLADDecrypt) { - tmlexecc = new TMLExecC("decrypt_" + ((TMLADDecrypt) tgc).securityContext, tgc); - activity.addElement(tmlexecc); - SecurityPattern sp = securityPatterns.get(((TMLADDecrypt) tgc).securityContext); - if (sp == null) { - //Throw error for missing security pattern - UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADDecrypt) tgc).securityContext + " not found"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } else { - tmlexecc.securityPattern = sp; - tmlexecc.setAction(Integer.toString(sp.decTime)); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlexecc, tgc); - tmlm.securityTaskMap.get(sp).add(tmltask); - } - - } else if (tgc instanceof TMLADExecC) { - tmlexecc = new TMLExecC("execc", tgc); - tmlexecc.setValue(((TMLADExecC) tgc).getDelayValue()); - tmlexecc.setAction(modifyString(((TMLADExecC) tgc).getDelayValue())); - activity.addElement(tmlexecc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlexecc, tgc); - - } else if (tgc instanceof TMLADExecCInterval) { - tmlexecci = new TMLExecCInterval("execci", tgc); - tmlexecci.setMinDelay(modifyString(((TMLADExecCInterval) tgc).getMinDelayValue())); - tmlexecci.setMaxDelay(modifyString(((TMLADExecCInterval) tgc).getMaxDelayValue())); - activity.addElement(tmlexecci); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlexecci, tgc); - - } else if (tgc instanceof TMLADDelay) { - tmldelay = new TMLDelay("d-delay", tgc); - tmldelay.setMinDelay(modifyString(((TMLADDelay) tgc).getDelayValue())); - tmldelay.setMaxDelay(modifyString(((TMLADDelay) tgc).getDelayValue())); - tmldelay.setUnit(((TMLADDelay) tgc).getUnit()); - activity.addElement(tmldelay); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmldelay, tgc); - - } else if (tgc instanceof TMLADDelayInterval) { - tmldelay = new TMLDelay("nd-delay", tgc); - tmldelay.setMinDelay(modifyString(((TMLADDelayInterval) tgc).getMinDelayValue())); - tmldelay.setMaxDelay(modifyString(((TMLADDelayInterval) tgc).getMaxDelayValue())); - tmldelay.setUnit(((TMLADDelayInterval) tgc).getUnit()); - activity.addElement(tmldelay); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmldelay, tgc); - - } else if (tgc instanceof TMLADForLoop) { - tmlforloop = new TMLForLoop("loop", tgc); - tmlforloop.setInit(modifyString(((TMLADForLoop) tgc).getInit())); - tmp = ((TMLADForLoop) tgc).getCondition(); - /*if (tmp.trim().length() == 0) { - tmp = "true"; - }*/ - tmlforloop.setCondition(modifyString(tmp)); - tmlforloop.setIncrement(modifyActionString(((TMLADForLoop) tgc).getIncrement())); - - activity.addElement(tmlforloop); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlforloop, tgc); - - } else if (tgc instanceof TMLADForStaticLoop) { - sl = "loop__" + staticLoopIndex; - tt = new TMLType(TMLType.NATURAL); - tmlt = new TMLAttribute(sl, tt); - tmlt.initialValue = "0"; - tmltask.addAttribute(tmlt); - tmlforloop = new TMLForLoop(sl, tgc); - tmlforloop.setInit(sl + " = 0"); - tmlforloop.setCondition(sl + "<" + modifyString(tgc.getValue())); - tmlforloop.setIncrement(sl + " = " + sl + " + 1"); - activity.addElement(tmlforloop); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlforloop, tgc); - staticLoopIndex++; - - } else if (tgc instanceof TMLADForEverLoop) { - /*sl = "loop__" + staticLoopIndex; - tt = new TMLType(TMLType.NATURAL); - tmlt = new TMLAttribute(sl, tt); - tmlt.initialValue = "0"; - tmltask.addAttribute(tmlt);*/ - tmlforloop = new TMLForLoop("infiniteloop", tgc); - tmlforloop.setInit(""); - tmlforloop.setCondition(""); - tmlforloop.setIncrement(""); - tmlforloop.setInfinite(true); - activity.addElement(tmlforloop); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlforloop, tgc); - staticLoopIndex++; - - tmlstopstate = new TMLStopState("Stop after infinite loop", null); - activity.addElement(tmlstopstate); - tmlforloop.addNext(tmlstopstate); - - } else if (tgc instanceof TMLADSequence) { - tmlsequence = new TMLSequence("seq", tgc); - activity.addElement(tmlsequence); - listE.addCor(tmlsequence, tgc); - - } else if (tgc instanceof TMLADUnorderedSequence) { - tmlrsequence = new TMLRandomSequence("rseq", tgc); - activity.addElement(tmlrsequence); - listE.addCor(tmlrsequence, tgc); - - } else if (tgc instanceof TMLADReadChannel) { - // Get the channel - //TMLADReadChannel rd = (TMLADReadChannel) tgc; - channel = tmlm.getChannelByName(getFromTable(tmltask, ((TMLADReadChannel) tgc).getChannelName())); - /*if (rd.isAttacker()){ - channel = tmlm.getChannelByName(getAttackerChannel(((TMLADReadChannel)tgc).getChannelName())); - }*/ - if (channel == null) { - if (Conversion.containsStringInList(removedChannels, ((TMLADReadChannel) tgc).getChannelName())) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADReadChannel) tgc).getChannelName() + " has been removed because the corresponding channel is not taken into account"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - warnings.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - activity.addElement(new TMLJunction("void junction", tgc)); - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is an unknown channel"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - checkingErrors.add(ce); - } - - } else { - tmlreadchannel = new TMLReadChannel("read channel", tgc); - tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel) tgc).getSamplesValue())); - tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm()); - tmlreadchannel.addChannel(channel); - //security pattern - if (securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()) != null) { - tmlreadchannel.securityPattern = securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()); - //NbOfSamples will increase due to extra overhead from MAC - int cur = 1; - try { - cur = Integer.valueOf(modifyString(((TMLADReadChannel) tgc).getSamplesValue())); - } catch (NumberFormatException e) { - } catch (NullPointerException e) { - } - int add = Integer.valueOf(tmlreadchannel.securityPattern.overhead); - if (!tmlreadchannel.securityPattern.nonce.equals("")) { - SecurityPattern nonce = securityPatterns.get(tmlreadchannel.securityPattern.nonce); - if (nonce != null) { - add = Integer.valueOf(nonce.overhead); - } - } - cur = cur + add; - tmlreadchannel.setNbOfSamples(Integer.toString(cur)); - } 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"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - if (tmltask.isAttacker()) { - tmlreadchannel.setAttacker(true); - } - activity.addElement(tmlreadchannel); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlreadchannel, tgc); - } - } else if (tgc instanceof TMLADSendEvent) { - event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADSendEvent) tgc).getEventName())); - if (event == null) { - if (Conversion.containsStringInList(removedEvents, ((TMLADSendEvent) tgc).getEventName())) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - warnings.add(ce); - activity.addElement(new TMLJunction("void junction", tgc)); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + " is an unknown event"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } - } else { - tmlsendevent = new TMLSendEvent("send event", tgc); - tmlsendevent.setEvent(event); - - for (int i = 0; i < ((TMLADSendEvent) tgc).realNbOfParams(); i++) { - tmp = modifyString(((TMLADSendEvent) tgc).getRealParamValue(i)); - Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); - if (allVariables.size() > 0) { - for (int k = 0; k < allVariables.size(); k++) { - //TraceManager.addDev("Adding record: " + allVariables.get(k)); - tmlsendevent.addParam(allVariables.get(k)); - } - } else { - //TraceManager.addDev("Adding param: " + tmp); - tmlsendevent.addParam(tmp); - } - } - if (event.getNbOfParams() != tmlsendevent.getNbOfParams()) { - //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " sendevent#:" + tmlsendevent.getNbOfParams()); - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + ": wrong number of parameters"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - activity.addElement(tmlsendevent); - listE.addCor(tmlsendevent, tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - } - } - - } else if (tgc instanceof TMLADSendRequest) { - request = tmlm.getRequestByName(getFromTable(tmltask, ((TMLADSendRequest) tgc).getRequestName())); - if (request == null) { - if (Conversion.containsStringInList(removedRequests, ((TMLADSendRequest) tgc).getRequestName())) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendRequest) tgc).getRequestName() + " has been removed because the corresponding request is not taken into account"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - warnings.add(ce); - activity.addElement(new TMLJunction("void junction", tgc)); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + " is an unknown request"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } - } else { - tmlsendrequest = new TMLSendRequest("send request", tgc); - tmlsendrequest.setRequest(request); - for (int i = 0; i < ((TMLADSendRequest) tgc).realNbOfParams(); i++) { - tmp = modifyString(((TMLADSendRequest) tgc).getRealParamValue(i)); - Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); - if (allVariables.size() > 0) { - for (int k = 0; k < allVariables.size(); k++) { - TraceManager.addDev("Adding record: " + allVariables.get(k)); - tmlsendrequest.addParam(allVariables.get(k)); - request.addParamName(allVariables.get(k)); - } - } else { - //TraceManager.addDev("Adding param: " + tmp); - tmlsendrequest.addParam(tmp); - request.addParamName(tmp); - } - } - if (request.getNbOfParams() != tmlsendrequest.getNbOfParams()) { - //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " sendrequest#:" + tmlsendrequest.getNbOfParams()); - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + ": wrong number of parameters"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - activity.addElement(tmlsendrequest); - listE.addCor(tmlsendrequest, tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - } - } - - } else if (tgc instanceof TMLADReadRequestArg) { - request = tmlm.getRequestToMe(tmltask); - if (request == null) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "This task is not requested: cannot use \"reading request arg\" operator"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - tmlaction = new TMLActionState("action reading args", tgc); - String act = ""; - int cpt = 1; - for (int i = 0; i < ((TMLADReadRequestArg) tgc).realNbOfParams(); i++) { - tmp = modifyString(((TMLADReadRequestArg) tgc).getRealParamValue(i)); - Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); - - if (allVariables.size() > 0) { - for (int k = 0; k < allVariables.size(); k++) { - //TraceManager.addDev("Adding record: " + allVariables.get(k)); - if (cpt != 1) { - act += "$"; - } - act += allVariables.get(k) + " = arg" + cpt + "__req"; - cpt++; - } - } else { - //TraceManager.addDev("Adding param: " + tmp); - if (cpt != 1) { - act += "$"; - } - act += tmp + " = arg" + cpt + "__req"; - cpt++; - } - } - if (request.getNbOfParams() != (cpt - 1)) { - //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " read request arg#:" + (cpt-1)); - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Wrong number of parameters in \"reading request arg\" operator"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - //TraceManager.addDev("Adding action = " + act); - tmlaction.setAction(act); - activity.addElement(tmlaction); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlaction, tgc); - } - - - } - - } else if (tgc instanceof TMLADStopState) { - tmlstopstate = new TMLStopState("stop state", tgc); - activity.addElement(tmlstopstate); - listE.addCor(tmlstopstate, tgc); - - } else if (tgc instanceof TMLADNotifiedEvent) { - event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADNotifiedEvent) tgc).getEventName())); - if (event == null) { - if (removedEvents.size() > 0) { - if (Conversion.containsStringInList(removedEvents, ((TMLADNotifiedEvent) tgc).getEventName())) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADNotifiedEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - warnings.add(ce); - activity.addElement(new TMLJunction("void junction", tgc)); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } - } else { - event.setNotified(true); - tmlnotifiedevent = new TMLNotifiedEvent("notified event", tgc); - tmlnotifiedevent.setEvent(event); - tmlnotifiedevent.setVariable(modifyString(((TMLADNotifiedEvent) tgc).getVariable())); - activity.addElement(tmlnotifiedevent); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlnotifiedevent, tgc); - } - - } else if (tgc instanceof TMLADWaitEvent) { - event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADWaitEvent) tgc).getEventName())); - if (event == null) { - if (removedEvents.size() > 0) { - if (Conversion.containsStringInList(removedEvents, ((TMLADWaitEvent) tgc).getEventName())) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWaitEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - warnings.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - activity.addElement(new TMLJunction("void junction", tgc)); - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - checkingErrors.add(ce); - } - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - checkingErrors.add(ce); - } - } else { - //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams()); - tmlwaitevent = new TMLWaitEvent("wait event", tgc); - tmlwaitevent.setEvent(event); - for (int i = 0; i < ((TMLADWaitEvent) tgc).realNbOfParams(); i++) { - tmp = modifyString(((TMLADWaitEvent) tgc).getRealParamValue(i)); - Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); - if (allVariables.size() > 0) { - for (int k = 0; k < allVariables.size(); k++) { - //TraceManager.addDev("Adding record: " + allVariables.get(k)); - tmlwaitevent.addParam(allVariables.get(k)); - } - } else { - //TraceManager.addDev("Adding param: " + tmp); - tmlwaitevent.addParam(tmp); - } - } - if (event.getNbOfParams() != tmlwaitevent.getNbOfParams()) { - //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " waitevent#:" + tmlwaitevent.getNbOfParams()); - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + ": wrong number of parameters"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else { - activity.addElement(tmlwaitevent); - listE.addCor(tmlwaitevent, tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - } - - } - - } else if (tgc instanceof TMLADWriteChannel) { - // Get channels - //TMLADWriteChannel wr = (TMLADWriteChannel) tgc; - channels = ((TMLADWriteChannel) tgc).getChannelsByName(); - boolean error = false; - for (int i = 0; i < channels.length; i++) { - //TraceManager.addDev("Getting from table " + tmltask.getName() + "/" +channels[i]); - channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i])); - if (channel == null) { - if (Conversion.containsStringInList(removedChannels, ((TMLADWriteChannel) tgc).getChannelName(i))) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWriteChannel) tgc).getChannelName(i) + " has been removed because the corresponding channel is not taken into account"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - warnings.add(ce); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - activity.addElement(new TMLJunction("void junction", tgc)); - } else { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel) tgc).getChannelName(i) + " is an unknown channel"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); - checkingErrors.add(ce); - } - error = true; - - } - } - if (!error) { - tmlwritechannel = new TMLWriteChannel("write channel", tgc); - tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel) tgc).getSamplesValue())); - tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm()); - for (int i = 0; i < channels.length; i++) { - channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i])); - tmlwritechannel.addChannel(channel); - } - //if (wr.isAttacker()){ - //channel = tmlm.getChannelByName(getAttackerChannel(channels[0])); - //tmlwritechannel.addChannel(channel); - //} - //add sec pattern - if (securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext()) != null) { - tmlwritechannel.securityPattern = securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext()); - int cur = Integer.valueOf(modifyString(((TMLADWriteChannel) tgc).getSamplesValue())); - int add = Integer.valueOf(tmlwritechannel.securityPattern.overhead); - if (!tmlwritechannel.securityPattern.nonce.equals("")) { - SecurityPattern nonce = securityPatterns.get(tmlwritechannel.securityPattern.nonce); - if (nonce != null) { - add = Integer.valueOf(nonce.overhead); - } - } - cur = cur + add; - tmlwritechannel.setNbOfSamples(Integer.toString(cur)); - } else if (!((TMLADWriteChannel) tgc).getSecurityContext().isEmpty()) { - //Throw error for missing security pattern - UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADWriteChannel) tgc).getSecurityContext() + " not found"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - if (tmltask.isAttacker()) { - tmlwritechannel.setAttacker(true); - } - activity.addElement(tmlwritechannel); - ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); - listE.addCor(tmlwritechannel, tgc); - } - } - } - - // Interconnection between elements - TGConnectorTMLAD tgco; - TGConnectingPoint p1, p2; - TMLActivityElement ae1, ae2; - TGComponent tgc1, tgc2, tgc3; - int j, index; - - iterator = list.listIterator(); - while (iterator.hasNext()) { - tgc = iterator.next(); - if (tgc instanceof TGConnectorTMLAD) { - tgco = (TGConnectorTMLAD) tgc; - p1 = tgco.getTGConnectingPointP1(); - p2 = tgco.getTGConnectingPointP2(); - - // Identification of connected components - tgc1 = null; - tgc2 = null; - for (j = 0; j < list.size(); j++) { - tgc3 = list.get(j); - if (tgc3.belongsToMe(p1)) { - tgc1 = tgc3; - } - if (tgc3.belongsToMe(p2)) { - tgc2 = tgc3; - } - } - - // Connecting tml modeling components - if ((tgc1 != null) && (tgc2 != null)) { - //ADComponent ad1, ad2; - ae1 = activity.findReferenceElement(tgc1); - ae2 = activity.findReferenceElement(tgc2); - - if ((ae1 != null) && (ae2 != null)) { - //Special case if "for loop" or if "choice" - - if (ae1 instanceof TMLForLoop) { - index = tgc1.indexOf(p1) - 1; - if (index == 0) { - ae1.addNext(0, ae2); - } else { - ae1.addNext(ae2); - } - - } else if (ae1 instanceof TMLChoice) { - index = tgc1.indexOf(p1) - 1; - //TraceManager.addDev("Adding next:" + ae2); - ae1.addNext(ae2); - //TraceManager.addDev("Adding guard:" + ((TMLADChoice)tgc1).getGuard(index)); - ((TMLChoice) ae1).addGuard(modifyString(((TMLADChoice) tgc1).getGuard(index))); - - } else if (ae1 instanceof TMLSequence) { - index = tgc1.indexOf(p1) - 1; - ((TMLSequence) ae1).addIndex(index); - ae1.addNext(ae2); - //TraceManager.addDev("Adding " + ae2 + " at index " + index); - - } else if (ae1 instanceof TMLRandomSequence) { - index = tgc1.indexOf(p1) - 1; - ((TMLRandomSequence) ae1).addIndex(index); - ae1.addNext(ae2); - //TraceManager.addDev("Adding " + ae2 + " at index " + index); - - } else { - ae1.addNext(ae2); - } - } - } - } - } - - - // Check that each "for" has two nexts - // Check that TMLChoice have compatible guards - // Check TML select evts - iterator = list.listIterator(); - while (iterator.hasNext()) { - tgc = iterator.next(); - - if ((tgc instanceof TMLADForLoop) || (tgc instanceof TMLADForStaticLoop)) { - ae1 = activity.findReferenceElement(tgc); - if (ae1 != null) { - if (ae1.getNbNext() != 2) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted for loop: a loop must have an internal behavior, and an exit behavior "); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - } - } else if (tgc instanceof TMLADChoice) { - tmlchoice = (TMLChoice) (activity.findReferenceElement(tgc)); - tmlchoice.orderGuards(); - - int nbNonDeter = tmlchoice.nbOfNonDeterministicGuard(); - int nbStocha = tmlchoice.nbOfStochasticGuard(); - if ((nbNonDeter > 0) && (nbStocha > 0)) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic and stochastic guards"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - int nb = Math.max(nbNonDeter, nbStocha); - if (nb > 0) { - nb = nb + tmlchoice.nbOfElseAndAfterGuards(); - if (nb != tmlchoice.getNbGuard()) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic/ stochastic and regular guards)"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - } - - if (tmlchoice.nbOfNonDeterministicGuard() > 0) { - /*if (!rndAdded) { - TMLAttribute tmlt = new TMLAttribute("rnd__0", new TMLType(TMLType.NATURAL)); - tmlt.initialValue = ""; - tmltask.addAttribute(tmlt); - rndAdded = true; - }*/ - } - if (tmlchoice.hasMoreThanOneElse()) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [else] guard"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } else if ((index = tmlchoice.getElseGuard()) > -1) { - index = tmlchoice.getElseGuard(); - if (index == 0) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have a regular guard"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - } - if (tmlchoice.hasMoreThanOneAfter()) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [after] guard"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - } - if (tgc instanceof TMLADSelectEvt) { - tmlselectevt = (TMLSelectEvt) (activity.findReferenceElement(tgc)); - if (!tmlselectevt.isARealSelectEvt()) { - UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'Select events' should be followed by only event receiving operators"); - ce.setTDiagramPanel(tadp); - ce.setTGComponent(tgc); - checkingErrors.add(ce); - } - } - - } - - // Sorting nexts elements of Sequence - for (j = 0; j < activity.nElements(); j++) { - ae1 = activity.get(j); - if (ae1 instanceof TMLSequence) { - ((TMLSequence) ae1).sortNexts(); - } - if (ae1 instanceof TMLRandomSequence) { - ((TMLRandomSequence) ae1).sortNexts(); - } - } - } +// +// private String modifyActionString(String _input) { +// int index = _input.indexOf("++"); +// boolean b1, b2; +// String tmp; +// +// if (index > -1) { +// tmp = _input.substring(0, index).trim(); +// +// b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]"); +// b2 = tmp.matches("\\w*"); +// if (b1 && b2) { +// return tmp + " = " + tmp + " + 1"; +// } +// } +// +// index = _input.indexOf("--"); +// if (index > -1) { +// tmp = _input.substring(0, index).trim(); +// +// b1 = (tmp.substring(0, 1)).matches("[a-zA-Z]"); +// b2 = tmp.matches("\\w*"); +// if (b1 && b2) { +// return tmp + " = " + tmp + " - 1"; +// } +// } +// +// return modifyString(_input); +// } +// +// private String modifyString(String _input) { +// return Conversion.replaceAllChar(_input, '.', "__"); +// } + + // Issue #69: Moved to class ActivityDiagram2TMLTranslator +// private void generateTaskActivityDiagrams(TMLTask tmltask) throws MalformedTMLDesignException { +// TMLActivity activity = tmltask.getActivityDiagram(); +// TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel) (activity.getReferenceObject()); +// +// //TraceManager.addDev("Generating activity diagram of:" + tmltask.getName()); +// +// // search for start state +// List<TGComponent> list = tadp.getComponentList(); +// Iterator<TGComponent> iterator = list.listIterator(); +// TGComponent tgc; +// TMLADStartState tss = null; +// int cptStart = 0; +// // boolean rndAdded = false; +// +// while (iterator.hasNext()) { +// tgc = iterator.next(); +// +// if (tgc instanceof TMLADStartState) { +// tss = (TMLADStartState) tgc; +// cptStart++; +// } +// } +// +// if (tss == null) { +// TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "No start state in the TML activity diagram of " + tmltask.getName()); +// ce.setTMLTask(tmltask); +// checkingErrors.add(ce); +// return; +// } +// +// if (cptStart > 1) { +// TMLCheckingError ce = new TMLCheckingError(CheckingError.BEHAVIOR_ERROR, "More than one start state in the TML activity diagram of " + tmltask.getName()); +// ce.setTMLTask(tmltask); +// checkingErrors.add(ce); +// return; +// } +// +// // Adding start state +// TMLStartState tmlss = new TMLStartState("start", tss); +// listE.addCor(tmlss, tss); +// activity.setFirst(tmlss); +// +// // Creation of other elements +// TMLChannel channel; +// String[] channels; +// TMLEvent event; +// TMLRequest request; +// +// TMLADRandom tmladrandom; +// TMLRandom tmlrandom; +// TMLActionState tmlaction; +// TMLChoice tmlchoice; +// TMLExecI tmlexeci; +// TMLExecIInterval tmlexecii; +// TMLExecC tmlexecc; +// TMLExecCInterval tmlexecci; +// TMLForLoop tmlforloop; +// TMLReadChannel tmlreadchannel; +// TMLSendEvent tmlsendevent; +// TMLSendRequest tmlsendrequest; +// TMLStopState tmlstopstate; +// TMLWaitEvent tmlwaitevent; +// TMLNotifiedEvent tmlnotifiedevent; +// TMLWriteChannel tmlwritechannel; +// TMLSequence tmlsequence; +// TMLRandomSequence tmlrsequence; +// TMLSelectEvt tmlselectevt; +// TMLDelay tmldelay; +// int staticLoopIndex = 0; +// String sl = "", tmp; +// TMLType tt; +// TMLAttribute tmlt; +// +// iterator = list.listIterator(); +// while (iterator.hasNext()) { +// tgc = iterator.next(); +// if (tgc.getCheckLatency()) { +// String name = tmltask.getName() + ":" + tgc.getName(); +// name = name.replaceAll(" ", ""); +// //TraceManager.addDev("To check " + name); +// if (tgc.getValue().contains("(")) { +// tmlm.addCheckedActivity(tgc, name + ":" + tgc.getValue().split("\\(")[0]); +// } else { +// if (tgc instanceof TMLADExecI) { +// tmlm.addCheckedActivity(tgc, ((TMLADExecI) tgc).getDelayValue()); +// } +// } +// } +// if (tgc instanceof TMLADActionState) { +// tmlaction = new TMLActionState("action", tgc); +// tmp = ((TMLADActionState) (tgc)).getAction(); +// tmp = modifyActionString(tmp); +// tmlaction.setAction(tmp); +// activity.addElement(tmlaction); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlaction, tgc); +// +// } else if (tgc instanceof TMLADRandom) { +// tmladrandom = (TMLADRandom) tgc; +// tmlrandom = new TMLRandom("random" + tmladrandom.getValue(), tgc); +// tmp = tmladrandom.getVariable(); +// tmp = modifyActionString(tmp); +// tmlrandom.setVariable(tmp); +// tmp = tmladrandom.getMinValue(); +// tmp = modifyActionString(tmp); +// tmlrandom.setMinValue(tmp); +// tmp = tmladrandom.getMaxValue(); +// tmp = modifyActionString(tmp); +// tmlrandom.setMaxValue(tmp); +// tmlrandom.setFunctionId(tmladrandom.getFunctionId()); +// activity.addElement(tmlrandom); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlrandom, tgc); +// +// } else if (tgc instanceof TMLADChoice) { +// tmlchoice = new TMLChoice("choice", tgc); +// // Guards are added at the same time as next activities +// activity.addElement(tmlchoice); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlchoice, tgc); +// +// } else if (tgc instanceof TMLADSelectEvt) { +// tmlselectevt = new TMLSelectEvt("select", tgc); +// activity.addElement(tmlselectevt); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlselectevt, tgc); +// +// } else if (tgc instanceof TMLADExecI) { +// tmlexeci = new TMLExecI("execi", tgc); +// tmlexeci.setAction(modifyString(((TMLADExecI) tgc).getDelayValue())); +// tmlexeci.setValue(((TMLADExecI) tgc).getDelayValue()); +// activity.addElement(tmlexeci); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlexeci, tgc); +// +// } else if (tgc instanceof TMLADExecIInterval) { +// tmlexecii = new TMLExecIInterval("execi", tgc); +// tmlexecii.setValue(tgc.getValue()); +// tmlexecii.setMinDelay(modifyString(((TMLADExecIInterval) tgc).getMinDelayValue())); +// tmlexecii.setMaxDelay(modifyString(((TMLADExecIInterval) tgc).getMaxDelayValue())); +// activity.addElement(tmlexecii); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlexecii, tgc); +// +// } else if (tgc instanceof TMLADEncrypt) { +// tmlexecc = new TMLExecC("encrypt_" + ((TMLADEncrypt) tgc).securityContext, tgc); +// activity.addElement(tmlexecc); +// SecurityPattern sp = securityPatterns.get(((TMLADEncrypt) tgc).securityContext); +// if (sp == null) { +// //Throw error for missing security pattern +// UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADEncrypt) tgc).securityContext + " not found"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } else { +// tmlexecc.securityPattern = sp; +// tmlexecc.setAction(Integer.toString(sp.encTime)); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// tmlm.securityTaskMap.get(sp).add(tmltask); +// listE.addCor(tmlexecc, tgc); +// } +// } else if (tgc instanceof TMLADDecrypt) { +// tmlexecc = new TMLExecC("decrypt_" + ((TMLADDecrypt) tgc).securityContext, tgc); +// activity.addElement(tmlexecc); +// SecurityPattern sp = securityPatterns.get(((TMLADDecrypt) tgc).securityContext); +// if (sp == null) { +// //Throw error for missing security pattern +// UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADDecrypt) tgc).securityContext + " not found"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } else { +// tmlexecc.securityPattern = sp; +// tmlexecc.setAction(Integer.toString(sp.decTime)); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlexecc, tgc); +// tmlm.securityTaskMap.get(sp).add(tmltask); +// } +// +// } else if (tgc instanceof TMLADExecC) { +// tmlexecc = new TMLExecC("execc", tgc); +// tmlexecc.setValue(((TMLADExecC) tgc).getDelayValue()); +// tmlexecc.setAction(modifyString(((TMLADExecC) tgc).getDelayValue())); +// activity.addElement(tmlexecc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlexecc, tgc); +// +// } else if (tgc instanceof TMLADExecCInterval) { +// tmlexecci = new TMLExecCInterval("execci", tgc); +// tmlexecci.setMinDelay(modifyString(((TMLADExecCInterval) tgc).getMinDelayValue())); +// tmlexecci.setMaxDelay(modifyString(((TMLADExecCInterval) tgc).getMaxDelayValue())); +// activity.addElement(tmlexecci); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlexecci, tgc); +// +// } else if (tgc instanceof TMLADDelay) { +// tmldelay = new TMLDelay("d-delay", tgc); +// tmldelay.setMinDelay(modifyString(((TMLADDelay) tgc).getDelayValue())); +// tmldelay.setMaxDelay(modifyString(((TMLADDelay) tgc).getDelayValue())); +// tmldelay.setUnit(((TMLADDelay) tgc).getUnit()); +// activity.addElement(tmldelay); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmldelay, tgc); +// +// } else if (tgc instanceof TMLADDelayInterval) { +// tmldelay = new TMLDelay("nd-delay", tgc); +// tmldelay.setMinDelay(modifyString(((TMLADDelayInterval) tgc).getMinDelayValue())); +// tmldelay.setMaxDelay(modifyString(((TMLADDelayInterval) tgc).getMaxDelayValue())); +// tmldelay.setUnit(((TMLADDelayInterval) tgc).getUnit()); +// activity.addElement(tmldelay); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmldelay, tgc); +// +// } else if (tgc instanceof TMLADForLoop) { +// tmlforloop = new TMLForLoop("loop", tgc); +// tmlforloop.setInit(modifyString(((TMLADForLoop) tgc).getInit())); +// tmp = ((TMLADForLoop) tgc).getCondition(); +// /*if (tmp.trim().length() == 0) { +// tmp = "true"; +// }*/ +// tmlforloop.setCondition(modifyString(tmp)); +// tmlforloop.setIncrement(modifyActionString(((TMLADForLoop) tgc).getIncrement())); +// +// activity.addElement(tmlforloop); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlforloop, tgc); +// +// } else if (tgc instanceof TMLADForStaticLoop) { +// sl = "loop__" + staticLoopIndex; +// tt = new TMLType(TMLType.NATURAL); +// tmlt = new TMLAttribute(sl, tt); +// tmlt.initialValue = "0"; +// tmltask.addAttribute(tmlt); +// tmlforloop = new TMLForLoop(sl, tgc); +// tmlforloop.setInit(sl + " = 0"); +// tmlforloop.setCondition(sl + "<" + modifyString(tgc.getValue())); +// tmlforloop.setIncrement(sl + " = " + sl + " + 1"); +// activity.addElement(tmlforloop); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlforloop, tgc); +// staticLoopIndex++; +// +// } else if (tgc instanceof TMLADForEverLoop) { +// /*sl = "loop__" + staticLoopIndex; +// tt = new TMLType(TMLType.NATURAL); +// tmlt = new TMLAttribute(sl, tt); +// tmlt.initialValue = "0"; +// tmltask.addAttribute(tmlt);*/ +// tmlforloop = new TMLForLoop("infiniteloop", tgc); +// tmlforloop.setInit(""); +// tmlforloop.setCondition(""); +// tmlforloop.setIncrement(""); +// tmlforloop.setInfinite(true); +// activity.addElement(tmlforloop); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlforloop, tgc); +// staticLoopIndex++; +// +// tmlstopstate = new TMLStopState("Stop after infinite loop", null); +// activity.addElement(tmlstopstate); +// tmlforloop.addNext(tmlstopstate); +// +// } else if (tgc instanceof TMLADSequence) { +// tmlsequence = new TMLSequence("seq", tgc); +// activity.addElement(tmlsequence); +// listE.addCor(tmlsequence, tgc); +// +// } else if (tgc instanceof TMLADUnorderedSequence) { +// tmlrsequence = new TMLRandomSequence("rseq", tgc); +// activity.addElement(tmlrsequence); +// listE.addCor(tmlrsequence, tgc); +// +// } else if (tgc instanceof TMLADReadChannel) { +// // Get the channel +// //TMLADReadChannel rd = (TMLADReadChannel) tgc; +// channel = tmlm.getChannelByName(getFromTable(tmltask, ((TMLADReadChannel) tgc).getChannelName())); +// /*if (rd.isAttacker()){ +// channel = tmlm.getChannelByName(getAttackerChannel(((TMLADReadChannel)tgc).getChannelName())); +// }*/ +// if (channel == null) { +// if (Conversion.containsStringInList(removedChannels, ((TMLADReadChannel) tgc).getChannelName())) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADReadChannel) tgc).getChannelName() + " has been removed because the corresponding channel is not taken into account"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// warnings.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// activity.addElement(new TMLJunction("void junction", tgc)); +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADReadChannel) tgc).getChannelName() + " is an unknown channel"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// checkingErrors.add(ce); +// } +// +// } else { +// tmlreadchannel = new TMLReadChannel("read channel", tgc); +// tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel) tgc).getSamplesValue())); +// tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm()); +// tmlreadchannel.addChannel(channel); +// //security pattern +// if (securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()) != null) { +// tmlreadchannel.securityPattern = securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()); +// //NbOfSamples will increase due to extra overhead from MAC +// int cur = 1; +// try { +// cur = Integer.valueOf(modifyString(((TMLADReadChannel) tgc).getSamplesValue())); +// } catch (NumberFormatException e) { +// } catch (NullPointerException e) { +// } +// int add = Integer.valueOf(tmlreadchannel.securityPattern.overhead); +// if (!tmlreadchannel.securityPattern.nonce.equals("")) { +// SecurityPattern nonce = securityPatterns.get(tmlreadchannel.securityPattern.nonce); +// if (nonce != null) { +// add = Integer.valueOf(nonce.overhead); +// } +// } +// cur = cur + add; +// tmlreadchannel.setNbOfSamples(Integer.toString(cur)); +// } 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"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// if (tmltask.isAttacker()) { +// tmlreadchannel.setAttacker(true); +// } +// activity.addElement(tmlreadchannel); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlreadchannel, tgc); +// } +// } else if (tgc instanceof TMLADSendEvent) { +// event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADSendEvent) tgc).getEventName())); +// if (event == null) { +// if (Conversion.containsStringInList(removedEvents, ((TMLADSendEvent) tgc).getEventName())) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// warnings.add(ce); +// activity.addElement(new TMLJunction("void junction", tgc)); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + " is an unknown event"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } +// } else { +// tmlsendevent = new TMLSendEvent("send event", tgc); +// tmlsendevent.setEvent(event); +// +// for (int i = 0; i < ((TMLADSendEvent) tgc).realNbOfParams(); i++) { +// tmp = modifyString(((TMLADSendEvent) tgc).getRealParamValue(i)); +// Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); +// if (allVariables.size() > 0) { +// for (int k = 0; k < allVariables.size(); k++) { +// //TraceManager.addDev("Adding record: " + allVariables.get(k)); +// tmlsendevent.addParam(allVariables.get(k)); +// } +// } else { +// //TraceManager.addDev("Adding param: " + tmp); +// tmlsendevent.addParam(tmp); +// } +// } +// if (event.getNbOfParams() != tmlsendevent.getNbOfParams()) { +// //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " sendevent#:" + tmlsendevent.getNbOfParams()); +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendEvent) tgc).getEventName() + ": wrong number of parameters"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// activity.addElement(tmlsendevent); +// listE.addCor(tmlsendevent, tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// } +// } +// +// } else if (tgc instanceof TMLADSendRequest) { +// request = tmlm.getRequestByName(getFromTable(tmltask, ((TMLADSendRequest) tgc).getRequestName())); +// if (request == null) { +// if (Conversion.containsStringInList(removedRequests, ((TMLADSendRequest) tgc).getRequestName())) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADSendRequest) tgc).getRequestName() + " has been removed because the corresponding request is not taken into account"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// warnings.add(ce); +// activity.addElement(new TMLJunction("void junction", tgc)); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + " is an unknown request"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } +// } else { +// tmlsendrequest = new TMLSendRequest("send request", tgc); +// tmlsendrequest.setRequest(request); +// for (int i = 0; i < ((TMLADSendRequest) tgc).realNbOfParams(); i++) { +// tmp = modifyString(((TMLADSendRequest) tgc).getRealParamValue(i)); +// Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); +// if (allVariables.size() > 0) { +// for (int k = 0; k < allVariables.size(); k++) { +// TraceManager.addDev("Adding record: " + allVariables.get(k)); +// tmlsendrequest.addParam(allVariables.get(k)); +// request.addParamName(allVariables.get(k)); +// } +// } else { +// //TraceManager.addDev("Adding param: " + tmp); +// tmlsendrequest.addParam(tmp); +// request.addParamName(tmp); +// } +// } +// if (request.getNbOfParams() != tmlsendrequest.getNbOfParams()) { +// //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " sendrequest#:" + tmlsendrequest.getNbOfParams()); +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADSendRequest) tgc).getRequestName() + ": wrong number of parameters"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// activity.addElement(tmlsendrequest); +// listE.addCor(tmlsendrequest, tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// } +// } +// +// } else if (tgc instanceof TMLADReadRequestArg) { +// request = tmlm.getRequestToMe(tmltask); +// if (request == null) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "This task is not requested: cannot use \"reading request arg\" operator"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// tmlaction = new TMLActionState("action reading args", tgc); +// String act = ""; +// int cpt = 1; +// for (int i = 0; i < ((TMLADReadRequestArg) tgc).realNbOfParams(); i++) { +// tmp = modifyString(((TMLADReadRequestArg) tgc).getRealParamValue(i)); +// Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); +// +// if (allVariables.size() > 0) { +// for (int k = 0; k < allVariables.size(); k++) { +// //TraceManager.addDev("Adding record: " + allVariables.get(k)); +// if (cpt != 1) { +// act += "$"; +// } +// act += allVariables.get(k) + " = arg" + cpt + "__req"; +// cpt++; +// } +// } else { +// //TraceManager.addDev("Adding param: " + tmp); +// if (cpt != 1) { +// act += "$"; +// } +// act += tmp + " = arg" + cpt + "__req"; +// cpt++; +// } +// } +// if (request.getNbOfParams() != (cpt - 1)) { +// //TraceManager.addDev("ERROR : request#:" + request.getNbOfParams() + " read request arg#:" + (cpt-1)); +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Wrong number of parameters in \"reading request arg\" operator"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// //TraceManager.addDev("Adding action = " + act); +// tmlaction.setAction(act); +// activity.addElement(tmlaction); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlaction, tgc); +// } +// +// +// } +// +// } else if (tgc instanceof TMLADStopState) { +// tmlstopstate = new TMLStopState("stop state", tgc); +// activity.addElement(tmlstopstate); +// listE.addCor(tmlstopstate, tgc); +// +// } else if (tgc instanceof TMLADNotifiedEvent) { +// event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADNotifiedEvent) tgc).getEventName())); +// if (event == null) { +// if (removedEvents.size() > 0) { +// if (Conversion.containsStringInList(removedEvents, ((TMLADNotifiedEvent) tgc).getEventName())) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADNotifiedEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// warnings.add(ce); +// activity.addElement(new TMLJunction("void junction", tgc)); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADNotifiedEvent) tgc).getEventName() + " is an unknown event"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } +// } else { +// event.setNotified(true); +// tmlnotifiedevent = new TMLNotifiedEvent("notified event", tgc); +// tmlnotifiedevent.setEvent(event); +// tmlnotifiedevent.setVariable(modifyString(((TMLADNotifiedEvent) tgc).getVariable())); +// activity.addElement(tmlnotifiedevent); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlnotifiedevent, tgc); +// } +// +// } else if (tgc instanceof TMLADWaitEvent) { +// event = tmlm.getEventByName(getFromTable(tmltask, ((TMLADWaitEvent) tgc).getEventName())); +// if (event == null) { +// if (removedEvents.size() > 0) { +// if (Conversion.containsStringInList(removedEvents, ((TMLADWaitEvent) tgc).getEventName())) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWaitEvent) tgc).getEventName() + " has been removed because the corresponding event is not taken into account"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// warnings.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// activity.addElement(new TMLJunction("void junction", tgc)); +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// checkingErrors.add(ce); +// } +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + " is an unknown event"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// checkingErrors.add(ce); +// } +// } else { +// //TraceManager.addDev("Nb of param of event:" + event.getNbOfParams()); +// tmlwaitevent = new TMLWaitEvent("wait event", tgc); +// tmlwaitevent.setEvent(event); +// for (int i = 0; i < ((TMLADWaitEvent) tgc).realNbOfParams(); i++) { +// tmp = modifyString(((TMLADWaitEvent) tgc).getRealParamValue(i)); +// Vector<String> allVariables = tmltask.getAllAttributesStartingWith(tmp + "__"); +// if (allVariables.size() > 0) { +// for (int k = 0; k < allVariables.size(); k++) { +// //TraceManager.addDev("Adding record: " + allVariables.get(k)); +// tmlwaitevent.addParam(allVariables.get(k)); +// } +// } else { +// //TraceManager.addDev("Adding param: " + tmp); +// tmlwaitevent.addParam(tmp); +// } +// } +// if (event.getNbOfParams() != tmlwaitevent.getNbOfParams()) { +// //TraceManager.addDev("ERROR : event#:" + event.getNbOfParams() + " waitevent#:" + tmlwaitevent.getNbOfParams()); +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWaitEvent) tgc).getEventName() + ": wrong number of parameters"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// } else { +// activity.addElement(tmlwaitevent); +// listE.addCor(tmlwaitevent, tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// } +// +// } +// +// } else if (tgc instanceof TMLADWriteChannel) { +// // Get channels +// //TMLADWriteChannel wr = (TMLADWriteChannel) tgc; +// channels = ((TMLADWriteChannel) tgc).getChannelsByName(); +// boolean error = false; +// for (int i = 0; i < channels.length; i++) { +// //TraceManager.addDev("Getting from table " + tmltask.getName() + "/" +channels[i]); +// channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i])); +// if (channel == null) { +// if (Conversion.containsStringInList(removedChannels, ((TMLADWriteChannel) tgc).getChannelName(i))) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "A call to " + ((TMLADWriteChannel) tgc).getChannelName(i) + " has been removed because the corresponding channel is not taken into account"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// warnings.add(ce); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// activity.addElement(new TMLJunction("void junction", tgc)); +// } else { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, ((TMLADWriteChannel) tgc).getChannelName(i) + " is an unknown channel"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.UNKNOWN); +// checkingErrors.add(ce); +// } +// error = true; +// +// } +// } +// if (!error) { +// tmlwritechannel = new TMLWriteChannel("write channel", tgc); +// tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel) tgc).getSamplesValue())); +// tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm()); +// for (int i = 0; i < channels.length; i++) { +// channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i])); +// tmlwritechannel.addChannel(channel); +// } +// //if (wr.isAttacker()){ +// //channel = tmlm.getChannelByName(getAttackerChannel(channels[0])); +// //tmlwritechannel.addChannel(channel); +// //} +// //add sec pattern +// if (securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext()) != null) { +// tmlwritechannel.securityPattern = securityPatterns.get(((TMLADWriteChannel) tgc).getSecurityContext()); +// int cur = Integer.valueOf(modifyString(((TMLADWriteChannel) tgc).getSamplesValue())); +// int add = Integer.valueOf(tmlwritechannel.securityPattern.overhead); +// if (!tmlwritechannel.securityPattern.nonce.equals("")) { +// SecurityPattern nonce = securityPatterns.get(tmlwritechannel.securityPattern.nonce); +// if (nonce != null) { +// add = Integer.valueOf(nonce.overhead); +// } +// } +// cur = cur + add; +// tmlwritechannel.setNbOfSamples(Integer.toString(cur)); +// } else if (!((TMLADWriteChannel) tgc).getSecurityContext().isEmpty()) { +// //Throw error for missing security pattern +// UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Security Pattern " + ((TMLADWriteChannel) tgc).getSecurityContext() + " not found"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// if (tmltask.isAttacker()) { +// tmlwritechannel.setAttacker(true); +// } +// activity.addElement(tmlwritechannel); +// ((BasicErrorHighlight) tgc).setStateAction(ErrorHighlight.OK); +// listE.addCor(tmlwritechannel, tgc); +// } +// } +// } +// +// // Interconnection between elements +// TGConnectorTMLAD tgco; +// TGConnectingPoint p1, p2; +// TMLActivityElement ae1, ae2; +// TGComponent tgc1, tgc2, tgc3; +// int j, index; +// +// iterator = list.listIterator(); +// while (iterator.hasNext()) { +// tgc = iterator.next(); +// if (tgc instanceof TGConnectorTMLAD) { +// tgco = (TGConnectorTMLAD) tgc; +// p1 = tgco.getTGConnectingPointP1(); +// p2 = tgco.getTGConnectingPointP2(); +// +// // Identification of connected components +// tgc1 = null; +// tgc2 = null; +// for (j = 0; j < list.size(); j++) { +// tgc3 = list.get(j); +// if (tgc3.belongsToMe(p1)) { +// tgc1 = tgc3; +// } +// if (tgc3.belongsToMe(p2)) { +// tgc2 = tgc3; +// } +// } +// +// // Connecting tml modeling components +// if ((tgc1 != null) && (tgc2 != null)) { +// //ADComponent ad1, ad2; +// ae1 = activity.findReferenceElement(tgc1); +// ae2 = activity.findReferenceElement(tgc2); +// +// if ((ae1 != null) && (ae2 != null)) { +// //Special case if "for loop" or if "choice" +// +// if (ae1 instanceof TMLForLoop) { +// index = tgc1.indexOf(p1) - 1; +// if (index == 0) { +// ae1.addNext(0, ae2); +// } else { +// ae1.addNext(ae2); +// } +// +// } else if (ae1 instanceof TMLChoice) { +// index = tgc1.indexOf(p1) - 1; +// //TraceManager.addDev("Adding next:" + ae2); +// ae1.addNext(ae2); +// //TraceManager.addDev("Adding guard:" + ((TMLADChoice)tgc1).getGuard(index)); +// ((TMLChoice) ae1).addGuard(modifyString(((TMLADChoice) tgc1).getGuard(index))); +// +// } else if (ae1 instanceof TMLSequence) { +// index = tgc1.indexOf(p1) - 1; +// ((TMLSequence) ae1).addIndex(index); +// ae1.addNext(ae2); +// //TraceManager.addDev("Adding " + ae2 + " at index " + index); +// +// } else if (ae1 instanceof TMLRandomSequence) { +// index = tgc1.indexOf(p1) - 1; +// ((TMLRandomSequence) ae1).addIndex(index); +// ae1.addNext(ae2); +// //TraceManager.addDev("Adding " + ae2 + " at index " + index); +// +// } else { +// ae1.addNext(ae2); +// } +// } +// } +// } +// } +// +// +// // Check that each "for" has two nexts +// // Check that TMLChoice have compatible guards +// // Check TML select evts +// iterator = list.listIterator(); +// while (iterator.hasNext()) { +// tgc = iterator.next(); +// +// if ((tgc instanceof TMLADForLoop) || (tgc instanceof TMLADForStaticLoop)) { +// ae1 = activity.findReferenceElement(tgc); +// if (ae1 != null) { +// if (ae1.getNbNext() != 2) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted for loop: a loop must have an internal behavior, and an exit behavior "); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// } +// } else if (tgc instanceof TMLADChoice) { +// tmlchoice = (TMLChoice) (activity.findReferenceElement(tgc)); +// tmlchoice.orderGuards(); +// +// int nbNonDeter = tmlchoice.nbOfNonDeterministicGuard(); +// int nbStocha = tmlchoice.nbOfStochasticGuard(); +// if ((nbNonDeter > 0) && (nbStocha > 0)) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic and stochastic guards"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// int nb = Math.max(nbNonDeter, nbStocha); +// if (nb > 0) { +// nb = nb + tmlchoice.nbOfElseAndAfterGuards(); +// if (nb != tmlchoice.getNbGuard()) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formatted choice: it has both non-determinitic/ stochastic and regular guards)"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// } +// +// if (tmlchoice.nbOfNonDeterministicGuard() > 0) { +// /*if (!rndAdded) { +// TMLAttribute tmlt = new TMLAttribute("rnd__0", new TMLType(TMLType.NATURAL)); +// tmlt.initialValue = ""; +// tmltask.addAttribute(tmlt); +// rndAdded = true; +// }*/ +// } +// if (tmlchoice.hasMoreThanOneElse()) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [else] guard"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } else if ((index = tmlchoice.getElseGuard()) > -1) { +// index = tmlchoice.getElseGuard(); +// if (index == 0) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have a regular guard"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// } +// if (tmlchoice.hasMoreThanOneAfter()) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Choice should have only one [after] guard"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// } +// if (tgc instanceof TMLADSelectEvt) { +// tmlselectevt = (TMLSelectEvt) (activity.findReferenceElement(tgc)); +// if (!tmlselectevt.isARealSelectEvt()) { +// UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'Select events' should be followed by only event receiving operators"); +// ce.setTDiagramPanel(tadp); +// ce.setTGComponent(tgc); +// checkingErrors.add(ce); +// } +// } +// +// } +// +// // Sorting nexts elements of Sequence +// for (j = 0; j < activity.nElements(); j++) { +// ae1 = activity.get(j); +// if (ae1 instanceof TMLSequence) { +// ((TMLSequence) ae1).sortNexts(); +// } +// if (ae1 instanceof TMLRandomSequence) { +// ((TMLRandomSequence) ae1).sortNexts(); +// } +// } +// } public TMLMapping<TGComponent> translateToTMLMapping() { tmlm = new TMLModeling<>(true); @@ -2691,6 +2772,8 @@ public class GTMLModeling { // Syntax has been checked -> splitting ads // The splitting works only if there is no other operations than sequences and references to ADs/SDs // between forks and joins + + // Issue #69; Unused TMLCPJunction tmlcp.splitADs(); TraceManager.addDev("<--- TMLCP modeling:"); @@ -3078,7 +3161,8 @@ public class GTMLModeling { tmlcp.correctReferences(); //Update references to the right activity and sequence diagrams //tmlcp.generateNexts(); // Add nexts elements to CPElements //tmlcp.removeADConnectors(); // Remove connectors since nexts have been filled - tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD + // Issue #69; Unused TMLCPJunction + //tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD /*for( TMLCPSequenceDiagram seqDiag: tmlcp.getCPSequenceDiagrams() ) { TraceManager.addDev( "**********" ); @@ -3096,7 +3180,7 @@ public class GTMLModeling { throws MalformedTMLDesignException { tmltranslator.tmlcp.TMLCPStart start; tmltranslator.tmlcp.TMLCPStop stop; - tmltranslator.tmlcp.TMLCPJunction junction; + // tmltranslator.tmlcp.TMLCPJunction junction; tmltranslator.tmlcp.TMLCPJoin join; tmltranslator.tmlcp.TMLCPFork fork; tmltranslator.tmlcp.TMLCPChoice choice; @@ -3157,11 +3241,12 @@ public class GTMLModeling { refAD = new tmltranslator.tmlcp.TMLCPRefAD(compID, component); AD.addTMLCPElement(refAD); } - if (component instanceof ui.tmlcp.TMLCPJunction) { - //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() ); - junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component); - AD.addTMLCPElement(junction); - } + // Issue #69; Unused TMLCPJunction +// if (component instanceof ui.tmlcp.TMLCPJunction) { +// //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() ); +// junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component); +// AD.addTMLCPElement(junction); +// } if (component instanceof ui.tmlcp.TMLCPJoin) { //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() ); join = new tmltranslator.tmlcp.TMLCPJoin(compID, component); @@ -3846,23 +3931,23 @@ public class GTMLModeling { } return ""; } - - public String getFromTable(TMLTask task, String s) { - //TraceManager.addDev("TABLE GET: Getting from task=" + task.getName() + " element=" + s); - - if (table == null) { - return s; - } - - String ret = table.get(task.getName() + "/" + s); - //TraceManager.addDev("Returning=" + ret); - - if (ret == null) { - return s; - } - - return ret; - } +// +// public String getFromTable(TMLTask task, String s) { +// //TraceManager.addDev("TABLE GET: Getting from task=" + task.getName() + " element=" + s); +// +// if (table == null) { +// return s; +// } +// +// String ret = table.get(task.getName() + "/" + s); +// //TraceManager.addDev("Returning=" + ret); +// +// if (ret == null) { +// return s; +// } +// +// return ret; +// } public void removeActionsWithRecords() { //TraceManager.addDev("Reworking actions with records"); diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index cb402e28879a0b22960c755942723c46cf14321f..a103aa2c8e02f3c127fc4a2c8ad652c2e596e354 100644 --- a/src/main/java/ui/GTURTLEModeling.java +++ b/src/main/java/ui/GTURTLEModeling.java @@ -58,8 +58,6 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import proverifspec.ProVerifOutputAnalyzer; -import proverifspec.ProVerifQueryAuthResult; -import proverifspec.ProVerifQueryResult; import proverifspec.ProVerifSpec; import req.ebrdd.EBRDD; import sddescription.HMSC; @@ -745,11 +743,11 @@ outerloop: List<HwLink> links = map.getTMLArchitecture().getHwLinks(); List<HwNode> found = new ArrayList<HwNode>(); List<HwNode> done = new ArrayList<HwNode>(); - List<HwNode> path = new ArrayList<HwNode>(); + //List<HwNode> path = new ArrayList<HwNode>(); HwExecutionNode node1 = (HwExecutionNode) map.getHwNodeOf(t1); - Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>(); + //Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>(); for (HwLink link : links) { if (link.hwnode == node1) { found.add(link.bus); @@ -820,7 +818,7 @@ outerloop: TraceManager.addDev("Found firewall " + firewallNode.getName()); TMLCPrimitiveComponent firewallComp = null; TMLADStartState adStart = null; - TMLADForEverLoop adLoop = null; + //TMLADForEverLoop adLoop = null; TMLADChoice adChoice = null; TMLADChoice adChoice2 = null; TMLADChoice adChoiceMain = null; @@ -1335,7 +1333,7 @@ outerloop: xpos = wr.getX(); ypos = wr.getY(); fromStart = tad.findTGConnectorEndingAt(wr.getTGConnectingPointAtIndex(0)); - TGConnectingPoint point = fromStart.getTGConnectingPointP2(); + //TGConnectingPoint point = fromStart.getTGConnectingPointP2(); int yShift = 50; TMLADSendRequest sendreq = new TMLADSendRequest(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad); @@ -2519,7 +2517,7 @@ memloop: } // Assume the inputData is in AUT format: generated by RTL or CADP - public String performProjection(String inputData, LinkedList<TClassAndGateDS> gates) { + public String performProjection(String inputData, List<TClassAndGateDS> gates) { StringBuffer result = new StringBuffer(""); StringReader sr = new StringReader(inputData); BufferedReader br = new BufferedReader(sr); @@ -2941,7 +2939,7 @@ memloop: // BUILDING A TURTLE MODELING AND CHECKING IT - public boolean checkTURTLEModeling(LinkedList<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) { + public boolean checkTURTLEModeling(List<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) { // Builds a TURTLE modeling from diagrams //warnings = new Vector(); //checkingErrors = null; @@ -2981,7 +2979,7 @@ memloop: } // BUILDING An AVATAR Design AND CHECKING IT - public boolean checkAvatarDesign(LinkedList<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) { + public boolean checkAvatarDesign( List<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) { // Builds a TURTLE modeling from diagrams //warnings = new Vector(); //checkingErrors = null; @@ -3043,14 +3041,14 @@ memloop: } // Building the list of all states in the mutex - LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex(); + List<TGComponent> compInMutex = adp.getListOfComponentsInMutex(); TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size()); if (compInMutex.size() == 0) { return -2; } - LinkedList<TGComponent> comps; + List<TGComponent> comps; boolean found; int nbOfFound; int cpt = 0; @@ -3301,7 +3299,7 @@ memloop: if (tgc instanceof AvatarBDBlock) { AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); s.append(asmdp.saveInXML()); - LinkedList<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList(); + List<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList(); for (AvatarBDBlock b : list) { asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue()); s.append(asmdp.saveInXML()); @@ -5865,6 +5863,7 @@ memloop: String nameTab; NodeList diagramNl; int indexDesign; + int indexTab = 0; nameTab = elt.getAttribute("nameTab"); @@ -5880,7 +5879,8 @@ memloop: if (elt.getTagName().compareTo("ELNDiagramPanel") == 0) { // Class diagram TraceManager.addDev("Loading ELN"); - loadELNDiagram(elt, indexDesign); + loadELNDiagram(elt, indexDesign, indexTab); + indexTab++; TraceManager.addDev("End loading ELN"); } } @@ -6387,8 +6387,7 @@ memloop: loadDiagram(elt, tdp); } - public void loadSysCAMSDiagram(Element elt, int indexDesign, int indexTab) - throws MalformedModelingException, SAXException { + public void loadSysCAMSDiagram(Element elt, int indexDesign, int indexTab) throws MalformedModelingException, SAXException { String name; name = elt.getAttribute("name"); @@ -6404,15 +6403,18 @@ memloop: loadDiagram(elt, tdp); } - public void loadELNDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + public void loadELNDiagram(Element elt, int indexDesign, int indexTab) throws MalformedModelingException, SAXException { String name; - TDiagramPanel tdp; - // class diagram name name = elt.getAttribute("name"); - mgui.setELNDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); - tdp.setName(name); + mgui.createELN(indexDesign, name); + + TDiagramPanel tdp = mgui.getELNPanel(indexDesign, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); loadDiagram(elt, tdp); } @@ -7175,7 +7177,7 @@ memloop: boolean latencyCheck = false; boolean invariant = false; boolean breakpoint = false; - boolean hidden = false; + //boolean hidden = false; boolean masterMutex = false; boolean enable = true; @@ -7201,8 +7203,8 @@ memloop: } else if (elt.getTagName().equals("infoparam")) { myName = elt.getAttribute("name"); myValue = elt.getAttribute("value"); - } else if (elt.getTagName().equals("hidden")) { - hidden = elt.getAttribute("value").equals("true"); +// } else if (elt.getTagName().equals("hidden")) { +// hidden = elt.getAttribute("value").equals("true"); } else if (elt.getTagName().equals("enabled")) { enable = elt.getAttribute("value").equals("true"); } else if (elt.getTagName().equals("TGConnectingPoint")) { @@ -7893,7 +7895,7 @@ memloop: dp2 = art.getDesignPanel(); final Iterator<TGComponent> iterator2 = dp2.tcdp.getComponentList().listIterator(); - LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>(); + List<TClassInterface> tclasses = new LinkedList<TClassInterface>(); while (iterator2.hasNext()) { tgc = iterator2.next(); if (tgc instanceof TClassInterface) { diff --git a/src/main/java/ui/ICDElementVisitor.java b/src/main/java/ui/ICDElementVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..2ccfa5f361707c74a7df2c923b162cf5d4c8e332 --- /dev/null +++ b/src/main/java/ui/ICDElementVisitor.java @@ -0,0 +1,6 @@ +package ui; + +public interface ICDElementVisitor { + + boolean visit( CDElement element ); +} diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index 891aa6172d0fe629ba288660a992fcb9f4e6699b..86f669307489ba4789cce0fe8d35032fd349bddb 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -68,6 +68,7 @@ import ui.avatarsmd.AvatarSMDPanel; import ui.cd.TClassDiagramPanel; import ui.diplodocusmethodology.DiplodocusMethodologyDiagramPanel; import ui.ebrdd.EBRDDPanel; +import ui.eln.ELNDiagramPanel; import ui.file.*; import ui.ftd.FaultTreeDiagramPanel; import ui.interactivesimulation.JFrameInteractiveSimulation; @@ -110,8 +111,6 @@ import java.util.*; import java.util.List; import java.util.concurrent.ConcurrentHashMap; -import static myutil.FileUtils.checkFileForOpen; - // AVATAR /** @@ -172,7 +171,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per public KeyListener keyHandler; // Validation - public LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); + public List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); // Status bar private JLabel status; @@ -1103,7 +1102,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per mainTabbedPane.add(sccdp.tabbedPane, index); mainTabbedPane.setToolTipTextAt(index, "Open SystemC-AMS design diagrams"); mainTabbedPane.setTitleAt(index, name); - mainTabbedPane.setIconAt(index, IconManager.imgic60); + mainTabbedPane.setIconAt(index, IconManager.imgic1208); //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams"); sccdp.init(); //ystem.out.println("Design added"); @@ -1119,7 +1118,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per mainTabbedPane.add(elndp.tabbedPane, index); mainTabbedPane.setToolTipTextAt(index, "Open ELN design diagrams"); mainTabbedPane.setTitleAt(index, name); - mainTabbedPane.setIconAt(index, IconManager.imgic60); + mainTabbedPane.setIconAt(index, IconManager.imgic1208); //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams"); elndp.init(); //ystem.out.println("Design added"); @@ -1937,7 +1936,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per public void newELN() { //TraceManager.addDev("NEW DESIGN"); addELNDesignPanel("ELN", -1); - tabs.elementAt(tabs.size() - 1).tabbedPane.setSelectedIndex(0); +// tabs.elementAt(tabs.size() - 1).tabbedPane.setSelectedIndex(0); mainTabbedPane.setSelectedIndex(tabs.size() - 1); //paneAction(null); //frame.repaint(); @@ -2430,7 +2429,6 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per public void updateLastOpenFile(File file) { if (ConfigurationTTool.LastOpenFileDefined) { - ConfigurationTTool.LastOpenFile = file.getPath(); if (ConfigurationTTool.LastOpenFile.contains(".ttool" + File.separator)) { int last = 0; @@ -2500,28 +2498,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per // open the new TURTLE modeling newTurtleModeling(); - //TraceManager.addDev("Loading"); - // load the new TURTLE modeling - // Issue #41: Moved to common method loadModels(gtm.mergeTURTLEGModeling(oldmodeling, s), "merged"); - // try { - // //TraceManager.addDev("Merging"); - // gtm.enableUndo(false); - // gtm.loadModelingFromXML(gtm.mergeTURTLEGModeling(oldmodeling, s)); - // gtm.enableUndo(true); - // gtm.saveOperation(getCurrentSelectedPoint()); - // //gtm.saveOperation(tcdp); - // frame.setTitle("TTool: " + file.getAbsolutePath()); - // makeLotosFile(); - // - // if (gtm.getCheckingErrors().size() > 0) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // } - // - // } catch (MalformedModelingException mme) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // } - // dtree.forceUpdate(); + } } @@ -2566,91 +2544,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per jfc.setAcceptAllFileFilterUsed(false); FileNameExtensionFilter filter = new FileNameExtensionFilter("TTool project", "ttool"); jfc.setFileFilter(filter); - /*jfc.addMouseListener(new MouseListener() { - - @Override - public void mouseClicked(MouseEvent arg0) { - - if(arg0.getClickCount() == 2) { - File file = jfc.getSelectedFile(); - if(!FileUtils.getExtension(file).equals("ttool")) { - jfc.setCurrentDirectory(file); - jfc.rescanCurrentDirectory(); - } - else { - jfc.approveSelection(); - } - } - } - - @Override - public void mouseEntered(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseExited(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - });*/ } else { jfc.resetChoosableFileFilters(); jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); jfc.setAcceptAllFileFilterUsed(false); FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml"); jfc.setFileFilter(filter); - /*jfc.addMouseListener(new MouseListener() { - - @Override - public void mouseClicked(MouseEvent arg0) { - - if(arg0.getClickCount() == 2) { - File file = jfc.getSelectedFile(); - if(!FileUtils.getExtension(file).equals("ttool")) { - jfc.setCurrentDirectory(file); - jfc.rescanCurrentDirectory(); - } - } - } - - @Override - public void mouseEntered(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseExited(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - - @Override - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - return; - } - });*/ } int returnVal = jfc.showOpenDialog(frame); @@ -2755,6 +2654,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } public void openLastProject(int id) { + // Check if a current modeling is opened boolean b = actions[TGUIAction.ACT_SAVE].isEnabled(); if (b) { @@ -2764,11 +2664,15 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } file = new File(ConfigurationTTool.LastOpenFiles[id]); + //TraceManager.addDev("Opening project #" + id + " for file=" + file.getAbsolutePath()); if (checkFileForOpen(file)) { String s = null; if (FileUtils.getExtension(file).equals("ttool")) { + openProjectFromFile(file); + return; + /*TraceManager.addDev("this is a ttool project"); int last = 0; for (int i = 0; i < ConfigurationTTool.LastOpenFile.length(); i++) { if (ConfigurationTTool.LastOpenFile.charAt(i) == '/') @@ -2783,26 +2687,27 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per SpecConfigTTool.loadConfigFile(config); } catch (MalformedConfigurationException e) { System.err.println(e.getMessage() + " : Can't load config file."); - } + }*/ } else { dir = null; config = null; SpecConfigTTool.setBasicConfig(systemcOn); + try { + FileInputStream fis = new FileInputStream(file); + int nb = fis.available(); + + byte[] ba = new byte[nb]; + fis.read(ba); + fis.close(); + s = new String(ba, "UTF-8"); + //TraceManager.addDev("Model:" + s); + } catch (Exception e) { + JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE); + return; + } } - try { - FileInputStream fis = new FileInputStream(file); - int nb = fis.available(); - byte[] ba = new byte[nb]; - fis.read(ba); - fis.close(); - s = new String(ba, "UTF-8"); - //TraceManager.addDev("Model:" + s); - } catch (Exception e) { - JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE); - return; - } // close current modeling closeTurtleModeling(); @@ -2815,32 +2720,9 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per // Issue #41: Moved to common method updateLastOpenFile(file); loadModels(s, "loaded"); - //TraceManager.addDev("Loading"); - // load the new TURTLE modeling - // try { - // gtm.loadModelingFromXML(s); - // //gtm.saveOperation(tcdp); - // frame.setTitle("TTool: " + file.getAbsolutePath()); - // makeLotosFile(); - // - // if (gtm.getCheckingErrors().size() > 0) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // } - // } - // catch (MalformedModelingException mme) { - // JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - // frame.setTitle("TTool: unamed project"); - // } - // - // dtree.forceUpdate(); - // gtm.enableUndo(true); - // gtm.saveOperation(getCurrentSelectedPoint()); + } - //Added by Solange - //TURTLEPanel tp = getCurrentTURTLEPanel(); - //gtm.generateLists((ProactiveDesignPanel)tp); - // } private void loadModels(final String xmlModel, @@ -3610,7 +3492,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per DesignPanel dp = (DesignPanel) tp; JDialogModelChecking.validated = dp.validated; JDialogModelChecking.ignored = dp.ignored; - LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); + List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>(); JDialogModelChecking jdmc = new JDialogModelChecking(frame, tclassesToValidate, dp.tcdp.getComponentList(), "Choosing Tclasses to validate"); if (!automatic) { GraphicLib.centerOnParent(jdmc); @@ -3722,7 +3604,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per AvatarDesignPanel adp = (AvatarDesignPanel) tp; //JDialogModelChecking.validated = adp.validated; //JDialogModelChecking.ignored = adp.ignored; - LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); + List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized()); if (!automatic) { GraphicLib.centerOnParent(jdmc); @@ -3782,7 +3664,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per //JDialogModelChecking.validated = adp.validated; //JDialogModelChecking.ignored = adp.ignored; - LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); + List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>(); JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized()); if (!automatic) { GraphicLib.centerOnParent(jdmc); @@ -4208,14 +4090,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return ret; } - public LinkedList<TAttribute> getAllAttributes() { + public List<TAttribute> getAllAttributes() { TURTLEPanel tp = getCurrentTURTLEPanel(); String name = getCurrentTDiagramPanel().getName(); return this.getAllAttributes(tp, name); } - public LinkedList<TAttribute> getAllAttributes(TURTLEPanel tp, String name) { + public List<TAttribute> getAllAttributes(TURTLEPanel tp, String name) { if (tp == null) { return null; } @@ -4228,8 +4110,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return adp.getAllAttributes(name); } - - public LinkedList<AvatarMethod> getAllMethods() { + public List<AvatarMethod> getAllMethods() { TURTLEPanel tp = getCurrentTURTLEPanel(); if (tp == null) { return null; @@ -4245,13 +4126,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return adp.getAllMethods(name); } - public LinkedList<AvatarSignal> getAllSignals() { + public List<AvatarSignal> getAllSignals() { TURTLEPanel tp = getCurrentTURTLEPanel(); String name = getCurrentTDiagramPanel().getName(); return this.getAllSignals(tp, name); } - public LinkedList<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) { + public List<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) { if (tp == null) { return null; } @@ -4505,7 +4386,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return tmlcomp.getAllOutRequests(name); } - public LinkedList<String> getAllTimers() { + public List<String> getAllTimers() { TURTLEPanel tp = getCurrentTURTLEPanel(); if (tp == null) { return null; @@ -7301,6 +7182,20 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per setPanelMode(); return true; } + + public boolean createELN(int index, String s) { + return createELN(tabs.elementAt(index), s); + } + + public boolean createELN(TURTLEPanel tp, String s) { + if (!(tp instanceof ELNDesignPanel)) { + return false; + } + + ((ELNDesignPanel) tp).addELN(s); + setPanelMode(); + return true; + } public boolean isRequirementCreated(int index, String s) { return isRequirementCreated(tabs.elementAt(index), s); @@ -7414,6 +7309,18 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return null; } + public ELNDiagramPanel getELNPanel(int index, int indexTab, String s) { + TURTLEPanel tp = tabs.elementAt(index); + return getELNPanel(tp, indexTab, s); + } + + public ELNDiagramPanel getELNPanel(TURTLEPanel tp, int indexTab, String s) { + if (tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (ELNDiagramPanel) (tp.panelAt(indexTab)); + } + return null; + } + public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) { TURTLEPanel tp = tabs.elementAt(index); return getAvatarRDPanel(tp, indexTab, s); @@ -8147,7 +8054,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per return false; } - public boolean newSysCAMSComponentTaskName(TURTLEPanel tp, String old, String niou) { + public boolean newSysCAMSComponentTaskName(TURTLEPanel tp, String old, String niou) { JTabbedPane jtp = tp.tabbedPane; for (int i = 0; i < jtp.getTabCount(); i++) { if (jtp.getTitleAt(i).equals(niou)) { @@ -8168,7 +8075,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per tdp.setName(niou); } } - + return true; } } @@ -8532,33 +8439,33 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per //tofile.extracParamToFile(); } - public void avatarToSoclib() { - //DG 6.2. appelee nulle part? - - ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel(); - AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound(); - - AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel); - AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification(); - - - AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator(designDiagramPanel); - - LinkedList<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList(); - AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp); - - // Generator for block tasks and application main file - - TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec, avaspec); - gene.generateSoclib(false, false); - try { - //System.err.println("ok"); - gene.saveInFiles(TasksAndMainGenerator.getGeneratedPath()); - } catch (FileException e) { - System.err.println("FileException : MainGUI.avatarToSoclib()"); - } - - } +// public void avatarToSoclib() { +// //DG 6.2. appelee nulle part? +// +// ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel(); +// AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound(); +// +// AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel); +// AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification(); +// +// +// AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator(designDiagramPanel); +// +// List<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList(); +// AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp); +// +// // Generator for block tasks and application main file +// +// TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec, avaspec); +// gene.generateSoclib(false, false); +// try { +// //System.err.println("ok"); +// gene.saveInFiles(TasksAndMainGenerator.getGeneratedPath()); +// } catch (FileException e) { +// System.err.println("FileException : MainGUI.avatarToSoclib()"); +// } +// +// } //--------------------end DDD------------------------------------------------ public Vector<SysCAMSComponentTaskDiagramPanel> getListSysCAMSPanel() { @@ -8572,12 +8479,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per } } if (syscamsDiagram.size() == 0) - System.err.println("No SysCAMS Panel found : MainGUI.getSysCAMSPanel()"); + System.err.println("No SysCAMS Panel found : MainGUI.getListSysCAMSPanel()"); return syscamsDiagram; } else { JDialog msg = new JDialog(); msg.setLocationRelativeTo(null); - JOptionPane.showMessageDialog(msg, "There is no Systemc-AMS panel. Please add one.", "Warning !", + JOptionPane.showMessageDialog(msg, "There is no SystemC-AMS panel. Please add one.", "Warning !", JOptionPane.WARNING_MESSAGE); return null; } @@ -8592,6 +8499,37 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per dtree.toBeUpdated(); } + public Vector<ELNDiagramPanel> getListELNPanel() { + Vector<ELNDiagramPanel> elnDiagram = new Vector<ELNDiagramPanel>(); + TURTLEPanel tp = getTURTLEPanel("ELN"); + if (tp != null) { + Vector<TDiagramPanel> ps = tp.panels; + for (TDiagramPanel panel : ps) { + if (panel instanceof ELNDiagramPanel) { + elnDiagram.add((ELNDiagramPanel) panel); + } + } + if (elnDiagram.size() == 0) + System.err.println("No ELN Panel found : MainGUI.getListELNPanel()"); + return elnDiagram; + } else { + JDialog msg = new JDialog(); + msg.setLocationRelativeTo(null); + JOptionPane.showMessageDialog(msg, "There is no ELN panel. Please add one.", "Warning !", + JOptionPane.WARNING_MESSAGE); + return null; + } + } + + public void elnExecutableCodeGeneration() { + JDialogELNExecutableCodeGeneration jgen = new JDialogELNExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", + "../ELNGenerationCode/"); + + GraphicLib.centerOnParent(jgen, 500, 450); + jgen.setVisible(true); + dtree.toBeUpdated(); + } + public boolean selectMainTab(String id) { TURTLEPanel tp; diff --git a/src/main/java/ui/MalformedModelingException.java b/src/main/java/ui/MalformedModelingException.java index c656bb59ba229eb6908d1fe044cec61d58cd9110..809732ad480a013cba12796fab8ebe4bea32212a 100755 --- a/src/main/java/ui/MalformedModelingException.java +++ b/src/main/java/ui/MalformedModelingException.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; - /** * Class MalformedModelingException * Creation: 15/12/2003 @@ -50,10 +46,22 @@ package ui; */ public class MalformedModelingException extends Exception { + /** + * + */ + private static final long serialVersionUID = 7411903139644480309L; + public MalformedModelingException() { - super("Modeling does not follows the TTool format"); + this( (Throwable) null ); + } + + public MalformedModelingException( final String message ) { + super( message ); + } + + public MalformedModelingException( final Throwable th ) { + super( "Modeling does not follow the TTool format", th ); } - } // Class \ No newline at end of file diff --git a/src/main/java/ui/MalformedTMLDesignException.java b/src/main/java/ui/MalformedTMLDesignException.java index 45952af48e7ebaeae8f33a61f2fd5c2fc6aa38c9..725d68f6eb5d105ba5edb75292c7076a319ed860 100755 --- a/src/main/java/ui/MalformedTMLDesignException.java +++ b/src/main/java/ui/MalformedTMLDesignException.java @@ -36,11 +36,12 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; +import java.util.ArrayList; +import java.util.List; + +import translator.CheckingError; /** * Class MalformedTMLDesigngException @@ -50,10 +51,43 @@ package ui; */ public class MalformedTMLDesignException extends Exception { + /** + * + */ + private static final long serialVersionUID = -379782523139636075L; + + private final List<CheckingError> errors; + public MalformedTMLDesignException(String msg) { - super(msg); + this( msg, new ArrayList<CheckingError>() ); } + public MalformedTMLDesignException( final String msg, + final List<CheckingError> errors ) { + super( msg ); + + this.errors = errors; + } + + public List<CheckingError> getErrors() { + return errors; + } + + @Override + public String toString() { + final StringBuilder message = new StringBuilder( super.toString() ); + + if ( !getErrors().isEmpty() ) { + message.append( "Errors are:" ); + } + + for ( final CheckingError error : getErrors() ) { + message.append( System.lineSeparator() + error ); + } + + return message.toString(); + } + } // Class \ No newline at end of file diff --git a/src/main/java/ui/RangeExpression.java b/src/main/java/ui/RangeExpression.java new file mode 100644 index 0000000000000000000000000000000000000000..58ee809adaaee21d80ca96c88a06621afa482d37 --- /dev/null +++ b/src/main/java/ui/RangeExpression.java @@ -0,0 +1,56 @@ +package ui; + +public class RangeExpression extends Expression { + + private final Expression minExpression; + + private final Expression maxExpression; + + + public RangeExpression( final String minExpressionText, + final String maxExpressionText, + final String nullText, + final String labelGlobal, + final String labelValues ) { + super( null, nullText, labelGlobal ); + + + minExpression = new Expression( minExpressionText, nullText, labelValues ); + maxExpression = new Expression( maxExpressionText, nullText, labelValues ); + } + + public Expression getMinExpression() { + return minExpression; + } + + public Expression getMaxExpression() { + return maxExpression; + } + + @Override + public void setEnabled( final boolean enabled ) { + getMinExpression().setEnabled( enabled ); + getMaxExpression().setEnabled( enabled ); + } + + @Override + public boolean isEnabled() { + return minExpression.isEnabled() || maxExpression.isEnabled(); + } + + @Override + public boolean isNull() { + return minExpression.isNull() && maxExpression.isNull(); + } + + @Override + public String toString() { + if ( getLabel() == null ) { + return "[" + getMinExpression().toString() + ", " + getMaxExpression().toString() + "]"; + } + + final Object[] values = new String[] { getMinExpression().toString(), getMaxExpression().toString() }; + + return String.format( getLabel(), values ); + } +} diff --git a/src/main/java/ui/SysCAMSComponentDesignPanel.java b/src/main/java/ui/SysCAMSComponentDesignPanel.java index 622816aa643a51ce81945946f8e8751ce6506b7c..63a3790f7b13224001df074a864196969eb58070 100644 --- a/src/main/java/ui/SysCAMSComponentDesignPanel.java +++ b/src/main/java/ui/SysCAMSComponentDesignPanel.java @@ -164,7 +164,7 @@ public class SysCAMSComponentDesignPanel extends TURTLEPanel { jsp.getVerticalScrollBar().setUnitIncrement(MainGUI.INCREMENT); toolBarPanel.add(ardtb, BorderLayout.NORTH); toolBarPanel.add(jsp, BorderLayout.CENTER); - tabbedPane.addTab(s, IconManager.imgic84, toolBarPanel, "Opens SysCAMS component diagram"); + tabbedPane.addTab(s, IconManager.imgic1208, toolBarPanel, "Opens SysCAMS component diagram"); tabbedPane.setSelectedIndex(0); JPanel toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); diff --git a/src/main/java/ui/TDiagramMouseManager.java b/src/main/java/ui/TDiagramMouseManager.java index 0f589acc1533a1e1e8a04f9c7a5a48fae811dda3..e21d08b1762ea63875e1eb40061da31c7bc9093f 100755 --- a/src/main/java/ui/TDiagramMouseManager.java +++ b/src/main/java/ui/TDiagramMouseManager.java @@ -38,13 +38,13 @@ package ui; -import ui.window.JDialogSearchBox; - -import java.awt.*; +import java.awt.Cursor; +import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; -import myutil.*; + +import ui.window.JDialogSearchBox; /** * Class TDiagramMouseManager @@ -58,7 +58,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen private TDiagramPanel tdp; private TGComponent tgc; - private TGComponent lastSelectedComponent = null; + // private TGComponent lastSelectedComponent = null; private int oldx; private int oldy; @@ -75,7 +75,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen private int resizeInfo; - private boolean selectedComponent = false; + // private boolean selectedComponent = false; //private Point p; private TGConnectingPoint cp; @@ -496,14 +496,14 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen else tdp.getGUI().setMode(MainGUI.OPENED); - lastSelectedComponent = tgc; + //lastSelectedComponent = tgc; tdp.setSelect(true); tgc.singleClick(tdp.getGUI().getFrame(), x, y); } else { tdp.getGUI().setMode(MainGUI.OPENED); tdp.setSelect(false); - lastSelectedComponent = null; + // lastSelectedComponent = null; tdp.componentPointed = null; } tdp.getGUI().changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); @@ -581,7 +581,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen tdp.repaint(); } } - + if ((selected == TGComponentManager.CONNECTOR) && (tdp.mode == TDiagramPanel.NORMAL)) { // is connectingPointShow selected if(tdp.highlightOutAndFreeConnectingPoint(e.getX(), e.getY(), tdp.getMGUI().getIdButtonSelected())) { tdp.repaint(); @@ -593,7 +593,6 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen tdp.setAddingTGConnector(e.getX(), e.getY()); tdp.repaint(); } - } @Override diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java index e7dcebff6a8877decd4601b6e6d80bc438abdc7e..187a537778cf1bfe29766c92d04ccd0012e03745 100755 --- a/src/main/java/ui/TDiagramPanel.java +++ b/src/main/java/ui/TDiagramPanel.java @@ -55,6 +55,7 @@ import ui.cd.*; import ui.ftd.FTDFault; import ui.eln.*; import ui.eln.sca_eln.*; +import ui.eln.sca_eln_sca_de.*; import ui.eln.sca_eln_sca_tdf.*; import ui.syscams.*; import ui.ncdd.NCEqNode; @@ -1701,7 +1702,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } if (e.getSource() == enableDisable) { - componentPopup.setEnabled(!componentPopup.isEnabled()); + + // Issue #69 + componentPopup.setEnabled( !componentPopup.isEnabled( true ) ); +// componentPopup.setEnabled(!componentPopup.isEnabled()); getGUI().changeMade(this, CHANGE_VALUE_COMPONENT); repaint(); return; @@ -2031,15 +2035,17 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { clone.setEnabled(false); } - if (componentPointed instanceof CanBeDisabled) { - /*if (componentPointed.hasFather()) { - clone.setEnabled(false); - } else {*/ - enableDisable.setEnabled(true); - //} - } else { - enableDisable.setEnabled(false); - } + // Issue #69 + enableDisable.setEnabled( componentPointed.canBeDisabled() ); +// if (componentPointed instanceof CanBeDisabled) { +// /*if (componentPointed.hasFather()) { +// clone.setEnabled(false); +// } else {*/ +// enableDisable.setEnabled(true); +// //} +// } else { +// enableDisable.setEnabled(false); +// } if (componentPointed instanceof SwallowedTGComponent) { if (componentPointed.getFather() == null) { @@ -2548,6 +2554,18 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } return null; } + + public List<TGConnector> getConnectors() { + final List<TGConnector> connectors = new ArrayList<TGConnector>(); + + for( final TGComponent compo : componentList ) { + if ( compo instanceof TGConnector ) { + connectors.add( (TGConnector) compo ); + } + } + + return connectors; + } public TGComponent getComponentToWhichBelongs(TGConnectingPoint p) { for (TGComponent tgc1 : this.componentList) { @@ -2569,7 +2587,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { return null; } - public void getAllLatencyChecks(ArrayList<TGComponent> _list) { + public void getAllLatencyChecks(List<TGComponent> _list) { for (TGComponent tgc : this.componentList) { if (tgc.getCheckLatency()) { _list.add(tgc); @@ -2577,13 +2595,13 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } } - public void getAllCheckedTGComponent(ArrayList<TGComponent> _list) { + public void getAllCheckedTGComponent( List<TGComponent> _list) { for (TGComponent tgc : this.componentList) if (tgc.hasCheckedAccessibility()) _list.addAll(tgc.getAllCheckedAccessibility()); } - public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) { + public void getAllCheckableTGComponent(List<TGComponent> _list) { for (TGComponent tgc : this.componentList) { //if (tgc instanceof CheckableAccessibility) { _list.addAll(tgc.getAllCheckableAccessibility()); @@ -2594,7 +2612,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } - public void getAllCheckableInvariantTGComponent(ArrayList<TGComponent> _list) { + public void getAllCheckableInvariantTGComponent(List<TGComponent> _list) { for (TGComponent tgc : this.componentList) if (tgc.hasCheckableInvariant()) _list.addAll(tgc.getAllCheckableInvariant()); @@ -2634,7 +2652,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { || (o instanceof SysCAMSCompositeComponent && this.checkSysCAMSCompositeComponent((SysCAMSCompositeComponent) o, name)) || (o instanceof ELNCluster && this.checkELNCluster((ELNCluster) o, name)) || (o instanceof ELNModule && this.checkELNModule((ELNModule) o, name)) - || (o instanceof ELNComponentNodeRef && this.checkELNComponentNodeRef((ELNComponentNodeRef) o, name)) + || (o instanceof ELNNodeRef && this.checkELNComponentNodeRef((ELNNodeRef) o, name)) || (o instanceof ELNComponentResistor && this.checkELNComponentResistor((ELNComponentResistor) o, name)) || (o instanceof ELNComponentCapacitor && this.checkELNComponentCapacitor((ELNComponentCapacitor) o, name)) || (o instanceof ELNComponentInductor && this.checkELNComponentInductor((ELNComponentInductor) o, name)) @@ -2648,6 +2666,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { || (o instanceof ELNComponentCurrentSourceTDF && this.checkELNComponentCurrentSourceTDF((ELNComponentCurrentSourceTDF) o, name)) || (o instanceof ELNComponentVoltageSinkTDF && this.checkELNComponentVoltageSinkTDF((ELNComponentVoltageSinkTDF) o, name)) || (o instanceof ELNComponentVoltageSourceTDF && this.checkELNComponentVoltageSourceTDF((ELNComponentVoltageSourceTDF) o, name)) + || (o instanceof ELNComponentCurrentSinkDE && this.checkELNComponentCurrentSinkDE((ELNComponentCurrentSinkDE) o, name)) + || (o instanceof ELNComponentCurrentSourceDE && this.checkELNComponentCurrentSourceDE((ELNComponentCurrentSourceDE) o, name)) + || (o instanceof ELNComponentVoltageSinkDE && this.checkELNComponentVoltageSinkDE((ELNComponentVoltageSinkDE) o, name)) + || (o instanceof ELNComponentVoltageSourceDE && this.checkELNComponentVoltageSourceDE((ELNComponentVoltageSourceDE) o, name)) || (o instanceof ATDBlock && this.checkATDBlock((ATDBlock) o, name)) || (o instanceof ATDAttack && this.checkATDAttack((ATDAttack) o, name)) || (o instanceof FTDFault && this.checkFTDFault((FTDFault) o, name)) @@ -2719,7 +2741,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { return false; } - public boolean checkELNComponentNodeRef(ELNComponentNodeRef o, String name) { + public boolean checkELNComponentNodeRef(ELNNodeRef o, String name) { return false; } @@ -2774,6 +2796,22 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { public boolean checkELNComponentVoltageSourceTDF(ELNComponentVoltageSourceTDF o, String name) { return false; } + + public boolean checkELNComponentCurrentSinkDE(ELNComponentCurrentSinkDE o, String name) { + return false; + } + + public boolean checkELNComponentCurrentSourceDE(ELNComponentCurrentSourceDE o, String name) { + return false; + } + + public boolean checkELNComponentVoltageSinkDE(ELNComponentVoltageSinkDE o, String name) { + return false; + } + + public boolean checkELNComponentVoltageSourceDE(ELNComponentVoltageSourceDE o, String name) { + return false; + } public boolean checkATDBlock(ATDBlock o, String name) { return false; @@ -2926,7 +2964,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { public String findELNComponentName(String name) { return this.findGoodName(name, new NameChecker() { - public boolean checkELNComponentNodeRef(ELNComponentNodeRef o, String name) { + public boolean checkELNComponentNodeRef(ELNNodeRef o, String name) { return o.getValue().equals(name); } public boolean checkELNComponentResistor(ELNComponentResistor o, String name) { @@ -2968,6 +3006,18 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { public boolean checkELNComponentVoltageSourceTDF(ELNComponentVoltageSourceTDF o, String name) { return o.getValue().equals(name); } + public boolean checkELNComponentCurrentSinkDE(ELNComponentCurrentSinkDE o, String name) { + return o.getValue().equals(name); + } + public boolean checkELNComponentCurrentSourceDE(ELNComponentCurrentSourceDE o, String name) { + return o.getValue().equals(name); + } + public boolean checkELNComponentVoltageSinkDE(ELNComponentVoltageSinkDE o, String name) { + return o.getValue().equals(name); + } + public boolean checkELNComponentVoltageSourceDE(ELNComponentVoltageSourceDE o, String name) { + return o.getValue().equals(name); + } public boolean checkELNModule(ELNModule o, String name) { if (o.getValue().equals(name)) return true; @@ -3702,8 +3752,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { ; } - - public void getListOfBreakPoints(java.util.List<Point> points, int taskID) { + public void getListOfBreakPoints(List<Point> points, int taskID) { for (TGComponent tgc : this.componentList) if (tgc.getBreakpoint() && (tgc.getDIPLOID() != -1)) { boolean found = false; @@ -3863,7 +3912,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { select = b; } - public void upComponent() { + protected void upComponent() { TGComponent tgc = componentPointed; if (tgc != null && tgc.moveable) { tgc.setMoveCd(tgc.x, tgc.y - MOVE_SPEED); @@ -3871,7 +3920,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } } - public void downComponent() { + protected void downComponent() { TGComponent tgc = componentPointed; if (tgc != null && tgc.moveable) { tgc.setMoveCd(tgc.x, tgc.y + MOVE_SPEED); @@ -3879,7 +3928,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } } - public void leftComponent() { + protected void leftComponent() { TGComponent tgc = componentPointed; if (tgc != null && tgc.moveable) { tgc.setMoveCd(tgc.x - MOVE_SPEED, tgc.y); @@ -3887,7 +3936,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } } - public void rightComponent() { + protected void rightComponent() { TGComponent tgc = componentPointed; if (tgc != null && tgc.moveable) { tgc.setMoveCd(tgc.x + MOVE_SPEED, tgc.y); @@ -3895,22 +3944,22 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { } } - public void upComponents() { + protected void upComponents() { moveSelected(xSel, ySel - MOVE_SPEED); repaint(); } - public void downComponents() { + protected void downComponents() { moveSelected(xSel, ySel + MOVE_SPEED); repaint(); } - public void leftComponents() { + protected void leftComponents() { moveSelected(xSel - MOVE_SPEED, ySel); repaint(); } - public void rightComponents() { + protected void rightComponents() { moveSelected(xSel + MOVE_SPEED, ySel); repaint(); } @@ -3922,6 +3971,21 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { public TDiagramMouseManager getMouseManager() { return tdmm; } + + /** + * Check if newvalue is already a name of a component. + * + * @param newvalue + * @return true if the name is used + * @author Fabien Tessier + */ + public boolean isCompositeNameUsed(String newvalue) { + for (TGComponent tgc : this.componentList) { + if (tgc.getValue().equals(newvalue)) + return true; + } + return false; + } } diff --git a/src/main/java/ui/TGCNote.java b/src/main/java/ui/TGCNote.java index 069995457ba1bc1483d86c44a448f1b89eeef893..0cb5986d14fc39d7d08d862585d1983fdafe5570 100755 --- a/src/main/java/ui/TGCNote.java +++ b/src/main/java/ui/TGCNote.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui; import myutil.*; @@ -119,7 +118,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent { return this.values; } - + @Override public void internalDrawing(Graphics graph) { if (this.rescaled && !this.tdp.isScaled()) { this.rescaled = false; @@ -178,10 +177,10 @@ public class TGCNote extends TGCScalableWithoutInternalComponent { graph.fillPolygon(px, py, 4); graph.setColor(c); - Graphics2D g2 = (Graphics2D)graph; + // Graphics2D g2 = (Graphics2D)graph; for (int i = 0; i < this.values.length; i++) { //TraceManager.addDev("Value #" + i + " = " + this.values[i]); - g2.drawString(this.values[i], this.x + this.textX, this.y + this.textY + (i + 1) * this.currentFontSize); + graph.drawString(this.values[i], this.x + this.textX, this.y + this.textY + (i + 1) * this.currentFontSize); } } @@ -189,6 +188,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent { values = Conversion.wrapText(value); } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = this.value; @@ -205,6 +205,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent { return false; } + @Override public TGComponent isOnMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -212,6 +213,7 @@ public class TGCNote extends TGCScalableWithoutInternalComponent { return null; } + @Override public void rescale(double scaleFactor) { /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor; lineHeight = (int)(dlineHeight); @@ -223,10 +225,12 @@ public class TGCNote extends TGCScalableWithoutInternalComponent { super.rescale(scaleFactor); } + @Override public int getType() { return TGComponentManager.UML_NOTE; } + @Override protected String translateExtraParam() { if (values == null) this.makeValue(); diff --git a/src/main/java/ui/TGCOneLineText.java b/src/main/java/ui/TGCOneLineText.java index 26ee5a0803b073d4823ab54ac9281e78def16097..d9db3c656949ab3c9baec22b5a700c60a720f2dd 100755 --- a/src/main/java/ui/TGCOneLineText.java +++ b/src/main/java/ui/TGCOneLineText.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import myutil.Conversion; @@ -48,8 +45,6 @@ import ui.util.IconManager; import javax.swing.*; import java.awt.*; -//import java.awt.geom.*; - /** * Class TGCOneLineText * Internal component that is a onle line text @@ -58,8 +53,8 @@ import java.awt.*; * @author Ludovic APVRILLE */ public class TGCOneLineText extends TGCWithoutInternalComponent{ - protected boolean emptyText; + protected boolean emptyText; public TGCOneLineText(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -79,6 +74,7 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{ myImageIcon = IconManager.imgic302; } + @Override public void internalDrawing(Graphics g) { if (!tdp.isScaled()) { width = g.getFontMetrics().stringWidth(value); @@ -90,6 +86,7 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{ } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y - height, Math.max(width, minWidth), height)) { return this; @@ -97,6 +94,7 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{ return null; } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; String text = getName() + ": "; @@ -124,21 +122,12 @@ public class TGCOneLineText extends TGCWithoutInternalComponent{ return false; } - public void renameTab(String s) { - TURTLEPanel tp = this.tdp.tp; - for (TDiagramPanel tdpTmp: tp.panels) { - if (tdpTmp.name.equals(name)) { - if (!tp.nameInUse(s)) { - tp.tabbedPane.setTitleAt(tp.getIndexOfChild(tdpTmp), s); - tp.panels.elementAt(tp.getIndexOfChild(tdpTmp)).setName(s); - tp.mgui.changeMade(null, -1); - } - break; - } - } + /* Issue #69 + * (non-Javadoc) + * @see ui.TGComponent#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return getFather() != null && getFather().canLabelBeDisabled( this ); } - - public boolean nameUsed(String s) { - return this.tdp.tp.refNameUsed(s); - } } diff --git a/src/main/java/ui/TGCPointOfConnector.java b/src/main/java/ui/TGCPointOfConnector.java index 253517696f2ad867a1931f6acdd6260399fa1bdf..5d8608d4fb2d66b902606c478f4159d81c39867e 100755 --- a/src/main/java/ui/TGCPointOfConnector.java +++ b/src/main/java/ui/TGCPointOfConnector.java @@ -109,4 +109,13 @@ public class TGCPointOfConnector extends TGCScalableWithoutInternalComponent { public int getCurrentMaxY() { return getY() + getHeight(); } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return false; + } } diff --git a/src/main/java/ui/TGCScalableWithInternalComponent.java b/src/main/java/ui/TGCScalableWithInternalComponent.java index a5c9f992f7723cb82392d62b87f1f36ea85f4d40..e292b8944c2010235867f686897fc8905e6ab373 100755 --- a/src/main/java/ui/TGCScalableWithInternalComponent.java +++ b/src/main/java/ui/TGCScalableWithInternalComponent.java @@ -38,8 +38,6 @@ package ui; -import myutil.TraceManager; - /** * Class TGCScalableWithInternalComponent * Graphical component that contains one or more internal components, and which is scalable @@ -48,8 +46,10 @@ import myutil.TraceManager; * @author Ludovic APVRILLE */ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalComponent implements ScalableTGComponent { - protected boolean rescaled = false; - protected double oldScaleFactor; + + protected boolean rescaled = false; + + protected double oldScaleFactor; public TGCScalableWithInternalComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -114,7 +114,7 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo hasBeenResized(); } - public void initScaling(int w, int h) { + protected void initScaling(int w, int h) { oldScaleFactor = tdp.getZoom(); dx = 0; @@ -139,5 +139,4 @@ public abstract class TGCScalableWithInternalComponent extends TGCWithInternalCo rescaled = true; } - } diff --git a/src/main/java/ui/TGCWithInternalComponent.java b/src/main/java/ui/TGCWithInternalComponent.java index 1b2d6e71a192ec96a0abb56b59dcdb8d8c620fb0..833bc50b1d75cce2f7893fc8197b17304c4e411f 100755 --- a/src/main/java/ui/TGCWithInternalComponent.java +++ b/src/main/java/ui/TGCWithInternalComponent.java @@ -36,13 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; -//import java.awt.*; - /** * Class TGCWithInternalComponent * Graphical component that contains one or more internal components @@ -50,13 +45,13 @@ package ui; * @version 1.0 22/12/2003 * @author Ludovic APVRILLE */ -public abstract class TGCWithInternalComponent extends TGComponent{ - +public abstract class TGCWithInternalComponent extends TGComponent { public TGCWithInternalComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); } + @Override public void setState(int s) { state = s; if (s != TGState.POINTER_ON_ME) { @@ -76,6 +71,7 @@ public abstract class TGCWithInternalComponent extends TGComponent{ } } + @Override public final TGComponent isOnMe(int x1, int y1) { selectedInternalComponent = isOnAnInternalTGComponent(x1, y1); @@ -87,5 +83,4 @@ public abstract class TGCWithInternalComponent extends TGComponent{ } public abstract TGComponent isOnOnlyMe(int x1, int y1); - } diff --git a/src/main/java/ui/TGCWithoutInternalComponent.java b/src/main/java/ui/TGCWithoutInternalComponent.java index cfbf1548aeadae10870aebc17032143dcb230ce2..8689b451937bd35e3a17fb4495a24b6019c4226e 100755 --- a/src/main/java/ui/TGCWithoutInternalComponent.java +++ b/src/main/java/ui/TGCWithoutInternalComponent.java @@ -36,13 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; -//import java.awt.*; - /** * Class TGCWithoutInternalComponent * Graphical component which contains no internal component @@ -59,6 +54,7 @@ public abstract class TGCWithoutInternalComponent extends TGComponent{ nbInternalTGComponent = 0; } + @Override public void setState(int s) { if ((s == TGState.POINTED) && (father == null)) { state = TGState.POINTER_ON_ME; diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java index e94e968e408ae31509754943b4f004994551cf1b..644262db990ae7b22aff56c67a9942604c221889 100755 --- a/src/main/java/ui/TGComponent.java +++ b/src/main/java/ui/TGComponent.java @@ -59,12 +59,18 @@ import ui.tmldd.TMLArchiFirewallNode; import ui.util.IconManager; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Point2D; import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedList; +import java.util.List; import java.util.Vector; /** @@ -76,7 +82,7 @@ import java.util.Vector; * @version 1.0 21/12/2003 */ -public abstract class TGComponent implements CDElement, GenericTree { +public abstract class TGComponent extends AbstractCDElement implements /*CDElement,*/ GenericTree { protected final static String XML_HEAD = "<COMPONENT type=\""; protected final static String XML_ID = "\" id=\""; @@ -151,7 +157,7 @@ public abstract class TGComponent implements CDElement, GenericTree { protected TGComponent selectedInternalComponent; // characteristics - protected boolean enabled = true; + //protected boolean enabled = true; protected boolean moveable; protected boolean removable; protected boolean multieditable = false; @@ -163,7 +169,7 @@ public abstract class TGComponent implements CDElement, GenericTree { //Associated transactions public String transaction = ""; - public java.util.List<SimulationTransaction> transactions = new ArrayList<SimulationTransaction>(); + public List<SimulationTransaction> transactions = new ArrayList<SimulationTransaction>(); //If task public String runningStatus = ""; @@ -240,14 +246,14 @@ public abstract class TGComponent implements CDElement, GenericTree { public abstract void setState(int s); - - public void setEnabled(boolean _enabled) { - enabled = _enabled; - } - - public boolean isEnabled() { - return enabled; - } +// +// public void setEnabled(boolean _enabled) { +// enabled = _enabled; +// } +// +// public boolean isEnabled() { +// return enabled; +// } // Internal component operations public void setFather(TGComponent _father) { @@ -382,14 +388,14 @@ public abstract class TGComponent implements CDElement, GenericTree { return false; } - public java.util.List<TGComponent> getAllCheckedAccessibility() { - java.util.List<TGComponent> list = new LinkedList<TGComponent>(); + public List<TGComponent> getAllCheckedAccessibility() { + List<TGComponent> list = new LinkedList<TGComponent>(); getAllCheckedAccessibility(list); return list; } - public void getAllCheckedAccessibility(java.util.List<TGComponent> _list) { + public void getAllCheckedAccessibility(List<TGComponent> _list) { if (accessibility) { _list.add(this); } @@ -401,14 +407,14 @@ public abstract class TGComponent implements CDElement, GenericTree { } } - public java.util.List<TGComponent> getAllCheckableAccessibility() { - java.util.List<TGComponent> list = new LinkedList<TGComponent>(); + public List<TGComponent> getAllCheckableAccessibility() { + List<TGComponent> list = new LinkedList<TGComponent>(); getAllCheckableAccessibility(list); return list; } - public void getAllCheckableAccessibility(java.util.List<TGComponent> _list) { + public void getAllCheckableAccessibility(List<TGComponent> _list) { TraceManager.addDev("Investigating accessibility of " + this); if (this instanceof CheckableAccessibility) { _list.add(this); @@ -482,13 +488,14 @@ public abstract class TGComponent implements CDElement, GenericTree { latencyCheck = b; } - public LinkedList<TGComponent> getAllCheckableInvariant() { - LinkedList<TGComponent> list = new LinkedList<TGComponent>(); + public List<TGComponent> getAllCheckableInvariant() { + List<TGComponent> list = new LinkedList<TGComponent>(); getAllCheckableInvariant(list); + return list; } - public void getAllCheckableInvariant(LinkedList<TGComponent> _list) { + public void getAllCheckableInvariant( List<TGComponent> _list) { if (invariant) { _list.add(this); } @@ -606,8 +613,7 @@ public abstract class TGComponent implements CDElement, GenericTree { GraphicLib.dashedRect(g, x + width + s2 + s3, y + s3, w + 15, h - 12); } - - public void drawAttributes(Graphics g, String attr) { + protected void drawAttributes(Graphics g, String attr) { if (attr == null) { return; } @@ -625,11 +631,9 @@ public abstract class TGComponent implements CDElement, GenericTree { int w = p1.x; int h = p1.y - y + s3; GraphicLib.dashedRect(g, x + width + s2 + s3, y + s3, w + 15, h - 12); - } - public Point drawCode(Graphics g, String s, int x1, int y1, boolean pre, boolean java, int dec) { - + protected Point drawCode(Graphics g, String s, int x1, int y1, boolean pre, boolean java, int dec) { Point p = new Point(0, y1); String info; @@ -1017,11 +1021,14 @@ public abstract class TGComponent implements CDElement, GenericTree { } - public void draw(Graphics g) { RunningInfo ri; LoadInfo li; - ColorManager.setColor(g, state, 0); + + // Issue #69: Disabling of components + ColorManager.setColor(g, state, 0, isEnabled() ); +// ColorManager.setColor(g, state, 0); + Font font = new Font(Font.SANS_SERIF, Font.PLAIN, this.tdp.getFontSize()); g.setFont(font); internalDrawing(g); @@ -1148,7 +1155,7 @@ public abstract class TGComponent implements CDElement, GenericTree { if (li != null) { drawLoadDiploID(g, li); } - java.util.List<SimulationTransaction> ts = tdp.getMGUI().getTransactions(getDIPLOID()); + List<SimulationTransaction> ts = tdp.getMGUI().getTransactions(getDIPLOID()); if (ts != null && ts.size() > 0) { transactions = new ArrayList<SimulationTransaction>(ts); transaction = transactions.get(transactions.size() - 1).taskName + ":" + transactions.get(transactions.size() - 1).command; @@ -1622,8 +1629,8 @@ public abstract class TGComponent implements CDElement, GenericTree { return tgcomponent[index]; } - public LinkedList<TGComponent> getRecursiveAllInternalComponent() { - LinkedList<TGComponent> ll = new LinkedList<TGComponent>(); + public List<TGComponent> getRecursiveAllInternalComponent() { + List<TGComponent> ll = new LinkedList<TGComponent>(); for (int i = 0; i < nbInternalTGComponent; i++) { ll.add(tgcomponent[i]); @@ -3042,7 +3049,7 @@ public abstract class TGComponent implements CDElement, GenericTree { return saveInXML(true); } - public StringBuffer saveInXML(boolean saveSubComponents) { + protected StringBuffer saveInXML(boolean saveSubComponents) { StringBuffer sb = null; boolean b = (father == null); if (b) { @@ -3063,7 +3070,10 @@ public abstract class TGComponent implements CDElement, GenericTree { sb.append(translateCDParam()); sb.append(translateSizeParam()); sb.append(translateHidden()); - if (this instanceof CanBeDisabled) { + + // Issue #69 + if ( canBeDisabled() ) { + //if (this instanceof CanBeDisabled) { sb.append(translateEnabled()); } sb.append(translateCDRectangleParam()); @@ -3114,7 +3124,7 @@ public abstract class TGComponent implements CDElement, GenericTree { } protected String translateEnabled() { - return "<enabled value=\"" + enabled + "\" />\n"; + return "<enabled value=\"" + isEnabled() + "\" />\n"; } protected String translateHidden() { @@ -3274,6 +3284,7 @@ public abstract class TGComponent implements CDElement, GenericTree { public void postLoading(int decId) throws MalformedModelingException { } + @Override public String toString() { String s1 = getName(); String s2 = getValue(); @@ -3336,4 +3347,131 @@ public abstract class TGComponent implements CDElement, GenericTree { public void clickSelect(boolean b) { isSelect = b; } + + /** + * Issue #69 + * @param point + * @return + */ + public TGConnector getConnectorConnectedTo( final TGConnectingPoint point ) { + return tdp.getConnectorConnectedTo( point ); + } + + /** + * Issue #69 + * @return + */ + public List<TGConnector> getConnectors() { + return tdp.getConnectors(); + } + + /** + * Issue #69 + * @return + */ + public List<TGConnector> getInputConnectors() { + final List<TGConnector> connectors = new ArrayList<TGConnector>(); + final List<TGConnectingPoint> points = Arrays.asList( getConnectingPoints() ); + + for ( final TGConnector connector : getConnectors() ) { + if ( points.contains( connector.getTGConnectingPointP2() ) ) { + connectors.add( connector ); + } + } + + return connectors; + } + + /** + * Issue #69 + * @return + */ + public List<TGConnector> getOutputConnectors() { + final List<TGConnector> connectors = new ArrayList<TGConnector>(); + final List<TGConnectingPoint> points = Arrays.asList( getConnectingPoints() ); + + for ( final TGConnector connector : getConnectors() ) { + if ( points.contains( connector.getTGConnectingPointP1() ) ) { + connectors.add( connector ); + } + } + + return connectors; + } + + /** + * Issue #69 + * @return + */ + public TGConnectingPoint[] getConnectingPoints() { + return connectingPoint; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptForward(ui.ICDElementVisitor) + */ + @Override + public void acceptForward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + if ( tgcomponent != null ) { + for ( final TGComponent subCompo : tgcomponent ) { + subCompo.acceptForward( visitor ); + } + } + + if ( connectingPoint != null ) { + for ( final TGConnectingPoint point : connectingPoint ) { + final TGConnector connector = getConnectorConnectedTo( point ); + + if ( connector != null && point == connector.getTGConnectingPointP1() ) { + point.acceptForward( visitor ); + } + } + } + } + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + if ( tgcomponent != null ) { + for ( final TGComponent subCompo : tgcomponent ) { + subCompo.acceptBackward( visitor ); + } + } + + if ( connectingPoint != null ) { + for ( final TGConnectingPoint point : connectingPoint ) { + final TGConnector connector = getConnectorConnectedTo( point ); + + if ( connector != null && point == connector.getTGConnectingPointP2() ) { + point.acceptBackward( visitor ); + } + } + } + } + } + + public void renameTab(String s) { + TURTLEPanel tp = this.tdp.tp; + for (TDiagramPanel tdpTmp: tp.panels) { + if (tdpTmp.name.equals(name)) { + if (!tp.nameInUse(s)) { + tp.tabbedPane.setTitleAt(tp.getIndexOfChild(tdpTmp), s); + tp.panels.elementAt(tp.getIndexOfChild(tdpTmp)).setName(s); + tp.mgui.changeMade(null, -1); + } + break; + } + } + } + + public boolean nameUsed(String s) { + return this.tdp.tp.refNameUsed(s); + } } diff --git a/src/main/java/ui/TGComponentManager.java b/src/main/java/ui/TGComponentManager.java index d16ae06888ef96ffb9e6abf300b694d801bf8539..00855a1cd4653c4ebee8662bf82c7d0bbdb00800 100644 --- a/src/main/java/ui/TGComponentManager.java +++ b/src/main/java/ui/TGComponentManager.java @@ -37,11 +37,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui; -//import java.awt.*; - import ui.ad.*; import ui.atd.*; import ui.avatarad.*; @@ -61,6 +58,7 @@ import ui.diplodocusmethodology.*; import ui.ebrdd.*; import ui.eln.*; import ui.eln.sca_eln.*; +import ui.eln.sca_eln_sca_de.*; import ui.eln.sca_eln_sca_tdf.*; import ui.ftd.*; import ui.iod.*; @@ -327,7 +325,9 @@ public class TGComponentManager { public static final int TMLCP_REF_SD = 1505; public static final int TMLCP_START_STATE = 1506; public static final int TMLCP_STOP_STATE = 1507; - public static final int TMLCP_JUNCTION = 1508; + + // Issue #69 + // public static final int TMLCP_JUNCTION = 1508; public static final int TMLCP_FOR_LOOP = 1510; public static final int TMLSD_STORAGE_INSTANCE = 1520; @@ -365,6 +365,15 @@ public class TGComponentManager { public static final int ELN_TDF_VOLTAGE_SOURCE = 1625; public static final int ELN_TDF_CURRENT_SOURCE = 1626; public static final int ELN_CLUSTER = 1627; + public static final int ELN_MODULE_PORT_DE = 1628; + public static final int ELN_MODULE_PORT_TDF = 1629; + public static final int ELN_CLUSTER_TERMINAL = 1630; + public static final int ELN_CLUSTER_PORT_DE = 1631; + public static final int ELN_CLUSTER_PORT_TDF = 1632; + public static final int ELN_DE_CURRENT_SINK = 1633; + public static final int ELN_DE_CURRENT_SOURCE = 1634; + public static final int ELN_DE_VOLTAGE_SINK = 1635; + public static final int ELN_DE_VOLTAGE_SOURCE = 1636; // SMD diagram public static final int PROSMD_START_STATE = 2000; @@ -423,7 +432,10 @@ public class TGComponentManager { public static final int AVATARSMD_CONNECTOR = 5102; public static final int AVATARSMD_SEND_SIGNAL = 5103; public static final int AVATARSMD_RECEIVE_SIGNAL = 5104; - public static final int AVATARSMD_PARALLEL = 5105; + + // Issue #69 + //public static final int AVATARSMD_PARALLEL = 5105; + public static final int AVATARSMD_STATE = 5106; public static final int AVATARSMD_CHOICE = 5107; public static final int AVATARSMD_RANDOM = 5108; @@ -592,9 +604,9 @@ public class TGComponentManager { case AVATARSMD_RECEIVE_SIGNAL: tgc = new AvatarSMDReceiveSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; - case AVATARSMD_PARALLEL: - tgc = new AvatarSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); - break; +// case AVATARSMD_PARALLEL: Issue #69 +// tgc = new AvatarSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); +// break; case AVATARSMD_STATE: tgc = new AvatarSMDState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; @@ -1320,7 +1332,7 @@ public class TGComponentManager { tgc = new ELNComponentIndependentCurrentSource(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; case ELN_NODE_REF: - tgc = new ELNComponentNodeRef(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + tgc = new ELNNodeRef(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; case ELN_TDF_VOLTAGE_SINK: tgc = new ELNComponentVoltageSinkTDF(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); @@ -1343,6 +1355,33 @@ public class TGComponentManager { case ELN_CLUSTER: tgc = new ELNCluster(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; + case ELN_MODULE_PORT_DE: + tgc = new ELNModulePortDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_MODULE_PORT_TDF: + tgc = new ELNModulePortTDF(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_CLUSTER_TERMINAL: + tgc = new ELNClusterTerminal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_CLUSTER_PORT_DE: + tgc = new ELNClusterPortDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_CLUSTER_PORT_TDF: + tgc = new ELNClusterPortTDF(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_DE_CURRENT_SINK: + tgc = new ELNComponentCurrentSinkDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_DE_CURRENT_SOURCE: + tgc = new ELNComponentCurrentSourceDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_DE_VOLTAGE_SINK: + tgc = new ELNComponentVoltageSinkDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; + case ELN_DE_VOLTAGE_SOURCE: + tgc = new ELNComponentVoltageSourceDE(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + break; // Communication patterns + SD case TMLCP_CHOICE: tgc = new TMLCPChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); @@ -1365,9 +1404,9 @@ public class TGComponentManager { case TMLCP_STOP_STATE: tgc = new TMLCPStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; - case TMLCP_JUNCTION: - tgc = new TMLCPJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); - break; +// case TMLCP_JUNCTION: // Issue #69 +// tgc = new TMLCPJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); +// break; case TMLCP_FOR_LOOP: tgc = new TMLCPForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); break; @@ -1520,8 +1559,8 @@ public class TGComponentManager { return AVATARSMD_RECEIVE_SIGNAL; } else if (tgc instanceof AvatarSMDLibraryFunctionCall) { return AVATARSMD_LIBRARY_FUNCTION_CALL; - } else if (tgc instanceof AvatarSMDParallel) { - return AVATARSMD_PARALLEL; +// } else if (tgc instanceof AvatarSMDParallel) { // Issue #69 +// return AVATARSMD_PARALLEL; } else if (tgc instanceof AvatarSMDState) { return AVATARSMD_STATE; } else if (tgc instanceof AvatarSMDChoice) { @@ -1765,7 +1804,7 @@ public class TGComponentManager { return ELN_INDEPENDENT_VOLTAGE_SOURCE; } else if (tgc instanceof ELNComponentIndependentCurrentSource) { return ELN_INDEPENDENT_CURRENT_SOURCE; - } else if (tgc instanceof ELNComponentNodeRef) { + } else if (tgc instanceof ELNNodeRef) { return ELN_NODE_REF; } else if (tgc instanceof ELNComponentVoltageSinkTDF) { return ELN_TDF_VOLTAGE_SINK; @@ -1781,6 +1820,24 @@ public class TGComponentManager { return ELN_TDF_CURRENT_SOURCE; } else if (tgc instanceof ELNCluster) { return ELN_CLUSTER; + } else if (tgc instanceof ELNModulePortDE) { + return ELN_MODULE_PORT_DE; + } else if (tgc instanceof ELNModulePortTDF) { + return ELN_MODULE_PORT_TDF; + } else if (tgc instanceof ELNClusterTerminal) { + return ELN_CLUSTER_TERMINAL; + } else if (tgc instanceof ELNClusterPortDE) { + return ELN_CLUSTER_PORT_DE; + } else if (tgc instanceof ELNClusterPortTDF) { + return ELN_CLUSTER_PORT_TDF; + } else if (tgc instanceof ELNComponentCurrentSinkDE) { + return ELN_DE_CURRENT_SINK; + } else if (tgc instanceof ELNComponentCurrentSourceDE) { + return ELN_DE_CURRENT_SOURCE; + } else if (tgc instanceof ELNComponentVoltageSinkDE) { + return ELN_DE_VOLTAGE_SINK; + } else if (tgc instanceof ELNComponentVoltageSourceDE) { + return ELN_DE_VOLTAGE_SOURCE; // Others } else if (tgc instanceof TADDeterministicDelay) { @@ -2145,8 +2202,8 @@ public class TGComponentManager { return TMLCP_START_STATE; } else if (tgc instanceof TMLCPStopState) { return TMLCP_STOP_STATE; - } else if (tgc instanceof TMLCPJunction) { - return TMLCP_JUNCTION; +// } else if (tgc instanceof TMLCPJunction) { Issue #69 +// return TMLCP_JUNCTION; } else if (tgc instanceof TMLCPForLoop) { return TMLCP_FOR_LOOP; } else if (tgc instanceof TGConnectorTMLCP) { diff --git a/src/main/java/ui/TGConnectingPoint.java b/src/main/java/ui/TGConnectingPoint.java index 8943e41030274945973435176c70f5af365bf21c..1ac1d98c38896be8c6410853863030f12c7cd896 100755 --- a/src/main/java/ui/TGConnectingPoint.java +++ b/src/main/java/ui/TGConnectingPoint.java @@ -37,9 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import myutil.GraphicLib; @@ -53,9 +50,9 @@ import java.awt.*; * @version 1.0 22/12/2003 * @author Ludovic APVRILLE, Andrea Enrici */ -public class TGConnectingPoint implements CDElement { +public class TGConnectingPoint extends AbstractCDElement /*implements CDElement*/ { - protected TGComponent father; + //protected TGComponent father; //private static int ID = 0; @@ -123,6 +120,7 @@ public class TGConnectingPoint implements CDElement { public void draw(Graphics g) { int mx = getX(); int my = getY(); + if (state == SELECTED) { mx = mx - width / 2; my = my - height / 2; @@ -133,7 +131,6 @@ public class TGConnectingPoint implements CDElement { g.setColor(myColor); g.fillRect(mx - width/4, my - width/4, width/2, height/2); GraphicLib.doubleColorRect(g, mx - width/4, my - width/4, width/2, height/2, Color.lightGray, Color.black); - } } @@ -220,8 +217,6 @@ public class TGConnectingPoint implements CDElement { TGComponent.setGeneralId(id + 1); } - - // return true if state _s is different from the previous one public boolean setState(int _s){ boolean b = false; @@ -296,9 +291,9 @@ public class TGConnectingPoint implements CDElement { }*/ //DG 27.02. - public TGComponent getOwner() { - return father; - } +// public TGComponent getOwner() { +// return father; +// } //fin DG public void setReferenceToConnector( TGConnector _ref ) { @@ -325,4 +320,70 @@ public class TGConnectingPoint implements CDElement { public int getCurrentMaxY() { return getY() + getHeight(); } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return false; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#isEnabled() + */ + @Override + public boolean isEnabled() { + return true; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptForward(ui.ICDElementVisitor) + */ + @Override + public void acceptForward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + if ( getFather() instanceof TGComponent ) { + final TGConnector connector = ( (TGComponent) getFather() ).getConnectorConnectedTo( this ); + + if ( connector != null ) { + + // Traverse the graph in its direction + if ( this == connector.getTGConnectingPointP2() ) { + getFather().acceptForward( visitor ); + } + else { + connector.acceptForward( visitor ); + } + } + } + } + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + if ( getFather() instanceof TGComponent ) { + final TGConnector connector = ( (TGComponent) getFather() ).getConnectorConnectedTo( this ); + + if ( connector != null ) { + + // Traverse the graph in its direction + if ( this == connector.getTGConnectingPointP1() ) { + getFather().acceptBackward( visitor ); + } + else { + connector.acceptBackward( visitor ); + } + } + } + } + } } diff --git a/src/main/java/ui/TGConnectingPointWidthHeight.java b/src/main/java/ui/TGConnectingPointWidthHeight.java index 2aa5eab134416a667546a6080ab652674c219fb0..46d95a7615f67802358c51f105fff164bc179615 100755 --- a/src/main/java/ui/TGConnectingPointWidthHeight.java +++ b/src/main/java/ui/TGConnectingPointWidthHeight.java @@ -36,13 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; -//import java.awt.*; - /** * Class TGConnectingPointWidthHeight * Connecting points of TClasses @@ -51,8 +46,10 @@ package ui; * @author Ludovic APVRILLE */ public class TGConnectingPointWidthHeight extends TGConnectingPoint{ - protected double w; - protected double h; + + protected double w; + + protected double h; public TGConnectingPointWidthHeight(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) { super(_container, _x, _y, _in, _out); @@ -60,10 +57,12 @@ public class TGConnectingPointWidthHeight extends TGConnectingPoint{ h = _h; } + @Override public int getX() { return x + container.getX() + (int)(container.getWidth() * w); } + @Override public int getY() { return y + container.getY() + (int)(container.getHeight() * h); } diff --git a/src/main/java/ui/TGConnector.java b/src/main/java/ui/TGConnector.java index 0166e22e6b7ebe458a025128f1d841d3ed3ea2af..c8cfd70edf52b13f7cb15d278905357e72a74686 100755 --- a/src/main/java/ui/TGConnector.java +++ b/src/main/java/ui/TGConnector.java @@ -37,9 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import myutil.*; @@ -59,7 +56,7 @@ import java.util.Vector; * @version 1.0 22/12/2003 * @author Ludovic APVRILLE, Andrea ENRICI */ -public abstract class TGConnector extends TGCScalableWithInternalComponent { +public abstract class TGConnector extends TGCScalableWithInternalComponent { protected final static String XML_CONNECTOR_HEAD = "<CONNECTOR type=\""; protected final static String XML_ID = "\" id=\""; @@ -188,10 +185,9 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent //TraceManager.addDev("Index=" + index); return index; } - public int getFirstIndexOfOtherInternalComponents() { - return getIndexOfLastTGCPointOfConnector() + 1; + return getIndexOfLastTGCPointOfConnector() + 1; } public boolean hasTGCPointOfConnector() { @@ -209,24 +205,25 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent return -1; }*/ + @Override public void internalDrawing(Graphics g) { - TGComponent p3, p4; - if (hasTGCPointOfConnector()) { p3 = tgcomponent[0]; p4 = tgcomponent[0]; //TraceManager.addDev("p3.x " + p3.getX() + " p3.y " + p3.getY()); //drawMiddleSegment(g, p1.getX(), p1.getY(), p3.getXZoom(), p3.getYZoom()); - drawMiddleSegment(g, p1.getX(), p1.getY(), p3.getX(), p3.getY()); + drawMiddleSegment(g, p1.getX(), p1.getY(), p3.getX(), p3.getY()); - TGCPointOfConnector[] pts = listOfPointsToArray(); + TGCPointOfConnector[] pts = listOfPointsToArray(); + for(int i=0; i<pts.length-1; i++) { p3 = tgcomponent[i]; p4 = tgcomponent[i+1]; drawMiddleSegment(g, p3.getX(), p3.getY(), p4.getX(), p4.getY()); } + drawLastSegment(g, p4.getX(), p4.getY(), p2.getX(), p2.getY()); } else { drawLastSegment(g, p1.getX(), p1.getY(), p2.getX(), p2.getY()); @@ -447,12 +444,12 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent } private int indexOf(TGComponent pt) { - for(int i=0; i<tgcomponent.length; i++) { - if (tgcomponent[i] == pt) { - return i; - } - } - return -1; + for(int i=0; i<tgcomponent.length; i++) { + if (tgcomponent[i] == pt) { + return i; + } + } + return -1; } public int indexPointedSegment(int x1, int y1) { @@ -465,7 +462,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent return 0; } - TGCPointOfConnector []points = listOfPointsToArray(); + TGCPointOfConnector []points = listOfPointsToArray(); for(int i=0; i<points.length-1; i++) { p3 = points[i]; p4 = points[i+1]; @@ -621,6 +618,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent return true; } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { TGComponent p3, p4; int i; @@ -774,6 +772,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent } + @Override public StringBuffer saveInXML() { StringBuffer sb = new StringBuffer(XML_CONNECTOR_HEAD); sb.append(getType()); @@ -828,6 +827,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent } } + @Override public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) { popupx = x; popupy = y; @@ -863,6 +863,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent } } + @Override public boolean eventOnPopup(ActionEvent e) { if (e.getActionCommand().equals("Add Point")) { return addTGCPointOfConnector(popupx, popupy); @@ -908,8 +909,8 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent tgcomponent = tgcomponentnew; } - // Middle of the last segment + @Override public void drawAttributes(Graphics g, String attr) { int s0=4, s1=9, s2=30, s3=10; int x1, y1; @@ -975,4 +976,46 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent return maxValue; } + + /* Issue #69 + * (non-Javadoc) + * @see ui.TGComponent#acceptForward(ui.ICDElementVisitor) + */ + @Override + public void acceptForward( ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + + // Traverse the graph in the direction of the connector + getTGConnectingPointP2().acceptForward( visitor ); + } + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.TGComponent#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + + // Traverse the graph in the direction of the connector + getTGConnectingPointP1().acceptBackward( visitor ); + } + } + + public boolean isContainedBy( final TGComponent component ) { + if ( p2 != null ) { + if ( p2.getFather() instanceof TGComponent && ( (TGComponent) p2.getFather() ).getFather() == component ) { + return true; + } + } + + if ( p1 != null ) { + if ( p1.getFather() instanceof TGComponent && ( (TGComponent) p1.getFather() ).getFather() == component ) { + return true; + } + } + + return false; + } }//End of class diff --git a/src/main/java/ui/TGConnectorComment.java b/src/main/java/ui/TGConnectorComment.java index 9f17561d418df2dd5f5f892d90fb1e4c65969607..dc15f63d6e9db8c0b2f4ad4dae98bffaebe2e320 100755 --- a/src/main/java/ui/TGConnectorComment.java +++ b/src/main/java/ui/TGConnectorComment.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import myutil.GraphicLib; @@ -47,8 +44,6 @@ import ui.util.IconManager; import java.awt.*; import java.util.Vector; -//import java.awt.geom.*; - /** * Class TGConnectorComment * Connects a UML note to a component @@ -60,21 +55,23 @@ public class TGConnectorComment extends TGConnector { public TGConnectorComment(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); + myImageIcon = IconManager.imgic108; automaticDrawing = false; } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ GraphicLib.dashedLine(g, x1, y1, x2, y2); - } + @Override protected void drawMiddleSegment(Graphics g, int x1, int y1, int x2, int y2) { GraphicLib.dashedLine(g, x1, y1, x2, y2); } + @Override public int getType() { return TGComponentManager.CONNECTOR_COMMENT; } - } diff --git a/src/main/java/ui/TGConnectorFullArrow.java b/src/main/java/ui/TGConnectorFullArrow.java index 3e95702904cca99f41b5e3c4e3a37c883a069ebb..4b356be0e5b8a66213fc25a35b7760b2178a3a6c 100755 --- a/src/main/java/ui/TGConnectorFullArrow.java +++ b/src/main/java/ui/TGConnectorFullArrow.java @@ -35,9 +35,6 @@ * 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; @@ -56,13 +53,16 @@ import java.util.Vector; * @author Ludovic APVRILLE */ public class TGConnectorFullArrow extends TGConnector implements TGConnectorBetweenElementsInterface { + protected int arrowLength = 10; public TGConnectorFullArrow(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); + myImageIcon = IconManager.imgic202; } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -71,15 +71,8 @@ public class TGConnectorFullArrow extends TGConnector implements TGConnectorBet } } + @Override public int getType() { - // - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } } - - - - - - - diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java index 6ec0575134c1dc742a55375fdb720c41b76f2fa2..d5718d2838390a7fafafbdffddb5536bdafd525f 100644 --- a/src/main/java/ui/TGUIAction.java +++ b/src/main/java/ui/TGUIAction.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; import common.ConfigurationTTool; @@ -50,9 +47,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; -import myutil.*; - - /** * Class TGUIAction * @@ -265,7 +259,7 @@ public class TGUIAction extends AbstractAction { public static final int TMLCP_START = 384; public static final int TMLCP_STOP = 385; public static final int TMLCP_CHOICE = 386; - public static final int TMLCP_JUNCTION = 387; + // public static final int TMLCP_JUNCTION = 387; public static final int TMLCP_FOR_LOOP = 416; public static final int TMLSD_STORAGE_INSTANCE = 388; @@ -307,6 +301,16 @@ public class TGUIAction extends AbstractAction { public static final int ELN_TDF_VOLTAGE_SOURCE = 502; public static final int ELN_TDF_CURRENT_SOURCE = 503; public static final int ELN_CLUSTER = 504; + public static final int ELN_GENCODE = 505; + public static final int ELN_MODULE_PORT_DE = 506; + public static final int ELN_MODULE_PORT_TDF = 507; + public static final int ELN_CLUSTER_TERMINAL = 508; + public static final int ELN_CLUSTER_PORT_DE = 509; + public static final int ELN_CLUSTER_PORT_TDF = 510; + public static final int ELN_DE_CURRENT_SINK = 511; + public static final int ELN_DE_CURRENT_SOURCE = 512; + public static final int ELN_DE_VOLTAGE_SINK = 513; + public static final int ELN_DE_VOLTAGE_SOURCE = 514; public static final int EBRDD_EDIT = 271; public static final int EBRDD_CONNECTOR = 272; @@ -421,7 +425,7 @@ public class TGUIAction extends AbstractAction { public static final int ASMD_SEND_SIGNAL = 296; public static final int ASMD_RECEIVE_SIGNAL = 297; public static final int ASMD_LIBRARY_FUNCTION_CALL = 432; - public static final int ASMD_PARALLEL = 298; + //public static final int ASMD_PARALLEL = 298; Issue #69 public static final int ASMD_STATE = 299; public static final int ASMD_CHOICE = 325; public static final int ASMD_RANDOM = 326; @@ -662,7 +666,7 @@ public class TGUIAction extends AbstractAction { public static final int MOVE_ENABLED = 463; public static final int FIRST_DIAGRAM = 464; - public static final int NB_ACTION = 505; + public static final int NB_ACTION = 515; private static final TAction [] actions = new TAction[NB_ACTION]; @@ -1146,7 +1150,9 @@ public class TGUIAction extends AbstractAction { actions[TMLCP_CHOICE] = new TAction("add-tmlcp-choice", "Add Choice", IconManager.imgic208, IconManager.imgic208, "Choice", "Add a choice - non-deterministic or guarded - to the currently opened communication pattern diagram", 0); actions[TMLCP_START] = new TAction("add-tmlcp-start", "Add Start state", IconManager.imgic222, IconManager.imgic222, "Start", "Add a start state to the currently opened communication pattern diagram", 0); actions[TMLCP_STOP] = new TAction("add-tmlcp-stop", "Add Stop", IconManager.imgic210, IconManager.imgic210, "Stop", "Add a termination state to the currently opened communication pattern diagram", 0); - actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0); + + // Issue #69 Removed unused TMLCPJunction + //actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0); actions[TMLCP_FOR_LOOP] = new TAction("add-tmlcp-forloop", "Add loop", IconManager.imgic912, IconManager.imgic912, "Loop", "Add a for loop to the currently opened communication pattern diagram", 0); actions[TMLSD_EDIT] = new TAction("edit-tmlsd-diagram", "Edit CP-SD diagram", IconManager.imgic100, IconManager.imgic101, "Edit the Sequence Diagram", "Make it possible to edit the currently opened communication pattern sequence diagram", 0); @@ -1158,37 +1164,47 @@ public class TGUIAction extends AbstractAction { // 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_TDF] = new TAction("C-AMS-block-TDF", "Add a TDF block", IconManager.imgic8007, IconManager.imgic8007, "TDF block", "Add a TDF block to the currently opened SystemC-AMS Diagram", 0); - actions[CAMS_BLOCK_DE] = new TAction("C-AMS-block-DE", "Add a DE block", IconManager.imgic8008, IconManager.imgic8008, "DE block", "Add a DE block to the currently opened SystemC-AMS Diagram", 0); + actions[CAMS_BLOCK_TDF] = new TAction("C-AMS-block-TDF", "Add a TDF block", IconManager.imgic8004, IconManager.imgic8004, "TDF block", "Add a TDF block to the currently opened SystemC-AMS Diagram", 0); + actions[CAMS_BLOCK_DE] = new TAction("C-AMS-block-DE", "Add a DE block", IconManager.imgic8005, IconManager.imgic8005, "DE block", "Add a DE 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); actions[CAMS_PORT_TDF] = new TAction("C-AMS-port-TDF", "Add a TDF port", IconManager.imgic8000, IconManager.imgic8000, "TDF port", "Add a TDF port to the currently opened SystemC-AMS Diagram", 0); actions[CAMS_PORT_DE] = new TAction("C-AMS-port-DE", "Add a DE port", IconManager.imgic8001, IconManager.imgic8001, "DE port", "Add a DE port to the currently opened SystemC-AMS Diagram", 0); - actions[CAMS_PORT_CONVERTER] = new TAction("C-AMS-port-converter", "Add a converter port", IconManager.imgic8003, IconManager.imgic8003, "Converter port", "Add a converter port to the currently opened SystemC-AMS Diagram", 0); - actions[CAMS_CLUSTER] = new TAction("C-AMS-cluster", "Add a cluster", IconManager.imgic8006, IconManager.imgic8006, "Cluster", "Add a cluster to the currently opened SystemC-AMS Diagram", 0); - actions[CAMS_GENCODE] = new TAction("GENCODE", "GENCODE",IconManager.imgic94, IconManager.imgic94, "Generate SystemC-AMS code", "SystemC-AMS diagram without check syntax", 0); - actions[CAMS_BLOCK_GPIO2VCI] = new TAction("C-AMS-block-GPIO2VCI", "Add a block GPIO2VCI",IconManager.imgic8009, IconManager.imgic8009, "GPIO2VCI block", "Add a GPIO2VCI block to the currently opened SystemC-AMS Diagram", 0); + actions[CAMS_PORT_CONVERTER] = new TAction("C-AMS-port-converter", "Add a converter port", IconManager.imgic8002, IconManager.imgic8002, "Converter port", "Add a converter port to the currently opened SystemC-AMS Diagram", 0); + actions[CAMS_CLUSTER] = new TAction("C-AMS-cluster", "Add a cluster", IconManager.imgic8003, IconManager.imgic8003, "Cluster", "Add a cluster to the currently opened SystemC-AMS Diagram", 0); + actions[CAMS_GENCODE] = new TAction("C-AMS-gencode", "SystemC-AMS code generation",IconManager.imgic94, IconManager.imgic94, "Generate SystemC-AMS code", "SystemC-AMS diagram without check syntax", 0); + actions[CAMS_BLOCK_GPIO2VCI] = new TAction("C-AMS-block-GPIO2VCI", "Add a block GPIO2VCI",IconManager.imgic8006, IconManager.imgic8006, "GPIO2VCI block", "Add a GPIO2VCI block to the currently opened SystemC-AMS Diagram", 0); // ELN actions[ELN_EDIT] = new TAction("add-action-eln", "Action state", IconManager.imgic100, IconManager.imgic101, "Action state", "Add an action state to the currently opened ELN diagram", 0); actions[ELN_CONNECTOR] = new TAction("eln-connector", "Add a connection", IconManager.imgic202, IconManager.imgic202, "Connector", "Connects two block of the currently opened ELN Diagram", 0); - actions[ELN_RESISTOR] = new TAction("eln-resistor", "Add a resistor", IconManager.imgic8020, IconManager.imgic8020, "Resistor", "Add a resistor to the currently opened ELN Diagram", 0); - actions[ELN_CAPACITOR] = new TAction("eln-capacitor", "Add a capacitor", IconManager.imgic8021, IconManager.imgic8021, "Capacitor", "Add a capacitor to the currently opened ELN Diagram", 0); - actions[ELN_INDUCTOR] = new TAction("eln-inductor", "Add a inductor", IconManager.imgic8022, IconManager.imgic8022, "Self", "Add a inductor to the currently opened ELN Diagram", 0); - actions[ELN_VOLTAGE_CONTROLLED_VOLTAGE_SOURCE] = new TAction("eln-VCVS", "Add a voltage controlled voltage source", IconManager.imgic8023, IconManager.imgic8023, "Voltage controlled voltage source", "Add a voltage controlled voltage source to the currently opened ELN Diagram", 0); - actions[ELN_VOLTAGE_CONTROLLED_CURRENT_SOURCE] = new TAction("eln-VCCS", "Add a voltage controlled current source", IconManager.imgic8024, IconManager.imgic8024, "Voltage controlled current source", "Add a voltage controlled current source to the currently opened ELN Diagram", 0); - actions[ELN_IDEAL_TRANSFORMER] = new TAction("eln-ideal-transformer", "Add a ideal transformer", IconManager.imgic8025, IconManager.imgic8025, "Ideal transformer", "Add a ideal transformer to the currently opened ELN Diagram", 0); - actions[ELN_TRANSMISSION_LINE] = new TAction("eln-transmission-line", "Add a transmission line", IconManager.imgic8026, IconManager.imgic8026, "Transmission line", "Add a transmission line to the currently opened ELN Diagram", 0); - actions[ELN_INDEPENDENT_VOLTAGE_SOURCE] = new TAction("eln-vsource", "Add a independent voltage source", IconManager.imgic8027, IconManager.imgic8027, "Independent voltage source", "Add a independent voltage source to the currently opened ELN Diagram", 0); - actions[ELN_INDEPENDENT_CURRENT_SOURCE] = new TAction("eln-isource", "Add a independent current source", IconManager.imgic8028, IconManager.imgic8028, "Independent current source", "Add a independent current source to the currently opened ELN Diagram", 0); - actions[ELN_NODE_REF] = new TAction("eln-node-ref", "Add a reference node", IconManager.imgic8029, IconManager.imgic8029, "Reference node", "Add a reference node to the currently opened ELN Diagram", 0); - actions[ELN_TDF_VOLTAGE_SINK] = new TAction("eln-tdf-vsink", "Add a conversion voltage to a TDF output signal", IconManager.imgic8030, IconManager.imgic8030, "Converts voltage to a TDF output signal", "Add a converts voltage to a TDF output signal to the currently opened ELN Diagram", 0); - actions[ELN_TDF_CURRENT_SINK] = new TAction("eln-tdf-isink", "Add a conversion current to a TDF output signal", IconManager.imgic8031, IconManager.imgic8031, "Converts current to a TDF output signal", "Add a converts current to a TDF output signal to the currently opened ELN Diagram", 0); - actions[ELN_MODULE] = new TAction("eln-module", "Add a SystemC module", IconManager.imgic8006, IconManager.imgic8006, "SystemC module", "Add a SystemC module to the currently opened ELN Diagram", 0); - actions[ELN_MODULE_TERMINAL] = new TAction("eln-module-terminal", "Add a module terminal", IconManager.imgic8032, IconManager.imgic8032, "Module terminal", "Add a module terminal to the currently opened ELN Diagram", 0); + actions[ELN_RESISTOR] = new TAction("eln-resistor", "Add a resistor", IconManager.imgic8010, IconManager.imgic8010, "Resistor", "Add a resistor to the currently opened ELN Diagram", 0); + actions[ELN_CAPACITOR] = new TAction("eln-capacitor", "Add a capacitor", IconManager.imgic8011, IconManager.imgic8011, "Capacitor", "Add a capacitor to the currently opened ELN Diagram", 0); + actions[ELN_INDUCTOR] = new TAction("eln-inductor", "Add a inductor", IconManager.imgic8012, IconManager.imgic8012, "Self", "Add a inductor to the currently opened ELN Diagram", 0); + actions[ELN_VOLTAGE_CONTROLLED_VOLTAGE_SOURCE] = new TAction("eln-VCVS", "Add a voltage controlled voltage source", IconManager.imgic8013, IconManager.imgic8013, "Voltage controlled voltage source", "Add a voltage controlled voltage source to the currently opened ELN Diagram", 0); + actions[ELN_VOLTAGE_CONTROLLED_CURRENT_SOURCE] = new TAction("eln-VCCS", "Add a voltage controlled current source", IconManager.imgic8014, IconManager.imgic8014, "Voltage controlled current source", "Add a voltage controlled current source to the currently opened ELN Diagram", 0); + actions[ELN_IDEAL_TRANSFORMER] = new TAction("eln-ideal-transformer", "Add a ideal transformer", IconManager.imgic8015, IconManager.imgic8015, "Ideal transformer", "Add a ideal transformer to the currently opened ELN Diagram", 0); + actions[ELN_TRANSMISSION_LINE] = new TAction("eln-transmission-line", "Add a transmission line", IconManager.imgic8016, IconManager.imgic8016, "Transmission line", "Add a transmission line to the currently opened ELN Diagram", 0); + actions[ELN_INDEPENDENT_VOLTAGE_SOURCE] = new TAction("eln-vsource", "Add a independent voltage source", IconManager.imgic8017, IconManager.imgic8017, "Independent voltage source", "Add a independent voltage source to the currently opened ELN Diagram", 0); + actions[ELN_INDEPENDENT_CURRENT_SOURCE] = new TAction("eln-isource", "Add a independent current source", IconManager.imgic8018, IconManager.imgic8018, "Independent current source", "Add a independent current source to the currently opened ELN Diagram", 0); + actions[ELN_NODE_REF] = new TAction("eln-node-ref", "Add a node reference", IconManager.imgic8019, IconManager.imgic8019, "Reference node", "Add a node reference to the currently opened ELN Diagram", 0); + actions[ELN_TDF_VOLTAGE_SINK] = new TAction("eln-tdf-vsink", "Add a conversion voltage to a TDF output signal", IconManager.imgic8020, IconManager.imgic8020, "Converts voltage to a TDF output signal", "Add a converts voltage to a TDF output signal to the currently opened ELN Diagram", 0); + actions[ELN_TDF_CURRENT_SINK] = new TAction("eln-tdf-isink", "Add a conversion current to a TDF output signal", IconManager.imgic8021, IconManager.imgic8021, "Converts current to a TDF output signal", "Add a converts current to a TDF output signal to the currently opened ELN Diagram", 0); + actions[ELN_MODULE] = new TAction("eln-module", "Add a SystemC module", IconManager.imgic8025, IconManager.imgic8025, "Module", "Add a module to the currently opened ELN Diagram", 0); + actions[ELN_MODULE_TERMINAL] = new TAction("eln-module-terminal", "Add a module terminal", IconManager.imgic8022, IconManager.imgic8022, "Module terminal", "Add a module terminal to the currently opened ELN Diagram", 0); actions[ELN_TOGGLE_ATTR] = new TAction("eln-toggle-attr-command", "Show / hide attributes in ELN", IconManager.imgic138, IconManager.imgic138, "Show / hide element attributes in ELN", "Show / hide attributes to the currently opened ELN Diagram", 0); - actions[ELN_TDF_VOLTAGE_SOURCE] = new TAction("eln-tdf-vsource", "Add a voltage source driven by a TDF input signal", IconManager.imgic8033, IconManager.imgic8033, "Voltage source driven by a TDF input signal", "Add a voltage source driven by a TDF input signal to the currently opened ELN Diagram", 0); - actions[ELN_TDF_CURRENT_SOURCE] = new TAction("eln-tdf-isource", "Add a current source driven by a TDF input signal", IconManager.imgic8034, IconManager.imgic8034, "Current source driven by a TDF input signal", "Add a current source driven by a TDF input signal to the currently opened ELN Diagram", 0); - actions[ELN_CLUSTER] = new TAction("eln-cluster", "Add a cluster", IconManager.imgic8006, IconManager.imgic8006, "Cluster", "Add a cluster to the currently opened ELN Diagram", 0); + actions[ELN_TDF_VOLTAGE_SOURCE] = new TAction("eln-tdf-vsource", "Add a voltage source driven by a TDF input signal", IconManager.imgic8023, IconManager.imgic8023, "Voltage source driven by a TDF input signal", "Add a voltage source driven by a TDF input signal to the currently opened ELN Diagram", 0); + actions[ELN_TDF_CURRENT_SOURCE] = new TAction("eln-tdf-isource", "Add a current source driven by a TDF input signal", IconManager.imgic8024, IconManager.imgic8024, "Current source driven by a TDF input signal", "Add a current source driven by a TDF input signal to the currently opened ELN Diagram", 0); + actions[ELN_CLUSTER] = new TAction("eln-cluster", "Add a cluster", IconManager.imgic8003, IconManager.imgic8003, "Cluster", "Add a cluster to the currently opened ELN Diagram", 0); + actions[ELN_GENCODE] = new TAction("eln-gencode", "ELN code generation", IconManager.imgic94, IconManager.imgic94, "Generate ELN code", "ELN diagram without check syntax", 0); + actions[ELN_MODULE_PORT_DE] = new TAction("eln-module-port-DE", "Add a module port DE", IconManager.imgic8001, IconManager.imgic8001, "Module port DE", "Add a module port DE to the currently opened ELN Diagram", 0); + actions[ELN_MODULE_PORT_TDF] = new TAction("eln-module-port-TDF", "Add a module port TDF", IconManager.imgic8000, IconManager.imgic8000, "Module port TDF", "Add a module port TDF to the currently opened ELN Diagram", 0); + actions[ELN_CLUSTER_TERMINAL] = new TAction("eln-cluster-terminal", "Add a cluster terminal", IconManager.imgic8022, IconManager.imgic8022, "Cluster terminal", "Add a cluster terminal to the currently opened ELN Diagram", 0); + actions[ELN_CLUSTER_PORT_DE] = new TAction("eln-cluster-port-DE", "Add a cluster port DE", IconManager.imgic8001, IconManager.imgic8001, "Cluster port DE", "Add a cluster port DE to the currently opened ELN Diagram", 0); + actions[ELN_CLUSTER_PORT_TDF] = new TAction("eln-cluster-port-TDF", "Add a cluster port TDF", IconManager.imgic8000, IconManager.imgic8000, "Cluster port TDF", "Add a cluster port TDF to the currently opened ELN Diagram", 0); + actions[ELN_DE_CURRENT_SINK] = new TAction("eln-de-isink", "Add a conversion current to a DE output signal", IconManager.imgic8026, IconManager.imgic8026, "Converts current to a DE output signal", "Add a converts current to a DE output signal to the currently opened ELN Diagram", 0); + actions[ELN_DE_CURRENT_SOURCE] = new TAction("eln-de-isource", "Add a current source driven by a DE input signal", IconManager.imgic8027, IconManager.imgic8027, "Current source driven by a DE input signal", "Add a current source driven by a DE input signal to the currently opened ELN Diagram", 0); + actions[ELN_DE_VOLTAGE_SINK] = new TAction("eln-de-vsink", "Add a conversion voltage to a DE output signal", IconManager.imgic8028, IconManager.imgic8028, "Converts voltage to a DE output signal", "Add a converts voltage to a DE output signal to the currently opened ELN Diagram", 0); + actions[ELN_DE_VOLTAGE_SOURCE] = new TAction("eln-de-vsource", "Add a voltage source driven by a DE input signal", IconManager.imgic8029, IconManager.imgic8029, "Voltage source driven by a DE input signal", "Add a voltage source driven by a DE input signal to the currently opened ELN 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); @@ -1285,7 +1301,7 @@ public class TGUIAction extends AbstractAction { actions[ASMD_RECEIVE_SIGNAL] = new TAction("add-asmd-receivesignal", "Receive signal", IconManager.imgic2016, IconManager.imgic2016, "Receive signal", "Add a receive signal operator to the currently opened AVATAR state machine diagram", 0); // TODO: change icon actions[ASMD_LIBRARY_FUNCTION_CALL] = new TAction("add-asmd-libraryfunctioncall", "Library function call", IconManager.imgic2018, IconManager.imgic2018, "Library function call", "Add a library function call to the currently opened AVATAR state machine diagram", 0); - actions[ASMD_PARALLEL] = new TAction("add-asmd-parallel", "Parallel", IconManager.imgic206, IconManager.imgic206, "Parallel", "Add a parallel operator to the currently opened AVATAR state machine diagram", 0); + //actions[ASMD_PARALLEL] = new TAction("add-asmd-parallel", "Parallel", IconManager.imgic206, IconManager.imgic206, "Parallel", "Add a parallel operator to the currently opened AVATAR state machine diagram", 0); actions[ASMD_STATE] = new TAction("add-asmd-state", "State", IconManager.imgic5036, IconManager.imgic5036, "State", "Add a new state to the currently opened AVATAR state machine diagram", 0); actions[ASMD_CHOICE] = new TAction("add-asmd-choice", "Add Choice", IconManager.imgic208, IconManager.imgic208, "Choice", "Add a choice - non-deterministic or guarded - to the currently opened AVATAR state machine diagram", 0); actions[ASMD_RANDOM] = new TAction("add-asmd-random", "Add random", IconManager.imgic924, IconManager.imgic924, "Select random", "Add a random operator to the currently opened AVATAR State Machine diagram", 0); @@ -1366,10 +1382,9 @@ public class TGUIAction extends AbstractAction { actions[ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS] = new TAction("generate-ontology-all-diagrams", "Generate ontology (all diagrams)", IconManager.imgic338, IconManager.imgic339, "Generate ontology (all diagrams)", "Generate the ontology for the diagrams under edition", 0); actions[MOVE_ENABLED] = new TAction("Move", "Move enabled", IconManager.imgic780, IconManager.imgic780, "Move enabled (shift + arrow)", "Move", 0); - actions[FIRST_DIAGRAM] = new TAction("FirstDiagram", "First Diagram", IconManager.imgic142, IconManager.imgic142, "Switch the the first diagram", "Switch to the first diagram", 0); + actions[FIRST_DIAGRAM] = new TAction("FirstDiagram", "First Diagram", IconManager.imgic142, IconManager.imgic142, "Switch the the first diagram", "Switch to the first diagram", 0); } - public String getActionCommand() { return (String)getValue(Action.ACTION_COMMAND_KEY); } @@ -1382,6 +1397,7 @@ public class TGUIAction extends AbstractAction { return (String)getValue(Action.LONG_DESCRIPTION); } + @Override public void actionPerformed(ActionEvent evt) { if (listeners != null) { Object[] listenerList = listeners.getListenerList(); diff --git a/src/main/java/ui/TURTLEModelChecker.java b/src/main/java/ui/TURTLEModelChecker.java index f5d9ab4d1c492cbf3189668ba87ed53f01f129f9..716b0ac696eead79f1b8289e0f9f33a67a4c9251 100755 --- a/src/main/java/ui/TURTLEModelChecker.java +++ b/src/main/java/ui/TURTLEModelChecker.java @@ -36,21 +36,32 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui; +import java.io.StringReader; +import java.util.LinkedList; +import java.util.List; + import compiler.tmlparser.ParseException; import compiler.tmlparser.SimpleNode; import compiler.tmlparser.TMLExprParser; import compiler.tmlparser.TokenMgrError; import myutil.TraceManager; -import translator.*; - -import java.io.StringReader; -import java.util.ArrayList; -import java.util.LinkedList; +import translator.ADActionStateWithGate; +import translator.ADActionStateWithParam; +import translator.ADChoice; +import translator.ADComponent; +import translator.ADDelay; +import translator.ADLatency; +import translator.ADParallel; +import translator.ADTLO; +import translator.ADTimeInterval; +import translator.ActivityDiagram; +import translator.CheckingError; +import translator.Gate; +import translator.Param; +import translator.TClass; +import translator.TURTLEModeling; /** @@ -95,7 +106,7 @@ public class TURTLEModelChecker { private String ERROR_AD_009_1 = " variable is not correctly used"; private String ERROR_AD_009_2 = " unknown variable"; private String ERROR_AD_009_3 = " unknown gate"; - private String ERROR_AD_009_4 = " unknown param"; + //private String ERROR_AD_009_4 = " unknown param"; private String ERROR_AD_009_5 = " null gate"; private String ERROR_AD_009_6 = " null param"; @@ -581,7 +592,7 @@ public class TURTLEModelChecker { } // Tree analysis: if the tree contains a variable, then, this variable has not been declared - ArrayList<String> vars = root.getVariables(); + List<String> vars = root.getVariables(); for(String s: vars) { // is that string a variable? if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) { diff --git a/src/main/java/ui/TURTLEPanel.java b/src/main/java/ui/TURTLEPanel.java index 632faec35f68da4eb32a615b0c61a0c376fb2b69..f7a3fcb421a61cfc4967f2c41add019f63a2aa76 100755 --- a/src/main/java/ui/TURTLEPanel.java +++ b/src/main/java/ui/TURTLEPanel.java @@ -368,6 +368,10 @@ public abstract class TURTLEPanel implements GenericTree { return false; } + public boolean isELNEnabled() { + return false; + } + public MainGUI getMainGUI() { return mgui; } diff --git a/src/main/java/ui/TURTLEPanelPopupListener.java b/src/main/java/ui/TURTLEPanelPopupListener.java index 139c24dfab0b9feb091f72debcac488b2e03c111..d9e2a327ff53abad6de25753b7181a6ac150d778 100755 --- a/src/main/java/ui/TURTLEPanelPopupListener.java +++ b/src/main/java/ui/TURTLEPanelPopupListener.java @@ -65,7 +65,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t protected MainGUI mgui; private JMenuItem rename, remove, moveRight, moveLeft, sort, newucd, newsd, newsdzv, newsdfromucd, newreq, - newebrdd, newprosmd, newavatarrd, newavatarpd, newavatarcd, newavatarad, newavatarmad, newsyscams; + newebrdd, newprosmd, newavatarrd, newavatarpd, newavatarcd, newavatarad, newavatarmad, newsyscams, neweln; private JMenuItem newatd, newftd; public TURTLEPanelPopupListener(TURTLEPanel _tp, MainGUI _mgui) { @@ -121,6 +121,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t newavatarad = createMenuItem("New Activity Diagram"); newavatarmad = createMenuItem("New AVATAR Modeling Assumptions Diagram"); newsyscams = createMenuItem("New SystemC-AMS Diagram"); + neweln = createMenuItem("New ELN Diagram"); menu = new JPopupMenu("TURTLE panel"); menu.add(moveLeft); @@ -157,6 +158,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t if (mgui.isSystemcOn()) { menu.addSeparator(); menu.add(newsyscams); + menu.add(neweln); } } @@ -214,13 +216,14 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t newebrdd.setEnabled(tp.isReqEnabled()); newprosmd.setEnabled(tp.isProSMDEnabled()); newatd.setEnabled(tp.isATDEnabled()); - newftd.setEnabled(tp.isFTDEnabled()); + newftd.setEnabled(tp.isFTDEnabled()); newavatarrd.setEnabled(tp.isAvatarRDEnabled()); newavatarpd.setEnabled(tp.isAvatarPDEnabled()); newavatarcd.setEnabled(tp.isAvatarCDEnabled()); newavatarad.setEnabled(tp.isAvatarADEnabled()); newavatarmad.setEnabled(tp.isAvatarMADEnabled()); newsyscams.setEnabled(tp.isSystemCAMSEnabled()); + neweln.setEnabled(tp.isELNEnabled()); } private Action listener = new AbstractAction() { @@ -258,7 +261,7 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t } else if (ac.equals("New Attack Tree Diagram")) { mgui.createAttackTreeDiagram(tp, "Attack Tree"); mgui.changeMade(null, -1); - } else if (e.getSource() == newftd) { + } else if (e.getSource() == newftd) { mgui.createFaultTreeDiagram(tp, "Fault Tree"); mgui.changeMade(null, -1); } else if (ac.equals("New Event-Based Requirement Description Diagram")) { @@ -285,6 +288,9 @@ public class TURTLEPanelPopupListener extends MouseAdapter /* popup menus onto t } else if (e.getSource() == newsyscams) { mgui.createSysCAMS(tp, "SystemC-AMS Component Diagram"); mgui.changeMade(null, -1); + } else if (e.getSource() == neweln) { + mgui.createELN(tp, "ELN Diagram"); + mgui.changeMade(null, -1); } } }; diff --git a/src/main/java/ui/TrackingCDElementVisitor.java b/src/main/java/ui/TrackingCDElementVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..5dbfd6a684deb5a207329c38a2572e7d960ee6ab --- /dev/null +++ b/src/main/java/ui/TrackingCDElementVisitor.java @@ -0,0 +1,18 @@ +package ui; + +import java.util.HashSet; +import java.util.Set; + +public abstract class TrackingCDElementVisitor implements ICDElementVisitor { + + private final Set<CDElement> visitedElements; + + protected TrackingCDElementVisitor() { + visitedElements = new HashSet<CDElement>(); + } + + @Override + public boolean visit(CDElement element) { + return visitedElements.add( element ); + } +} diff --git a/src/main/java/ui/UICheckingError.java b/src/main/java/ui/UICheckingError.java index bbbb281e7e56998126685e030bd9ef4ba0dac48d..b03b7feeba0e8b516c7e27b03e7734fffbce8911 100755 --- a/src/main/java/ui/UICheckingError.java +++ b/src/main/java/ui/UICheckingError.java @@ -36,16 +36,10 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - - package ui; import translator.CheckingError; - - /** * Class UICheckingError * Creation: 07/06/2017 @@ -54,7 +48,14 @@ import translator.CheckingError; */ public class UICheckingError extends CheckingError { - private TDiagramPanel tdp; + /** + * + */ + private static final long serialVersionUID = -6532490783339577084L; + + public static final String MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC = "Badly formatted choice: it has both non-determinitic/ stochastic and regular guards"; + + private TDiagramPanel tdp; private TGComponent tgc; public UICheckingError(int _type, String _message) { diff --git a/src/main/java/ui/ad/CanBeDisabledADElementVisitor.java b/src/main/java/ui/ad/CanBeDisabledADElementVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..19c917284485eff8540a826c529ee02b7d3d226a --- /dev/null +++ b/src/main/java/ui/ad/CanBeDisabledADElementVisitor.java @@ -0,0 +1,53 @@ +package ui.ad; + +import ui.TrackingCDElementVisitor; +import ui.CDElement; +import ui.TGConnectingPoint; + +public class CanBeDisabledADElementVisitor extends TrackingCDElementVisitor { + + private boolean canBeDisabled; + + public CanBeDisabledADElementVisitor() { + super(); + + canBeDisabled = true; + } + + /* Check that the element is not part of the inside loop of a for loop + * (non-Javadoc) + * @see ui.ICDElementVisitor#visit(ui.CDElement) + */ + @Override + public boolean visit( final CDElement element ) { + if ( !super.visit( element ) ) { + return false; + } + + if ( element instanceof TGConnectingPoint ) { + final CDElement father = ( (TGConnectingPoint) element ).getFather(); + + if ( father instanceof TADForLoop ) { + if ( element == ( (TADForLoop) father ).getInsideLoopConnectingPoint() && !father.isEnabled() ) { + canBeDisabled = false; + + return false; + } + } + +// if ( father instanceof TADSequence ) { +// if ( element != ( (TADSequence) father ).getEnterSequenceConnectionPoint() && !father.isEnabled() ) { +// canBeDisabled = false; +// +// return false; +// } +// } + } + + return true; + } + + public boolean isCanBeDisabled() { + return canBeDisabled; + } +} diff --git a/src/main/java/ui/ad/EnablingADBranchVisitor.java b/src/main/java/ui/ad/EnablingADBranchVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..592367a6845dd8631968d4a8d777836a0be446ff --- /dev/null +++ b/src/main/java/ui/ad/EnablingADBranchVisitor.java @@ -0,0 +1,30 @@ +package ui.ad; + +import ui.CDElement; +import ui.TrackingCDElementVisitor; + +public class EnablingADBranchVisitor extends TrackingCDElementVisitor { + + private final boolean enabled; + + public EnablingADBranchVisitor( final boolean enabled ) { + super(); + + this.enabled = enabled; + } + + /* Disable everything of the branch + * (non-Javadoc) + * @see ui.ICDElementVisitor#visit(ui.CDElement) + */ + @Override + public boolean visit( final CDElement element ) { + if ( !super.visit( element ) ) { + return false; + } + + element.doSetEnabled( enabled ); + + return true; + } +} diff --git a/src/main/java/ui/ad/EnablingADConnectorVisitor.java b/src/main/java/ui/ad/EnablingADConnectorVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..60a190a3501038aa1684ad691b32976d36ecdf9c --- /dev/null +++ b/src/main/java/ui/ad/EnablingADConnectorVisitor.java @@ -0,0 +1,51 @@ +package ui.ad; + +import ui.CDElement; +import ui.TGConnectingPoint; +import ui.TGConnector; +import ui.TrackingCDElementVisitor; + +public class EnablingADConnectorVisitor extends TrackingCDElementVisitor { + + private final boolean enabled; + + public EnablingADConnectorVisitor( final boolean enabled ) { + super(); + + this.enabled = enabled; + } + + @Override + public boolean visit( final CDElement element ) { + if ( !super.visit( element ) ) { + return false; + } + + // Do not disable the stop + if ( element instanceof TADStopState ) { + return false; + } + + if ( element.canBeDisabled() && !( element instanceof TGConnector ) ) { + element.setEnabled( enabled ); + } + + if ( element instanceof TGConnectingPoint ) { + final TGConnectingPoint point = (TGConnectingPoint) element; + final CDElement father = point.getFather(); + + // Only continue if the point does not belongs to the inside of the loop because it is managed by + // the For itself + if ( father instanceof TADForLoop ) { + return point != ( (TADForLoop) father ).getInsideLoopConnectingPoint(); + } + + // Disabling a sequence results in disabling all its branches so only continue if we are at entrance +// if ( father instanceof TADSequence ) { +// return point == ( (TADSequence) father ).getEnterSequenceConnectionPoint(); +// } + } + + return true; + } +} diff --git a/src/main/java/ui/ad/TADActionState.java b/src/main/java/ui/ad/TADActionState.java index 6188b2dcd4b27720e1b06adc48d5b987e3fbdba9..a99752dca2228217c788dc40d6377af4674ec437 100755 --- a/src/main/java/ui/ad/TADActionState.java +++ b/src/main/java/ui/ad/TADActionState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,7 +52,7 @@ import java.awt.geom.Line2D; * @version 1.0 12/08/2003 * @author Ludovic APVRILLE */ -public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJavaCode, CheckableAccessibility, ActionStateErrorHighlight { +public class TADActionState extends TADOneLineText/* Issue #69 TGCOneLineText*/ implements PreJavaCode, PostJavaCode, CheckableAccessibility, ActionStateErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -71,11 +68,12 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ height = 20; minWidth = 30; - nbConnectingPoint = 2; - connectingPoint = new TGConnectingPoint[2]; - connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); - addTGConnectingPointsComment(); + createConnectingPoints(); +// nbConnectingPoint = 2; +// connectingPoint = new TGConnectingPoint[2]; +// connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); +// addTGConnectingPointsComment(); moveable = true; editable = true; @@ -87,6 +85,16 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ myImageIcon = IconManager.imgic204; } + protected void createConnectingPoints() { + nbConnectingPoint = 2; + connectingPoint = new TGConnectingPoint[ nbConnectingPoint ]; + connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); + + addTGConnectingPointsComment(); + } + + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -127,6 +135,7 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -175,19 +184,18 @@ public class TADActionState extends TGCOneLineText implements PreJavaCode, PostJ return ret; } + @Override public int getType() { return TGComponentManager.TAD_ACTION_STATE; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + @Override public void setStateAction(int _stateAction) { stateAction = _stateAction; } - - - - } diff --git a/src/main/java/ui/ad/TADArrayGetState.java b/src/main/java/ui/ad/TADArrayGetState.java index 96138a63e5ab255b858990d9200648ec3edd4c98..47e708e4ac03371051471f2ac5a32b0f59b28000 100755 --- a/src/main/java/ui/ad/TADArrayGetState.java +++ b/src/main/java/ui/ad/TADArrayGetState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -60,7 +57,7 @@ import java.awt.geom.Line2D; * @version 1.0 20/03/2009 * @author Ludovic APVRILLE */ -public class TADArrayGetState extends TGCWithoutInternalComponent implements BasicErrorHighlight { +public class TADArrayGetState extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -98,8 +95,7 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas myImageIcon = IconManager.imgic230; } - - + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -136,8 +132,8 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas }*/ } + @Override public boolean editOndoubleClick(JFrame frame) { - String oldValue = value; JDialogArrayGet jdag = new JDialogArrayGet(frame, variable, array, index, "Getting value from an array"); @@ -161,6 +157,7 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas value = variable + " = " + array + "[" + index + "]"; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Prop variable=\""); @@ -213,6 +210,7 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas makeValue(); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -242,17 +240,18 @@ public class TADArrayGetState extends TGCWithoutInternalComponent implements Bas return index; } + @Override public int getType() { return TGComponentManager.TAD_ARRAY_GET; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + @Override public void setStateAction(int _stateAction) { stateAction = _stateAction; } - - } diff --git a/src/main/java/ui/ad/TADArraySetState.java b/src/main/java/ui/ad/TADArraySetState.java index 80517ed993c7f5068d46264f5903b37170c069f7..4e0060f2fc1db93fc6c34b44c2d523b670654ae8 100755 --- a/src/main/java/ui/ad/TADArraySetState.java +++ b/src/main/java/ui/ad/TADArraySetState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -60,7 +57,7 @@ import java.awt.geom.Line2D; * @version 1.0 20/03/2009 * @author Ludovic APVRILLE */ -public class TADArraySetState extends TGCWithoutInternalComponent implements BasicErrorHighlight { +public class TADArraySetState extends TADComponentWithoutSubcomponents/* Issue #69TGCWithoutInternalComponent */ implements BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -72,7 +69,6 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas protected String expr = "x"; protected int stateAction = 0; // 0: unchecked 1: ok; 2:unknown - public TADArraySetState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -97,8 +93,7 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas myImageIcon = IconManager.imgic232; } - - + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -126,11 +121,10 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); g.drawString(value, x + (width - w) / 2 , y + textY); - } - + + @Override public boolean editOndoubleClick(JFrame frame) { - String oldValue = value; JDialogArraySet jdas = new JDialogArraySet(frame, array, index, expr, "Setting value of an array location"); @@ -154,6 +148,7 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas value = array + "[" + index + "] = " + expr; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Prop expr=\""); @@ -206,6 +201,7 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas makeValue(); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -235,17 +231,18 @@ public class TADArraySetState extends TGCWithoutInternalComponent implements Bas return index; } + @Override public int getType() { return TGComponentManager.TAD_ARRAY_SET; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + @Override public void setStateAction(int _stateAction) { stateAction = _stateAction; } - - } diff --git a/src/main/java/ui/ad/TADChoice.java b/src/main/java/ui/ad/TADChoice.java index ab65e5b2111e537eaf38082eb68dae968dbb2c6c..67361b576a6755f4468f09759461bf9f01a61950 100755 --- a/src/main/java/ui/ad/TADChoice.java +++ b/src/main/java/ui/ad/TADChoice.java @@ -36,18 +36,18 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; import ui.*; import ui.util.IconManager; -import java.awt.*; +import java.awt.Color; +import java.awt.Graphics; import java.awt.geom.Line2D; - +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * Class TADChoice @@ -56,11 +56,19 @@ import java.awt.geom.Line2D; * @version 1.0 21/12/2003 * @author Ludovic APVRILLE */ -public class TADChoice extends TGCWithInternalComponent { - private int lineLength = 10; - private int lineOutLength = 25; - private int textX1, textY1, textX2, textY2, textX3, textY3; +public class TADChoice extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent */ { + + public static final String EMPTY_GUARD_TEXT = "[ ]"; + + private static final String TRUE_GUARD_TEXT = "[ true ]"; + + protected int lineLength = 10; + + protected int lineOutLength = 25; + private int textX1, textY1, textX2, textY2, textX3, textY3; + + protected int stateOfError = 0; public TADChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -74,31 +82,34 @@ public class TADChoice extends TGCWithInternalComponent { textX3 = width /2 + 5; textY3 = height + 15; - nbConnectingPoint = 4; - connectingPoint = new TGConnectingPoint[nbConnectingPoint]; - connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointAD(this, -lineOutLength, 0, false, true, 0.0, 0.5); - connectingPoint[2] = new TGConnectingPointAD(this, lineOutLength, 0, false, true, 1.0, 0.5); - connectingPoint[3] = new TGConnectingPointAD(this, 0, lineOutLength, false, true, 0.5, 1.0); - addTGConnectingPointsComment(); + createConnectingPoints(); +// nbConnectingPoint = 4; +// connectingPoint = new TGConnectingPoint[nbConnectingPoint]; +// connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointAD(this, -lineOutLength, 0, false, true, 0.0, 0.5); +// connectingPoint[2] = new TGConnectingPointAD(this, lineOutLength, 0, false, true, 1.0, 0.5); +// connectingPoint[3] = new TGConnectingPointAD(this, 0, lineOutLength, false, true, 0.5, 1.0); +// addTGConnectingPointsComment(); nbInternalTGComponent = 3; tgcomponent = new TGComponent[nbInternalTGComponent]; + + createGuards(); - TGCOneLineText tgc = new TGCOneLineText(x+textX1-50, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 1"); - tgcomponent[0] = tgc; - - tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 2"); - tgcomponent[1] = tgc; - - tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 3"); - tgcomponent[2] = tgc; +// TGCOneLineText tgc = new TGCOneLineText(x+textX1-50, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 1"); +// tgcomponent[0] = tgc; +// +// tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 2"); +// tgcomponent[1] = tgc; +// +// tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 3"); +// tgcomponent[2] = tgc; moveable = true; editable = false; @@ -108,9 +119,53 @@ public class TADChoice extends TGCWithInternalComponent { myImageIcon = IconManager.imgic208; } + + protected void createConnectingPoints() { + nbConnectingPoint = 4; + connectingPoint = new TGConnectingPoint[nbConnectingPoint]; + connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[1] = new TGConnectingPointAD(this, -lineOutLength, 0, false, true, 0.0, 0.5); + connectingPoint[2] = new TGConnectingPointAD(this, lineOutLength, 0, false, true, 1.0, 0.5); + connectingPoint[3] = new TGConnectingPointAD(this, 0, lineOutLength, false, true, 0.5, 1.0); + addTGConnectingPointsComment(); + } + protected void createGuards() { + TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, tdp); + tgc.setValue( EMPTY_GUARD_TEXT ); + tgc.setName("guard 1"); + tgcomponent[ 0 ] = tgc; + + tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, tdp); + tgc.setValue( EMPTY_GUARD_TEXT ); + tgc.setName("guard 2"); + tgcomponent[ 1 ] = tgc; + + tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, tdp); + tgc.setValue( EMPTY_GUARD_TEXT ); + tgc.setName("guard 3"); + tgcomponent[ 2 ] = tgc; + } + + @Override public void internalDrawing(Graphics g) { - g.drawLine(x+(width/2), y, x+width, y + height/2); + if (stateOfError > 0) { + Color c = g.getColor(); + switch(stateOfError) { + case ErrorHighlight.OK: + g.setColor(ColorManager.CHOICE); + break; + default: + g.setColor(ColorManager.UNKNOWN_BOX_ACTION); + } + // Making the polygon + int [] px1 = {x+(width/2), x+width+2, x + (width/2), x}; + int [] py1 = {y, y + height/2, y+height+2, y+height/2}; + g.fillPolygon(px1, py1, 4); + g.setColor(c); + } + + g.drawLine(x+(width/2), y, x+width, y + height/2); g.drawLine(x, y + height / 2, x+width/2, y + height); g.drawLine(x + width/2, y, x, y + height/2); g.drawLine(x + width, y + height/2, x + width/2, y + height); @@ -121,6 +176,7 @@ public class TADChoice extends TGCWithInternalComponent { g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); } + @Override public TGComponent isOnOnlyMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -158,20 +214,72 @@ public class TADChoice extends TGCWithInternalComponent { tgcomponent[i].setValue(guard); } } - + + public List<String> getGuards() { + List<String> guards = new ArrayList<String>(); + for( int i = 0; i < nbInternalTGComponent; i++ ) { + guards.add( getGuard(i) ); + } + return guards; + } + + /** + * Issue #69 + * @param point + * @return + */ + public TGCOneLineText getGuardForConnectingPoint( final TGConnectingPoint point ) { + final int index = Arrays.asList( connectingPoint ).indexOf( point ); + + if ( index < 0 ) { + throw new IllegalArgumentException( "No guard found for connecting point " + point ); + } + + return (TGCOneLineText) tgcomponent[ index - 1 ]; + } + + @Override public int getType() { return TGComponentManager.TAD_CHOICE; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + + public void setStateAction(int _stateAction) { + stateOfError = _stateAction; + } -} - - - - - - + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return false; + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canLabelBeDisabled( final TGCOneLineText label ) { + return label.getValue() != null && !label.getValue().isEmpty() && !EMPTY_GUARD_TEXT.equals( label.getValue() ); + } + + /** + * Issue #69 + * @param guard + * @return + */ + public String getEffectiveCondition( final TGCOneLineText guard ) { + if ( guard.isEnabled() ) { + return guard.getValue(); + } + return TRUE_GUARD_TEXT; + } +} diff --git a/src/main/java/ui/ad/TADComponentWithSubcomponents.java b/src/main/java/ui/ad/TADComponentWithSubcomponents.java new file mode 100644 index 0000000000000000000000000000000000000000..7faa2ecd2c04d57e79a02bc5b2ecb53a85072b2f --- /dev/null +++ b/src/main/java/ui/ad/TADComponentWithSubcomponents.java @@ -0,0 +1,30 @@ +package ui.ad; + +import ui.TDiagramPanel; +import ui.TGCScalableWithInternalComponent; +import ui.TGComponent; + +/** + * Issue #69 + * @author dblouin + * + */ +public abstract class TADComponentWithSubcomponents extends TGCScalableWithInternalComponent /*TGCWithInternalComponent*/ { + + public TADComponentWithSubcomponents(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, + boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor(); + acceptBackward( visitor ); + + return visitor.isCanBeDisabled(); + } +} diff --git a/src/main/java/ui/ad/TADComponentWithoutSubcomponents.java b/src/main/java/ui/ad/TADComponentWithoutSubcomponents.java new file mode 100644 index 0000000000000000000000000000000000000000..2317c348b68cf09cd9838446ae4956b3ad7342e5 --- /dev/null +++ b/src/main/java/ui/ad/TADComponentWithoutSubcomponents.java @@ -0,0 +1,30 @@ +package ui.ad; + +import ui.TDiagramPanel; +import ui.TGCWithoutInternalComponent; +import ui.TGComponent; + +/** + * Issue #69 + * @author dblouin + * + */ +public abstract class TADComponentWithoutSubcomponents extends TGCWithoutInternalComponent { + + public TADComponentWithoutSubcomponents(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, + boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor(); + acceptBackward( visitor ); + + return visitor.isCanBeDisabled(); + } +} diff --git a/src/main/java/ui/ad/TADConnector.java b/src/main/java/ui/ad/TADConnector.java new file mode 100644 index 0000000000000000000000000000000000000000..8fc2736a95b9069d0a24af1c9345c50026dcb171 --- /dev/null +++ b/src/main/java/ui/ad/TADConnector.java @@ -0,0 +1,74 @@ +package ui.ad; + +import java.awt.Point; +import java.util.Vector; + +import ui.ForwardComponentsEnabledVisitor; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGConnectingPoint; +import ui.TGConnector; + +/** + * Issue #69 + * @author dblouin + * + */ +public abstract class TADConnector extends TGConnector { + + public TADConnector( int _x, + int _y, + int _minX, + int _maxX, + int _minY, + int _maxY, + boolean _pos, + TGComponent _father, + TDiagramPanel _tdp, + TGConnectingPoint _p1, + TGConnectingPoint _p2, + Vector<Point> _listPoint ) { + super( _x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint ); + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + if ( p2 != null ) { + p2.acceptForward( new EnablingADConnectorVisitor( _enabled ) ); + } + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + if ( p2 != null && p2.getFather() instanceof TADStopState ) { + return false; + } + + final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor(); + acceptBackward( visitor ); + + return visitor.isCanBeDisabled(); + } + + /** Issue #69 + * @return + */ + public boolean isEnabled( boolean checkBranch ) { + if ( checkBranch && p2 != null ) { + final ForwardComponentsEnabledVisitor visitor = new ForwardComponentsEnabledVisitor(); + p2.acceptForward( visitor ); + + return visitor.isEnabled(); + } + + return super.isEnabled(); + } +} diff --git a/src/main/java/ui/ad/TADDeterministicDelay.java b/src/main/java/ui/ad/TADDeterministicDelay.java index f37a5a603d1227eeba7b253243a9d3fece2ad0c2..a326f06ad75e2c35d8b44823f2071bc6642bafce 100755 --- a/src/main/java/ui/ad/TADDeterministicDelay.java +++ b/src/main/java/ui/ad/TADDeterministicDelay.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,9 +52,11 @@ import java.awt.geom.Line2D; * @version 1.0 21/12/2003 * @author Ludovic APVRILLE */ -public class TADDeterministicDelay extends TGCWithInternalComponent { - private int lineLength = 5; - private int textX, textY; +public class TADDeterministicDelay extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent */{ + + private int lineLength = 5; + + private int textX, textY; public TADDeterministicDelay(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -90,12 +89,14 @@ public class TADDeterministicDelay extends TGCWithInternalComponent { myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -116,13 +117,13 @@ public class TADDeterministicDelay extends TGCWithInternalComponent { tgcomponent[0].setValue(value); } + @Override public int getType() { return TGComponentManager.TAD_DETERMINISTIC_DELAY; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_AD_DIAGRAM; } - } - diff --git a/src/main/java/ui/ad/TADForLoop.java b/src/main/java/ui/ad/TADForLoop.java new file mode 100644 index 0000000000000000000000000000000000000000..ebb66cde885f9c71fc3441933d1b03c95bd23846 --- /dev/null +++ b/src/main/java/ui/ad/TADForLoop.java @@ -0,0 +1,138 @@ +package ui.ad; + +import java.awt.geom.Line2D; + +import myutil.GraphicLib; +import ui.BasicErrorHighlight; +import ui.EmbeddedComment; +import ui.ICDElementVisitor; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGConnectingPoint; +import ui.util.IconManager; + +/** + * Issue #69 + * @author dblouin + * + */ +public abstract class TADForLoop extends TADComponentWithoutSubcomponents implements EmbeddedComment, BasicErrorHighlight { + + protected final static String IN_LOOP = "inside loop"; + protected final static String EXIT_LOOP = "exit loop"; + + protected static final int INDEX_ENTER_LOOP = 0; + protected static final int INDEX_INSIDE_LOOP = 1; + protected static final int INDEX_EXIT_LOOP = 2; + + protected int lineLength = 5; + protected int textX = 5; + protected int textY = 15; + protected int arc = 5; + + protected int stateOfError = 0; + + public TADForLoop( int _x, + int _y, + int _minX, + int _maxX, + int _minY, + int _maxY, + boolean _pos, + TGComponent _father, + TDiagramPanel _tdp ) { + super( _x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp ); + + width = 30; + height = 20; + minWidth = 30; + + moveable = true; + editable = true; + removable = true; + + myImageIcon = IconManager.imgic912; + } + + @Override + public TGComponent isOnMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + + if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { + return this; + } + + if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) { + return this; + } + + return null; + } + + @Override + public void setStateAction(int _stateAction) { + stateOfError = _stateAction; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.TGComponent#acceptForward(ui.ICDElementVisitor) + */ + @Override + public void acceptForward( ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + final TGConnectingPoint insideLoopPoint = getInsideLoopConnectingPoint(); + + if ( insideLoopPoint != null ) { + insideLoopPoint.acceptForward( visitor ); + } + + final TGConnectingPoint exitPoint = getExitLoopConnectingPoint(); + + if ( exitPoint != null ) { + exitPoint.acceptForward( visitor ); + } + } + } + + + /* Issue #69 + * (non-Javadoc) + * @see ui.TGComponent#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + final TGConnectingPoint enterLoopPoint = getEnterLoopConnectingPoint(); + + if ( enterLoopPoint != null ) { + enterLoopPoint.acceptBackward( visitor ); + } + } + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + super.setEnabled( _enabled ); + + getInsideLoopConnectingPoint().acceptForward( new EnablingADBranchVisitor( _enabled ) ); + } + + public TGConnectingPoint getEnterLoopConnectingPoint() { + return connectingPoint[ INDEX_ENTER_LOOP ]; + } + + public TGConnectingPoint getInsideLoopConnectingPoint() { + return connectingPoint[ INDEX_INSIDE_LOOP ]; + } + + public TGConnectingPoint getExitLoopConnectingPoint() { + return connectingPoint[ INDEX_EXIT_LOOP ]; + } +} diff --git a/src/main/java/ui/ad/TADJunction.java b/src/main/java/ui/ad/TADJunction.java index 7990e48101933677625f4ab6520a92f27b3922a4..7fed85cbf3663c602acf04ecee2adcefeb90d9c7 100755 --- a/src/main/java/ui/ad/TADJunction.java +++ b/src/main/java/ui/ad/TADJunction.java @@ -35,9 +35,6 @@ * 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.ad; @@ -47,7 +44,6 @@ import ui.util.IconManager; import java.awt.*; import java.awt.geom.Line2D; - /** * Class TADJunction * Junction between several activities, without any synchronization. To be used in activity diagrams @@ -55,7 +51,7 @@ import java.awt.geom.Line2D; * @version 1.0 28/12/2003 * @author Ludovic APVRILLE */ -public class TADJunction extends TGCWithoutInternalComponent { +public class TADJunction extends TADComponentWithoutSubcomponents /* Issue #69 TGCWithoutInternalComponent*/ { protected int range = 5; @@ -108,6 +104,7 @@ public class TADJunction extends TGCWithoutInternalComponent { myImageIcon = IconManager.imgic212; } + @Override public void internalDrawing(Graphics g) { //g.drawLine(x +width/2, y, x+width/2, y + height); //g.drawLine(x, y + (height/2), x+width, y + (height/2)); @@ -123,6 +120,7 @@ public class TADJunction extends TGCWithoutInternalComponent { g.drawLine(x+width/2+range, y + height / 2, x+width/2, y+height/2+range); } + @Override public TGComponent isOnMe(int _x, int _y) { // vertical line if ((int)(Line2D.ptSegDistSq(x +width/2, y, x+width/2, y + height, _x, _y)) < distanceSelected) { @@ -135,19 +133,13 @@ public class TADJunction extends TGCWithoutInternalComponent { return null; } + @Override public int getType() { return TGComponentManager.TAD_JUNCTION; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } - } - - - - - - - diff --git a/src/main/java/ui/ad/TADNonDeterministicDelay.java b/src/main/java/ui/ad/TADNonDeterministicDelay.java index 89b4f98895ff3037c570c3df8e2abaee0d59adaf..6eff783dcd5f1e0ac2c42ccba137630c485eea92 100755 --- a/src/main/java/ui/ad/TADNonDeterministicDelay.java +++ b/src/main/java/ui/ad/TADNonDeterministicDelay.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,7 +52,7 @@ import java.awt.geom.Line2D; * @version 1.0 10/12/2003 * @author Ludovic APVRILLE */ -public class TADNonDeterministicDelay extends TGCWithInternalComponent{ +public class TADNonDeterministicDelay extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ { private int lineLength = 5; private int textX = 5; private int textY = 5; @@ -91,6 +88,7 @@ public class TADNonDeterministicDelay extends TGCWithInternalComponent{ myImageIcon = IconManager.imgic216; } + @Override public void internalDrawing(Graphics g) { int y1 = y; @@ -108,6 +106,7 @@ public class TADNonDeterministicDelay extends TGCWithInternalComponent{ } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -128,18 +127,13 @@ public class TADNonDeterministicDelay extends TGCWithInternalComponent{ tgcomponent[0].setValue(value); } + @Override public int getType() { return TGComponentManager.TAD_NON_DETERMINISTIC_DELAY; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } } - - - - - - - diff --git a/src/main/java/ui/ad/TADOneLineText.java b/src/main/java/ui/ad/TADOneLineText.java new file mode 100644 index 0000000000000000000000000000000000000000..ffdc4a483f4caa2e5110ce13cf0ffc1e32d93189 --- /dev/null +++ b/src/main/java/ui/ad/TADOneLineText.java @@ -0,0 +1,25 @@ +package ui.ad; + +import ui.TDiagramPanel; +import ui.TGCOneLineText; +import ui.TGComponent; + +public abstract class TADOneLineText extends TGCOneLineText { + + public TADOneLineText(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, + TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor(); + acceptBackward( visitor ); + + return visitor.isCanBeDisabled(); + } +} diff --git a/src/main/java/ui/ad/TADParallel.java b/src/main/java/ui/ad/TADParallel.java index 7ab9862e2433660797069d6a615e5607eff80127..530ebc3c7adc5e5fcacff722dd1496d79d074a09 100755 --- a/src/main/java/ui/ad/TADParallel.java +++ b/src/main/java/ui/ad/TADParallel.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,9 +52,11 @@ import java.awt.*; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADParallel extends TGCWithInternalComponent{ - private int lineLength = 0; - private int textX, textY; +public class TADParallel extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ { + + private int lineLength = 0; + + private int textX, textY; public TADParallel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -100,11 +99,13 @@ public class TADParallel extends TGCWithInternalComponent{ myImageIcon = IconManager.imgic206; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -120,18 +121,13 @@ public class TADParallel extends TGCWithInternalComponent{ tgcomponent[0].setValue(val); } + @Override public int getType() { return TGComponentManager.TAD_PARALLEL; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } } - - - - - - - diff --git a/src/main/java/ui/ad/TADPreemption.java b/src/main/java/ui/ad/TADPreemption.java index c38308f22597af184fa3489d375b6fb053ff1f94..8f601cb48463b80b7fb7cd1fd0672547840b412b 100755 --- a/src/main/java/ui/ad/TADPreemption.java +++ b/src/main/java/ui/ad/TADPreemption.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,9 +52,11 @@ import java.awt.*; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADPreemption extends TGCWithInternalComponent{ - private int lineLength = 0; - private int textX, textY; +public class TADPreemption extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent*/ { + + private int lineLength = 0; + + private int textX, textY; public TADPreemption(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -98,11 +97,13 @@ public class TADPreemption extends TGCWithInternalComponent{ myImageIcon = IconManager.imgic206; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -110,11 +111,13 @@ public class TADPreemption extends TGCWithInternalComponent{ return null; } + @Override public int getType() { return TGComponentManager.TAD_PREEMPTION; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } -} \ No newline at end of file +} diff --git a/src/main/java/ui/ad/TADSequence.java b/src/main/java/ui/ad/TADSequence.java index 99eabaf2fd2c0ba804a7863f2b2ad15b7ddbf0ae..158a67935d557e89291ab82984b06b67532a8583 100755 --- a/src/main/java/ui/ad/TADSequence.java +++ b/src/main/java/ui/ad/TADSequence.java @@ -36,17 +36,16 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; +import java.awt.Graphics; +import java.util.Arrays; +import java.util.List; + import myutil.GraphicLib; import ui.*; import ui.util.IconManager; -import java.awt.*; - /** * Class TADSequence * Sequence operator. Activities are executed in sequence from left to right @@ -55,9 +54,11 @@ import java.awt.*; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADSequence extends TGCWithInternalComponent{ - private int lineLength = 0; - private int textX, textY; +public class TADSequence extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ { + + protected int lineLength = 0; + + private int textX, textY; public TADSequence(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -69,15 +70,16 @@ public class TADSequence extends TGCWithInternalComponent{ textX = width - 6; textY = height + 2; - nbConnectingPoint = 6; - connectingPoint = new TGConnectingPoint[6]; - connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.167, 1.0); - connectingPoint[2] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.333, 1.0); - connectingPoint[3] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); - connectingPoint[4] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.667, 1.0); - connectingPoint[5] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.833, 1.0); - addTGConnectingPointsCommentCorner(); + createConnectingPoints(); +// nbConnectingPoint = 6; +// connectingPoint = new TGConnectingPoint[6]; +// connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.167, 1.0); +// connectingPoint[2] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.333, 1.0); +// connectingPoint[3] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); +// connectingPoint[4] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.667, 1.0); +// connectingPoint[5] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.833, 1.0); +// addTGConnectingPointsCommentCorner(); nbInternalTGComponent = 1; tgcomponent = new TGComponent[nbInternalTGComponent]; @@ -98,11 +100,25 @@ public class TADSequence extends TGCWithInternalComponent{ myImageIcon = IconManager.imgic206; } + protected void createConnectingPoints() { + nbConnectingPoint = 6; + connectingPoint = new TGConnectingPoint[6]; + connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.167, 1.0); + connectingPoint[2] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.333, 1.0); + connectingPoint[3] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); + connectingPoint[4] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.667, 1.0); + connectingPoint[5] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.833, 1.0); + addTGConnectingPointsCommentCorner(); + } + + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -110,11 +126,36 @@ public class TADSequence extends TGCWithInternalComponent{ return null; } + @Override public int getType() { return TGComponentManager.TAD_SEQUENCE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; + } + + public TGConnectingPoint getEnterConnectingPoint() { + return connectingPoint[ 0 ]; + } + + public List<TGConnectingPoint> getExitConnectingPoints() { + return Arrays.asList( Arrays.copyOfRange( connectingPoint, 1, connectingPoint.length ) ); + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + super.setEnabled( _enabled ); + + for ( final TGConnectingPoint point : connectingPoint ) { + if ( point != getEnterConnectingPoint() ) { + point.acceptForward( new EnablingADConnectorVisitor( _enabled ) ); + } + } } } diff --git a/src/main/java/ui/ad/TADStartState.java b/src/main/java/ui/ad/TADStartState.java index 0bf11c61a634b6c82cfefb012a4f6da185d47105..b4d21f778eae2d336594cca6ffb956005f9f68dc 100755 --- a/src/main/java/ui/ad/TADStartState.java +++ b/src/main/java/ui/ad/TADStartState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,8 +52,9 @@ import java.awt.geom.Line2D; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADStartState extends TGCWithoutInternalComponent{ - private int lineLength = 5; +public class TADStartState extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ { + + protected int lineLength = 5; public TADStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -64,9 +62,10 @@ public class TADStartState extends TGCWithoutInternalComponent{ width = 15; height = 15; - nbConnectingPoint = 1; - connectingPoint = new TGConnectingPoint[1]; - connectingPoint[0] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); + createConnectingPoints(); +// nbConnectingPoint = 1; +// connectingPoint = new TGConnectingPoint[1]; +// connectingPoint[0] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); nbInternalTGComponent = 0; @@ -79,11 +78,19 @@ public class TADStartState extends TGCWithoutInternalComponent{ myImageIcon = IconManager.imgic222; } + protected void createConnectingPoints() { + nbConnectingPoint = 1; + connectingPoint = new TGConnectingPoint[1]; + connectingPoint[0] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); + } + + @Override public void internalDrawing(Graphics g) { g.fillOval(x, y, width, height); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -93,19 +100,25 @@ public class TADStartState extends TGCWithoutInternalComponent{ return this; } - - return null; } + @Override public int getType() { return TGComponentManager.TAD_START_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return false; } - } - - diff --git a/src/main/java/ui/ad/TADStopState.java b/src/main/java/ui/ad/TADStopState.java index a92f665a912de31efc0176a0e5ab934453860bbd..04dc7556e0493784bdcc0b6d14dcaa5137e9c0e0 100755 --- a/src/main/java/ui/ad/TADStopState.java +++ b/src/main/java/ui/ad/TADStopState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -54,9 +51,11 @@ import java.awt.*; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADStopState extends TGCWithoutInternalComponent{ +public class TADStopState extends TADComponentWithoutSubcomponents /* Issue #69 TGCWithoutInternalComponent*/ { + private int internalCircleSize = 16; - private int lineLength = 5; + + protected int lineLength = 5; public TADStopState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -64,9 +63,10 @@ public class TADStopState extends TGCWithoutInternalComponent{ width = 20; height = 20; - nbConnectingPoint = 1; - connectingPoint = new TGConnectingPoint[1]; - connectingPoint[0] = new TGConnectingPointAD(this, 0, - lineLength, true, false, 0.5, 0.0); + createConnectingPoints(); +// nbConnectingPoint = 1; +// connectingPoint = new TGConnectingPoint[1]; +// connectingPoint[0] = new TGConnectingPointAD(this, 0, - lineLength, true, false, 0.5, 0.0); nbInternalTGComponent = 0; @@ -79,14 +79,24 @@ public class TADStopState extends TGCWithoutInternalComponent{ myImageIcon = IconManager.imgic210; } + protected void createConnectingPoints() { + nbConnectingPoint = 1; + connectingPoint = new TGConnectingPoint[1]; + connectingPoint[0] = new TGConnectingPointAD(this, 0, - lineLength, true, false, 0.5, 0.0); + } + + @Override public void internalDrawing(Graphics g) { - ColorManager.setColor(g, state, 0); + + // Issue #69 + ColorManager.setColor( g, state, 0, isEnabled() ); +// ColorManager.setColor(g, state, 0); g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); g.drawOval(x, y, width, height); g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); } - + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -94,19 +104,22 @@ public class TADStopState extends TGCWithoutInternalComponent{ return null; } + @Override public int getType() { return TGComponentManager.TAD_STOP_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } - -} - - - - - - + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return false; + } +} diff --git a/src/main/java/ui/ad/TADTimeCapture.java b/src/main/java/ui/ad/TADTimeCapture.java index 128a81da1ae89291aa99b343b0a6e92221f49e6c..5197e735757c8534ad221167e38044a352f546b3 100755 --- a/src/main/java/ui/ad/TADTimeCapture.java +++ b/src/main/java/ui/ad/TADTimeCapture.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,14 +52,13 @@ import java.awt.geom.Line2D; * @version 1.0 23/07/2009 * @author Ludovic APVRILLE */ -public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHighlight { +public class TADTimeCapture extends TADOneLineText/* Issue #69 TGCOneLineText*/ implements ActionStateErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; protected int arc = 5; protected int stateAction = 0; // 0: unchecked 1: attribute; 3:unknown - public TADTimeCapture(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -87,6 +83,7 @@ public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHi myImageIcon = IconManager.imgic204; } + @Override public void internalDrawing(Graphics g) { String myVal = "time -> " + value; int w = g.getFontMetrics().stringWidth(myVal); @@ -110,15 +107,16 @@ public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHi g.fillRoundRect(x, y, width, height, arc, arc); g.setColor(c); } - g.drawRoundRect(x, y, width, height, arc, arc); + + g.drawRoundRect(x, y, width, height, arc, arc); g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); g.drawString(myVal, x + (width - w) / 2 , y + textY); - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -127,22 +125,22 @@ public class TADTimeCapture extends TGCOneLineText implements ActionStateErrorHi if ((int)(Line2D.ptSegDistSq(x +width/2, y- lineLength, x+width/2, y + lineLength + height, _x, _y)) < distanceSelected) { return this; } - return null; } - + @Override public int getType() { return TGComponentManager.TAD_TIME_CAPTURE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + @Override public void setStateAction(int _stateAction) { stateAction = _stateAction; } - } diff --git a/src/main/java/ui/ad/TADTimeInterval.java b/src/main/java/ui/ad/TADTimeInterval.java index 2b87cea962598cac2f171a1b8cbd284c8f1c75cc..fea95ac151e9b9e6f64548a7dcd8e1c7fdd2da1c 100755 --- a/src/main/java/ui/ad/TADTimeInterval.java +++ b/src/main/java/ui/ad/TADTimeInterval.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -55,7 +52,7 @@ import java.awt.geom.Line2D; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADTimeInterval extends TGCWithInternalComponent{ +public class TADTimeInterval extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent */{ private int lineLength = 5; private int textX, textY; private int incrementY = 3; @@ -70,7 +67,7 @@ public class TADTimeInterval extends TGCWithInternalComponent{ textY = height/2 + 5; nbConnectingPoint = 2; - connectingPoint = new TGConnectingPoint[2]; + connectingPoint = new TGConnectingPoint[ nbConnectingPoint ]; connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); connectingPoint[1] = new TGConnectingPointAD(this, 0, + lineLength, false, true, 0.5, 1.0); addTGConnectingPointsComment(); @@ -92,6 +89,7 @@ public class TADTimeInterval extends TGCWithInternalComponent{ myImageIcon = IconManager.imgic224; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); @@ -109,6 +107,7 @@ public class TADTimeInterval extends TGCWithInternalComponent{ } } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -137,19 +136,13 @@ public class TADTimeInterval extends TGCWithInternalComponent{ ((TGCTimeInterval)(tgcomponent[0])).setMaxDelay(val); } + @Override public int getType() { return TGComponentManager.TAD_DELAY_NON_DETERMINISTIC_DELAY; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } - } - - - - - - - diff --git a/src/main/java/ui/ad/TADTimeLimitedOffer.java b/src/main/java/ui/ad/TADTimeLimitedOffer.java index 02785ec46b29070c66d5eaef01030dc62961eeb0..1298580e5d31a64031060697a3fc2edab6e294e7 100755 --- a/src/main/java/ui/ad/TADTimeLimitedOffer.java +++ b/src/main/java/ui/ad/TADTimeLimitedOffer.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -57,7 +54,7 @@ import java.awt.geom.Line2D; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADTimeLimitedOffer extends TGCWithInternalComponent implements ActionStateErrorHighlight { +public class TADTimeLimitedOffer extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent*/ implements ActionStateErrorHighlight { protected int lineLength = 25; protected int lineDistance = 10; protected int textX = 5; @@ -81,7 +78,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act connectingPoint[0] = new TGConnectingPointAD(this, 0, -lineLength, true, false, 0.5, 0.0); connectingPoint[1] = new TGConnectingPointAD(this, 0, lineLength, false, true, 0.5, 1.0); connectingPoint[2] = new TGConnectingPointAD(this, distanceTwoLines, lineLength, false, true, 0.5, 1.0); - addTGConnectingPointsComment(); + addTGConnectingPointsComment(); nbInternalTGComponent = 1; tgcomponent = new TGComponent[nbInternalTGComponent]; @@ -101,6 +98,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act myImageIcon = IconManager.imgic218; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -142,6 +140,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -175,7 +174,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act connectingPoint[2].setCdX(width / 2 + distanceTwoLines); }*/ - public void updateInternalComponents(int diffWidth, int diffX) { + protected void updateInternalComponents(int diffWidth, int diffX) { int x1 = tgcomponent[0].getX(); int y1 = tgcomponent[0].getY(); tgcomponent[0].setCdRectangle(width + distanceStateLine + 2, width + distanceStateLine + 10, textY - 10, textY + 10); @@ -184,6 +183,7 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act // } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; String text = getName() + ": "; @@ -209,23 +209,18 @@ public class TADTimeLimitedOffer extends TGCWithInternalComponent implements Act return tgcomponent[0].getValue(); } + @Override public int getType() { return TGComponentManager.TAD_TIME_LIMITED_OFFER; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + @Override public void setStateAction(int _stateAction) { stateAction = _stateAction; } - } - - - - - - - diff --git a/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java b/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java index bc0cb533f7471cc138060256c27605118fd97343..c775d61df261687c5bec8f90e911311b190bcb2b 100755 --- a/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java +++ b/src/main/java/ui/ad/TADTimeLimitedOfferWithLatency.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import myutil.GraphicLib; @@ -57,7 +54,7 @@ import java.awt.geom.Line2D; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent implements ActionStateErrorHighlight { +public class TADTimeLimitedOfferWithLatency extends TADComponentWithSubcomponents/* Issue #69 TGCWithInternalComponent*/ implements ActionStateErrorHighlight { protected int lineLength = 25; protected int lineLengthLatency = 5; protected int lineDistance = 10; @@ -116,9 +113,9 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp minWidth = 30; myImageIcon = IconManager.imgic220; - } + @Override public void internalDrawing(Graphics g) { // int w = g.getFontMetrics().stringWidth(value); @@ -170,6 +167,7 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp } } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { // state if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { @@ -210,7 +208,7 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp connectingPoint[2].setCdX(width / 2 + distanceTwoLines); }*/ - public void updateInternalComponents(int diffWidth, int diffX) { + protected void updateInternalComponents(int diffWidth, int diffX) { int x1 = tgcomponent[0].getX(); int y1 = tgcomponent[0].getY(); @@ -223,6 +221,7 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp tgcomponent[1].setCdRectangle(posx, posx+10, posy - 10, posy + 10); } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; String text = getName() + ": "; @@ -264,16 +263,18 @@ public class TADTimeLimitedOfferWithLatency extends TGCWithInternalComponent imp tgcomponent[0].setValue(delay); } + @Override public int getType() { return TGComponentManager.TAD_TIME_LIMITED_OFFER_WITH_LATENCY; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_AD_DIAGRAM; + return TGComponentManager.CONNECTOR_AD_DIAGRAM; } + @Override public void setStateAction(int _stateAction) { stateAction = _stateAction; } - -} + } diff --git a/src/main/java/ui/ad/TActivityDiagramToolBar.java b/src/main/java/ui/ad/TActivityDiagramToolBar.java index 5f84487b9c81deef28fc33c417b96ba421ab7703..02d83a32ba40d2454e58008d3b61263b3b47672a 100755 --- a/src/main/java/ui/ad/TActivityDiagramToolBar.java +++ b/src/main/java/ui/ad/TActivityDiagramToolBar.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ad; import ui.MainGUI; @@ -47,9 +44,6 @@ import ui.TToolBar; import javax.swing.*; -//import java.awt.*; -//import java.awt.event.*; - /** * Class TActivityDiagramToolBar * Toolbar associated with activity diagrams @@ -59,7 +53,6 @@ import javax.swing.*; */ public class TActivityDiagramToolBar extends TToolBar { - public TActivityDiagramToolBar(MainGUI _mgui) { super(_mgui); } @@ -185,8 +178,3 @@ public class TActivityDiagramToolBar extends TToolBar { button.addMouseListener(mgui.mouseHandler); } } // Class - - - - - diff --git a/src/main/java/ui/ad/TGConnectingPointAD.java b/src/main/java/ui/ad/TGConnectingPointAD.java index bffd4f96631badb05b301211e4fc9509e19c3da1..df8f136712d9297ab99e3631732a41eb7cc37cab 100755 --- a/src/main/java/ui/ad/TGConnectingPointAD.java +++ b/src/main/java/ui/ad/TGConnectingPointAD.java @@ -35,9 +35,6 @@ * 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.ad; @@ -52,21 +49,14 @@ import ui.TGConnectingPointWidthHeight; * @version 1.0 12/12/2003 * @author Ludovic APVRILLE */ -public class TGConnectingPointAD extends TGConnectingPointWidthHeight{ +public class TGConnectingPointAD extends TGConnectingPointWidthHeight{ public TGConnectingPointAD(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) { super(_container, _x, _y, _in, _out, _w, _h); } + @Override public boolean isCompatibleWith(int type) { return type == TGComponentManager.CONNECTOR_AD_DIAGRAM; } - } - - - - - - - diff --git a/src/main/java/ui/atd/ATDAttack.java b/src/main/java/ui/atd/ATDAttack.java index e81ba2822b66199a8dd60965392b4febcdf1cb4e..ab9cc1a828da05e77f7a4ab4073046a9200fe309 100644 --- a/src/main/java/ui/atd/ATDAttack.java +++ b/src/main/java/ui/atd/ATDAttack.java @@ -59,7 +59,7 @@ import java.awt.*; * @author Ludovic APVRILLE * @version 1.0 09/12/2009 */ -public class ATDAttack extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility, CanBeDisabled { +public class ATDAttack extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility/*, CanBeDisabled*/ { private int textY1 = 3; // private int textY2 = 3; @@ -127,6 +127,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall myImageIcon = IconManager.imgic702; } + @Override public void internalDrawing(Graphics g) { String ster; if (isRootAttack) { @@ -196,14 +197,20 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall // Core of the attack Color c = g.getColor(); g.draw3DRect(x, y, width, height, true); + if (isEnabled()) { if (isRootAttack) { g.setColor(ColorManager.ATD_ROOT_ATTACK); } else { g.setColor(ColorManager.ATD_ATTACK); } - } else { - g.setColor(ColorManager.ATD_ATTACK_DISABLED); + } + else { + // Issue #69: Disabled color now managed in TGComponent / ColorManager + // For filled shapes ensure background color is white so that text is + // readable + g.setColor( ColorManager.DISABLED_FILLING ); +// g.setColor(ColorManager.ATD_ATTACK_DISABLED); } g.fill3DRect(x + 1, y + 1, width - 1, height - 1, true); @@ -254,13 +261,14 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall } } - if (!isEnabled()) { - String val = "disabled"; - w = g.getFontMetrics().stringWidth(val); - //int h = currentFontSize + (int)(textY1 * tdp.getZoom()); - g.setFont(f.deriveFont(Font.ITALIC)); - g.drawString(val, x + (width - w - 5), y + height - 2); - } + // Issue #69: Use the same disabling UI as other components +// if (!isEnabled()) { +// String val = "disabled"; +// w = g.getFontMetrics().stringWidth(val); +// //int h = currentFontSize + (int)(textY1 * tdp.getZoom()); +// g.setFont(f.deriveFont(Font.ITALIC)); +// g.drawString(val, x + (width - w - 5), y + height - 2); +// } } else { @@ -271,7 +279,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall } - public void setValue(String val, Graphics g) { + private void setValue(String val, Graphics g) { oldValue = value; String ster; if (isRootAttack) { @@ -299,10 +307,9 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall g.setFont(f0); - - // } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof ATDBlock)) { // @@ -312,7 +319,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall } } - + @Override public boolean editOndoubleClick(JFrame frame) { String tmp; boolean error = false; @@ -356,6 +363,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall return !error; } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { @@ -364,10 +372,12 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall return null; } + @Override public int getType() { return TGComponentManager.ATD_ATTACK; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info description=\"" + description); @@ -379,9 +389,7 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { - // try { - NodeList nli; Node n1, n2; Element elt; @@ -420,7 +428,6 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall } } - public String getDescription() { return description; } @@ -439,7 +446,6 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall return s; } - public boolean isRootAttack() { return isRootAttack; } @@ -448,8 +454,14 @@ public class ATDAttack extends TGCScalableWithInternalComponent implements Swall setFather(null); TDiagramPanel tdp = getTDiagramPanel(); setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); - } - - + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + return true; + } } diff --git a/src/main/java/ui/atd/ATDAttackConnector.java b/src/main/java/ui/atd/ATDAttackConnector.java index 7590b0414bd785dff05f6dd827d8d0d121630fc9..300ce4ea0e2b3f4b20046ae6fca522d34ff084f6 100644 --- a/src/main/java/ui/atd/ATDAttackConnector.java +++ b/src/main/java/ui/atd/ATDAttackConnector.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.atd; - import myutil.Conversion; import myutil.GraphicLib; import ui.*; @@ -66,7 +62,6 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints protected double oldScaleFactor; protected int fontSize = 12; - public ATDAttackConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); myImageIcon = IconManager.imgic202; @@ -75,6 +70,7 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints oldScaleFactor = tdp.getZoom(); } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ /*if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -137,19 +133,19 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints g.fillRect(p1.getX()-(cz/2), p1.getY()-(cz/2), cz, cz);*/ Point p = new Point(x2, y2); - if (p == null) { +// if (p == null) { +// // +// } else { + if (Point2D.distance(x1, y1, p.x, p.y) < GraphicLib.longueur * 1.5) { // - } else { - if (Point2D.distance(x1, y1, p.x, p.y) < GraphicLib.longueur * 1.5) { + if ((p.x != x1) || (p.y != y1)) { + g.drawLine(x1, y1, p.x, p.y); // - if ((p.x != x1) || (p.y != y1)) { - g.drawLine(x1, y1, p.x, p.y); - // - } - } else { - GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, p.x, p.y, true); } + } else { + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, p.x, p.y, true); } + // } if (value.length() > 0) { Font f = g.getFont(); @@ -160,9 +156,9 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints g.drawString(value, x2+(cz/2)+1, y2); g.setFont(f); } - } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; String text = getName() + "Connector"; @@ -175,8 +171,6 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints s = Conversion.removeFirstSpaces(s); } - // - if ((s != null) && (!s.equals(oldValue))) { setValue(s); return true; @@ -185,11 +179,12 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints return false; } - + @Override public int getType() { return TGComponentManager.ATD_ATTACK_CONNECTOR; } + @Override public void rescale(double scaleFactor){ // int xx, yy; @@ -212,9 +207,4 @@ public class ATDAttackConnector extends TGConnectorWithCommentConnectionPoints oldScaleFactor = scaleFactor; } - - - - - } diff --git a/src/main/java/ui/atd/ATDCompositionConnector.java b/src/main/java/ui/atd/ATDCompositionConnector.java index daa43954f2e0809bb4d9a4ab1412dac4f5acd591..52ee0ddb63974d72bb3740fd9898932473107cec 100644 --- a/src/main/java/ui/atd/ATDCompositionConnector.java +++ b/src/main/java/ui/atd/ATDCompositionConnector.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.atd; - import ui.*; import ui.util.IconManager; @@ -63,8 +59,7 @@ public class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo protected int xp1, xp2, yp1, yp2; protected double oldScaleFactor; protected boolean rescaled; - - + public ATDCompositionConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); myImageIcon = IconManager.imgic202; @@ -74,6 +69,7 @@ public class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo rescaled = true; } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ /*if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -86,7 +82,7 @@ public class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo xp2 = x2; yp1 = y1; yp2 = y2; - Double alpha; + //Double alpha; int dd = (int)(d*tdp.getZoom()); int DD = (int)(D*tdp.getZoom()); @@ -169,6 +165,7 @@ public class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo rescaled = false; } + @Override public TGComponent extraIsOnOnlyMe(int x1, int y1) { if (p != null) { if (p.contains(x1, y1)) { @@ -179,6 +176,7 @@ public class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo return null; } + @Override public void rescale(double scaleFactor){ // int xx, yy; @@ -203,11 +201,8 @@ public class ATDCompositionConnector extends TGConnectorWithCommentConnectionPo rescaled = true; } - + @Override public int getType() { return TGComponentManager.ATD_COMPOSITION_CONNECTOR; } - - - } diff --git a/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java b/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java index 34987e1a285ba75f7b568c022cc95fb4d967a892..4c2cb5c0647315cbd26be50c6ed5c5b9ef672976 100755 --- a/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java +++ b/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -56,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 02/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements EmbeddedComment, BasicErrorHighlight { +public class AvatarADAcceptEventAction extends AvatarADBasicCanBeDisabledComponent/* Issue #69 AvatarADBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 6; protected int textY = 15; @@ -69,8 +66,8 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements public AvatarADAcceptEventAction(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - initScaling(30, 20); - minWidth = (int)(30* tdp.getZoom()); + initScaling(30, 20); + minWidth = (int)(30* tdp.getZoom()); oldScaleFactor = tdp.getZoom(); nbConnectingPoint = 2; @@ -89,6 +86,7 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -142,6 +140,7 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -154,15 +153,11 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements return null; } - - public String getEventName() { return value; } - - - + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; @@ -182,15 +177,13 @@ public class AvatarADAcceptEventAction extends AvatarADBasicComponent implements } - - + @Override public int getType() { return TGComponentManager.AAD_ACCEPT_EVENT_ACTION; } - + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } diff --git a/src/main/java/ui/avatarad/AvatarADAction.java b/src/main/java/ui/avatarad/AvatarADAction.java index aef9de2da3743eafa3d042f7f52d78f2bb74e4b5..3d0e619b91a3c5eb614519cad869b7870684915a 100755 --- a/src/main/java/ui/avatarad/AvatarADAction.java +++ b/src/main/java/ui/avatarad/AvatarADAction.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -56,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 02/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedComment, BasicErrorHighlight { +public class AvatarADAction extends AvatarADBasicCanBeDisabledComponent/* Issue #69 AvatarADBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -88,6 +85,7 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo myImageIcon = IconManager.imgic204; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -118,6 +116,7 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -130,6 +129,7 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo return null; } + @Override public boolean editOndoubleClick(JFrame frame) { oldValue = value; @@ -177,13 +177,13 @@ public class AvatarADAction extends AvatarADBasicComponent implements EmbeddedCo return ret; } + @Override public int getType() { return TGComponentManager.AAD_ACTION; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - - } diff --git a/src/main/java/ui/avatarad/AvatarADActivity.java b/src/main/java/ui/avatarad/AvatarADActivity.java index b8c4cc814ecd0c6d13f46a347e35e46414178e33..ad62604325f848346d9291e7a5dab126c6d741c5 100644 --- a/src/main/java/ui/avatarad/AvatarADActivity.java +++ b/src/main/java/ui/avatarad/AvatarADActivity.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -46,9 +43,11 @@ import ui.*; import ui.util.IconManager; import javax.swing.*; -import java.awt.*; -import java.util.LinkedList; +import java.awt.Font; +import java.awt.Graphics; +import java.util.LinkedList; +import java.util.List; /** * Class AvatarADActivity @@ -58,23 +57,22 @@ import java.util.LinkedList; * @author Ludovic APVRILLE */ public class AvatarADActivity extends TGCScalableWithInternalComponent implements SwallowTGComponent, SwallowedTGComponent { - private int textY1 = 3; +// private int textY1 = 3; - private int maxFontSize = 12; - private int minFontSize = 4; - private int currentFontSize = -1; + //private int maxFontSize = 12; + // private int minFontSize = 4; + //private int currentFontSize = -1; private boolean displayText = true; private int textX = 7; - public String oldValue; public AvatarADActivity(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - initScaling(100, 50); - minWidth = (int)(40* tdp.getZoom()); - minHeight = (int)(30* tdp.getZoom()); + initScaling(100, 50); + minWidth = (int)(40* tdp.getZoom()); + minHeight = (int)(30* tdp.getZoom()); oldScaleFactor = tdp.getZoom(); nbConnectingPoint = 32; @@ -137,7 +135,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement setValue(name); oldValue = value; - currentFontSize = maxFontSize; + //currentFontSize = maxFontSize; oldScaleFactor = tdp.getZoom(); myImageIcon = IconManager.imgic700; @@ -145,6 +143,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement //actionOnAdd(); } + @Override public void internalDrawing(Graphics g) { Font f = g.getFont(); Font fold = f; @@ -200,7 +199,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement g.drawRect(x, y, width, height); int decY = (int)(15 * tdp.getZoom()); int decX = (int)(20 * tdp.getZoom()); - int h = g.getFontMetrics().getHeight(); + int h = g.getFontMetrics().getHeight(); if ((height > decY) && (width > decX)) { g.drawLine(x, y+decY, x+decY, y+decY); g.drawLine(x+decY, y+decY, x+decX, y+decY-5); @@ -230,7 +229,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement g.setFont(fold); } - + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { @@ -244,8 +243,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement return value; } + @Override public boolean editOndoubleClick(JFrame frame, int _x, int _y) { - oldValue = value; //String text = getName() + ": "; @@ -272,11 +271,12 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement } - + @Override public int getType() { return TGComponentManager.AAD_ACTIVITY; } + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { if (tgc instanceof AvatarADBasicComponent) { return true; @@ -290,6 +290,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { boolean swallowed = false; @@ -340,6 +341,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement return true; } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { removeMyInternalComponent(tgc, false); } @@ -379,7 +381,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement return false; } - + @Override public void hasBeenResized() { for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarADBasicComponent) { @@ -399,8 +401,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement } + @Override public void resizeWithFather() { - if ((father != null) && (father instanceof AvatarADActivity)) { // Too large to fit in the father? -> resize it! resizeToFatherSize(); @@ -410,8 +412,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement } } - public LinkedList<AvatarADActivity> getActivityList() { - LinkedList<AvatarADActivity> list = new LinkedList<AvatarADActivity>(); + public List<AvatarADActivity> getActivityList() { + List<AvatarADActivity> list = new LinkedList<AvatarADActivity>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarADActivity) { list.add((AvatarADActivity)(tgcomponent[i])); @@ -420,8 +422,8 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement return list; } - public LinkedList<AvatarADActivity> getFullActivityList() { - LinkedList<AvatarADActivity> list = new LinkedList<AvatarADActivity>(); + public List<AvatarADActivity> getFullActivityList() { + List<AvatarADActivity> list = new LinkedList<AvatarADActivity>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarADActivity) { list.add((AvatarADActivity)(tgcomponent[i])); @@ -432,7 +434,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement } public boolean hasInternalActivityWithName(String name) { - LinkedList<AvatarADActivity> list = getFullActivityList(); + List<AvatarADActivity> list = getFullActivityList(); for(AvatarADActivity s: list) { if (s.getValue().compareTo(name) ==0) { return true; @@ -441,6 +443,7 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement return false; } + @Override public int getDefaultConnector() { return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; } @@ -471,6 +474,13 @@ public class AvatarADActivity extends TGCScalableWithInternalComponent implement public boolean isACompositeActivity() { return (nbInternalTGComponent > 0); } - - + + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return true; + } } diff --git a/src/main/java/ui/avatarad/AvatarADAssociationConnector.java b/src/main/java/ui/avatarad/AvatarADAssociationConnector.java index e0944602b82b1b7b559e3d99b41d6f4d08cd5cdc..56b3f58357b1cd738545ee55d39677f0e5b6f9f8 100755 --- a/src/main/java/ui/avatarad/AvatarADAssociationConnector.java +++ b/src/main/java/ui/avatarad/AvatarADAssociationConnector.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADConnector; import java.awt.*; import java.awt.geom.Point2D; @@ -55,14 +53,14 @@ import java.util.Vector; * @version 1.0 01/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADAssociationConnector extends TGConnector { +public class AvatarADAssociationConnector extends TADConnector/* Issue #69 TGConnector*/ { int w, h; public AvatarADAssociationConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); } - + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -75,6 +73,7 @@ public class AvatarADAssociationConnector extends TGConnector { GraphicLib.dashedLine(g, x1, y1, x2, y2); }*/ + @Override public TGComponent extraIsOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) { return this; @@ -82,15 +81,21 @@ public class AvatarADAssociationConnector extends TGConnector { return null; } + @Override public int getType() { return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; } + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + if ( p2 != null && ( p2.getFather() instanceof AvatarADStopState || p2.getFather() instanceof AvatarADStopFlow ) ) { + return false; + } + + return super.canBeDisabled(); + } } - - - - - - - diff --git a/src/main/java/ui/avatarad/AvatarADBasicCanBeDisabledComponent.java b/src/main/java/ui/avatarad/AvatarADBasicCanBeDisabledComponent.java new file mode 100644 index 0000000000000000000000000000000000000000..3465351a35fd8d8b989cd9dba0d3d7b8ff3c58f4 --- /dev/null +++ b/src/main/java/ui/avatarad/AvatarADBasicCanBeDisabledComponent.java @@ -0,0 +1,17 @@ +package ui.avatarad; + +import ui.TDiagramPanel; +import ui.TGComponent; + +public abstract class AvatarADBasicCanBeDisabledComponent extends AvatarADBasicComponent { + + public AvatarADBasicCanBeDisabledComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, + TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + } + + @Override + public boolean canBeDisabled() { + return true; + } +} diff --git a/src/main/java/ui/avatarad/AvatarADBasicComponent.java b/src/main/java/ui/avatarad/AvatarADBasicComponent.java index 3721dec6eb48bca9156d717f45c839ab9a869360..8dc5982201fc7ef212c8ad9df97a754425d6f725 100644 --- a/src/main/java/ui/avatarad/AvatarADBasicComponent.java +++ b/src/main/java/ui/avatarad/AvatarADBasicComponent.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import ui.*; @@ -51,16 +48,18 @@ import ui.*; * @author Ludovic APVRILLE */ public abstract class AvatarADBasicComponent extends TGCScalableWithoutInternalComponent implements SwallowedTGComponent { - private int lineLength = 5; + // private int lineLength = 5; public AvatarADBasicComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); } + @Override public int getDefaultConnector() { return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof AvatarADActivity)) { // Too large to fit in the father? -> resize it! @@ -70,5 +69,4 @@ public abstract class AvatarADBasicComponent extends TGCScalableWithoutInternalC setMoveCd(x, y); } } - } diff --git a/src/main/java/ui/avatarad/AvatarADChoice.java b/src/main/java/ui/avatarad/AvatarADChoice.java index 7830ed0ca7308baa6bd7ad3ee2d7c1ba32901121..b261c689a536b2cd5b9a24190771f5bf4b004693 100755 --- a/src/main/java/ui/avatarad/AvatarADChoice.java +++ b/src/main/java/ui/avatarad/AvatarADChoice.java @@ -36,17 +36,15 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; -import java.awt.geom.Line2D; +import ui.EmbeddedComment; +import ui.SwallowedTGComponent; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADChoice; /** * Class AvatarADChoice @@ -55,125 +53,138 @@ import java.awt.geom.Line2D; * @version 1.0 01/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADChoice extends TGCScalableWithInternalComponent implements SwallowedTGComponent, EmbeddedComment, BasicErrorHighlight { - private int lineLength = 10; - private int lineOutLength = 25; - private int textX1, textY1, textX2, textY2, textX3, textY3; +public class AvatarADChoice extends TADChoice /* Issue #69 TGCScalableWithInternalComponent*/ implements SwallowedTGComponent, EmbeddedComment/*, BasicErrorHighlight*/ { +// private int lineLength = 10; +// private int lineOutLength = 25; +// private int textX1, textY1, textX2, textY2, textX3, textY3; protected int stateOfError = 0; // Not yet checked public AvatarADChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - initScaling(30, 30); - oldScaleFactor = tdp.getZoom(); - - textX1 = -lineOutLength; - textY1 = height/2 - 5; - textX2 = width + 5; - textY2 = height/2 - 5; - textX3 = width /2 + 5; - textY3 = height + 15; - +// +// initScaling(30, 30); +// oldScaleFactor = tdp.getZoom(); +// +// textX1 = -lineOutLength; +// textY1 = height/2 - 5; +// textX2 = width + 5; +// textY2 = height/2 - 5; +// textX3 = width /2 + 5; +// textY3 = height + 15; +// +// nbConnectingPoint = 4; +// connectingPoint = new TGConnectingPoint[nbConnectingPoint]; +// connectingPoint[0] = new AvatarADConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new AvatarADConnectingPoint(this, -lineOutLength, 0, false, true, 0.0, 0.5); +// connectingPoint[2] = new AvatarADConnectingPoint(this, lineOutLength, 0, false, true, 1.0, 0.5); +// connectingPoint[3] = new AvatarADConnectingPoint(this, 0, lineOutLength, false, true, 0.5, 1.0); +// +// nbInternalTGComponent = 3; +// tgcomponent = new TGComponent[nbInternalTGComponent]; +// +// TGCScalableOneLineText tgc = new TGCScalableOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 1"); +// tgcomponent[0] = tgc; +// +// tgc = new TGCScalableOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 2"); +// tgcomponent[1] = tgc; +// +// tgc = new TGCScalableOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 3"); +// tgcomponent[2] = tgc; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "choice"; +// +// myImageIcon = IconManager.imgic208; + } + + @Override + protected void createConnectingPoints() { nbConnectingPoint = 4; connectingPoint = new TGConnectingPoint[nbConnectingPoint]; connectingPoint[0] = new AvatarADConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0); connectingPoint[1] = new AvatarADConnectingPoint(this, -lineOutLength, 0, false, true, 0.0, 0.5); connectingPoint[2] = new AvatarADConnectingPoint(this, lineOutLength, 0, false, true, 1.0, 0.5); connectingPoint[3] = new AvatarADConnectingPoint(this, 0, lineOutLength, false, true, 0.5, 1.0); - - nbInternalTGComponent = 3; - tgcomponent = new TGComponent[nbInternalTGComponent]; - - TGCScalableOneLineText tgc = new TGCScalableOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 1"); - tgcomponent[0] = tgc; - - tgc = new TGCScalableOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 2"); - tgcomponent[1] = tgc; - - tgc = new TGCScalableOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 3"); - tgcomponent[2] = tgc; - - moveable = true; - editable = false; - removable = true; - - name = "choice"; - - myImageIcon = IconManager.imgic208; - } - - public void internalDrawing(Graphics g) { - if (stateOfError > 0) { - Color c = g.getColor(); - switch(stateOfError) { - case ErrorHighlight.OK: - g.setColor(ColorManager.CHOICE); - break; - default: - g.setColor(ColorManager.UNKNOWN_BOX_ACTION); - } - // Making the polygon - int [] px1 = {x+(width/2), x+width+2, x + (width/2), x}; - int [] py1 = {y, y + height/2, y+height+2, y+height/2}; - g.fillPolygon(px1, py1, 4); - g.setColor(c); - } - - g.drawLine(x+(width/2), y, x+width, y + height/2); - g.drawLine(x, y + height / 2, x+width/2, y + height); - g.drawLine(x + width/2, y, x, y + height/2); - g.drawLine(x + width, y + height/2, x + width/2, y + height); - - g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); - g.drawLine(x, y + height/2, x-lineOutLength, y + height/2); - g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2); - g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); - } - - public TGComponent isOnOnlyMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) { - return this; - } - - return null; } - - public String getGuard(int i) { - if ((i>=0) && (i<nbInternalTGComponent)) { - return tgcomponent[i].getValue(); - } - return ""; - } - - public void setGuard(String guard, int i) { - if ((i>=0) && (i<nbInternalTGComponent)) { - tgcomponent[i].setValue(guard); - } - } - +// +// @Override +// public void internalDrawing(Graphics g) { +// if (stateOfError > 0) { +// Color c = g.getColor(); +// switch(stateOfError) { +// case ErrorHighlight.OK: +// g.setColor(ColorManager.CHOICE); +// break; +// default: +// g.setColor(ColorManager.UNKNOWN_BOX_ACTION); +// } +// // Making the polygon +// int [] px1 = {x+(width/2), x+width+2, x + (width/2), x}; +// int [] py1 = {y, y + height/2, y+height+2, y+height/2}; +// g.fillPolygon(px1, py1, 4); +// g.setColor(c); +// } +// +// g.drawLine(x+(width/2), y, x+width, y + height/2); +// g.drawLine(x, y + height / 2, x+width/2, y + height); +// g.drawLine(x + width/2, y, x, y + height/2); +// g.drawLine(x + width, y + height/2, x + width/2, y + height); +// +// g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); +// g.drawLine(x, y + height/2, x-lineOutLength, y + height/2); +// g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2); +// g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); +// } +// +// @Override +// public TGComponent isOnOnlyMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } +// +// public String getGuard(int i) { +// if ((i>=0) && (i<nbInternalTGComponent)) { +// return tgcomponent[i].getValue(); +// } +// return ""; +// } +// +// public void setGuard(String guard, int i) { +// if ((i>=0) && (i<nbInternalTGComponent)) { +// tgcomponent[i].setValue(guard); +// } +// } + + @Override public void resizeWithFather() { if ((father != null) && (father instanceof AvatarADActivity)) { // Too large to fit in the father? -> resize it! @@ -184,16 +195,17 @@ public class AvatarADChoice extends TGCScalableWithInternalComponent implements } } + @Override public int getType() { return TGComponentManager.AAD_CHOICE; } + @Override public int getDefaultConnector() { return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; } - - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } - +// +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java index 655f69cda3e4c7caa38512a1da0612ec3f911cdc..607ee7b091f836835dce051d07551b1d627140ec 100644 --- a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java +++ b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; - import ui.CDElement; import ui.TGComponentManager; import ui.TGConnectingPointWidthHeight; @@ -53,14 +49,14 @@ import ui.TGConnectingPointWidthHeight; * @version 1.0 01/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADConnectingPoint extends TGConnectingPointWidthHeight { +public class AvatarADConnectingPoint extends TGConnectingPointWidthHeight { public AvatarADConnectingPoint(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) { super(_container, _x, _y, _in, _out, _w, _h); } + @Override public boolean isCompatibleWith(int type) { return type == TGComponentManager.AAD_ASSOCIATION_CONNECTOR; } - } diff --git a/src/main/java/ui/avatarad/AvatarADJunction.java b/src/main/java/ui/avatarad/AvatarADJunction.java index da184855f6160a4612d9c4756e472263fc8d1cca..31af72842d15137bd73303c2d5ce0d136aaee6ea 100755 --- a/src/main/java/ui/avatarad/AvatarADJunction.java +++ b/src/main/java/ui/avatarad/AvatarADJunction.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarad; import ui.TDiagramPanel; @@ -48,7 +47,6 @@ import ui.util.IconManager; import java.awt.*; import java.awt.geom.Line2D; - /** * Class AvatarADJunction * Junction between several activities, without any synchronization. To be used in avatar activity diagrams @@ -102,7 +100,7 @@ public class AvatarADJunction extends AvatarADBasicComponent { myImageIcon = IconManager.imgic212; } - + @Override public void internalDrawing(Graphics g) { //g.drawLine(x +width/2, y, x+width/2, y + height); //g.drawLine(x, y + (height/2), x+width, y + (height/2)); @@ -118,6 +116,7 @@ public class AvatarADJunction extends AvatarADBasicComponent { g.drawLine(x + width / 2 + range, y + height / 2, x + width / 2, y + height / 2 + range); } + @Override public TGComponent isOnMe(int _x, int _y) { // vertical line if ((int) (Line2D.ptSegDistSq(x + width / 2, y, x + width / 2, y + height, _x, _y)) < distanceSelected) { @@ -130,12 +129,12 @@ public class AvatarADJunction extends AvatarADBasicComponent { return null; } + @Override public int getType() { return TGComponentManager.AAD_JUNCTION; } - public int getDefaultConnector() { - return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; - } - +// public int getDefaultConnector() { +// return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; +// } } diff --git a/src/main/java/ui/avatarad/AvatarADPanel.java b/src/main/java/ui/avatarad/AvatarADPanel.java index 8681fecd95e2140d52642c9042d56ce1298f56ed..a45b09bfcc201193d63fa4277fbe1a2dcbc733f8 100644 --- a/src/main/java/ui/avatarad/AvatarADPanel.java +++ b/src/main/java/ui/avatarad/AvatarADPanel.java @@ -36,21 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; -//import java.awt.*; - import ui.*; import java.util.ArrayList; import java.util.Iterator; - -//import org.w3c.dom.*; -//import org.xml.sax.*; -//import javax.xml.parsers.*; +import java.util.List; /** * Class AvatarADPanel @@ -71,41 +63,52 @@ public class AvatarADPanel extends TDiagramPanel implements TDPWithAttributes{ addMouseMotionListener(tdmm);*/ } + @Override public boolean actionOnDoubleClick(TGComponent tgc) { return true; } + @Override public boolean actionOnAdd(TGComponent tgc) { return false; } + + @Override public boolean actionOnValueChanged(TGComponent tgc) { return false; } + @Override public boolean actionOnRemove(TGComponent tgc) { return false; } + @Override public String getXMLHead() { return "<AvatarADPanel name=\"" + name + "\"" + sizeParam() + zoomParam() + " >"; } + @Override public String getXMLTail() { return "</AvatarADPanel>"; } + @Override public String getXMLSelectedHead() { return "<AvatarADPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >"; } + @Override public String getXMLSelectedTail() { return "</AvatarADPanelCopy>"; } + @Override public String getXMLCloneHead() { return "<AvatarADPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >"; } + @Override public String getXMLCloneTail() { return "</AvatarADPanelCopy>"; } @@ -118,47 +121,41 @@ public class AvatarADPanel extends TDiagramPanel implements TDPWithAttributes{ // Position correctly guards of choice } - - + @Override public boolean hasAutoConnect() { return false; } public void setConnectorsToFront() { TGComponent tgc; - - // - - Iterator iterator = componentList.listIterator(); + Iterator<TGComponent> iterator = componentList.listIterator(); - ArrayList<TGComponent> list = new ArrayList<TGComponent>(); + List<TGComponent> list = new ArrayList<TGComponent>(); while(iterator.hasNext()) { - tgc = (TGComponent)(iterator.next()); + tgc = iterator.next(); if (!(tgc instanceof TGConnector)) { list.add(tgc); } } - // for(TGComponent tgc1: list) { - // componentList.remove(tgc1); componentList.add(tgc1); } } public void alignPartitions() { - AvatarADPartition ontheLeft = null, sdi; + AvatarADPartition ontheLeft = null;//, sdi; int x = getMaxX(),xtmp; int y; int i; TGComponent tgc; - Iterator iterator = componentList.listIterator(); + Iterator<TGComponent> iterator = componentList.listIterator(); // search for the instances which is the most on the left while(iterator.hasNext()) { - tgc = (TGComponent)(iterator.next()); + tgc = iterator.next(); if (tgc instanceof AvatarADPartition) { xtmp = tgc.getX(); if (xtmp < x) { @@ -180,7 +177,5 @@ public class AvatarADPanel extends TDiagramPanel implements TDPWithAttributes{ tgc.setCd(tgc.getX(), y); } } - } - } diff --git a/src/main/java/ui/avatarad/AvatarADParallel.java b/src/main/java/ui/avatarad/AvatarADParallel.java index 311bf463dc4decc522b57ec22daa145a0f039ed2..0a583b428351df3d88ac7321c0b8f2b91165fb69 100755 --- a/src/main/java/ui/avatarad/AvatarADParallel.java +++ b/src/main/java/ui/avatarad/AvatarADParallel.java @@ -36,17 +36,17 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; +import java.awt.Graphics; +import java.util.Arrays; +import java.util.List; + import myutil.GraphicLib; import ui.*; +import ui.ad.EnablingADConnectorVisitor; import ui.util.IconManager; -import java.awt.*; - /** * Class AvatarADParallel * Parallel operator. All activities start together @@ -55,9 +55,9 @@ import java.awt.*; * @version 1.0 02/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADParallel extends AvatarADBasicComponent{ +public class AvatarADParallel extends AvatarADBasicCanBeDisabledComponent /* Issue #69 AvatarADBasicComponent*/ { private int lineLength = 0; - private int textX, textY; + // private int textX, textY; public AvatarADParallel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -65,8 +65,8 @@ public class AvatarADParallel extends AvatarADBasicComponent{ initScaling(150, 5); oldScaleFactor = tdp.getZoom(); - textX = width - 10; - textY = height - 8; +// textX = width - 10; +// textY = height - 8; nbConnectingPoint = 10; connectingPoint = new TGConnectingPoint[10]; @@ -93,11 +93,13 @@ public class AvatarADParallel extends AvatarADBasicComponent{ myImageIcon = IconManager.imgic206; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -113,18 +115,37 @@ public class AvatarADParallel extends AvatarADBasicComponent{ tgcomponent[0].setValue(val); } + @Override public int getType() { return TGComponentManager.AAD_PARALLEL; } +// +// public int getDefaultConnector() { +// return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; +// } + + public List<TGConnectingPoint> getEnterConnectingPoints() { + return Arrays.asList( Arrays.copyOfRange( connectingPoint, 0, 5 ) ); + } + + public List<TGConnectingPoint> getExitConnectingPoints() { + return Arrays.asList( Arrays.copyOfRange( connectingPoint, 5, connectingPoint.length ) ); + } - public int getDefaultConnector() { - return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + super.setEnabled( _enabled ); + + final List<TGConnectingPoint> enterConPoints = getEnterConnectingPoints(); + + for ( final TGConnectingPoint point : connectingPoint ) { + if ( !enterConPoints.contains( point ) ) { + point.acceptForward( new EnablingADConnectorVisitor( _enabled ) ); + } + } } } - - - - - - - diff --git a/src/main/java/ui/avatarad/AvatarADPartition.java b/src/main/java/ui/avatarad/AvatarADPartition.java index 4719fb9847c0482ff66b05174577a7201285243f..7410edfa4fe4373a61b04cc8ed0c8bf987b15359 100755 --- a/src/main/java/ui/avatarad/AvatarADPartition.java +++ b/src/main/java/ui/avatarad/AvatarADPartition.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -55,18 +52,18 @@ import java.awt.*; * @author Ludovic APVRILLE */ public class AvatarADPartition extends AvatarADBasicComponent implements EmbeddedComment{ - private int lineLength = 5; + //private int lineLength = 5; public AvatarADPartition(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - initScaling(10, 500); - oldScaleFactor = tdp.getZoom(); - - minWidth = (int)(10* tdp.getZoom()); - maxWidth = (int)(30* tdp.getZoom()); - minHeight = (int)(250* tdp.getZoom()); - maxHeight = (int)(1500* tdp.getZoom()); + initScaling(10, 500); + oldScaleFactor = tdp.getZoom(); + + minWidth = (int)(10* tdp.getZoom()); + maxWidth = (int)(30* tdp.getZoom()); + minHeight = (int)(250* tdp.getZoom()); + maxHeight = (int)(1500* tdp.getZoom()); nbConnectingPoint = 0; @@ -81,11 +78,13 @@ public class AvatarADPartition extends AvatarADBasicComponent implements Embedde myImageIcon = IconManager.imgic222; } + @Override public void internalDrawing(Graphics g) { g.drawLine(x+(width/2), y, x+(width/2), y +height); g.drawLine(x+(width/2)+1, y, x+(width/2)+1, y +height); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -94,12 +93,12 @@ public class AvatarADPartition extends AvatarADBasicComponent implements Embedde return null; } + @Override public int getType() { return TGComponentManager.AAD_PARTITION; } - - public int getDefaultConnector() { - return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; - } - +// +// public int getDefaultConnector() { +// return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; +// } } diff --git a/src/main/java/ui/avatarad/AvatarADSendSignalAction.java b/src/main/java/ui/avatarad/AvatarADSendSignalAction.java index 6b48304f34acbff3edaaa46b7d60e39206c6c682..6c01f804d1f0ef66e6ab9c7633e580a3f2ce83e3 100755 --- a/src/main/java/ui/avatarad/AvatarADSendSignalAction.java +++ b/src/main/java/ui/avatarad/AvatarADSendSignalAction.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -56,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 02/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADSendSignalAction extends AvatarADBasicComponent implements EmbeddedComment, BasicErrorHighlight { +public class AvatarADSendSignalAction extends AvatarADBasicCanBeDisabledComponent/* Issue #69 AvatarADBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -72,7 +69,7 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements minWidth = (int)(30* tdp.getZoom()); oldScaleFactor = tdp.getZoom(); - nbConnectingPoint = 2; + nbConnectingPoint = 2; connectingPoint = new TGConnectingPoint[2]; connectingPoint[0] = new AvatarADConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0); connectingPoint[1] = new AvatarADConnectingPoint(this, 0, lineLength, false, true, 0.5, 1.0); @@ -87,8 +84,8 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -142,14 +139,11 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements g.drawLine(x+width-linebreak, y, x+width, y+height/2); g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); - - g.drawString("sig", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 , y + (int)((textY*tdp.getZoom()))); - - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -166,6 +160,7 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements return value; } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; @@ -185,12 +180,12 @@ public class AvatarADSendSignalAction extends AvatarADBasicComponent implements } + @Override public int getType() { return TGComponentManager.AAD_SEND_SIGNAL_ACTION; } - - + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarad/AvatarADStartState.java b/src/main/java/ui/avatarad/AvatarADStartState.java index f24098652cec127dcd02f5f17817c18d880018d5..4bbe93d0e61fbc5430960480516e552317f1404e 100755 --- a/src/main/java/ui/avatarad/AvatarADStartState.java +++ b/src/main/java/ui/avatarad/AvatarADStartState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -55,13 +52,13 @@ import java.awt.geom.Line2D; * @version 1.0 01/09/2011 * @author Ludovic APVRILLE */ -public class AvatarADStartState extends AvatarADBasicComponent implements EmbeddedComment{ +public class AvatarADStartState extends AvatarADBasicComponent implements EmbeddedComment { private int lineLength = 5; public AvatarADStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - initScaling(15, 15); + initScaling(15, 15); oldScaleFactor = tdp.getZoom(); nbConnectingPoint = 1; @@ -79,11 +76,13 @@ public class AvatarADStartState extends AvatarADBasicComponent implements Embedd myImageIcon = IconManager.imgic222; } + @Override public void internalDrawing(Graphics g) { g.fillOval(x, y, width, height); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -96,12 +95,13 @@ public class AvatarADStartState extends AvatarADBasicComponent implements Embedd return null; } + @Override public int getType() { return TGComponentManager.AAD_START_STATE; } - - public int getDefaultConnector() { - return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; - } +// +// public int getDefaultConnector() { +// return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; +// } } diff --git a/src/main/java/ui/avatarad/AvatarADStopFlow.java b/src/main/java/ui/avatarad/AvatarADStopFlow.java index a3bbdfb88d77142023f144e635a80517d215cf06..be3ca80a2346c96112430d54a94e4a4312b3a525 100755 --- a/src/main/java/ui/avatarad/AvatarADStopFlow.java +++ b/src/main/java/ui/avatarad/AvatarADStopFlow.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -55,7 +52,7 @@ import java.awt.*; * @author Ludovic APVRILLE */ public class AvatarADStopFlow extends AvatarADBasicComponent implements EmbeddedComment, AllowedBreakpoint { - private int internalCircleSize = 16; +// private int internalCircleSize = 16; private int lineLength = 5; public AvatarADStopFlow(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { @@ -79,6 +76,7 @@ public class AvatarADStopFlow extends AvatarADBasicComponent implements Embedded myImageIcon = IconManager.imgic210; } + @Override public void internalDrawing(Graphics g) { ColorManager.setColor(g, state, 0); //g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); @@ -88,6 +86,7 @@ public class AvatarADStopFlow extends AvatarADBasicComponent implements Embedded g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -95,12 +94,12 @@ public class AvatarADStopFlow extends AvatarADBasicComponent implements Embedded return null; } + @Override public int getType() { return TGComponentManager.AAD_STOP_FLOW; } - - public int getDefaultConnector() { - return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; - } - +// +// public int getDefaultConnector() { +// return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; +// } } diff --git a/src/main/java/ui/avatarad/AvatarADStopState.java b/src/main/java/ui/avatarad/AvatarADStopState.java index 875892b8efc6209b852efa54df0bbf0342b7a59a..e3f1e919f418aef0ab767360d4ae4c034d8fe472 100755 --- a/src/main/java/ui/avatarad/AvatarADStopState.java +++ b/src/main/java/ui/avatarad/AvatarADStopState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarad; import myutil.GraphicLib; @@ -79,6 +76,7 @@ public class AvatarADStopState extends AvatarADBasicComponent implements Embedde myImageIcon = IconManager.imgic210; } + @Override public void internalDrawing(Graphics g) { ColorManager.setColor(g, state, 0); g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); @@ -86,7 +84,7 @@ public class AvatarADStopState extends AvatarADBasicComponent implements Embedde g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); } - + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -94,12 +92,12 @@ public class AvatarADStopState extends AvatarADBasicComponent implements Embedde return null; } + @Override public int getType() { return TGComponentManager.AAD_STOP_STATE; } - - public int getDefaultConnector() { - return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; - } - +// +// public int getDefaultConnector() { +// return TGComponentManager.AAD_ASSOCIATION_CONNECTOR; +// } } diff --git a/src/main/java/ui/avatarad/AvatarADToolBar.java b/src/main/java/ui/avatarad/AvatarADToolBar.java index f491f119af557e68cd28ca8bf28f2b94e23632e9..b1ba6354ffc0924c3f5b0bee4f23f5e6a1ebe3c2 100644 --- a/src/main/java/ui/avatarad/AvatarADToolBar.java +++ b/src/main/java/ui/avatarad/AvatarADToolBar.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarad; import ui.MainGUI; @@ -45,9 +44,6 @@ import ui.TToolBar; import javax.swing.*; -//import java.awt.*; -//import java.awt.event.*; - /** * Class AvatarADToolBar * Implements the toolbar to be used in conjunction with the panel of @@ -62,7 +58,6 @@ public class AvatarADToolBar extends TToolBar { public AvatarADToolBar(MainGUI _mgui) { super(_mgui); - } protected void setActive(boolean b) { @@ -162,14 +157,10 @@ public class AvatarADToolBar extends TToolBar { button = this.add(mgui.actions[TGUIAction.AAD_ALIGN_PARTITION]); button.addMouseListener(mgui.mouseHandler); - /*this.addSeparator(); this.addSeparator(); button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]); button.addMouseListener(mgui.mouseHandler);*/ - - } - } // Class diff --git a/src/main/java/ui/avatarbd/AvatarBDBlock.java b/src/main/java/ui/avatarbd/AvatarBDBlock.java index e5e329766904ad9895140bb6227f5caf972fb344..5edc8eddbf1208c35bd8a3ee7ad96d7af27385a9 100644 --- a/src/main/java/ui/avatarbd/AvatarBDBlock.java +++ b/src/main/java/ui/avatarbd/AvatarBDBlock.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarbd; import myutil.Conversion; @@ -57,16 +56,20 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PipedInputStream; import java.io.PipedOutputStream; +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.io.BufferedReader; import java.io.BufferedWriter; import javax.swing.*; -import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.HashMap; import proverifspec.ProVerifResultTrace; import proverifspec.ProVerifResultTraceStep; @@ -89,8 +92,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S private static String stereotype = "block"; private static String stereotypeCrypto = "cryptoblock"; - protected static ArrayList<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock")); - protected static ArrayList<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK)); + protected static List<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock")); + protected static List<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK)); private int typeStereotype = 0; // <<block>> by default private int maxFontSize = 12; @@ -111,13 +114,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S // TAttribute, AvatarMethod, AvatarSignal - protected LinkedList<TAttribute> myAttributes; - protected LinkedList<AvatarMethod> myMethods; - protected LinkedList<AvatarSignal> mySignals; + protected List<TAttribute> myAttributes; + protected List<AvatarMethod> myMethods; + protected List<AvatarSignal> mySignals; protected String[] globalCode; - protected HashMap<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>(); - protected HashMap<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>(); + protected Map<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>(); + protected Map<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>(); public String oldValue; @@ -195,7 +198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S this.mySignals.add(sig); } - public void internalDrawingAux(Graphics graph) { + private void internalDrawingAux(Graphics graph) { //TraceManager.addDev("Block drawing aux = " + this); @@ -595,7 +598,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } - + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -621,6 +624,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return result; } + @Override public boolean editOndoubleClick(JFrame frame, int _x, int _y) { int textX = (int) (this.textX * this.tdp.getZoom()); if (iconIsDrawn) { @@ -814,16 +818,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S _jdab.enableJavaKeyword(false); } - + @Override public int getType() { return TGComponentManager.AVATARBD_BLOCK; } + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { return tgc instanceof AvatarBDBlock || tgc instanceof AvatarBDLibraryFunction; } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { boolean swallowed = false; @@ -871,6 +877,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return true; } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { removeMyInternalComponent(tgc, false); } @@ -908,6 +915,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return false; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<blockType data=\""); @@ -1123,7 +1131,6 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } //TraceManager.addDev("LEP End Block = " + this); - } public boolean addStereotype(String s, int rgb) { @@ -1191,7 +1198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return ret; } - + @Override public void hasBeenResized() { for (int i = 0; i < nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarBDBlock) { @@ -1207,6 +1214,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof AvatarBDBlock)) { // Too large to fit in the father? -> resize it! @@ -1217,8 +1225,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } } - public LinkedList<AvatarBDBlock> getBlockList() { - LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); + public List<AvatarBDBlock> getBlockList() { + List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); for (int i = 0; i < nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarBDBlock) { list.add((AvatarBDBlock) (tgcomponent[i])); @@ -1227,8 +1235,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return list; } - public LinkedList<AvatarBDBlock> getFullBlockList() { - LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); + public List<AvatarBDBlock> getFullBlockList() { + List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>(); for (int i = 0; i < nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarBDBlock) { list.add((AvatarBDBlock) (tgcomponent[i])); @@ -1238,8 +1246,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return list; } - public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList() { - LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>(); + public List<AvatarBDLibraryFunction> getFullLibraryFunctionList() { + List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>(); for (int i = 0; i < nbInternalTGComponent; i++) { if (this.tgcomponent[i] instanceof AvatarBDLibraryFunction) list.add((AvatarBDLibraryFunction) this.tgcomponent[i]); @@ -1251,13 +1259,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } public boolean hasInternalBlockWithName(String name) { - LinkedList<AvatarBDBlock> list = getFullBlockList(); + List<AvatarBDBlock> list = getFullBlockList(); for (AvatarBDBlock b : list) { if (b.getValue().compareTo(name) == 0) { return true; } } - LinkedList<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList(); + List<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList(); for (AvatarBDLibraryFunction b : llist) { if (b.getFunctionName().compareTo(name) == 0) { return true; @@ -1267,12 +1275,12 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return false; } - + @Override public int getDefaultConnector() { return TGComponentManager.AVATARBD_PORT_CONNECTOR; } - public LinkedList<TAttribute> getAttributeList() { + public List<TAttribute> getAttributeList() { return this.myAttributes; } @@ -1287,54 +1295,54 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S this.myAttributes.add(ta); } - public LinkedList<AvatarMethod> getMethodList() { + public List<AvatarMethod> getMethodList() { return this.myMethods; } - public LinkedList<AvatarSignal> getSignalList() { + public List<AvatarSignal> getSignalList() { return this.mySignals; } - public LinkedList<AvatarSignal> getOutSignalList() { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>(); + public List<AvatarSignal> getOutSignalList() { + List<AvatarSignal> v = new LinkedList<AvatarSignal>(); for (AvatarSignal s : this.mySignals) if (s.getInOut() == AvatarSignal.OUT) v.add(s); return v; } - public LinkedList<AvatarSignal> getInSignalList() { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>(); + public List<AvatarSignal> getInSignalList() { + List<AvatarSignal> v = new LinkedList<AvatarSignal>(); for (AvatarSignal s : this.mySignals) if (s.getInOut() == AvatarSignal.IN) v.add(s); return v; } - public LinkedList<AvatarMethod> getAllMethodList() { + public List<AvatarMethod> getAllMethodList() { if (getFather() == null) { return this.myMethods; } - LinkedList<AvatarMethod> v = new LinkedList<AvatarMethod>(); + List<AvatarMethod> v = new LinkedList<AvatarMethod>(); v.addAll(this.myMethods); v.addAll(((AvatarBDBlock) getFather()).getAllMethodList()); return v; } - public LinkedList<AvatarSignal> getAllSignalList() { + public List<AvatarSignal> getAllSignalList() { if (getFather() == null) { return this.mySignals; } - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>(); + List<AvatarSignal> v = new LinkedList<AvatarSignal>(); v.addAll(this.mySignals); v.addAll(((AvatarBDBlock) getFather()).getAllSignalList()); return v; } - public LinkedList<String> getAllTimerList() { - LinkedList<String> v = new LinkedList<String>(); + public List<String> getAllTimerList() { + List<String> v = new LinkedList<String>(); for (TAttribute a : this.myAttributes) if (a.getType() == TAttribute.TIMER) @@ -1349,19 +1357,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return null; } - public LinkedList<AvatarSignal> getListOfAvailableSignals() { + public List<AvatarSignal> getListOfAvailableSignals() { return ((AvatarBDPanel) (tdp)).getListOfAvailableSignals(this); } - public LinkedList<AvatarSignal> getListOfAvailableOutSignals() { + public List<AvatarSignal> getListOfAvailableOutSignals() { return ((AvatarBDPanel) (tdp)).getListOfAvailableOutSignals(this); } - public LinkedList<AvatarSignal> getListOfAvailableInSignals() { + public List<AvatarSignal> getListOfAvailableInSignals() { return ((AvatarBDPanel) (tdp)).getListOfAvailableInSignals(this); } - // _id may contain the full signal public AvatarSignal getSignalNameBySignalDef(String _id) { int index0 = _id.indexOf('('); @@ -1494,6 +1501,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return -1; } + @Override public ImageIcon getImageIcon() { return myImageIcon; } @@ -1507,11 +1515,11 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S return this.getBlockName(); } + @Override public String toString() { return "Block: " + getValue(); } - public String getAttributes() { String attr = ""; for (TAttribute a: myAttributes) { @@ -1525,9 +1533,4 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S } return attr; } - - - - - } diff --git a/src/main/java/ui/avatarbd/AvatarBDPanel.java b/src/main/java/ui/avatarbd/AvatarBDPanel.java index 9d2e308199a6a3fb64df1decaaaf1d983904d3c1..70c04c57584998067fb3580f8e379caa8d44142b 100644 --- a/src/main/java/ui/avatarbd/AvatarBDPanel.java +++ b/src/main/java/ui/avatarbd/AvatarBDPanel.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarbd; - import myutil.Conversion; import myutil.TraceManager; import org.w3c.dom.Element; @@ -61,7 +57,8 @@ import java.util.*; * @author Ludovic APVRILLE */ public class AvatarBDPanel extends TDiagramPanel { - private LinkedList<AvatarBDStateMachineOwner> validated, ignored; + + private List<AvatarBDStateMachineOwner> validated, ignored; private String val = null, ign = null; private boolean optimized = true; @@ -78,6 +75,7 @@ public class AvatarBDPanel extends TDiagramPanel { addMouseMotionListener(tdmm);*/ } + @Override public boolean actionOnDoubleClick(TGComponent tgc) { // if (tgc instanceof AvatarBDBlock) { @@ -94,6 +92,7 @@ public class AvatarBDPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnAdd(TGComponent tgc) { if (tgc instanceof AvatarBDBlock) { AvatarBDBlock abdb = (AvatarBDBlock)(tgc); @@ -109,12 +108,13 @@ public class AvatarBDPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnRemove(TGComponent tgc) { if (tgc instanceof AvatarBDStateMachineOwner) { AvatarBDStateMachineOwner abdb = (AvatarBDStateMachineOwner) tgc; this.mgui.removeAvatarBlock (tp, abdb.getOwnerName()); if (tgc instanceof AvatarBDBlock) { - LinkedList<AvatarBDBlock> list = ((AvatarBDBlock) abdb).getFullBlockList(); + List<AvatarBDBlock> list = ((AvatarBDBlock) abdb).getFullBlockList(); for(AvatarBDBlock b: list) mgui.removeAvatarBlock(tp, b.getBlockName()); @@ -130,44 +130,46 @@ public class AvatarBDPanel extends TDiagramPanel { public void updateSignalAttachement(AvatarBDBlock _b, AvatarBDPortConnector _conn) { - - // Set all signals of B as non connected - _b.setSignalsAsNonAttached(); - - - Iterator iterator = getComponentList().listIterator(); - while(iterator.hasNext()) { - TGComponent tgc = (TGComponent)(iterator.next()); - if (tgc instanceof AvatarBDPortConnector) { - AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; - AvatarBDBlock block1 = port.getAvatarBDBlock1(); - AvatarBDBlock block2 = port.getAvatarBDBlock2(); - if ((block1 != null) && (block2 != null)) { - if ((_b == block1) || (_b == block2)) { - //TraceManager.addDev("Relation found"); - LinkedList<String> l; - if (_b == block1) { - l = port.getListOfSignalsOrigin(); - } else { - l = port.getListOfSignalsDestination(); - } - - for(String name: l) { - name = AvatarSignal.getSignalNameFromFullSignalString(name); - //TraceManager.addDev("Searching for " + name + " in block " + _b); - AvatarSignal sig = _b.getAvatarSignalFromName(name); - if (sig != null) { - //TraceManager.addDev("Sig " + name + " is attached to a relation"); - sig.attachedToARelation = true; - } - } - } - } - } - } - } - - + // Set all signals of B as non connected + _b.setSignalsAsNonAttached(); + + Iterator<TGComponent> iterator = getComponentList().listIterator(); + + while(iterator.hasNext()) { + TGComponent tgc = iterator.next(); + + if (tgc instanceof AvatarBDPortConnector) { + AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; + AvatarBDBlock block1 = port.getAvatarBDBlock1(); + AvatarBDBlock block2 = port.getAvatarBDBlock2(); + + if ((block1 != null) && (block2 != null)) { + if ((_b == block1) || (_b == block2)) { + //TraceManager.addDev("Relation found"); + List<String> l; + + if (_b == block1) { + l = port.getListOfSignalsOrigin(); + } else { + l = port.getListOfSignalsDestination(); + } + + for(String name: l) { + name = AvatarSignal.getSignalNameFromFullSignalString(name); + //TraceManager.addDev("Searching for " + name + " in block " + _b); + AvatarSignal sig = _b.getAvatarSignalFromName(name); + if (sig != null) { + //TraceManager.addDev("Sig " + name + " is attached to a relation"); + sig.attachedToARelation = true; + } + } + } + } + } + } + } + + @Override public boolean actionOnValueChanged(TGComponent tgc) { if (tgc instanceof AvatarBDBlock) { //updateAllSignalsOnConnectors(); @@ -240,7 +242,7 @@ public class AvatarBDPanel extends TDiagramPanel { public String displayParam() { String s = ""; String [] tmp = Conversion.wrapText(mainCode); - String tmps; + //String tmps; int i; for(i=0; i<tmp.length; i++) { @@ -369,10 +371,10 @@ public class AvatarBDPanel extends TDiagramPanel { } } - public LinkedList<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> (); + public List<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) { + List<AvatarSignal> v = new LinkedList<AvatarSignal> (); - LinkedList<AvatarSignal> listOfBlock = _block.getSignalList(); + List<AvatarSignal> listOfBlock = _block.getSignalList(); if (listOfBlock.size() == 0) return v; @@ -382,11 +384,11 @@ public class AvatarBDPanel extends TDiagramPanel { if (tgc instanceof AvatarBDPortConnector) { AvatarBDPortConnector port = (AvatarBDPortConnector) tgc; if (port.getAvatarBDBlock1() == _block) { - LinkedList<String> ll = port.getListOfSignalsOrigin(); + List<String> ll = port.getListOfSignalsOrigin(); removeSignals(v, ll); } if (port.getAvatarBDBlock2() == _block) { - LinkedList<String> ll = port.getListOfSignalsDestination(); + List<String> ll = port.getListOfSignalsDestination(); removeSignals(v, ll); } } @@ -394,10 +396,10 @@ public class AvatarBDPanel extends TDiagramPanel { return v; } - public LinkedList<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> (); + public List<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) { + List<AvatarSignal> v = new LinkedList<AvatarSignal> (); - LinkedList<AvatarSignal> listOfBlock = _block.getOutSignalList(); + List<AvatarSignal> listOfBlock = _block.getOutSignalList(); if (listOfBlock.size() == 0) return v; @@ -407,11 +409,11 @@ public class AvatarBDPanel extends TDiagramPanel { if (tgc instanceof AvatarBDPortConnector) { AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; if (port.getAvatarBDBlock1() == _block) { - LinkedList<String> ll = port.getListOfSignalsOrigin(); + List<String> ll = port.getListOfSignalsOrigin(); removeSignals(v, ll); } if (port.getAvatarBDBlock2() == _block) { - LinkedList<String> ll = port.getListOfSignalsDestination(); + List<String> ll = port.getListOfSignalsDestination(); removeSignals(v, ll); } } @@ -419,10 +421,10 @@ public class AvatarBDPanel extends TDiagramPanel { return v; } - public LinkedList<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) { - LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> (); + public List<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) { + List<AvatarSignal> v = new LinkedList<AvatarSignal> (); - LinkedList<AvatarSignal> listOfBlock = _block.getInSignalList(); + List<AvatarSignal> listOfBlock = _block.getInSignalList(); if (listOfBlock.size() == 0) return v; @@ -432,11 +434,11 @@ public class AvatarBDPanel extends TDiagramPanel { if (tgc instanceof AvatarBDPortConnector) { AvatarBDPortConnector port = (AvatarBDPortConnector)tgc; if (port.getAvatarBDBlock1() == _block) { - LinkedList<String> ll = port.getListOfSignalsOrigin(); + List<String> ll = port.getListOfSignalsOrigin(); removeSignals(v, ll); } if (port.getAvatarBDBlock2() == _block) { - LinkedList<String> ll = port.getListOfSignalsDestination(); + List<String> ll = port.getListOfSignalsDestination(); removeSignals(v, ll); } } @@ -445,7 +447,7 @@ public class AvatarBDPanel extends TDiagramPanel { } // Remove AvatarSignals of v which name is provided in list - private static void removeSignals(List<AvatarSignal> v, LinkedList<String> list) { + private static void removeSignals(List<AvatarSignal> v, List<String> list) { for(String s: list) { Iterator<AvatarSignal> iterator = v.iterator (); while (iterator.hasNext ()) { @@ -458,8 +460,8 @@ public class AvatarBDPanel extends TDiagramPanel { } } - public HashMap<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){ - HashMap<String,List<String>> blockStringMap = new HashMap<String, List<String>>(); + public Map<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){ + Map<String,List<String>> blockStringMap = new HashMap<String, List<String>>(); for (AvatarBDBlock block: getFullBlockList()){ List<String> strs = new ArrayList<String>(); if (addAttributes){ @@ -481,8 +483,8 @@ public class AvatarBDPanel extends TDiagramPanel { return blockStringMap; } - public LinkedList<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() { - LinkedList<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>(); + public List<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() { + List<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>(); for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDStateMachineOwner) { @@ -496,8 +498,8 @@ public class AvatarBDPanel extends TDiagramPanel { return list; } - public LinkedList<AvatarBDBlock> getFullBlockList () { - LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> (); + public List<AvatarBDBlock> getFullBlockList () { + List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> (); for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDBlock) { @@ -538,8 +540,8 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList () { - LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); + public List<AvatarBDLibraryFunction> getFullLibraryFunctionList () { + List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDLibraryFunction) @@ -548,8 +550,8 @@ public class AvatarBDPanel extends TDiagramPanel { return list; } - public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) { - LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); + public List<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) { + List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> (); for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) { @@ -561,7 +563,7 @@ public class AvatarBDPanel extends TDiagramPanel { } public TAttribute getAttributeByBlockName(String _blockName, String attributeName) { - TAttribute a; + //TAttribute a; for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_blockName)) return block.getAttributeByName(attributeName); @@ -569,8 +571,8 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<TAttribute> getAllAttributesOfBlock (String _name) { - LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList (); + public List<TAttribute> getAllAttributesOfBlock (String _name) { + List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList (); for(AvatarBDStateMachineOwner block: list) if (block.getOwnerName ().equals (_name)) return block.getAttributeList (); @@ -578,7 +580,7 @@ public class AvatarBDPanel extends TDiagramPanel { return new LinkedList<TAttribute> (); } - public LinkedList<AvatarMethod> getAllMethodsOfBlock(String _name) { + public List<AvatarMethod> getAllMethodsOfBlock(String _name) { for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_name)) return block.getAllMethodList(); @@ -586,7 +588,7 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<AvatarSignal> getAllSignalsOfBlock(String _name) { + public List<AvatarSignal> getAllSignalsOfBlock(String _name) { for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_name)) return block.getAllSignalList(); @@ -594,7 +596,7 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<String> getAllTimersOfBlock(String _name) { + public List<String> getAllTimersOfBlock(String _name) { for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList()) if (block.getOwnerName().equals (_name)) return block.getAllTimerList(); @@ -602,7 +604,7 @@ public class AvatarBDPanel extends TDiagramPanel { return null; } - public LinkedList<TAttribute> getAttributesOfDataType(String _name) { + public List<TAttribute> getAttributesOfDataType(String _name) { for (TGComponent tgc: this.componentList) if (tgc instanceof AvatarBDDataType) { AvatarBDDataType adt = (AvatarBDDataType)tgc; @@ -628,14 +630,14 @@ public class AvatarBDPanel extends TDiagramPanel { return mainCode; } - public LinkedList<AvatarBDStateMachineOwner> getValidated() { + public List<AvatarBDStateMachineOwner> getValidated() { if ((val != null) && (validated == null)) { makeValidated(); } return validated; } - public LinkedList<AvatarBDStateMachineOwner> getIgnored() { + public List<AvatarBDStateMachineOwner> getIgnored() { if ((ign != null) && (ignored == null)) { makeIgnored(); } @@ -646,12 +648,11 @@ public class AvatarBDPanel extends TDiagramPanel { return optimized; } - - public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) { + public void setValidated( List<AvatarBDStateMachineOwner> _validated) { validated = _validated; } - public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) { + public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) { ignored = _ignored; } @@ -662,7 +663,7 @@ public class AvatarBDPanel extends TDiagramPanel { public void makeValidated() { TraceManager.addDev("Making validated with val=" + val); validated = new LinkedList<AvatarBDStateMachineOwner> (); - LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); + List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); String tmp; String split[] = val.split(";"); @@ -683,7 +684,7 @@ public class AvatarBDPanel extends TDiagramPanel { public void makeIgnored() { TraceManager.addDev("Making ignored with ign=" + val); ignored = new LinkedList<AvatarBDStateMachineOwner> (); - LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); + List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList(); String tmp; String split[] = ign.split(";"); diff --git a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java index e09477549c1f2bbf82e48f49107959bc0e763022..af0b233b441903894c56236056d24aebb30e2c97 100644 --- a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java +++ b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarbd; import myutil.Conversion; @@ -49,10 +48,14 @@ import ui.util.IconManager; import ui.window.JDialogPerformancePragma; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; import java.util.Map; /** @@ -66,7 +69,7 @@ import java.util.Map; public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalComponent { protected String[] values; - protected LinkedList<String> properties; + protected List<String> properties; protected int textX = 40; protected int textY = 5; protected int marginY = 20; @@ -74,7 +77,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone protected int limit = 15; protected int lockX = 1; protected int lockY = 5; - public ArrayList<String> syntaxErrors; + public List<String> syntaxErrors; protected Graphics myg; protected Color myColor; @@ -83,7 +86,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone // private int maxFontSize = 30; // private int minFontSize = 4; private int currentFontSize = -1; - private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"}; + // private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"}; public Map<String, String> verifMap = new HashMap<String, String>(); protected Graphics graphics; @@ -129,10 +132,11 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone return values; } - public LinkedList<String> getProperties() { + public List<String> getProperties() { return properties; } + @Override public void internalDrawing(Graphics g) { Font f = g.getFont(); Font fold = f; @@ -223,7 +227,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone } - public void makeValue() { + private void makeValue() { values = Conversion.wrapText(value); properties.clear(); for (String s : values) { @@ -255,7 +259,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone } }*/ - + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; @@ -283,6 +287,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone return null; } + @Override public void rescale(double scaleFactor) { /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor; lineHeight = (int)(dlineHeight); @@ -294,10 +299,12 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone super.rescale(scaleFactor); } + @Override public int getType() { return TGComponentManager.PERFORMANCE_PRAGMA; } + @Override protected String translateExtraParam() { if (values == null) { makeValue(); diff --git a/src/main/java/ui/avatarbd/AvatarBDPragma.java b/src/main/java/ui/avatarbd/AvatarBDPragma.java index 7dd4d58ffcd5f8878fcc683c6cc9c7b1d1a121a1..1fbb30ab86e9b7ea47d9908c5a70732c0c5c18d5 100755 --- a/src/main/java/ui/avatarbd/AvatarBDPragma.java +++ b/src/main/java/ui/avatarbd/AvatarBDPragma.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarbd; import myutil.Conversion; @@ -55,6 +54,9 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PipedInputStream; import java.io.PipedOutputStream; +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -67,11 +69,11 @@ import proverifspec.ProVerifResultTraceStep; import ui.interactivesimulation.JFrameSimulationSDPanel; import javax.swing.*; -import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; /** * Class Pragma @@ -84,9 +86,9 @@ import java.util.LinkedList; public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { protected String[] values; - protected LinkedList<String> models; - protected LinkedList<String> properties; - public ArrayList<String> syntaxErrors; + protected List<String> models; + protected List<String> properties; + public List<String> syntaxErrors; protected int textX = 25; protected int textY = 5; protected int marginY = 20; @@ -165,14 +167,15 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { makeValue(); } - public LinkedList<String> getProperties() { + public List<String> getProperties() { return properties; } - public LinkedList<String> getModels() { + public List<String> getModels() { return this.models; } + @Override public void internalDrawing(Graphics g) { Font f = g.getFont(); Font fold = f; @@ -299,7 +302,6 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { } */ g.setColor(c); - } public void makeValue() { @@ -402,9 +404,9 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { // if (c1==Color.gray){ // g.drawString("?", _x+4, _y+2); // } - } + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; @@ -418,7 +420,7 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { String s = jdn.getText(); if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) { - String tmp = s; + // String tmp = s; setValue(s); makeValue(); return true; @@ -426,6 +428,7 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { return false; } + @Override public TGComponent isOnMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -433,10 +436,12 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { return null; } + @Override public String getToolTipText() { return "The lock shows status of weak and strong authenticity. Green: Proved True, Red: Proved False, Grey: Cannot be proved"; } + @Override public void rescale(double scaleFactor) { //TraceManager.addDev("Rescaling BD Pragma"); /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor; @@ -449,10 +454,12 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { super.rescale(scaleFactor); } + @Override public int getType() { return TGComponentManager.PRAGMA; } + @Override protected String translateExtraParam() { if (values == null) { makeValue(); @@ -540,10 +547,9 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent { } catch (IOException ignored) { } } - break; + break; } } - // } } diff --git a/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java b/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java index 1e9e99b5387549f7d1e57ec4b6294b0fe956d8b3..bbf87cdbbb7a6628aeaf3b688d51e9baa038f7e6 100644 --- a/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java +++ b/src/main/java/ui/avatarbd/AvatarBDSafetyPragma.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarbd; import myutil.Conversion; @@ -49,7 +48,10 @@ import ui.util.IconManager; import ui.window.JDialogSafetyPragma; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.util.*; /** @@ -63,7 +65,7 @@ import java.util.*; public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { protected String[] values; - protected LinkedList<String> properties; + protected List<String> properties; protected int textX = 25; protected int textY = 5; protected int marginY = 20; @@ -72,7 +74,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { protected int lockX = 1; protected int lockY = 5; protected Graphics myg; - public ArrayList<String> syntaxErrors; + public List<String> syntaxErrors; protected Color myColor; private Font myFont;//, myFontB; @@ -127,10 +129,11 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { return values; } - public LinkedList<String> getProperties() { + public List<String> getProperties() { return properties; } + @Override public void internalDrawing(Graphics g) { Font f = g.getFont(); Font fold = f; @@ -221,8 +224,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { } - public void makeValue() { - + private void makeValue() { values = Conversion.wrapText(value); properties.clear(); for (String s : values) { @@ -258,7 +260,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { } }*/ - + @Override public boolean editOndoubleClick(JFrame frame) { String oldValue = value; @@ -279,6 +281,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { return false; } + @Override public TGComponent isOnMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -286,6 +289,7 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { return null; } + @Override public void rescale(double scaleFactor) { /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor; lineHeight = (int)(dlineHeight); @@ -297,10 +301,12 @@ public class AvatarBDSafetyPragma extends TGCScalableWithoutInternalComponent { super.rescale(scaleFactor); } + @Override public int getType() { return TGComponentManager.SAFETY_PRAGMA; } + @Override protected String translateExtraParam() { if (values == null) { makeValue(); diff --git a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java index f26e17890af344f312123045f944d3c58f91cc74..13b68cefd465fb4d00b24ab12f72c5be5aacfb45 100755 --- a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java +++ b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java @@ -36,19 +36,15 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarbd; +import java.util.List; + import ui.AvatarMethod; import ui.AvatarSignal; import ui.TAttribute; import ui.avatarsmd.AvatarSMDPanel; -import java.util.LinkedList; - - /** * This interface represent block diagram elements that are associated to a state machine. * It defines the functions so that a state machine can deal transparently no matter if @@ -59,14 +55,14 @@ import java.util.LinkedList; */ public interface AvatarBDStateMachineOwner { - LinkedList<TAttribute> getAttributeList(); - LinkedList<String> getAllTimerList(); + List<TAttribute> getAttributeList(); + List<String> getAllTimerList(); TAttribute getAttributeByName(String _name); - LinkedList<AvatarSignal> getSignalList(); - LinkedList<AvatarSignal> getAllSignalList(); + List<AvatarSignal> getSignalList(); + List<AvatarSignal> getAllSignalList(); AvatarSignal getSignalNameBySignalDef(String _id); - LinkedList<AvatarMethod> getMethodList(); - LinkedList<AvatarMethod> getAllMethodList(); + List<AvatarMethod> getMethodList(); + List<AvatarMethod> getAllMethodList(); String getOwnerName(); AvatarSMDPanel getAvatarSMDPanel(); diff --git a/src/main/java/ui/avatardd/ADDArtifact.java b/src/main/java/ui/avatardd/ADDArtifact.java index 2570aa5fcee02688695a0867918c0d4517cd2a69..168176f98ae540799e9edccb7271b88f60ae759b 100755 --- a/src/main/java/ui/avatardd/ADDArtifact.java +++ b/src/main/java/ui/avatardd/ADDArtifact.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatardd; import myutil.GraphicLib; @@ -95,9 +92,8 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe myImageIcon = IconManager.imgic702; } - + @Override public void internalDrawing(Graphics g) { - if (oldValue.compareTo(value) != 0) { setValue(value, g); } @@ -136,6 +132,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe // } + @Override public void resizeWithFather() { if ((father != null) && ((father instanceof ADDCPUNode))) { // @@ -145,9 +142,9 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe } } - + @Override public boolean editOndoubleClick(JFrame frame) { - String tmp; +// String tmp; boolean error = false; /*JDialogTMLTaskArtifact dialog = new JDialogTMLTaskArtifact(frame, "Setting artifact attributes", this); @@ -199,6 +196,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe value = referenceTaskName + "::" + taskName; } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -206,10 +204,12 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe return null; } + @Override public int getType() { return TGComponentManager.ADD_ARTIFACT; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info value=\"" + value + "\" taskName=\"" + taskName + "\" referenceTaskName=\""); @@ -263,7 +263,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeFullValue(); } @@ -291,8 +291,4 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe public String getAttributesToFile() { return ""; } - - - - } diff --git a/src/main/java/ui/avatardd/ADDBlockArtifact.java b/src/main/java/ui/avatardd/ADDBlockArtifact.java index c5ca6a3cf1aca61d08ad2532be7f4e80fbd97031..bdca0ae1e8c6fa41e35b5d6ec5f3b63deb667c2a 100755 --- a/src/main/java/ui/avatardd/ADDBlockArtifact.java +++ b/src/main/java/ui/avatardd/ADDBlockArtifact.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatardd; import myutil.GraphicLib; @@ -96,9 +93,8 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa myImageIcon = IconManager.imgic702; } - + @Override public void internalDrawing(Graphics g) { - if (oldValue.compareTo(value) != 0) { setValue(value, g); } @@ -137,6 +133,7 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa // } + @Override public void resizeWithFather() { if ((father != null) && ((father instanceof ADDCPUNode))) { // @@ -146,8 +143,8 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa } } - - public boolean editOndoubleClick(JFrame frame) { + @Override + public boolean editOndoubleClick(JFrame frame) { String tmp; boolean error = false; @@ -191,15 +188,14 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa makeFullValue(); - return !error; - } private void makeFullValue() { value = referenceTaskName + "::" + taskName; } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -207,10 +203,12 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa return null; } + @Override public int getType() { return TGComponentManager.ADD_ARTIFACT; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info value=\"" + value + "\" taskName=\"" + taskName + "\" referenceTaskName=\""); @@ -224,7 +222,6 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ // try { - NodeList nli; Node n1, n2; Element elt; @@ -263,7 +260,7 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeFullValue(); } @@ -284,5 +281,4 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa public String getTaskName() { return taskName; } - } diff --git a/src/main/java/ui/avatardd/ADDBridgeNode.java b/src/main/java/ui/avatardd/ADDBridgeNode.java index 9961306d2b417f24695064140932154327ec384c..197ddca0fd89d31d204bc0de7a0e641d898806b6 100755 --- a/src/main/java/ui/avatardd/ADDBridgeNode.java +++ b/src/main/java/ui/avatardd/ADDBridgeNode.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatardd; import org.w3c.dom.Element; @@ -65,7 +62,6 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute private int derivationy = 3; private String stereotype = "BRIDGE"; - public ADDBridgeNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -110,6 +106,7 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute myImageIcon = IconManager.imgic700; } + @Override public void internalDrawing(Graphics g) { Color c = g.getColor(); g.draw3DRect(x, y, width, height, true); @@ -141,8 +138,8 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute g.drawImage(IconManager.img9, x + width - 20, y + 4, null); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { - Polygon pol = new Polygon(); pol.addPoint(x, y); pol.addPoint(x + derivationx, y - derivationy); @@ -166,6 +163,7 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute return name; } + @Override public boolean editOndoubleClick(JFrame frame) { // boolean error = false; //String errors = ""; @@ -234,11 +232,12 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute return true; } - + @Override public int getType() { return TGComponentManager.ADD_BRIDGENODE; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name); @@ -295,17 +294,14 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } - - - public String getAttributes() { - String attr = ""; - //attr += "Buffer size (in byte) = " + bufferByteDataSize + "\n"; - //attr += "Clock ratio = " + clockRatio + "\n"; - return attr; - } - - + + public String getAttributes() { + String attr = ""; + //attr += "Buffer size (in byte) = " + bufferByteDataSize + "\n"; + //attr += "Clock ratio = " + clockRatio + "\n"; + return attr; + } } diff --git a/src/main/java/ui/avatardd/ADDBusNode.java b/src/main/java/ui/avatardd/ADDBusNode.java index 131b8d89a0833d7e893891a811d3abd7217b6d75..d01b97c8c5104fe52c161d2c7c80a22b2a2713c9 100755 --- a/src/main/java/ui/avatardd/ADDBusNode.java +++ b/src/main/java/ui/avatardd/ADDBusNode.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatardd; import myutil.GraphicLib; @@ -72,8 +69,6 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { private int fifoDepth = 0; private int minLatency = 0; - - public ADDBusNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -118,6 +113,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { myImageIcon = IconManager.imgic700; } + @Override public void internalDrawing(Graphics g) { Color c = g.getColor(); g.draw3DRect(x, y, width, height, true); @@ -153,8 +149,8 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { g.drawImage(IconManager.img9, x + width - 20, y + 4, null); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { - Polygon pol = new Polygon(); pol.addPoint(x, y); pol.addPoint(x + derivationx, y - derivationy); @@ -178,6 +174,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { return name; } + @Override public boolean editOndoubleClick(JFrame frame) { boolean error = false; String errors = ""; @@ -204,8 +201,6 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { } } - - if (dialog.getIndex().length() != 0) { try { tmp = index; @@ -236,7 +231,6 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { } } - if (dialog.getNbOfAttachedTargets().length() != 0) { try { tmp = nbOfAttachedTargets; @@ -294,11 +288,12 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { return true; } - + @Override public int getType() { return TGComponentManager.ADD_BUSNODE; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name); @@ -315,9 +310,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - // try { - NodeList nli; Node n1, n2; Element elt; @@ -363,13 +356,10 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } - - - public String getAttributes() { String attr = ""; attr += "index = " + index + "\n"; @@ -396,8 +386,8 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes { public int getFifoDepth() { return fifoDepth;} public int getMinLatency() { return minLatency;} + @Override public String toString(){ return "Bus"; } - } diff --git a/src/main/java/ui/avatardd/ADDChannelArtifact.java b/src/main/java/ui/avatardd/ADDChannelArtifact.java index 4048be6ee3071dfc01d9ed6824aa4d2fda6095a9..7d5944d04d35fd29c1c731435c290dad1ea62a7c 100755 --- a/src/main/java/ui/avatardd/ADDChannelArtifact.java +++ b/src/main/java/ui/avatardd/ADDChannelArtifact.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatardd; import myutil.GraphicLib; @@ -97,9 +94,8 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S myImageIcon = IconManager.imgic702; } - + @Override public void internalDrawing(Graphics g) { - if (oldValue.compareTo(value) != 0) { setValue(value, g); } @@ -122,7 +118,6 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null); g.drawString(value, x + textX , y + textY); - } public void setValue(String val, Graphics g) { @@ -138,6 +133,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S // } + @Override public void resizeWithFather() { if ((father != null) && ((father instanceof ADDRAMNode))) { // @@ -147,7 +143,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S } } - + @Override public boolean editOndoubleClick(JFrame frame) { String tmp; boolean error = false; @@ -204,6 +200,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S value = referenceDiagram + "::" + channelName; }*/ + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -215,6 +212,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S return TGComponentManager.ADD_CHANNELARTIFACT; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info value=\"" + value + "\" channelName=\"" + channelName + "\" fullChannelName=\"" + fullChannelName + "\" referenceDiagram=\""); @@ -274,7 +272,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeFullValue(); } @@ -301,7 +299,6 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S } public String getStatusInformation() { - return "Name of the channel: " + fullChannelName; + return "Name of the channel: " + fullChannelName; } - } diff --git a/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java b/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java index f4f325f904ea778edfefd46cfd3e987291874186..8708601a6cc7f820504486cafd4eacddab941feb 100644 --- a/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java +++ b/src/main/java/ui/avatarmad/AvatarMADCompositionConnector.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarmad; import ui.*; @@ -47,8 +44,6 @@ import ui.util.IconManager; import java.awt.*; import java.util.Vector; -//import java.awt.geom.*; - /** * Class AvatarMADCompositionConnector * Connector to be used in Avatar MAD. Connects two assumptions @@ -57,7 +52,7 @@ import java.util.Vector; * @author Ludovic APVRILLE */ public class AvatarMADCompositionConnector extends TGConnectorWithCommentConnectionPoints { - int w, h; + // int w, h; private int radius = 5; public AvatarMADCompositionConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { @@ -67,7 +62,7 @@ public class AvatarMADCompositionConnector extends TGConnectorWithCommentConnec myImageIcon = IconManager.imgic1012; } - + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ //g.drawLine(x1, y1, x2, y2); diff --git a/src/main/java/ui/avatarmad/AvatarMADConnector.java b/src/main/java/ui/avatarmad/AvatarMADConnector.java new file mode 100644 index 0000000000000000000000000000000000000000..421f6b4f825e8c5f40d717fdac177fd3b2b10a5b --- /dev/null +++ b/src/main/java/ui/avatarmad/AvatarMADConnector.java @@ -0,0 +1,84 @@ +package ui.avatarmad; + +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Point; +import java.util.Vector; + +import myutil.GraphicLib; +import ui.ForwardComponentsEnabledVisitor; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGConnectingPoint; +import ui.TGConnectorWithCommentConnectionPoints; +import ui.ad.CanBeDisabledADElementVisitor; + +public abstract class AvatarMADConnector extends TGConnectorWithCommentConnectionPoints { + + int w, h; + + public AvatarMADConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, + TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, + Vector<Point> _listPoint) { + super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); + } + + @Override + protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ + + //g.drawLine(x1, y1, x2, y2); + GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false); + + // Indicate semantics + + Font f = g.getFont(); + Font old = f; + if (f.getSize() != tdp.getFontSize()) { + f = f.deriveFont((float)tdp.getFontSize()); + g.setFont(f); + } + + w = g.getFontMetrics().stringWidth(value); + h = g.getFontMetrics().getHeight(); + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2); + g.setFont(old); + } + + @Override + public TGComponent extraIsOnOnlyMe(int x1, int y1) { + if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) { + return this; + } + return null; + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { +// if ( p2 != null && p2.getFather() instanceof AvatarSMDStopState ) { +// return false; +// } + + final CanBeDisabledADElementVisitor visitor = new CanBeDisabledADElementVisitor(); + acceptBackward( visitor ); + + return visitor.isCanBeDisabled(); + } + + /** Issue #69 + * @return + */ + public boolean isEnabled( boolean checkBranch ) { + if ( checkBranch && p2 != null ) { + final ForwardComponentsEnabledVisitor visitor = new ForwardComponentsEnabledVisitor(); + p2.acceptForward( visitor ); + + return visitor.isEnabled(); + } + + return super.isEnabled(); + } +} diff --git a/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java b/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java index ae483cb1034f4011bb1b875c71d78476c956ecaf..9be09e1278fab21aa88b548e527378022b773ad0 100644 --- a/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java +++ b/src/main/java/ui/avatarmad/AvatarMADImpactConnector.java @@ -36,19 +36,16 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarmad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; +import java.awt.Point; import java.util.Vector; -//import java.awt.geom.*; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.util.IconManager; /** * Class AvatarMADImpactConnector @@ -57,8 +54,8 @@ import java.util.Vector; * @version 1.0 27/08/2013 * @author Ludovic APVRILLE */ -public class AvatarMADImpactConnector extends TGConnectorWithCommentConnectionPoints { - int w, h; +public class AvatarMADImpactConnector extends AvatarMADConnector /* Issue #69 TGConnectorWithCommentConnectionPoints*/ { + // int w, h; public AvatarMADImpactConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); @@ -67,36 +64,35 @@ public class AvatarMADImpactConnector extends TGConnectorWithCommentConnectionP myImageIcon = IconManager.imgic1008; } - - protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ - - //g.drawLine(x1, y1, x2, y2); - GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false); - - // Indicate semantics - - Font f = g.getFont(); - Font old = f; - if (f.getSize() != tdp.getFontSize()) { - f = f.deriveFont((float)tdp.getFontSize()); - g.setFont(f); - } - - w = g.getFontMetrics().stringWidth(value); - h = g.getFontMetrics().getHeight(); - g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2); - g.setFont(old); - } - - public TGComponent extraIsOnOnlyMe(int x1, int y1) { - if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) { - return this; - } - return null; - } - +// protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ +// +// //g.drawLine(x1, y1, x2, y2); +// GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false); +// +// // Indicate semantics +// +// Font f = g.getFont(); +// Font old = f; +// if (f.getSize() != tdp.getFontSize()) { +// f = f.deriveFont((float)tdp.getFontSize()); +// g.setFont(f); +// } +// +// w = g.getFontMetrics().stringWidth(value); +// h = g.getFontMetrics().getHeight(); +// g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2); +// g.setFont(old); +// } +// +// public TGComponent extraIsOnOnlyMe(int x1, int y1) { +// if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) { +// return this; +// } +// return null; +// } + + @Override public int getType() { return TGComponentManager.AVATARMAD_IMPACT_CONNECTOR; } - } diff --git a/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java b/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java index 097ea94ff1a8271caeb929987343586731180076..f1b8e739b6cf6ff1319730b55702d77e11d37d24 100644 --- a/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java +++ b/src/main/java/ui/avatarmad/AvatarMADMeetConnector.java @@ -36,19 +36,16 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarmad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; +import java.awt.Point; import java.util.Vector; -//import java.awt.geom.*; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.util.IconManager; /** * Class AvatarMADMeetConnector @@ -57,8 +54,8 @@ import java.util.Vector; * @version 1.0 05/02/2014 * @author Ludovic APVRILLE */ -public class AvatarMADMeetConnector extends TGConnectorWithCommentConnectionPoints { - int w, h; +public class AvatarMADMeetConnector extends AvatarMADConnector /* Issue #69 TGConnectorWithCommentConnectionPoints*/ { + // int w, h; public AvatarMADMeetConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); @@ -67,36 +64,34 @@ public class AvatarMADMeetConnector extends TGConnectorWithCommentConnectionPoi myImageIcon = IconManager.imgic1008; } - - protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ - - //g.drawLine(x1, y1, x2, y2); - GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false); - - // Indicate semantics - - Font f = g.getFont(); - Font old = f; - if (f.getSize() != tdp.getFontSize()) { - f = f.deriveFont((float)tdp.getFontSize()); - g.setFont(f); - } - - w = g.getFontMetrics().stringWidth(value); - h = g.getFontMetrics().getHeight(); - g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2); - g.setFont(old); - } - - public TGComponent extraIsOnOnlyMe(int x1, int y1) { - if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) { - return this; - } - return null; - } +// protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ +// +// //g.drawLine(x1, y1, x2, y2); +// GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false); +// +// // Indicate semantics +// +// Font f = g.getFont(); +// Font old = f; +// if (f.getSize() != tdp.getFontSize()) { +// f = f.deriveFont((float)tdp.getFontSize()); +// g.setFont(f); +// } +// +// w = g.getFontMetrics().stringWidth(value); +// h = g.getFontMetrics().getHeight(); +// g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2); +// g.setFont(old); +// } +// +// public TGComponent extraIsOnOnlyMe(int x1, int y1) { +// if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) { +// return this; +// } +// return null; +// } public int getType() { return TGComponentManager.AVATARMAD_MEET_CONNECTOR; } - } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDBasicCanBeDisabledComponent.java b/src/main/java/ui/avatarsmd/AvatarSMDBasicCanBeDisabledComponent.java new file mode 100644 index 0000000000000000000000000000000000000000..2c6e38b07e0aa61bd520209b03a93835e78c6b8b --- /dev/null +++ b/src/main/java/ui/avatarsmd/AvatarSMDBasicCanBeDisabledComponent.java @@ -0,0 +1,25 @@ +package ui.avatarsmd; + +import ui.TDiagramPanel; +import ui.TGComponent; + +public abstract class AvatarSMDBasicCanBeDisabledComponent extends AvatarSMDBasicComponent { + + public AvatarSMDBasicCanBeDisabledComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, + boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + if ( getFather() instanceof AvatarSMDState ) { + return getFather().isEnabled(); + } + + return true; + } +} diff --git a/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java b/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java index fa760549d9ed74ea867c974a66f227cd73fd69f8..3a80d4a6df0e8a5cd76d3ed91b112454339d5e2b 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDBasicComponent.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import ui.*; @@ -51,16 +48,18 @@ import ui.*; * @author Ludovic APVRILLE */ public abstract class AvatarSMDBasicComponent extends TGCWithoutInternalComponent implements SwallowedTGComponent { - private int lineLength = 5; + //private int lineLength = 5; public AvatarSMDBasicComponent(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); } + @Override public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof AvatarSMDState)) { // Too large to fit in the father? -> resize it! @@ -70,5 +69,8 @@ public abstract class AvatarSMDBasicComponent extends TGCWithoutInternalComponen setMoveCd(x, y); } } - + + protected boolean isContainedInEnabledState() { + return getFather() instanceof AvatarSMDState && getFather().isEnabled(); + } } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDChoice.java b/src/main/java/ui/avatarsmd/AvatarSMDChoice.java index 8e7c4bf1d20027523ab21ee1a61216fe76e310c1..df16dedae65755a98a5fa4e63acacd5e3561a3b0 100755 --- a/src/main/java/ui/avatarsmd/AvatarSMDChoice.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDChoice.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import myutil.GraphicLib; @@ -58,21 +55,21 @@ import java.awt.geom.Line2D; public class AvatarSMDChoice extends AvatarSMDBasicComponent implements EmbeddedComment, BasicErrorHighlight, PartOfInvariant { private int lineLength = 10; private int lineOutLength = 10; - private int textX1, textY1, textX2, textY2, textX3, textY3; +// private int textX1, textY1, textX2, textY2, textX3, textY3; - protected int stateOfError = 0; // Not yet checked + protected int stateOfError = 0; // Not yet checked public AvatarSMDChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); width = 30; height = 30; - textX1 = -lineOutLength; - textY1 = height/2 - 5; - textX2 = width + 5; - textY2 = height/2 - 5; - textX3 = width /2 + 5; - textY3 = height + 15; +// textX1 = -lineOutLength; +// textY1 = height/2 - 5; +// textX2 = width + 5; +// textY2 = height/2 - 5; +// textX3 = width /2 + 5; +// textY3 = height + 15; nbConnectingPoint = 7; connectingPoint = new TGConnectingPoint[nbConnectingPoint]; @@ -98,6 +95,7 @@ public class AvatarSMDChoice extends AvatarSMDBasicComponent implements Embedded myImageIcon = IconManager.imgic208; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -126,6 +124,7 @@ public class AvatarSMDChoice extends AvatarSMDBasicComponent implements Embedded g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -150,18 +149,18 @@ public class AvatarSMDChoice extends AvatarSMDBasicComponent implements Embedded return null; } - + @Override public int getType() { return TGComponentManager.AVATARSMD_CHOICE; } + @Override public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - - } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java index e12766e20c0d422098c0e2144397fe4b36d6d070..220f2703531b9c4ca34b3c40dded44e3129e4de4 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarsmd; import myutil.GraphicLib; @@ -109,7 +108,6 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i } }*/ - public void setTransitionInfo(String guard, String action) { AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0); if (!guard.isEmpty()) { @@ -125,6 +123,7 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i tgc.setTimes(minDelay, maxDelay, minCompute, maxCompute); } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2) { if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -133,6 +132,7 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i } } + @Override public boolean editOndoubleClick(JFrame frame) { AvatarSMDTransitionInfo info = getAvatarSMDTransitionInfo(); if (info == null) { @@ -141,6 +141,7 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i return info.editOndoubleClick(frame); } + @Override public int getType() { return TGComponentManager.AVATARSMD_CONNECTOR; } @@ -158,66 +159,191 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i return getAvatarSMDTransitionInfo().getGuard(); } - public String getTotalMinDelay() { - String s1 = getAvatarSMDTransitionInfo().getAfterMinDelay(); - String s2 = getAvatarSMDTransitionInfo().getComputeMinDelay(); - return addedDelays(s1, s2); - } - - public String getTotalMaxDelay() { - String s1 = getAvatarSMDTransitionInfo().getAfterMaxDelay(); - String s2 = getAvatarSMDTransitionInfo().getComputeMaxDelay(); - return addedDelays(s1, s2); - } - - public String addedDelays(String s1, String s2) { - if (s1.trim().length() == 0) { - return s2.trim(); - } else { - if (s2.trim().length() == 0) { - return s1; - } else { - return "(" + s1 + ") + (" + s2 + ")"; - } - } + public String getEffectiveGuard() { + return getAvatarSMDTransitionInfo().getEffectiveGuard(); } +// +// public String getTotalMinDelay() { +// String s1 = getAvatarSMDTransitionInfo().getAfterMinDelay(); +// String s2 = getAvatarSMDTransitionInfo().getComputeMinDelay(); +// return addedDelays(s1, s2); +// } +// +// public String getTotalMaxDelay() { +// String s1 = getAvatarSMDTransitionInfo().getAfterMaxDelay(); +// String s2 = getAvatarSMDTransitionInfo().getComputeMaxDelay(); +// return addedDelays(s1, s2); +// } +// +// public String addedDelays(String s1, String s2) { +// if (s1.trim().length() == 0) { +// return s2.trim(); +// } else { +// if (s2.trim().length() == 0) { +// return s1; +// } else { +// return "(" + s1 + ") + (" + s2 + ")"; +// } +// } +// } public Vector<String> getActions() { return getAvatarSMDTransitionInfo().getActions(); } + + public Vector<String> getEffectiveActions() { + return getAvatarSMDTransitionInfo().getEffectiveActions(); + } public String getAfterMinDelay() { return getAvatarSMDTransitionInfo().getAfterMinDelay(); } + + public String getEffectiveAfterMinDelay() { + return getAvatarSMDTransitionInfo().getEffectiveAfterMinDelay(); + } public String getAfterMaxDelay() { return getAvatarSMDTransitionInfo().getAfterMaxDelay(); } + public String getEffectiveAfterMaxDelay() { + return getAvatarSMDTransitionInfo().getEffectiveAfterMaxDelay(); + } public String getComputeMinDelay() { return getAvatarSMDTransitionInfo().getComputeMinDelay(); } + + public String getEffectiveComputeMinDelay() { + return getAvatarSMDTransitionInfo().getEffectiveComputeMinDelay(); + } public String getComputeMaxDelay() { return getAvatarSMDTransitionInfo().getComputeMaxDelay(); } - public String getProbability() { - return getAvatarSMDTransitionInfo().getProbability(); + public String getEffectiveComputeMaxDelay() { + return getAvatarSMDTransitionInfo().getEffectiveComputeMaxDelay(); } - - - - public String getFilesToInclude() { - return getAvatarSMDTransitionInfo().getFilesToInclude(); + public String getProbability() { + return getAvatarSMDTransitionInfo().getProbability(); } - public String getCodeToInclude() { - return getAvatarSMDTransitionInfo().getCodeToInclude(); + public String getEffectiveProbability() { + return getAvatarSMDTransitionInfo().getEffectiveProbability(); } +// +// public String getFilesToInclude() { +// return getAvatarSMDTransitionInfo().getFilesToInclude(); +// } +// +// public String getCodeToInclude() { +// return getAvatarSMDTransitionInfo().getCodeToInclude(); +// } public String getAttributes() { return getAvatarSMDTransitionInfo().getAttributes(); } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + if ( p2 != null ) { + p2.acceptForward( new EnablingAvatarSMDConnectorVisitor( _enabled ) ); + } + } + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + if ( p2 != null ) { + if ( p2.getFather() instanceof AvatarSMDStopState ) { + return false; + } + } + + return canBeDisabledContainer(); + } + + public boolean canBeDisabledContainer() { + if ( p2 != null ) { + if ( p2.getFather() instanceof TGComponent && ( (TGComponent) p2.getFather() ).getFather() instanceof AvatarSMDState ) { + if ( !( (TGComponent) p2.getFather() ).getFather().isEnabled() ) { + return false; + } + } + } + + if ( p1 != null ) { + if ( p1.getFather() instanceof TGComponent && ( (TGComponent) p1.getFather() ).getFather() instanceof AvatarSMDState ) { + if ( !( (TGComponent) p1.getFather() ).getFather().isEnabled() ) { + return false; + } + } + } + + return true; + } + + public boolean isContainedInEnabledState() { + final AvatarSMDState sourceContainingState = getContainingState( p1 ); + + if ( sourceContainingState != null && sourceContainingState.isEnabled() ) { + return true; + } + + final AvatarSMDState targetContainingState = getContainingState( p2 ); + + return targetContainingState != null && targetContainingState.isEnabled(); + } + + public AvatarSMDState getContainingState() { + final AvatarSMDState sourceContainingState = getContainingState( p1 ); + + final AvatarSMDState targetContainingState = getContainingState( p2 ); + + if ( sourceContainingState == targetContainingState ) { + return sourceContainingState; + } + + return null; + } + + private AvatarSMDState getContainingState( final TGConnectingPoint point ) { + if ( p1 == null ) { + return null; + } + + if ( point.getFather() instanceof TGComponent ) { + final TGComponent sourceComponent = (TGComponent) point.getFather(); + + if ( sourceComponent.getFather() instanceof AvatarSMDState ) { + return (AvatarSMDState) sourceComponent.getFather(); + } + } + + return null; + } + + + /** Issue #69 + * @return + */ + public boolean isEnabled( boolean checkBranch ) { + if ( checkBranch && p2 != null ) { + final ForwardComponentsEnabledVisitor visitor = new ForwardComponentsEnabledVisitor(); + p2.acceptForward( visitor ); + + return visitor.isEnabled(); + } + + return super.isEnabled(); + } } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java index 802ff5f9fcb8764c111a24c4717480b78cbd3163..da260e9cb69575c3359a7b772615b57eb6419349 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java @@ -36,22 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Polygon; +import java.awt.geom.Line2D; +import java.util.List; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.util.IconManager; import ui.window.JDialogAvatarTimer; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; - /** * Class AvatarSMDExpireTimer * Action of waiting for the expiration of a timer @@ -59,17 +68,22 @@ import java.util.LinkedList; * @version 1.0 15/07/2010 * @author Ludovic APVRILLE */ -public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements BasicErrorHighlight, PartOfInvariant { - protected int lineLength = 5; - protected int textX = 5; - protected int textY = 15; - protected int arc = 5; - protected int linebreak = 10; +public class AvatarSMDExpireTimer extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements BasicErrorHighlight, PartOfInvariant { + + protected int lineLength = 5; + + protected int textX = 5; + + protected int textY = 15; + + protected int arc = 5; + + protected int linebreak = 10; protected int hourglassWidth = 10; + protected int hourglassSpace = 2; - protected int stateOfError = 0; // Not yet checked public AvatarSMDExpireTimer(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { @@ -97,8 +111,8 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX + linebreak); if ((w1 != width) & (!tdp.isScaled())) { @@ -106,7 +120,6 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas width = w1; //updateConnectingPoints(); } - if (stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { @@ -146,13 +159,27 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas g.drawLine(x1, y1+height1, x1+linebreak, y1+height1/2); g.setColor(c); - g.drawLine(x, y, x+width, y); - g.drawLine(x+width, y, x+width, y+height); - g.drawLine(x, y+height, x+width, y+height); - g.drawLine(x, y, x+linebreak, y+height/2); - g.drawLine(x, y+height, x+linebreak, y+height/2); - - // hourglass + final Polygon shape = new Polygon(); + shape.addPoint( x, y ); + shape.addPoint( x + width, y ); + shape.addPoint( x + width, y + height ); + shape.addPoint( x, y + height ); + shape.addPoint( x + linebreak, y + height / 2 ); + g.drawPolygon( shape ); +// g.drawLine(x, y, x+width, y); +// g.drawLine(x+width, y, x+width, y+height); +// g.drawLine(x, y+height, x+width, y+height); +// g.drawLine(x, y, x+linebreak, y+height/2); +// g.drawLine(x, y+height, x+linebreak, y+height/2); + + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillPolygon( shape ); + g.setColor( c ); + } + + // hourglass g.setColor(ColorManager.AVATAR_SET_TIMER); g.drawLine(x+width+hourglassSpace+1, y+1, x+width+hourglassSpace + hourglassWidth+1, y+1); g.drawLine(x+width+hourglassSpace+1, y+height+1, x+width+hourglassSpace + hourglassWidth+1, y+height+1); @@ -166,10 +193,9 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas //g.drawString("sig()", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 + textX, y + textY); - - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) { return this; @@ -182,15 +208,16 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas return null; } - public void makeValue() { - } +// public void makeValue() { +// } public String getTimerName() { return AvatarSignal.getValue(value, 0); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<String> timers = tdp.getMGUI().getAllTimers(); + List<String> timers = tdp.getMGUI().getAllTimers(); TraceManager.addDev("Nb of timers:" + timers.size()); JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Timer expiration", getTimerName(), "", timers, false); @@ -216,20 +243,19 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas value = "expire(" + val0 + ")"; return true; - } - - - + @Override public int getType() { return TGComponentManager.AVATARSMD_EXPIRE_TIMER; } + @Override public int getDefaultConnector() { return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java b/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java index 97ee9c8ee5a6e585eb8239de40ec8fd8d91cae89..289727f7299a19725103e6378669b3cd4297d937 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDLibraryFunctionCall.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import myutil.GraphicLib; @@ -51,18 +48,23 @@ import ui.util.IconManager; import ui.window.JDialogSMDLibraryFunctionCall; import javax.swing.*; -import java.awt.*; -import java.util.LinkedList; +import java.awt.Color; +import java.awt.Graphics; +import java.util.LinkedList; +import java.util.List; /** * @version 1.0 04.18.2016 * @author Florian LUGOU */ -public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComponent implements BasicErrorHighlight { - private LinkedList<TAttribute> parameters; - private LinkedList<AvatarSignal> signals; - private LinkedList<TAttribute> returnAttributes; +public class AvatarSMDLibraryFunctionCall extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 TGCScalableWithoutInternalComponent*/ implements BasicErrorHighlight { + + private List<TAttribute> parameters; + + private List<AvatarSignal> signals; + + private List<TAttribute> returnAttributes; private AvatarBDLibraryFunction libraryFunction; @@ -104,8 +106,8 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp this.myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics graph) { - this.value = this.prettyPrint (); int [] px1 = {this.x, this.x+this.width-AvatarSMDLibraryFunctionCall.linebreak, this.x+this.width, this.x+this.width-AvatarSMDLibraryFunctionCall.linebreak, this.x, this.x+AvatarSMDLibraryFunctionCall.linebreak}; @@ -128,6 +130,13 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp graph.drawPolygon (px1, py1, 6); + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + graph.setColor( ColorManager.DISABLED_FILLING ); + graph.fillPolygon( px1, py1, 6 ); + graph.setColor( c ); + } + graph.drawLine (this.x+this.width/2, this.y, this.x+this.width/2, this.y - AvatarSMDLibraryFunctionCall.lineLength); graph.drawLine (this.x+this.width/2, this.y+this.height, this.x+this.width/2, this.y + AvatarSMDLibraryFunctionCall.lineLength + this.height); @@ -149,6 +158,7 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp graph.drawString (this.value, this.x + (this.width - stringWidth) / 2 , this.y + (this.height+h)/2); } + @Override public TGComponent isOnMe(int _x, int _y) { if (_x < this.x || _x > this.x + this.width || _y > this.y + this.height || _y < this.y) return null; @@ -175,6 +185,7 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp return this; } + @Override public boolean editOndoubleClick(JFrame frame) { JDialogSMDLibraryFunctionCall dialog = new JDialogSMDLibraryFunctionCall ( this, @@ -196,27 +207,27 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp this.libraryFunction = libraryFunction; } - public LinkedList<TAttribute> getParameters () { + public List<TAttribute> getParameters () { return this.parameters; } - public void setParameters (LinkedList<TAttribute> parameters) { + public void setParameters( List<TAttribute> parameters) { this.parameters = parameters; } - public LinkedList<AvatarSignal> getSignals () { + public List<AvatarSignal> getSignals () { return this.signals; } - public void setSignals (LinkedList<AvatarSignal> signals) { + public void setSignals( List<AvatarSignal> signals) { this.signals = signals; } - public LinkedList<TAttribute> getReturnAttributes () { + public List<TAttribute> getReturnAttributes () { return this.returnAttributes; } - public void setReturnAttributes (LinkedList<TAttribute> returnAttributes) { + public void setReturnAttributes( List<TAttribute> returnAttributes) { this.returnAttributes = returnAttributes; } @@ -264,10 +275,12 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp return builder.toString (); } + @Override public int getDefaultConnector() { return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } @@ -426,7 +439,7 @@ public class AvatarSMDLibraryFunctionCall extends TGCScalableWithoutInternalComp } catch (MalformedModelingException e) { throw e; } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } if (this.libraryFunction != null && diff --git a/src/main/java/ui/avatarsmd/AvatarSMDParallel.java b/src/main/java/ui/avatarsmd/AvatarSMDParallel.java deleted file mode 100755 index f36631d091a3d77e5a97cf692f414cb218ee8a05..0000000000000000000000000000000000000000 --- a/src/main/java/ui/avatarsmd/AvatarSMDParallel.java +++ /dev/null @@ -1,123 +0,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.avatarsmd; - -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; - -/** - * Class AvatarSMDParallel - * Parallel operator. - * To be used in Avatar State Machine Diagrams - * Creation: 13/04/2010 - * @version 1.0 13/04/2010 - * @author Ludovic APVRILLE - */ -public class AvatarSMDParallel extends AvatarSMDBasicComponent{ - private int lineLength = 0; - private int textX, textY; - - public AvatarSMDParallel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { - super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - - width = 150; - height = 5; - - textX = width - 10; - textY = height - 8; - - nbConnectingPoint = 10; - connectingPoint = new TGConnectingPoint[10]; - connectingPoint[0] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.167, 0.0); - connectingPoint[1] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.333, 0.0); - connectingPoint[2] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[3] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.667, 0.0); - connectingPoint[4] = new AvatarSMDConnectingPoint(this, 0, -lineLength, true, false, 0.833, 0.0); - connectingPoint[5] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.167, 1.0); - connectingPoint[6] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.333, 1.0); - connectingPoint[7] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.5, 1.0); - connectingPoint[8] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.667, 1.0); - connectingPoint[9] = new AvatarSMDConnectingPoint(this, 0, lineLength, false, true, 0.833, 1.0); - addTGConnectingPointsCommentCorner(); - - nbInternalTGComponent = 0; - - moveable = true; - editable = false; - removable = true; - - name = "parallel / synchro"; - - myImageIcon = IconManager.imgic206; - } - - public void internalDrawing(Graphics g) { - g.drawRect(x, y, width, height); - g.fillRect(x, y, width, height); - } - - public TGComponent isOnMe(int x1, int y1) { - if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { - return this; - } - return null; - } - - public int getType() { - return TGComponentManager.AVATARSMD_PARALLEL; - } - - public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; - } -} - - - - - - - diff --git a/src/main/java/ui/avatarsmd/AvatarSMDRandom.java b/src/main/java/ui/avatarsmd/AvatarSMDRandom.java index 79528c6ccbbef9c1f5d8f958a55f637870fa969a..2b4fce07b79bbefeb1018bcb81454528d3f1928d 100755 --- a/src/main/java/ui/avatarsmd/AvatarSMDRandom.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDRandom.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import myutil.GraphicLib; @@ -60,7 +57,7 @@ import java.awt.geom.Line2D; * @version 1.0 12/07/2010 * @author Ludovic APVRILLE */ -public class AvatarSMDRandom extends AvatarSMDBasicComponent implements EmbeddedComment, BasicErrorHighlight { +public class AvatarSMDRandom extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements EmbeddedComment, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -97,15 +94,16 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde myImageIcon = IconManager.imgic912; } - public void makeValue() { + private void makeValue() { valueRandom = variable + " = RANDOM" + functionId + "[" + minValue + ", " + maxValue + "]"; } public void setVariable(String v){ variable=v; } - public void internalDrawing(Graphics g) { + @Override + public void internalDrawing(Graphics g) { if (valueRandom.length() == 0) { makeValue(); } @@ -118,8 +116,9 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde //updateConnectingPoints(); } + Color c = g.getColor(); + if (stateOfError > 0) { - Color c = g.getColor(); switch(stateOfError) { case ErrorHighlight.OK: g.setColor(ColorManager.RANDOM); @@ -132,13 +131,22 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde } g.drawRoundRect(x, y, width, height, arc, arc); - g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); + + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillRoundRect(x, y, width, height, arc, arc); + g.setColor( c ); + } + + g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); //g.drawLine(x+width, y+height/2, x+width +lineLength, y+height/2); g.drawString(valueRandom, x + (width - w) / 2 , y + textY); } + @Override public boolean editOndoubleClick(JFrame frame) { boolean error = false; String errors = ""; @@ -194,6 +202,7 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde return true; } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -226,6 +235,7 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde return functionId; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data variable=\""); @@ -243,18 +253,13 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - // try { - NodeList nli; Node n1, n2; Element elt; // int k; String s; - // - // - for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); // @@ -284,19 +289,18 @@ public class AvatarSMDRandom extends AvatarSMDBasicComponent implements Embedde } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.AVATARSMD_RANDOM; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - - } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java index ad21ef15f3329e08c73cbf48bbf0b8460cb0f9cc..b705e2a4c382fc40585864f40aa41471df5dc4d0 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java @@ -36,29 +36,38 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Polygon; +import java.awt.geom.Line2D; +import java.util.List; +import java.util.Map; +import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; -import ui.util.IconManager; -import ui.window.JDialogAvatarSignal; - -import java.util.concurrent.ConcurrentHashMap; - -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Vector; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.LinkedReference; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.avatarrd.AvatarRDRequirement; - import ui.tmlad.TMLADReadChannel; +import ui.util.IconManager; +import ui.window.JDialogAvatarSignal; /** * Class AvatarSMDReceiveSignal * Action of receiving a signal @@ -66,7 +75,7 @@ import ui.tmlad.TMLADReadChannel; * @version 1.0 12/04/2010 * @author Ludovic APVRILLE */ -public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant { +public class AvatarSMDReceiveSignal extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -74,14 +83,12 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C protected int linebreak = 10; protected int textX1 = 2; - private ConcurrentHashMap<String, String> latencyVals; - + private Map<String, String> latencyVals; protected int latencyX=30; protected int latencyY=25; protected int textWidth=10; protected int textHeight=20; - protected int stateOfError = 0; // Not yet checked @@ -112,12 +119,12 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C //latencyVals.put("sendChannel: sensorData", "15"); } - public void addLatency(String name, String num){ latencyVals.put(name,num); } - public void internalDrawing(Graphics g) { - + + @Override + public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value + textX1); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -126,7 +133,6 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C //updateConnectingPoints(); } - if (stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { @@ -165,13 +171,27 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C g.drawLine(x1, y1, x1+linebreak, y1+height1/2); g.drawLine(x1, y1+height1, x1+linebreak, y1+height1/2); g.setColor(c); + + final Polygon shape = new Polygon(); + shape.addPoint( x, y ); + shape.addPoint( x + width, y ); + shape.addPoint( x + width, y + height ); + shape.addPoint( x, y + height ); + shape.addPoint( x + linebreak, y + height / 2 ); + g.drawPolygon( shape ); - g.drawLine(x, y, x+width, y); - g.drawLine(x+width, y, x+width, y+height); - g.drawLine(x, y+height, x+width, y+height); - g.drawLine(x, y, x+linebreak, y+height/2); - g.drawLine(x, y+height, x+linebreak, y+height/2); +// g.drawLine(x, y, x+width, y); +// g.drawLine(x+width, y, x+width, y+height); +// g.drawLine(x, y+height, x+width, y+height); +// g.drawLine(x, y, x+linebreak, y+height/2); +// g.drawLine(x, y+height, x+linebreak, y+height/2); + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillPolygon( shape ); + g.setColor( c ); + } //g.drawString("sig()", x+(width-w) / 2, y); g.drawString(value, x + linebreak + textX1, y + textY); @@ -183,6 +203,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C drawLatencyInformation(g); } } + if (reference!=null){ if (reference instanceof AvatarRDRequirement){ AvatarRDRequirement refReq = (AvatarRDRequirement) reference; @@ -190,7 +211,8 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C } } } - public void drawLatencyInformation(Graphics g){ + + private void drawLatencyInformation(Graphics g){ int index=1; for (String s:latencyVals.keySet()){ int w = g.getFontMetrics().stringWidth(s); @@ -270,9 +292,8 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C } } if (reference instanceof TMLADReadChannel){ - // TMLADReadChannel rc = (TMLADReadChannel) reference; - ConcurrentHashMap<String, String> refLats =rc.getLatencyMap(); + Map<String, String> refLats =rc.getLatencyMap(); // for (String checkpoint:refLats.keySet()){ if (s.split("\\-")[1].split(":")[0].equals(checkpoint.split("channel:")[1].split(" ")[0])){ @@ -296,6 +317,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -308,7 +330,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C return null; } - public void makeValue() { + //public void makeValue() { /*boolean first = true; value = eventName + "("; for(int i=0; i<nParam; i++) { @@ -324,7 +346,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C } value += ")";*/ - } + // } public String getSignalName() { if (value == null) { @@ -360,14 +382,14 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C return nParam; }*/ - + + @Override public boolean editOndoubleClick(JFrame frame) { - // - LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); + List<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); TraceManager.addDev("Nb of signals:" + signals.size()); - ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); + List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); Vector<TGComponent> refs = new Vector<TGComponent>(); for (TGComponent req: tdp.getMGUI().getAllRequirements()){ // @@ -380,6 +402,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C refs.add(tg); } } + JDialogAvatarSignal jdas = new JDialogAvatarSignal(frame, "Setting receive signal", value, signals, false, reference, refs); //jdas.setSize(350, 300); GraphicLib.centerOnParent(jdas, 550, 300); @@ -411,15 +434,17 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C } - + @Override public int getType() { return TGComponentManager.AVATARSMD_RECEIVE_SIGNAL; } - public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + @Override + public int getDefaultConnector() { + return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java index 2498e1f818897605d529e1d8b496d6fed5314480..6eab76979e64f20b527b7d8fa475bd9095d2c9f3 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java @@ -36,22 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Polygon; +import java.awt.geom.Line2D; +import java.util.List; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.util.IconManager; import ui.window.JDialogAvatarTimer; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; - /** * Class AvatarSMDResetTimer * Action of resetting a timer @@ -59,7 +68,7 @@ import java.util.LinkedList; * @version 1.0 15/07/2010 * @author Ludovic APVRILLE */ -public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements BasicErrorHighlight, PartOfInvariant { +public class AvatarSMDResetTimer extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements BasicErrorHighlight, PartOfInvariant { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -97,8 +106,8 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -142,11 +151,26 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi g.drawLine(x1+width1-linebreak, y1+height1, x1+width1, y1+height1/2); g.setColor(c); - g.drawLine(x, y, x+width-linebreak, y); - g.drawLine(x, y+height, x+width-linebreak, y+height); - g.drawLine(x, y, x, y+height); - g.drawLine(x+width-linebreak, y, x+width, y+height/2); - g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); + final Polygon shape = new Polygon(); + shape.addPoint( x, y ); + shape.addPoint( x + width - linebreak, y ); + shape.addPoint( x + width, y + height / 2 ); + shape.addPoint( x + width - linebreak, y + height ); + shape.addPoint(x, y + height ); + + g.drawPolygon( shape ); +// g.drawLine(x, y, x+width-linebreak, y); +// g.drawLine(x, y+height, x+width-linebreak, y+height); +// g.drawLine(x, y, x, y+height); +// g.drawLine(x+width-linebreak, y, x+width, y+height/2); +// g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); + + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillPolygon( shape ); + g.setColor( c ); + } // hourglass g.setColor(ColorManager.AVATAR_SET_TIMER); @@ -162,10 +186,9 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi //g.drawString("sig()", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 , y + textY); - - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) { return this; @@ -178,15 +201,16 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi return null; } - public void makeValue() { - } +// public void makeValue() { +// } public String getTimerName() { return AvatarSignal.getValue(value, 0); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<String> timers = tdp.getMGUI().getAllTimers(); + List<String> timers = tdp.getMGUI().getAllTimers(); TraceManager.addDev("Nb of timers:" + timers.size()); JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Reset timer", getTimerName(), "", timers, false); @@ -212,20 +236,19 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi value = "reset(" + val0 + ")"; return true; - } - - - + @Override public int getType() { return TGComponentManager.AVATARSMD_RESET_TIMER; } - public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + @Override + public int getDefaultConnector() { + return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java index b9000b58a5f4d83d6ed1a3a2663759589615c420..aefcf54dface93a33001f78b6cf39474a4137f4d 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java @@ -36,27 +36,37 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; -import ui.window.JDialogAvatarSignal; - -import javax.swing.*; -import java.awt.*; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Polygon; import java.awt.geom.Line2D; -import java.util.LinkedList; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.concurrent.ConcurrentHashMap; +import java.util.List; +import java.util.Map; import java.util.Vector; -import ui.avatarrd.AvatarRDRequirement; +import java.util.concurrent.ConcurrentHashMap; + +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import myutil.GraphicLib; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.LinkedReference; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.avatarrd.AvatarRDRequirement; import ui.tmlad.TMLADWriteChannel; +import ui.util.IconManager; +import ui.window.JDialogAvatarSignal; /** * Class AvatarSMDSendSignal * Action of sending a signal @@ -64,7 +74,7 @@ import ui.tmlad.TMLADWriteChannel; * @version 1.0 12/04/2010 * @author Ludovic APVRILLE */ -public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant { +public class AvatarSMDSendSignal extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, BasicErrorHighlight, PartOfInvariant { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -105,11 +115,13 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec myImageIcon = IconManager.imgic904; latencyVals = new ConcurrentHashMap<String, String>(); } + public void addLatency(String name, String num){ latencyVals.put(name,num); } + + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -117,7 +129,6 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec width = w1; //updateConnectingPoints(); } - if (stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { @@ -157,17 +168,33 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec g.drawLine(x1+width1-linebreak, y1+height1, x1+width1, y1+height1/2); g.setColor(c); - g.drawLine(x, y, x+width-linebreak, y); - g.drawLine(x, y+height, x+width-linebreak, y+height); - g.drawLine(x, y, x, y+height); - g.drawLine(x+width-linebreak, y, x+width, y+height/2); - g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); + final Polygon shape = new Polygon(); + shape.addPoint( x, y ); + shape.addPoint( x + width - linebreak, y ); + shape.addPoint( x + width, y + height / 2 ); + shape.addPoint( x + width - linebreak, y + height ); + shape.addPoint( x, y + height ); + + g.drawPolygon( shape ); + + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillPolygon( shape ); + g.setColor( c ); + } +// g.drawLine(x, y, x+width-linebreak, y); +// g.drawLine(x, y+height, x+width-linebreak, y+height); +// g.drawLine(x, y, x, y+height); +// g.drawLine(x+width-linebreak, y, x+width, y+height/2); +// g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); //g.drawString("sig()", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 , y + textY); //g.drawString("Reference " + reference, x-latencyX/2, y+latencyY/2); - if (getCheckLatency()){ + + if (getCheckLatency()){ ConcurrentHashMap<String, String> latency =tdp.getMGUI().getLatencyVals(getAVATARID()); if (latency!=null){ latencyVals=latency; @@ -182,7 +209,7 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec } } - public void drawLatencyInformation(Graphics g){ + private void drawLatencyInformation(Graphics g){ int index=1; for (String s:latencyVals.keySet()){ int w = g.getFontMetrics().stringWidth(s); @@ -264,7 +291,7 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec if (reference instanceof TMLADWriteChannel){ // TMLADWriteChannel rc = (TMLADWriteChannel) reference; - ConcurrentHashMap<String, String> refLats =rc.getLatencyMap(); + Map<String, String> refLats =rc.getLatencyMap(); // for (String checkpoint:refLats.keySet()){ if (s.split("\\-")[1].split(":")[0].equals(checkpoint.split(":")[1].split(" ")[0])){ @@ -282,13 +309,13 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec } } - g.drawString(latencyVals.get(s), x-latencyX/2, y-latencyY*index/2); g.setColor(c); index++; } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -301,23 +328,23 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec return null; } - public void makeValue() { - /*boolean first = true; - value = eventName + "("; - for(int i=0; i<nParam; i++) { - if (params[i].length() > 0) { - if (!first) { - value += ", " + params[i]; - } else { - first = false; - value += params[i]; - } - - } - } - value += ")";*/ - - } +// public void makeValue() { +// /*boolean first = true; +// value = eventName + "("; +// for(int i=0; i<nParam; i++) { +// if (params[i].length() > 0) { +// if (!first) { +// value += ", " + params[i]; +// } else { +// first = false; +// value += params[i]; +// } +// +// } +// } +// value += ")";*/ +// +// } public String getSignalName() { if (value == null) { @@ -353,10 +380,11 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec return AvatarSignal.getValue(value, _index); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); + List<AvatarSignal> signals = tdp.getMGUI().getAllSignals(); //TraceManager.addDev("Nb of signals:" + signals.size()); - ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); + List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks(); Vector<TGComponent> refs = new Vector<TGComponent>(); for (TGComponent req: tdp.getMGUI().getAllRequirements()){ @@ -466,15 +494,17 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec makeValue(); }*/ - + @Override public int getType() { return TGComponentManager.AVATARSMD_SEND_SIGNAL; } + @Override public int getDefaultConnector() { return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java index ee71ee48658042a58015a793021c627d9331cc1f..d5915ffa4f2ec4fd11e375d407685bcede6759a0 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java @@ -36,22 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.avatarsmd; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Polygon; +import java.awt.geom.Line2D; +import java.util.List; - -package ui.avatarsmd; +import javax.swing.JFrame; +import javax.swing.JOptionPane; import myutil.GraphicLib; import myutil.TraceManager; -import ui.*; +import ui.AvatarSignal; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.ErrorHighlight; +import ui.PartOfInvariant; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; import ui.util.IconManager; import ui.window.JDialogAvatarTimer; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.LinkedList; - /** * Class AvatarSMDSetTimer * Action of setting a timer @@ -59,7 +68,7 @@ import java.util.LinkedList; * @version 1.0 15/07/2010 * @author Ludovic APVRILLE */ -public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicErrorHighlight, PartOfInvariant { +public class AvatarSMDSetTimer extends AvatarSMDBasicCanBeDisabledComponent /* Issue #69 AvatarSMDBasicComponent*/ implements BasicErrorHighlight, PartOfInvariant { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -97,9 +106,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - - int w = g.getFontMetrics().stringWidth(value); + int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { setCd(x + width/2 - w1/2, y); @@ -141,14 +150,30 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE g.drawLine(x1+width1-linebreak, y1, x1+width1, y1+height1/2); g.drawLine(x1+width1-linebreak, y1+height1, x1+width1, y1+height1/2); g.setColor(c); + + final Polygon shape = new Polygon(); + shape.addPoint( x, y ); + shape.addPoint( x + width - linebreak, y ); + shape.addPoint( x + width, y + height / 2 ); + shape.addPoint( x + width - linebreak, y + height ); + shape.addPoint(x, y + height ); - g.drawLine(x, y, x+width-linebreak, y); - g.drawLine(x, y+height, x+width-linebreak, y+height); - g.drawLine(x, y, x, y+height); - g.drawLine(x+width-linebreak, y, x+width, y+height/2); - g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); + g.drawPolygon( shape ); +// +// g.drawLine(x, y, x+width-linebreak, y); +// g.drawLine(x, y+height, x+width-linebreak, y+height); +// g.drawLine(x, y, x, y+height); +// g.drawLine(x+width-linebreak, y, x+width, y+height/2); +// g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); - // hourglass + // Issue #69 + if ( !isEnabled() && isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillPolygon( shape ); + g.setColor( c ); + } + + // hourglass g.setColor(ColorManager.AVATAR_SET_TIMER); g.drawLine(x+width+hourglassSpace+1, y+1, x+width+hourglassSpace + hourglassWidth+1, y+1); g.drawLine(x+width+hourglassSpace+1, y+height+1, x+width+hourglassSpace + hourglassWidth+1, y+height+1); @@ -160,14 +185,11 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE g.drawLine(x+width+hourglassSpace, y, x+width+hourglassSpace + hourglassWidth, y+height); g.drawLine(x+width+hourglassSpace, y+height, x+width+hourglassSpace + hourglassWidth, y); - - //g.drawString("sig()", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 , y + textY); - - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) { return this; @@ -180,8 +202,8 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE return null; } - public void makeValue() { - } +// public void makeValue() { +// } public String getTimerName() { return AvatarSignal.getValue(value, 0); @@ -191,8 +213,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE return AvatarSignal.getValue(value, 1); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<String> timers = tdp.getMGUI().getAllTimers(); + List<String> timers = tdp.getMGUI().getAllTimers(); TraceManager.addDev("Nb of timers:" + timers.size()); JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Setting timer set", getTimerName(), getTimerValue(), timers, true); @@ -229,18 +252,18 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE return true; } - - - + @Override public int getType() { return TGComponentManager.AVATARSMD_SET_TIMER; } - public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + @Override + public int getDefaultConnector() { + return TGComponentManager.AVATARSMD_CONNECTOR; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDStartState.java b/src/main/java/ui/avatarsmd/AvatarSMDStartState.java index a3b25ceca27d64caa1e730925bb8a2b5e9f50327..b815131fe67c80b6c8df60d045fa51279bbe0f27 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDStartState.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDStartState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import myutil.GraphicLib; @@ -56,7 +53,8 @@ import java.awt.geom.Line2D; * @author Ludovic APVRILLE */ public class AvatarSMDStartState extends AvatarSMDBasicComponent implements EmbeddedComment, PartOfInvariant{ - private int lineLength = 5; + + private int lineLength = 5; public AvatarSMDStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); @@ -79,11 +77,13 @@ public class AvatarSMDStartState extends AvatarSMDBasicComponent implements Embe myImageIcon = IconManager.imgic222; } + @Override public void internalDrawing(Graphics g) { g.fillOval(x, y, width, height); g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -96,12 +96,28 @@ public class AvatarSMDStartState extends AvatarSMDBasicComponent implements Embe return null; } + @Override public int getType() { return TGComponentManager.AVATARSMD_START_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.AVATARSMD_CONNECTOR; + return TGComponentManager.AVATARSMD_CONNECTOR; } - + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + + // Needed to escape containing composite state machine + if ( getFather() instanceof AvatarSMDState ) { + getFather().acceptBackward( visitor ); + } + } + } } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDState.java b/src/main/java/ui/avatarsmd/AvatarSMDState.java index 790ac83d49be67a6f3ff6ca6227ad4672146a39a..3f3d3415bdbf8e5fffc4f1da49bf038739d9068e 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDState.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDState.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import myutil.Conversion; @@ -51,11 +48,15 @@ import ui.util.IconManager; import ui.window.JDialogAvatarState; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; +import java.util.ArrayList; import java.util.LinkedList; +import java.util.List; import java.util.Vector; - /** * Class AvatarSMDState * State. To be used in AVATAR State Machine Diagrams @@ -156,7 +157,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements name = tdp.findAvatarSMDStateName("state"); setValue(name); - name = "State"; + name = "State"; oldValue = value; currentFontSize = maxFontSize; @@ -190,6 +191,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements mutexStates = null; } + @Override public void internalDrawing(Graphics g) { Font f = g.getFont(); Font fold = f; @@ -235,18 +237,22 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements } - // - Color c = g.getColor(); //g.setColor(ColorManager.AVATAR_STATE); - Color avat = ColorManager.AVATAR_STATE; - g.setColor(new Color(avat.getRed(), avat.getGreen(), Math.min(255, avat.getBlue() + (getMyDepth() * 10)))); + + // Issue #69 + if ( isEnabled() ) { + Color avat = ColorManager.AVATAR_STATE; + g.setColor(new Color(avat.getRed(), avat.getGreen(), Math.min(255, avat.getBlue() + (getMyDepth() * 10)))); + } + else { + g.setColor( ColorManager.DISABLED_FILLING ); + } + g.fillRoundRect(x, y, width, height, 5, 5); g.setColor(c); g.drawRoundRect(x, y, width, height, 5, 5); - - // Strings int w; int h = 0; @@ -306,7 +312,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements drawSecurityInformation(g); } - public void drawSecurityInformation(Graphics g) { + private void drawSecurityInformation(Graphics g) { if (securityInformation > 0) { Color c = g.getColor(); @@ -330,10 +336,9 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements g.drawRect(x-12, y, 9, 7); } - } - + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { @@ -342,13 +347,12 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return null; } - public String getStateName() { return value; } + @Override public boolean editOndoubleClick(JFrame frame, int _x, int _y) { - oldValue = value; //String text = getName() + ": "; @@ -357,7 +361,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements null, getValue());*/ - JDialogAvatarState jdas = new JDialogAvatarState(frame, "Setting state parameters", value, entryCode); // jdas.setSize(600, 550); GraphicLib.centerOnParent(jdas, 600, 550 ); @@ -370,7 +373,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements String s = jdas.getStateName(); - if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) { //boolean b; if (!TAttribute.isAValidId(s, false, false)) { @@ -407,19 +409,19 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements entryCode = jdas.getEntryCode(); return true; - - } + @Override public void recalculateSize() { width = Math.max(width, value.length()*11); } - + @Override public int getType() { return TGComponentManager.AVATARSMD_STATE; } + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { if (tgc instanceof AvatarSMDBasicComponent) { return true; @@ -429,6 +431,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { boolean swallowed = false; @@ -475,6 +478,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return true; } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { removeMyInternalComponent(tgc, false); } @@ -514,7 +518,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return false; } - + @Override public void hasBeenResized() { for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarSMDBasicComponent) { @@ -531,6 +535,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof AvatarSMDState)) { @@ -542,8 +547,8 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements } } - public LinkedList<AvatarSMDState> getStateList() { - LinkedList<AvatarSMDState> list = new LinkedList<AvatarSMDState>(); + public List<AvatarSMDState> getStateList() { + List<AvatarSMDState> list = new LinkedList<AvatarSMDState>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarSMDState) { list.add((AvatarSMDState)(tgcomponent[i])); @@ -552,8 +557,8 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return list; } - public LinkedList<AvatarSMDState> getFullStateList() { - LinkedList<AvatarSMDState> list = new LinkedList<AvatarSMDState>(); + public List<AvatarSMDState> getFullStateList() { + List<AvatarSMDState> list = new LinkedList<AvatarSMDState>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof AvatarSMDState) { list.add((AvatarSMDState)(tgcomponent[i])); @@ -564,7 +569,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements } public boolean hasInternalStateWithName(String name) { - LinkedList<AvatarSMDState> list = getFullStateList(); + List<AvatarSMDState> list = getFullStateList(); for(AvatarSMDState s: list) { if (s.getValue().compareTo(name) ==0) { return true; @@ -573,13 +578,14 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return false; } + @Override public int getDefaultConnector() { return TGComponentManager.AVATARSMD_CONNECTOR; } public AvatarSMDState checkForStartStateOfCompositeStates() { AvatarSMDState tgc; - LinkedList<AvatarSMDState> list = getFullStateList(); + List<AvatarSMDState> list = getFullStateList(); for(AvatarSMDState s: list) { tgc = s.checkForStartStateOfCompositeStates(); if (tgc != null) { @@ -597,6 +603,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements if (cpt > 1) { return this; } + return null; } @@ -617,6 +624,7 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return s; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); @@ -689,10 +697,9 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } - /*if (tmpGlobalCode.trim().length() == 0) { globalCode = null; } else { @@ -704,8 +711,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements entryCode = Conversion.wrapText(tmpEntryCode); //TraceManager.addDev("Entry code = " + entryCode); } - - } /*public boolean hasGlobalCode() { @@ -774,7 +779,6 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements return ret; } - public void resetSecurityInfo() { securityInformation = NOT_VERIFIED; for(int i=0; i<nbInternalTGComponent; i++) { @@ -797,8 +801,146 @@ public class AvatarSMDState extends TGCScalableWithInternalComponent implements ((AvatarSMDState)tgcomponent[i]).setSecurityInfo(_info, _name); } } - } - + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + if ( getFather() instanceof AvatarSMDState ) { + return getFather().isEnabled(); + } + + return true; + } + + private List<AvatarSMDConnector> getContainedConnectors() { + final List<AvatarSMDConnector> connectors = new ArrayList<AvatarSMDConnector>(); + + for ( final TGComponent component : tdp.getComponentList() ) { + if ( component instanceof AvatarSMDConnector ) { + final AvatarSMDConnector smdCon = (AvatarSMDConnector) component; + + if ( smdCon.isContainedBy( this ) ) { + connectors.add( smdCon ); + } + } + } + + return connectors; + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + if ( _enabled ) { + super.setEnabled( _enabled ); + } + + // Enabling for composite states + for ( final TGComponent component : tgcomponent ) { + if ( component.canBeDisabled() ) { + component.setEnabled( _enabled ); + } + } + + for ( final AvatarSMDConnector containedConnector : getContainedConnectors() ) { + containedConnector.getAvatarSMDTransitionInfo().setEnabled( _enabled ); + } + + if ( !_enabled ) { + super.setEnabled( _enabled ); + } + + // Enabling of states with the same name + for ( final AvatarSMDState sameState : getSameStates() ) { + sameState.doSetEnabled( _enabled ); + } + } + + public List<AvatarSMDState> getSameStates() { + final List<AvatarSMDState> states = new ArrayList<AvatarSMDState>(); + + for ( final TGComponent component : tdp.getComponentList() ) { + if ( component != this && getValue() != null && component instanceof AvatarSMDState && + getFather() == component.getFather() && getValue().equals( component.getValue() ) ) { + states.add( (AvatarSMDState) component ); + } + } + + return states; + } + + public AvatarSMDStartState getCompositeStartState() { + if ( tgcomponent == null ) { + return null; + } + + for ( final TGComponent subCompo : tgcomponent ) { + if ( subCompo instanceof AvatarSMDStartState ) { + return (AvatarSMDStartState) subCompo; + } + } + + return null; + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptForward(ui.ICDElementVisitor) + */ + @Override + public void acceptForward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + final AvatarSMDStartState subStartElement = getCompositeStartState(); + + if ( subStartElement != null ) { + subStartElement.acceptForward( visitor ); + } + + if ( connectingPoint != null ) { + for ( final TGConnectingPoint point : connectingPoint ) { + final TGConnector connector = getConnectorConnectedTo( point ); + + if ( connector != null && point == connector.getTGConnectingPointP1() ) { + point.acceptForward( visitor ); + } + } + } + + // Also visit the states with the same name + for ( final AvatarSMDState state : getSameStates() ) { + state.acceptForward( visitor ); + } + } + } + + /* Issue #69 + * (non-Javadoc) + * @see ui.CDElement#acceptBackward(ui.ICDElementVisitor) + */ + @Override + public void acceptBackward( final ICDElementVisitor visitor ) { + if ( visitor.visit( this ) ) { + if ( connectingPoint != null ) { + for ( final TGConnectingPoint point : connectingPoint ) { + final TGConnector connector = getConnectorConnectedTo( point ); + + if ( connector != null && point == connector.getTGConnectingPointP2() ) { + point.acceptBackward( visitor ); + } + } + } + } + + // Also visit the states with the same name + for ( final AvatarSMDState state : getSameStates() ) { + state.acceptBackward( visitor ); + } + } } diff --git a/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java b/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java index 356cdb74c871550dc43e93f12bbfe659e404e9e2..e774c907fe4baafaf95335efd483724872be494c 100755 --- a/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDToolBar.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.avatarsmd; import ui.MainGUI; @@ -47,9 +44,6 @@ import ui.TToolBar; import javax.swing.*; -//import java.awt.*; -//import java.awt.event.*; - /** * Class AvatarSMDToolBar * Toolbar associated with AVATAR state Machines @@ -59,11 +53,11 @@ import javax.swing.*; */ public class AvatarSMDToolBar extends TToolBar { - public AvatarSMDToolBar(MainGUI _mgui) { super(_mgui); } + @Override protected void setActive(boolean b) { mgui.actions[TGUIAction.ASMD_EDIT].setEnabled(b); mgui.actions[TGUIAction.UML_NOTE].setEnabled(b); @@ -75,7 +69,7 @@ public class AvatarSMDToolBar extends TToolBar { mgui.actions[TGUIAction.ASMD_SEND_SIGNAL].setEnabled(b); mgui.actions[TGUIAction.ASMD_RECEIVE_SIGNAL].setEnabled(b); mgui.actions[TGUIAction.ASMD_LIBRARY_FUNCTION_CALL].setEnabled(b); - mgui.actions[TGUIAction.ASMD_PARALLEL].setEnabled(b); + //mgui.actions[TGUIAction.ASMD_PARALLEL].setEnabled(b); mgui.actions[TGUIAction.ASMD_STATE].setEnabled(b); mgui.actions[TGUIAction.ASMD_CHOICE].setEnabled(b); mgui.actions[TGUIAction.ASMD_RANDOM].setEnabled(b); @@ -97,6 +91,7 @@ public class AvatarSMDToolBar extends TToolBar { mgui.updateZoomInfo(); } + @Override protected void setButtons() { JButton button; @@ -111,12 +106,10 @@ public class AvatarSMDToolBar extends TToolBar { button = this.add(mgui.actions[TGUIAction.CONNECTOR_COMMENT]); button.addMouseListener(mgui.mouseHandler); - this.addSeparator(); button = this.add(mgui.actions[TGUIAction.ASMD_CONNECTOR]); button.addMouseListener(mgui.mouseHandler); - this.addSeparator(); @@ -185,7 +178,6 @@ public class AvatarSMDToolBar extends TToolBar { button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_AVATAR_ID]); button.addMouseListener(mgui.mouseHandler); - } } // Class diff --git a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java index b4652293edf1251cbeff112edf513d5ed2403446..bf7ff92a96d004e066f8be9cccd29dcfa8eb3bd4 100755 --- a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java @@ -36,25 +36,38 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.avatarsmd; -import myutil.Conversion; -import myutil.GraphicLib; +import java.awt.Graphics; +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.List; +import java.util.Vector; + +import javax.swing.JFrame; + import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import ui.*; + +import myutil.GraphicLib; +import ui.AvatarMethod; +import ui.ColorManager; +import ui.Expression; +import ui.GTURTLEModeling; +import ui.MalformedModelingException; +import ui.RangeExpression; +import ui.TAttribute; +import ui.TDiagramPanel; +import ui.TGCWithoutInternalComponent; +import ui.TGComponent; +import ui.TGConnectingPoint; +import ui.TGConnectingPointComment; +import ui.TGState; +import ui.WithAttributes; import ui.util.IconManager; import ui.window.JDialogAvatarTransition; -import javax.swing.*; -import java.awt.*; -import java.util.LinkedList; -import java.util.Vector; - -//import java.awt.geom.*; - /** * Class AvatarSMDTransitionInfo * Internal component that represents a set of parameter for a transition @@ -66,20 +79,37 @@ import java.util.Vector; */ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent implements WithAttributes { + private static final String NULL_EXPR = ""; + + private static final String NULL_GUARD_EXPR = "[ ]"; + + static final String DISABLED_GUARD_EXPR = NULL_GUARD_EXPR; + + static final String DISABLED_DELAY_EXPR = NULL_EXPR; + + static final String DISABLED_PROBABILITY_EXPR = NULL_EXPR; + + static final String DISABLED_ACTION_EXPR = NULL_EXPR; // private static String FILE_INFO = "(user files specified)"; // private static String CODE_INFO = "(user code specified)"; + private final Expression guard; + + private final RangeExpression afterDelay; - protected String guard; - protected String afterMin; - protected String afterMax; - protected String computeMin; - protected String computeMax; - protected String probability = ""; - protected Vector<String> listOfActions; + private final RangeExpression computeDelay; +// protected String guard; +// protected String afterMin; +// protected String afterMax; +// protected String computeMin; +// protected String computeMax; + private final Expression probability; + + private Vector<Expression> listOfActions; + // protected Vector<String> listOfActions; - protected String[] filesToInclude; - protected String[] codeToInclude; +// protected String[] filesToInclude; +// protected String[] codeToInclude; protected int minWidth = 10; protected int minHeight = 15; @@ -94,13 +124,18 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme editable = true; removable = false; - guard = "[ ]"; - afterMin = ""; - afterMax = ""; - computeMin = ""; - computeMax = ""; - filesToInclude = null; - codeToInclude = null; + guard = new Expression( NULL_GUARD_EXPR, NULL_GUARD_EXPR, null ); + afterDelay = new RangeExpression( NULL_EXPR, NULL_EXPR, NULL_EXPR, "after (%s, %s)", null ); + computeDelay = new RangeExpression( NULL_EXPR, NULL_EXPR, NULL_EXPR, "computeFor (%s, %s)", null ); + probability = new Expression( NULL_EXPR, NULL_EXPR, "weight=%s" ); + +// guard = "[ ]"; +// afterMin = ""; +// afterMax = ""; +// computeMin = ""; +// computeMax = ""; +// filesToInclude = null; +// codeToInclude = null; nbConnectingPoint = 4; @@ -110,129 +145,205 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme connectingPoint[2] = new TGConnectingPointComment(this, 0, 0, true, true, 1.0, 0.5); connectingPoint[3] = new TGConnectingPointComment(this, 0, 0, true, true, 0.0, 0.5); - listOfActions = new Vector<String>(); + listOfActions = new Vector<Expression>(); + //listOfActions = new Vector<String>(); myImageIcon = IconManager.imgic302; } public Vector<String> getListOfActions() { - return listOfActions; + final Vector<String> actions = new Vector<String>( listOfActions.size() ); + + for ( final Expression action : listOfActions ) { + actions.add( action.getText() ); + } + + return actions; +// return listOfActions; } - - public void setGuard(String s) { - guard = s; + + public void setGuard(String s){ + guard.setText( s ); } public void setProbability(String s) { - probability = s; + probability.setText( s ); } - - public void addAction(String s) { - listOfActions.add(s); + + public void addAction(String s){ + listOfActions.add( new Expression( s ) ); +// listOfActions.add(s); } + @Override public void internalDrawing(Graphics g) { int step = 0; - String s; + // String s; h = g.getFontMetrics().getHeight(); for (int j = 0; j < nbConnectingPoint; j++) { connectingPoint[j].setCdY(-h + 1); } - ColorManager.setColor(g, getState(), 0); - int inc = h; +// ColorManager.setColor(g, getState(), 0); + // Issue #69 + final int inc = getExpressionTextHight(); +// int inc = h; + boolean atLeastOneThing = false; - g.setColor(ColorManager.AVATAR_GUARD); + if ( !guard.isNull() ) { + atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = minWidth; - } + final String formattedExpr = guard.toString(); + final int textWidth = g.getFontMetrics().stringWidth( formattedExpr ); + + if (tdp.isDrawingMain()) { + width = Math.max( textWidth, width ); + width = Math.max(minWidth, width); + } - if (guard.length() > 0) { - if (guard.replaceAll("\\s+", "").compareTo("[]") != 0) { - g.drawString(guard, x, y + step); - atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(guard), width); - width = Math.max(minWidth, width); - } - step += inc; + // Issue #69 + if ( !guard.isEnabled() && getFather().isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 ); } + + g.setColor( guard.isEnabled() ? ColorManager.AVATAR_GUARD : ColorManager.DISABLED ); + g.drawString( formattedExpr, x, y + step) ; + + step += inc; } - g.setColor(ColorManager.AVATAR_TIME); + if ( !afterDelay.isNull() ) { + atLeastOneThing = true; - if (afterMin.length() > 0) { - if (afterMax.length() > 0) { - s = "after (" + afterMin + "," + afterMax + ")"; - g.drawString(s, x, y + step); - atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(s), width); - width = Math.max(minWidth, width); - } - step += inc; - } else { - s = "after (" + afterMin + ")"; - g.drawString(s, x, y + step); - atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(s), width); - width = Math.max(minWidth, width); - } - step += inc; + final String formattedExpr = afterDelay.toString(); + final int textWidth = g.getFontMetrics().stringWidth( formattedExpr ); + + if (tdp.isDrawingMain()) { + width = Math.max( textWidth, width ); + width = Math.max(minWidth, width); } + + // Issue #69 + if ( !afterDelay.isEnabled() && getFather().isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 ); + } + + g.setColor( afterDelay.isEnabled() ? ColorManager.AVATAR_TIME : ColorManager.DISABLED ); + g.drawString( formattedExpr, x, y + step ); + + step += inc; +// } +// else { +// final String s = "after (" + afterMinDelayExp + ")"; +// +// g.drawString(s, x, y + step); +// +// atLeastOneThing = true; +// +// if (tdp.isDrawingMain()) { +// width = Math.max(g.getFontMetrics().stringWidth(s), width); +// width = Math.max(minWidth, width); +// } +// +// step += inc; +// } } - if (computeMin.length() > 0) { - if (computeMax.length() > 0) { - s = "computeFor (" + computeMin + "," + computeMax + ")"; - g.drawString(s, x, y + step); - atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(s), width); - width = Math.max(minWidth, width); - } - step += inc; - } else { - s = "computeFor (" + computeMin + ")"; - g.drawString(s, x, y + step); - atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(s), width); - width = Math.max(minWidth, width); - } - step += inc; + if ( !computeDelay.isNull() ) { + atLeastOneThing = true; + + final String formattedExpr = computeDelay.toString(); + final int textWidth = g.getFontMetrics().stringWidth( formattedExpr ); + + if (tdp.isDrawingMain()) { + width = Math.max( textWidth, width ); + width = Math.max(minWidth, width); } + + // Issue #69 + if ( !computeDelay.isEnabled() && getFather().isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 ); + } + + g.setColor( computeDelay.isEnabled() ? ColorManager.AVATAR_TIME : ColorManager.DISABLED ); + g.drawString( formattedExpr, x, y + step ); + + step += inc; } - if ((probability != null) && (probability.length() > 0)) { - s = "weight=" + probability; - g.drawString(s, x, y + step); - atLeastOneThing = true; + if ( !probability.isNull() ) { + atLeastOneThing = true; + final String formattedExpr = probability.toString(); + final int textWidth = g.getFontMetrics().stringWidth( formattedExpr ); + if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(s), width); + width = Math.max( textWidth, width ); width = Math.max(minWidth, width); } - step += inc; - } - g.setColor(ColorManager.AVATAR_ACTION); + // Issue #69 + if ( !probability.isEnabled() && getFather().isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 ); + } + + g.setColor( probability.isEnabled() ? ColorManager.AVATAR_GUARD : ColorManager.DISABLED ); + g.drawString( formattedExpr, x, y + step) ; + + step += inc; +// s = "weight=" + probability; +// g.drawString(s, x, y + step); +// atLeastOneThing = true; +// if (tdp.isDrawingMain()) { +// width = Math.max(g.getFontMetrics().stringWidth(s), width); +// width = Math.max(minWidth, width); +// } +// step += inc; + } - for (int i = 0; i < listOfActions.size(); i++) { - s = listOfActions.get(i); - if (s.length() > 0) { - g.drawString(s, x, y + step); - atLeastOneThing = true; - if (tdp.isDrawingMain()) { - width = Math.max(g.getFontMetrics().stringWidth(s), width); - width = Math.max(minWidth, width); - } - step += inc; + // g.setColor(ColorManager.AVATAR_ACTION); + + for( final Expression action : listOfActions ) { + if ( !action.isNull() ) { + atLeastOneThing = true; + + final String formattedExpr = action.toString(); + final int textWidth = g.getFontMetrics().stringWidth( formattedExpr ); + + if (tdp.isDrawingMain()) { + width = Math.max( textWidth, width ); + width = Math.max( minWidth, width); + } + + // Issue #69 + if ( !action.isEnabled() && getFather().isContainedInEnabledState() ) { + g.setColor( ColorManager.DISABLED_FILLING ); + g.fillRoundRect( x, y + step - inc + 2, textWidth + 2, inc + 2, 5, 5 ); + } + + g.setColor( action.isEnabled() ? ColorManager.AVATAR_ACTION : ColorManager.DISABLED ); + g.drawString( formattedExpr, x, y + step ); + + step += inc; } } +// for (int i = 0; i < listOfActions.size(); i++) { +// s = listOfActions.get(i); +// if (s.length() > 0) { +// g.drawString(s, x, y + step); +// atLeastOneThing = true; +// if (tdp.isDrawingMain()) { +// width = Math.max(g.getFontMetrics().stringWidth(s), width); +// width = Math.max(minWidth, width); +// } +// step += inc; +// } +// } /*g.setColor(ColorManager.AVATAR_CODE); @@ -265,13 +376,51 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme width = minWidth; } - ColorManager.setColor(g, state, 0); + //ColorManager.setColor(g, state, 0); if ((getState() == TGState.POINTER_ON_ME) || (getState() == TGState.POINTED) || (getState() == TGState.MOVING)) { - g.drawRoundRect(x - 1, y - h + 2, width + 2, height + 2, 5, 5); + ColorManager.setColor( g, state, 0, isEnabled() ); + + final Rectangle rectangle = new Rectangle( x - 1, y - h + 2, width + 2, height + 2 ); + + if ( inc != 0 && isOnMe( tdp.currentX, tdp.currentY ) == this ) { + + // Issue #69: Draw rectangle only around the pointed line + final Expression selExpr = getSelectedExpression(); + final int exprWidth; + + if ( selExpr == null ) { + exprWidth = width; + } + else { + exprWidth = g.getFontMetrics().stringWidth( selExpr.toString() ); + ColorManager.setColor( g, state, 0, selExpr.isEnabled() ); + } + + final int pointedExpOrder = getPointedExpressionOrder() - 1; + + rectangle.y = y + pointedExpOrder * inc + 2; + rectangle.width = exprWidth + 2; + rectangle.height = inc + 2; + } + + g.drawRoundRect( rectangle.x, rectangle.y, rectangle.width, rectangle.height, 5, 5 ); + // g.drawRoundRect(x - 1, y - h + 2, width + 2, height + 2, 5, 5); } } + private int getExpressionTextHight() { + return h; + } + + private Integer getPointedExpressionOrder() { + if ( getExpressionTextHight() != 0 ) { + return ( tdp.currentY + 10 - y ) / getExpressionTextHight(); + } + + return null; + } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y - h + 2, width, height)) { return this; @@ -279,14 +428,27 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme return null; } + @Override public boolean isInRectangle(int x1, int y1, int width, int height) { return !((getX() < x1) || (getY() < y1) || ((getX() + this.width) > (x1 + width)) || ((getY() + this.height) > (y1 + height))); } + @Override public boolean editOndoubleClick(JFrame frame) { - LinkedList<TAttribute> attributes = tdp.getMGUI().getAllAttributes(); - LinkedList<AvatarMethod> methods = tdp.getMGUI().getAllMethods(); - JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability); + List<TAttribute> attributes = tdp.getMGUI().getAllAttributes(); + List<AvatarMethod> methods = tdp.getMGUI().getAllMethods(); + JDialogAvatarTransition jdat = new JDialogAvatarTransition( frame, + "Setting transition parameters", + getGuard(), + getAfterMinDelay(), + getAfterMaxDelay(), +// getComputeMinDelay(), +// getComputeMaxDelay(), + listOfActions, + attributes, + methods, + getProbability() ); + //JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability); // jdat.setSize(600, 550); GraphicLib.centerOnParent(jdat, 600, 550); jdat.setVisible(true); // blocked until dialog has been closed @@ -296,84 +458,115 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme return false; } - guard = jdat.getGuard().trim(); + guard.setText( jdat.getGuard().trim() ); - int index = guard.indexOf('['); + int index = getGuard().indexOf('['); if (index == -1) { - guard = "[ " + guard + " ]"; + guard.setText( "[ " + guard + " ]" ); } - afterMin = jdat.getAfterMin().trim(); - afterMax = jdat.getAfterMax().trim(); - computeMin = jdat.getComputeMin().trim(); - computeMax = jdat.getComputeMax().trim(); - filesToInclude = jdat.getFilesToInclude(); - codeToInclude = jdat.getCodeToInclude(); - probability = jdat.getProbability(); + afterDelay.getMinExpression().setText( jdat.getAfterMin().trim() ); + afterDelay.getMaxExpression().setText( jdat.getAfterMax().trim() ); +// computeDelay.getMinExpression().setText( jdat.getComputeMin().trim() ); +// computeDelay.getMaxExpression().setText( jdat.getComputeMax().trim() ); + listOfActions.clear(); + listOfActions.addAll( jdat.getActions() ); +// guard = jdat.getGuard().trim(); +// +// int index = guard.indexOf('['); +// if (index == -1) { +// guard = "[ " + guard + " ]"; +// } +// +// afterMin = jdat.getAfterMin().trim(); +// afterMax = jdat.getAfterMax().trim(); +// computeMin = jdat.getComputeMin().trim(); +// computeMax = jdat.getComputeMax().trim(); +// filesToInclude = jdat.getFilesToInclude(); +// codeToInclude = jdat.getCodeToInclude(); + probability.setText( jdat.getProbability().trim() ); + return true; } + + private String toXML( final String tag, + final Expression expression ) { + return "<" + tag + " value=\"" + GTURTLEModeling.transformString( expression.getText() ) + "\" enabled=\"" + expression.isEnabled() + "\"/>" + System.lineSeparator(); + } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); - sb.append("<guard value=\""); - sb.append(GTURTLEModeling.transformString(guard)); - sb.append("\" />\n"); - - sb.append("<afterMin value=\""); - sb.append(GTURTLEModeling.transformString(afterMin)); - sb.append("\" />\n"); - - sb.append("<afterMax value=\""); - sb.append(GTURTLEModeling.transformString(afterMax)); - sb.append("\" />\n"); - - sb.append("<computeMin value=\""); - sb.append(GTURTLEModeling.transformString(computeMin)); - sb.append("\" />\n"); - - sb.append("<computeMax value=\""); - sb.append(GTURTLEModeling.transformString(computeMax)); - sb.append("\" />\n"); - - sb.append("<probability value=\""); - sb.append(GTURTLEModeling.transformString(probability)); - sb.append("\" />\n"); - - for (int i = 0; i < listOfActions.size(); i++) { - sb.append("<actions value=\""); - sb.append(GTURTLEModeling.transformString(listOfActions.get(i))); - sb.append("\" />\n"); - } - - if (filesToInclude != null) { - for (int i = 0; i < filesToInclude.length; i++) { - sb.append("<filesToIncludeLine value=\""); - sb.append(GTURTLEModeling.transformString(filesToInclude[i])); - sb.append("\" />\n"); - } - } - - if (codeToInclude != null) { - for (int i = 0; i < codeToInclude.length; i++) { - sb.append("<codeToIncludeLine value=\""); - sb.append(GTURTLEModeling.transformString(codeToInclude[i])); - sb.append("\" />\n"); - } + sb.append( toXML( "guard", guard ) ); + sb.append( toXML( "afterMin", afterDelay.getMinExpression() ) ); + sb.append( toXML( "afterMax", afterDelay.getMaxExpression() ) ); + sb.append( toXML( "computeMin", computeDelay.getMinExpression() ) ); + sb.append( toXML( "computeMax", computeDelay.getMaxExpression() ) ); + sb.append( toXML( "probability", probability ) ); +// sb.append("<guard value=\""); +// sb.append(GTURTLEModeling.transformString(guard)); +// sb.append("\" />\n"); +// +// sb.append("<afterMin value=\""); +// sb.append(GTURTLEModeling.transformString(afterMin)); +// sb.append("\" />\n"); +// +// sb.append("<afterMax value=\""); +// sb.append(GTURTLEModeling.transformString(afterMax)); +// sb.append("\" />\n"); +// +// sb.append("<computeMin value=\""); +// sb.append(GTURTLEModeling.transformString(computeMin)); +// sb.append("\" />\n"); +// +// sb.append("<computeMax value=\""); +// sb.append(GTURTLEModeling.transformString(computeMax)); +// sb.append("\" />\n"); + +// sb.append("<probability value=\""); +// sb.append(GTURTLEModeling.transformString(probability)); +// sb.append("\" />\n"); + + for( final Expression action : listOfActions ) { + sb.append( toXML( "actions", action ) ); } +// +// for (int i = 0; i < listOfActions.size(); i++) { +// sb.append("<actions value=\""); +// sb.append(GTURTLEModeling.transformString(listOfActions.get(i))); +// sb.append("\" />\n"); +// } +// +// if (filesToInclude != null) { +// for (int i = 0; i < filesToInclude.length; i++) { +// sb.append("<filesToIncludeLine value=\""); +// sb.append(GTURTLEModeling.transformString(filesToInclude[i])); +// sb.append("\" />\n"); +// } +// } +// +// if (codeToInclude != null) { +// for (int i = 0; i < codeToInclude.length; i++) { +// sb.append("<codeToIncludeLine value=\""); +// sb.append(GTURTLEModeling.transformString(codeToInclude[i])); +// sb.append("\" />\n"); +// } +// } sb.append("</extraparam>\n"); + return new String(sb); } @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { // - String tmpFilesToInclude = ""; - String tmpCodeToInclude = ""; +// String tmpFilesToInclude = ""; +// String tmpCodeToInclude = ""; try { - listOfActions = new Vector<String>(); - + listOfActions = new Vector<Expression>(); +// listOfActions = new Vector<String>(); NodeList nli; Node n1, n2; Element elt; @@ -393,43 +586,100 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme if (elt.getTagName().equals("guard")) { s = elt.getAttribute("value"); if (s != null) { - guard = s; + guard.setText( s ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute("enabled"); + + if ( s != null && !s.isEmpty() ) { + guard.setEnabled( Boolean.parseBoolean( s ) ); + } +// guard = s; } } if (elt.getTagName().equals("afterMin")) { s = elt.getAttribute("value"); if (s != null) { - afterMin = s; + afterDelay.getMinExpression().setText( s ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute( "enabled" ); + + if ( s != null && !s.isEmpty() ) { + afterDelay.getMinExpression().setEnabled( Boolean.parseBoolean( s ) ); + } +// afterMin = s; } } if (elt.getTagName().equals("afterMax")) { s = elt.getAttribute("value"); if (s != null) { - afterMax = s; + afterDelay.getMaxExpression().setText( s ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute("enabled"); + + if ( s != null && !s.isEmpty() ) { + afterDelay.getMaxExpression().setEnabled( Boolean.parseBoolean( s ) ); + } +// afterMax = s; } } if (elt.getTagName().equals("computeMin")) { s = elt.getAttribute("value"); if (s != null) { - computeMin = s; + computeDelay.getMinExpression().setText( s ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute("enabled"); + + if ( s != null && !s.isEmpty() ) { + computeDelay.getMinExpression().setEnabled( Boolean.parseBoolean( s ) ); + } + //computeMin = s; } } if (elt.getTagName().equals("computeMax")) { s = elt.getAttribute("value"); if (s != null) { - computeMax = s; + computeDelay.getMaxExpression().setText( s ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute("enabled"); + + if ( s != null && !s.isEmpty() ) { + computeDelay.getMaxExpression().setEnabled( Boolean.parseBoolean( s ) ); + } + //computeMax = s; } } if (elt.getTagName().equals("probability")) { s = elt.getAttribute("value"); if (s != null) { - probability = s; + probability.setText( s ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute("enabled"); + + if ( s != null && !s.isEmpty() ) { + probability.setEnabled( Boolean.parseBoolean( s ) ); + } +// probability = s; } } if (elt.getTagName().equals("actions")) { s = elt.getAttribute("value"); if (s != null) { - listOfActions.add(s); + final Expression action = new Expression( s ); + listOfActions.add( action ); + + // Issue #69 loading enabling parameters + s = elt.getAttribute("enabled"); + + if ( s != null && !s.isEmpty() ) { + action.setEnabled( Boolean.parseBoolean( s ) ); + } + //listOfActions.add(s); } } @@ -456,100 +706,306 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme } } catch (Exception e) { - throw new MalformedModelingException(); - } - - - if (tmpFilesToInclude.trim().length() == 0) { - filesToInclude = null; - } else { - filesToInclude = Conversion.wrapText(tmpFilesToInclude); - } - if (tmpCodeToInclude.trim().length() == 0) { - codeToInclude = null; - } else { - codeToInclude = Conversion.wrapText(tmpCodeToInclude); + throw new MalformedModelingException( e ); } +// +// +// if (tmpFilesToInclude.trim().length() == 0) { +// filesToInclude = null; +// } else { +// filesToInclude = Conversion.wrapText(tmpFilesToInclude); +// } +// if (tmpCodeToInclude.trim().length() == 0) { +// codeToInclude = null; +// } else { +// codeToInclude = Conversion.wrapText(tmpCodeToInclude); +// } } public String getGuard() { - return guard; + return guard.getText(); +// return guard; + } + + /** + * Issue #69 + * @return + */ + public String getEffectiveGuard() { + return guard.getEffectiveExpression( DISABLED_GUARD_EXPR ); } public String getAfterMinDelay() { - return afterMin; + return afterDelay.getMinExpression().getText(); +// return afterMin; + } + + /** + * Issue #69 + * @return + */ + public String getEffectiveAfterMinDelay() { + return afterDelay.getMinExpression().getEffectiveExpression( DISABLED_DELAY_EXPR ); } public String getAfterMaxDelay() { - return afterMax; + return afterDelay.getMaxExpression().getText(); + //return afterMax; + } + + /** + * Issue #69 + * @return + */ + public String getEffectiveAfterMaxDelay() { + return afterDelay.getMaxExpression().getEffectiveExpression( DISABLED_DELAY_EXPR ); } public String getComputeMinDelay() { - return computeMin; + return computeDelay.getMinExpression().getText(); + //return computeMin; } - public String getComputeMaxDelay() { - return computeMax; + /** + * Issue #69 + * @return + */ + public String getEffectiveComputeMinDelay() { + return computeDelay.getMinExpression().getEffectiveExpression( DISABLED_DELAY_EXPR ); } - public String getProbability() { - return probability; + public String getComputeMaxDelay() { + return computeDelay.getMaxExpression().getText(); + //return computeMax; } - public void setTimes(String minDelay, String maxDelay, String minCompute, String maxCompute) { - computeMin = minCompute; - computeMax = maxCompute; - afterMin = minDelay; - afterMax = maxDelay; + /** + * Issue #69 + * @return + */ + public String getEffectiveComputeMaxDelay() { + return computeDelay.getMaxExpression().getEffectiveExpression( DISABLED_DELAY_EXPR ); } - public Vector<String> getActions() { - return listOfActions; + public String getProbability() { + return probability.getText(); } - public boolean hasFilesToInclude() { - return ((filesToInclude != null) && (filesToInclude.length > 0)); + public String getEffectiveProbability() { + return probability.getEffectiveExpression( DISABLED_PROBABILITY_EXPR ); } - public boolean hasCodeToInclude() { - return ((codeToInclude != null) && (codeToInclude.length > 0)); + public void setTimes(String minDelay, String maxDelay, String minCompute, String maxCompute) { + computeDelay.getMinExpression().setText( minCompute ); + computeDelay.getMaxExpression().setText( maxCompute ); + afterDelay.getMinExpression().setText( minDelay ); + afterDelay.getMaxExpression().setText(maxDelay ); +// computeMin = minCompute; +// computeMax = maxCompute; +// afterMin = minDelay; +// afterMax = maxDelay; } - public String getFilesToInclude() { - if (filesToInclude == null) { - return null; - } - String ret = ""; - for (int i = 0; i < filesToInclude.length; i++) { - ret += filesToInclude[i] + "\n"; - } - return ret; + public Vector<String> getActions() { + final Vector<String> actionExpressions = new Vector<String>( listOfActions.size() ); + + for ( final Expression action : listOfActions ) { + actionExpressions.add( action.getText() ); + } + + return actionExpressions; +// return listOfActions; } - public String getCodeToInclude() { - if (codeToInclude == null) { - return null; - } - String ret = ""; - for (int i = 0; i < codeToInclude.length; i++) { - ret += codeToInclude[i] + "\n"; - } - return ret; + /** + * Issue #69 + * @return + */ + public Vector<String> getEffectiveActions() { + final Vector<String> actionExpressions = new Vector<String>( listOfActions.size() ); + + for ( final Expression action : listOfActions ) { + actionExpressions.add( action.getEffectiveExpression( DISABLED_ACTION_EXPR ) ); + } + + return actionExpressions; } +// +// public boolean hasFilesToInclude() { +// return ((filesToInclude != null) && (filesToInclude.length > 0)); +// } +// +// public boolean hasCodeToInclude() { +// return ((codeToInclude != null) && (codeToInclude.length > 0)); +// } +// +// public String getFilesToInclude() { +// if (filesToInclude == null) { +// return null; +// } +// String ret = ""; +// for (int i = 0; i < filesToInclude.length; i++) { +// ret += filesToInclude[i] + "\n"; +// } +// return ret; +// } +// +// public String getCodeToInclude() { +// if (codeToInclude == null) { +// return null; +// } +// String ret = ""; +// for (int i = 0; i < codeToInclude.length; i++) { +// ret += codeToInclude[i] + "\n"; +// } +// return ret; +// } public String getAttributes() { String attr = ""; - if (guard.length() > 0) + if ( !guard.isNull()) attr += " guard: " + getGuard(); - if (afterMin.length() > 0 || afterMax.length()>0) - attr += " delay: [" + afterMin + "," + afterMax + "] "; - if (probability.length() > 0) - attr += " weight:" + probability; + if (!afterDelay.isNull() ) + attr += " delay: [" + afterDelay.getMinExpression().getText() + "," + afterDelay.getMaxExpression().getText() + "] "; + if ( !probability.isNull() ) + attr += " weight:" + getProbability(); - for(String s: listOfActions) - attr += " / " + s; + for(final Expression action : listOfActions) { + attr += " / " + action.getText(); + } return attr; + } + + @Override + public AvatarSMDConnector getFather() { + return (AvatarSMDConnector) super.getFather(); + } + + @Override + public void setFather( final TGComponent _father ) { + if ( _father != null && !( _father instanceof AvatarSMDConnector ) ) { + throw new IllegalArgumentException( "Father should be an instance of '" + AvatarSMDConnector.class.getName() + "'." ); + } + + super.setFather( _father ); + } + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + final AvatarSMDConnector transitionCon = getFather(); + + if ( transitionCon == null ) { + return false; + } + + return transitionCon.canBeDisabledContainer(); } + + @Override + public void setEnabled( final boolean enabled ) { + final Expression selExpr = getSelectedExpression(); + + if ( selExpr == null ) { + guard.setEnabled( enabled ); + afterDelay.setEnabled( enabled ); + computeDelay.setEnabled( enabled ); + probability.setEnabled( enabled ); + + for ( final Expression actionExpr : listOfActions ) { + actionExpr.setEnabled( enabled ); + } + } + else { + selExpr.setEnabled( enabled ); + } + } + + @Override + public boolean isEnabled() { + return isEnabledCheckNull( false ); + } + + public boolean isEnabledNotNull() { + return isEnabledCheckNull( true ); + } + + private boolean isEnabledCheckNull( final boolean checkNull ) { + + // Used by the UI to toggle enabled + final Expression selExpr = getSelectedExpression(); + + if ( selExpr != null ) { + return selExpr.isEnabled(); + } + + for ( final Expression actExpr : listOfActions ) { + if ( actExpr.isEnabled() ) { + return true; + } + } + + return ( guard.isEnabled() && ( !checkNull || !guard.isNull() ) ) || + ( afterDelay.isEnabled() && ( !checkNull || !afterDelay.isNull() ) ) || + ( computeDelay.isEnabled() && ( !checkNull || !computeDelay.isNull() ) ) || + ( probability.isEnabled() && ( !checkNull || !probability.isNull() ) ); + } + + public boolean isNull() { + for ( final Expression actExpr : listOfActions ) { + if ( !actExpr.isNull() ) { + return false; + } + } + + return guard.isNull() && afterDelay.isNull() && computeDelay.isNull() && probability.isNull(); + } + + private List<Expression> getNonNullExpressions() { + final List<Expression> expressions = new ArrayList<Expression>(); + + if ( !guard.isNull() ) { + expressions.add( guard ); + } + + if ( !afterDelay.isNull() ) { + expressions.add( afterDelay ); + } + + if ( !computeDelay.isNull() ) { + expressions.add( computeDelay ); + } + + if ( !probability.isNull() ) { + expressions.add( probability ); + } + + for ( final Expression expr : listOfActions ) { + if ( !expr.isNull() ) { + expressions.add( expr ); + } + } + + return expressions; + } + + private Expression getSelectedExpression() { + final Integer selectedExpressionIndex = getPointedExpressionOrder(); + + if ( selectedExpressionIndex == null || selectedExpressionIndex < 0 ) { + return null; + } + + final List<Expression> expressions = getNonNullExpressions(); + + if ( selectedExpressionIndex >= expressions.size() ) { + return null; + } + + return expressions.get( selectedExpressionIndex ); + } } diff --git a/src/main/java/ui/avatarsmd/EnablingAvatarSMDConnectorVisitor.java b/src/main/java/ui/avatarsmd/EnablingAvatarSMDConnectorVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..a528ab7029f01f90d1edc9b217ef059f3e3bb630 --- /dev/null +++ b/src/main/java/ui/avatarsmd/EnablingAvatarSMDConnectorVisitor.java @@ -0,0 +1,31 @@ +package ui.avatarsmd; + +import ui.CDElement; +import ui.TrackingCDElementVisitor; + +public class EnablingAvatarSMDConnectorVisitor extends TrackingCDElementVisitor { + + private final boolean enabled; + + public EnablingAvatarSMDConnectorVisitor( final boolean enabled ) { + super(); + + this.enabled = enabled; + } + + @Override + public boolean visit( final CDElement element ) { + if ( !super.visit( element ) ) { + return false; + } + + if ( element instanceof AvatarSMDConnector ) { + ( (AvatarSMDConnector) element ).getAvatarSMDTransitionInfo().setEnabled( enabled ); + } + else if ( element.canBeDisabled() ) { + element.setEnabled( enabled ); + } + + return true; + } +} diff --git a/src/main/java/ui/avatarsmd/FindAvatarSMDComponentsToBeTranslatedVisitor.java b/src/main/java/ui/avatarsmd/FindAvatarSMDComponentsToBeTranslatedVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..7a1877ad55238b4f8846ebfe463f2d2b2dc2c49c --- /dev/null +++ b/src/main/java/ui/avatarsmd/FindAvatarSMDComponentsToBeTranslatedVisitor.java @@ -0,0 +1,105 @@ +package ui.avatarsmd; + +import java.util.LinkedHashSet; +import java.util.Set; + +import ui.CDElement; +import ui.TGComponent; +import ui.TGConnector; +import ui.TrackingCDElementVisitor; + +public class FindAvatarSMDComponentsToBeTranslatedVisitor extends TrackingCDElementVisitor { + + private final Set<TGComponent> componentsToBeTranslated; + + private final Set<TGConnector> prunedConnectors; + + public FindAvatarSMDComponentsToBeTranslatedVisitor() { + componentsToBeTranslated = new LinkedHashSet<TGComponent>(); + prunedConnectors = new LinkedHashSet<TGConnector>(); + } + + @Override + public boolean visit( final CDElement element ) { + if ( !super.visit( element ) ) { + return false; + } + + if ( element instanceof TGComponent && !( element instanceof TGConnector ) ) { + final TGComponent component = (TGComponent) element; + + if ( shouldBeTranslated( component ) ) { + componentsToBeTranslated.add( (TGComponent) element ); + } + } + + return true; + } + + public Set<TGComponent> getComponentsToBeTranslated() { + return componentsToBeTranslated; + } + + private boolean shouldBeTranslated( final TGComponent diagramCompo ) { + + // Do not translate components contained in disabled components (e.g. composite state machines) + if ( diagramCompo.getFather() != null && !diagramCompo.getFather().isEnabled() ) { + return false; + } + + if ( diagramCompo.isEnabled() ) { + return true; + } + + // We don't know if the target component can accept more than one input connections so we keep the node + if ( diagramCompo.getInputConnectors().size() > 1 ) { + return true; + } + + // We don't know if the source component can accept more than one output connections so we keep the node + if ( diagramCompo.getOutputConnectors().size() > 1 ) { + return true; + } + + final AvatarSMDConnector inputConnector = (AvatarSMDConnector) diagramCompo.getInputConnectors().get( 0 ); + final TGComponent previousCompo = (TGComponent) inputConnector.getTGConnectingPointP1().getFather(); + + // The previous component in the graph is not translated so we don't know if the new input edge will be + // null or enabled so we translate the component + if ( !componentsToBeTranslated.contains( previousCompo ) ) { + return true; + } + + final AvatarSMDTransitionInfo inputTransInfo = inputConnector.getAvatarSMDTransitionInfo(); + + // The input transition is null or disabled so the component does not need to be translated and the transition + // can be merged with the output transition + if ( inputTransInfo.isNull() || !inputTransInfo.isEnabledNotNull() ) { + prunedConnectors.add( inputConnector ); + + return false; + } + + if ( diagramCompo.getOutputConnectors().isEmpty() ) { + return true; + } + + final AvatarSMDConnector outputConnector = (AvatarSMDConnector) diagramCompo.getOutputConnectors().get( 0 ); + + final AvatarSMDTransitionInfo outputTransInfo = outputConnector.getAvatarSMDTransitionInfo(); + + // The output transition is null or disabled so the component does not need to be translated and the transition + // can be merged with the input transition + if ( outputTransInfo.isNull() || !inputTransInfo.isEnabledNotNull() ) { + prunedConnectors.add( outputConnector ); + + return false; + } + + return true; + } + + public Set<TGConnector> getPrunedConnectors() { + return prunedConnectors; + } +} diff --git a/src/main/java/ui/avatarsmd/FindNextEnabledAvatarSMDConnectingPointVisitor.java b/src/main/java/ui/avatarsmd/FindNextEnabledAvatarSMDConnectingPointVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..004dd4746d65faf915b16bc1404d8617ea151911 --- /dev/null +++ b/src/main/java/ui/avatarsmd/FindNextEnabledAvatarSMDConnectingPointVisitor.java @@ -0,0 +1,43 @@ +package ui.avatarsmd; + +import java.util.HashSet; +import java.util.Set; + +import ui.CDElement; +import ui.FindNextEnabledConnectingPointVisitor; +import ui.TGComponent; +import ui.TGConnector; + +public class FindNextEnabledAvatarSMDConnectingPointVisitor extends FindNextEnabledConnectingPointVisitor { + + private final Set<TGComponent> componentsToBeTranslated; + + public FindNextEnabledAvatarSMDConnectingPointVisitor( final Set<TGConnector> disabledConnectors, + final Set<TGComponent> componentsToBeTranslated ) { + super( disabledConnectors ); + + this.componentsToBeTranslated = new HashSet<TGComponent>(); + this.componentsToBeTranslated.addAll( componentsToBeTranslated ); + } + + @Override + protected boolean pruneConnector( final TGConnector connector ) { + final AvatarSMDConnector smdCon = (AvatarSMDConnector) connector; + + final AvatarSMDState containingState = smdCon.getContainingState(); + + // Do not translate connectors that connect two component contained in a disabled state machine + if ( containingState != null && !containingState.isEnabled() ) { + return true; + } + + final AvatarSMDTransitionInfo transInfo = smdCon.getAvatarSMDTransitionInfo(); + + return !transInfo.isEnabledNotNull() || transInfo.isNull(); + } + + @Override + protected boolean pruneElement( final CDElement diagramElement ) { + return !componentsToBeTranslated.contains( diagramElement ); + } +} diff --git a/src/main/java/ui/eln/ELNCluster.java b/src/main/java/ui/eln/ELNCluster.java index 89294a742349cc508ff2cf252e355c421c328135..af1acdd6df24a891e0a91262e26e96fa617c4fdd 100644 --- a/src/main/java/ui/eln/ELNCluster.java +++ b/src/main/java/ui/eln/ELNCluster.java @@ -40,7 +40,6 @@ package ui.eln; import myutil.GraphicLib; import ui.*; -import ui.syscams.*; import ui.util.IconManager; import java.awt.*; import java.util.*; @@ -88,7 +87,7 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal removable = true; userResizable = true; - value = tdp.findELNComponentName("Cluster"); + value = "cluster"; } public void internalDrawing(Graphics g) { @@ -200,9 +199,11 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal public boolean acceptSwallowedTGComponent(TGComponent tgc) { if (tgc instanceof ELNModule) { return true; - } else if (tgc instanceof SysCAMSPortDE) { + } else if (tgc instanceof ELNClusterTerminal) { return true; - } else if (tgc instanceof SysCAMSPortTDF) { + } else if (tgc instanceof ELNClusterPortDE) { + return true; + } else if (tgc instanceof ELNClusterPortTDF) { return true; } return false; @@ -234,10 +235,13 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal if (tgc instanceof ELNModule) { tgc.resizeWithFather(); } - if (tgc instanceof SysCAMSPortDE) { + if (tgc instanceof ELNClusterTerminal) { + tgc.resizeWithFather(); + } + if (tgc instanceof ELNClusterPortDE) { tgc.resizeWithFather(); } - if (tgc instanceof SysCAMSPortTDF) { + if (tgc instanceof ELNClusterPortTDF) { tgc.resizeWithFather(); } addInternalComponent(tgc, 0); @@ -273,10 +277,13 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal if (tgcomponent[i] instanceof ELNModule) { tgcomponent[i].resizeWithFather(); } - if (tgcomponent[i] instanceof SysCAMSPortDE) { + if (tgcomponent[i] instanceof ELNClusterTerminal) { + tgcomponent[i].resizeWithFather(); + } + if (tgcomponent[i] instanceof ELNClusterPortDE) { tgcomponent[i].resizeWithFather(); } - if (tgcomponent[i] instanceof SysCAMSPortTDF) { + if (tgcomponent[i] instanceof ELNClusterPortTDF) { tgcomponent[i].resizeWithFather(); } } @@ -296,21 +303,31 @@ public class ELNCluster extends TGCScalableWithInternalComponent implements Swal return list; } - public java.util.List<SysCAMSPortDE> getAllPortDE() { - java.util.List<SysCAMSPortDE> list = new ArrayList<SysCAMSPortDE>(); + public java.util.List<ELNClusterTerminal> getAllClusterTerminal() { + java.util.List<ELNClusterTerminal> list = new ArrayList<ELNClusterTerminal>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNClusterTerminal) { + list.add((ELNClusterTerminal)(tgcomponent[i])); + } + } + return list; + } + + public java.util.List<ELNClusterPortDE> getAllClusterPortDE() { + java.util.List<ELNClusterPortDE> list = new ArrayList<ELNClusterPortDE>(); for(int i=0; i<nbInternalTGComponent; i++) { - if (tgcomponent[i] instanceof SysCAMSPortDE) { - list.add((SysCAMSPortDE)(tgcomponent[i])); + if (tgcomponent[i] instanceof ELNClusterPortDE) { + list.add((ELNClusterPortDE)(tgcomponent[i])); } } return list; } - public java.util.List<SysCAMSPortTDF> getAllPortTDF() { - java.util.List<SysCAMSPortTDF> list = new ArrayList<SysCAMSPortTDF>(); + public java.util.List<ELNClusterPortTDF> getAllClusterPortTDF() { + java.util.List<ELNClusterPortTDF> list = new ArrayList<ELNClusterPortTDF>(); for(int i=0; i<nbInternalTGComponent; i++) { - if (tgcomponent[i] instanceof SysCAMSPortTDF) { - list.add((SysCAMSPortTDF)(tgcomponent[i])); + if (tgcomponent[i] instanceof ELNClusterPortTDF) { + list.add((ELNClusterPortTDF)(tgcomponent[i])); } } return list; diff --git a/src/main/java/ui/eln/ELNClusterPortDE.java b/src/main/java/ui/eln/ELNClusterPortDE.java new file mode 100644 index 0000000000000000000000000000000000000000..66aef3e1ff000bbd64c8f1793055d93716c879a2 --- /dev/null +++ b/src/main/java/ui/eln/ELNClusterPortDE.java @@ -0,0 +1,342 @@ +/* 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.eln; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.window.*; +import javax.swing.*; +import java.awt.*; + +/** + * Class ELNClusterPortDE + * Composite port. To be used in ELN diagrams + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNClusterPortDE extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + protected int oldx, oldy; + protected int currentOrientation = GraphicLib.NORTH; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private String type; + private String origin; + + public ELNClusterPortDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(20, 20); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initConnectingPoint(1); + + addTGConnectingPointsComment(); + + nbInternalTGComponent = 0; + + moveable = true; + editable = true; + removable = true; + userResizable = false; + + value = ""; + type = "bool"; + origin = "in"; + } + + public void initConnectingPoint(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, ""); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + + if ((x != oldx) | (oldy != y)) { + manageMove(g, f); + oldx = x; + oldy = y; + } else { + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + } + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.setFont(fold); + } + + public void manageMove(Graphics g, Font f) { + if (father != null) { + Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(), + father.getWidth(), father.getHeight()); + + x = p.x - width / 2; + y = p.y - height / 2; + + setMoveCd(x, y); + + int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(), + father.getY(), father.getWidth(), father.getHeight()); + + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + + switch (orientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + + if (orientation != currentOrientation) { + setOrientation(orientation); + } + } + } + + public void setOrientation(int orientation) { + currentOrientation = orientation; + double w0, h0; + + switch (orientation) { + case GraphicLib.NORTH: + w0 = 0.5; + h0 = 1.0; + break; + case GraphicLib.WEST: + w0 = 1.0; + h0 = 0.5; + break; + case GraphicLib.SOUTH: + w0 = 0.5; + h0 = 0.0; + break; + case GraphicLib.EAST: + default: + w0 = 0.0; + h0 = 0.5; + } + + ((ELNConnectingPoint) connectingPoint[0]).setW(w0); + ((ELNConnectingPoint) connectingPoint[0]).setH(h0); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_CLUSTER_PORT_DE; + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNCluster)) { + setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2, + father.getHeight() - (getHeight() / 2)); + setMoveCd(x, y); + oldx = -1; + oldy = -1; + } + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNClusterPortDE jde = new JDialogELNClusterPortDE(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes name=\"" + value); + sb.append("\" type=\"" + type); + sb.append("\" origin=\"" + origin + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + String name, type, origin; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + name = elt.getAttribute("name"); + type = elt.getAttribute("type"); + origin = elt.getAttribute("origin"); + setValue(name); + setPortType(type); + setOrigin(origin); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public String getPortType() { + return type; + } + + public void setPortType(String _type) { + type = _type; + } + + public String getOrigin() { + return origin; + } + + public void setOrigin(String _origin) { + origin = _origin; + } +} \ No newline at end of file diff --git a/src/main/java/ui/eln/ELNClusterPortTDF.java b/src/main/java/ui/eln/ELNClusterPortTDF.java new file mode 100644 index 0000000000000000000000000000000000000000..bd14e5564de6f45d2f526e445835a0a62d1eaf26 --- /dev/null +++ b/src/main/java/ui/eln/ELNClusterPortTDF.java @@ -0,0 +1,342 @@ +/* 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.eln; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.window.*; +import javax.swing.*; +import java.awt.*; + +/** + * Class ELNClusterPortTDF + * Composite port. To be used in ELN diagrams + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNClusterPortTDF extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + protected int oldx, oldy; + protected int currentOrientation = GraphicLib.NORTH; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private String type; + private String origin; + + public ELNClusterPortTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(20, 20); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initConnectingPoint(1); + + addTGConnectingPointsComment(); + + nbInternalTGComponent = 0; + + moveable = true; + editable = true; + removable = true; + userResizable = false; + + value = ""; + type = "bool"; + origin = "in"; + } + + public void initConnectingPoint(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, ""); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + + if ((x != oldx) | (oldy != y)) { + manageMove(g, f); + oldx = x; + oldy = y; + } else { + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + } + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + g.setColor(Color.BLACK); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.setFont(fold); + } + + public void manageMove(Graphics g, Font f) { + if (father != null) { + Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(), + father.getWidth(), father.getHeight()); + + x = p.x - width / 2; + y = p.y - height / 2; + + setMoveCd(x, y); + + int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(), + father.getY(), father.getWidth(), father.getHeight()); + + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + + switch (orientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + + if (orientation != currentOrientation) { + setOrientation(orientation); + } + } + } + + public void setOrientation(int orientation) { + currentOrientation = orientation; + double w0, h0; + + switch (orientation) { + case GraphicLib.NORTH: + w0 = 0.5; + h0 = 1.0; + break; + case GraphicLib.WEST: + w0 = 1.0; + h0 = 0.5; + break; + case GraphicLib.SOUTH: + w0 = 0.5; + h0 = 0.0; + break; + case GraphicLib.EAST: + default: + w0 = 0.0; + h0 = 0.5; + } + + ((ELNConnectingPoint) connectingPoint[0]).setW(w0); + ((ELNConnectingPoint) connectingPoint[0]).setH(h0); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_CLUSTER_PORT_TDF; + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNCluster)) { + setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2, + father.getHeight() - (getHeight() / 2)); + setMoveCd(x, y); + oldx = -1; + oldy = -1; + } + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNClusterPortTDF jde = new JDialogELNClusterPortTDF(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes name=\"" + value); + sb.append("\" type=\"" + type); + sb.append("\" origin=\"" + origin + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + String name, type, origin; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + name = elt.getAttribute("name"); + type = elt.getAttribute("type"); + origin = elt.getAttribute("origin"); + setValue(name); + setPortType(type); + setOrigin(origin); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public String getPortType() { + return type; + } + + public void setPortType(String _type) { + type = _type; + } + + public String getOrigin() { + return origin; + } + + public void setOrigin(String _origin) { + origin = _origin; + } +} \ No newline at end of file diff --git a/src/main/java/ui/eln/ELNClusterTerminal.java b/src/main/java/ui/eln/ELNClusterTerminal.java new file mode 100644 index 0000000000000000000000000000000000000000..e1d83e0b79671e703c395ac4747a9e1788d84cef --- /dev/null +++ b/src/main/java/ui/eln/ELNClusterTerminal.java @@ -0,0 +1,315 @@ +/* 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.eln; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.window.*; +import javax.swing.*; +import java.awt.*; + +/** + * Class ELNClusterTerminal + * Composite port. To be used in ELN diagrams + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNClusterTerminal extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + protected int oldx, oldy; + protected int currentOrientation = GraphicLib.NORTH; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + public ELNClusterTerminal(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(10, 10); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initConnectingPoint(1); + + addTGConnectingPointsComment(); + + nbInternalTGComponent = 0; + + moveable = true; + editable = true; + removable = true; + userResizable = false; + + value = ""; + } + + public void initConnectingPoint(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, ""); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + + if ((x != oldx) | (oldy != y)) { + manageMove(g, f); + oldx = x; + oldy = y; + } else { + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + } + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + g.drawOval(x, y, width, height); + g.setColor(Color.WHITE); + g.fillOval(x, y, width, height); + g.setColor(c); + g.setFont(fold); + } + + public void manageMove(Graphics g, Font f) { + if (father != null) { + Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(), + father.getWidth(), father.getHeight()); + + x = p.x - width / 2; + y = p.y - height / 2; + + setMoveCd(x, y); + + int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(), + father.getY(), father.getWidth(), father.getHeight()); + + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + + switch (orientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + + if (orientation != currentOrientation) { + setOrientation(orientation); + } + } + } + + public void setOrientation(int orientation) { + currentOrientation = orientation; + double w0, h0; + + switch (orientation) { + case GraphicLib.NORTH: + w0 = 0.5; + h0 = 1.0; + break; + case GraphicLib.WEST: + w0 = 1.0; + h0 = 0.5; + break; + case GraphicLib.SOUTH: + w0 = 0.5; + h0 = 0.0; + break; + case GraphicLib.EAST: + default: + w0 = 0.0; + h0 = 0.5; + } + + ((ELNConnectingPoint) connectingPoint[0]).setW(w0); + ((ELNConnectingPoint) connectingPoint[0]).setH(h0); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_CLUSTER_TERMINAL; + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNCluster)) { + setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2, + father.getHeight() - (getHeight() / 2)); + setMoveCd(x, y); + oldx = -1; + oldy = -1; + } + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNClusterTerminal jde = new JDialogELNClusterTerminal(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes name=\"" + getValue() + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + String name; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + name = elt.getAttribute("name"); + setValue(name); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } +} \ No newline at end of file diff --git a/src/main/java/ui/eln/ELNComponent.java b/src/main/java/ui/eln/ELNComponent.java deleted file mode 100644 index 5c3b72da30ae3f14312a1c576d12940e399fb259..0000000000000000000000000000000000000000 --- a/src/main/java/ui/eln/ELNComponent.java +++ /dev/null @@ -1,5 +0,0 @@ -package ui.eln; - -public interface ELNComponent { - -} diff --git a/src/main/java/ui/eln/ELNConnector.java b/src/main/java/ui/eln/ELNConnector.java index cc47660df14ade887ed6ddd8c99466ff34dbcb30..d15fa72874add4ba68e04c562d8f613ec571155c 100644 --- a/src/main/java/ui/eln/ELNConnector.java +++ b/src/main/java/ui/eln/ELNConnector.java @@ -39,12 +39,13 @@ package ui.eln; import ui.*; -import ui.eln.sca_eln.ELNComponentNodeRef; +import ui.eln.sca_eln_sca_tdf.*; import ui.util.IconManager; import ui.window.JDialogELNConnector; import java.awt.*; import java.util.*; import javax.swing.JFrame; +import myutil.GraphicLib; /** * Class ELNConnector @@ -64,7 +65,7 @@ public class ELNConnector extends TGConnector implements ScalableTGComponent { value = ""; editable = false; oldScaleFactor = tdp.getZoom(); - + p1 = _p1; p2 = _p2; } @@ -83,50 +84,159 @@ public class ELNConnector extends TGConnector implements ScalableTGComponent { return true; } - protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2) { + protected void drawLastSegment(Graphics gr, int x1, int y1, int x2, int y2) { + Graphics2D g = (Graphics2D) gr; + int w = g.getFontMetrics().stringWidth(value); Font fold = g.getFont(); Font f = fold.deriveFont(Font.ITALIC, (float) (tdp.getFontSize())); g.setFont(f); - if (get_p1().getFather() instanceof ELNComponent) { - if (get_p2().getFather() instanceof ELNComponent) { - editable = true; - g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + + ELNConnectingPoint pt1 = (ELNConnectingPoint) p1; + ELNConnectingPoint pt2 = (ELNConnectingPoint) p2; + + if ((pt1.getFather() instanceof ELNPrimitiveComponent && pt2.getFather() instanceof ELNPrimitiveComponent) || (pt2.getFather() instanceof ELNPrimitiveComponent && pt1.getFather() instanceof ELNPrimitiveComponent)) { + g.drawLine(x1, y1, x2, y2); + editable = true; + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt1.getFather() instanceof ELNPrimitiveComponent && pt2.getFather() instanceof ELNMidPortTerminal) { + ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) pt2.getFather()).getFather(); + g.drawLine(x1, y1, x2, y2); + if (connector.getValue().equals("")) { + value = searchName(connector); + } else { + value = connector.getValue(); } - if (get_p2().getFather() instanceof ELNMidPortTerminal) { - ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) get_p2().getFather()).getFather(); - if (!connector.getValue().equals("")) { - value = connector.getValue(); - } else { - value = searchName(connector); - } + } else if (pt2.getFather() instanceof ELNPrimitiveComponent && pt1.getFather() instanceof ELNMidPortTerminal) { + g.drawLine(x1, y1, x2, y2); + ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) pt1.getFather()).getFather(); + if (connector.getValue().equals("")) { + value = searchName(connector); + } else { + value = connector.getValue(); } - } - if (get_p1().getFather() instanceof ELNMidPortTerminal) { - if (get_p2().getFather() instanceof ELNComponent) { - ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) get_p1().getFather()).getFather(); - if (!connector.getValue().equals("")) { - value = connector.getValue(); - } else { - value = searchName(connector); - } + } else if ((pt1.getFather() instanceof ELNModuleTerminal && pt2.getFather() instanceof ELNModuleTerminal) || (pt2.getFather() instanceof ELNModuleTerminal && pt1.getFather() instanceof ELNModuleTerminal)) { + String name1 = ((ELNModuleTerminal) pt1.getFather()).getValue(); + String name2 = ((ELNModuleTerminal) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + g.drawLine(x1, y1, x2, y2); + editable = true; + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt1.getFather() instanceof ELNModuleTerminal && pt2.getFather() instanceof ELNClusterTerminal) { + String name1 = ((ELNModuleTerminal) pt1.getFather()).getValue(); + String name2 = ((ELNClusterTerminal) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + g.drawLine(x1, y1, x2, y2); + editable = true; + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt2.getFather() instanceof ELNModuleTerminal && pt1.getFather() instanceof ELNClusterTerminal) { + String name1 = ((ELNClusterTerminal) pt1.getFather()).getValue(); + String name2 = ((ELNModuleTerminal) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + g.drawLine(x1, y1, x2, y2); + editable = true; + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if ((pt1.getFather() instanceof ELNModulePortDE && pt2.getFather() instanceof ELNModulePortDE) || (pt2.getFather() instanceof ELNModulePortDE && pt1.getFather() instanceof ELNModulePortDE)) { + String name1 = ((ELNModulePortDE) pt1.getFather()).getValue(); + String name2 = ((ELNModulePortDE) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g.setStroke(dashed); + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); + editable = true; + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt1.getFather() instanceof ELNModulePortDE && pt2.getFather() instanceof ELNClusterPortDE) { + ((ELNClusterPortDE) pt2.getFather()).setPortType(((ELNModulePortDE) pt1.getFather()).getPortType()); + ((ELNClusterPortTDF) pt2.getFather()).setOrigin(((ELNModulePortDE) pt1.getFather()).getOrigin()); + ((ELNClusterPortTDF) pt2.getFather()).setValue(((ELNModulePortDE) pt1.getFather()).getValue()); + + String name1 = ((ELNModulePortDE) pt1.getFather()).getValue(); + String name2 = ((ELNClusterPortDE) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g.setStroke(dashed); + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt2.getFather() instanceof ELNModulePortDE && pt1.getFather() instanceof ELNClusterPortDE) { + ((ELNClusterPortDE) pt1.getFather()).setPortType(((ELNModulePortDE) pt2.getFather()).getPortType()); + ((ELNClusterPortDE) pt1.getFather()).setOrigin(((ELNModulePortDE) pt2.getFather()).getOrigin()); + ((ELNClusterPortDE) pt1.getFather()).setValue(((ELNModulePortDE) pt2.getFather()).getValue()); + + String name1 = ((ELNClusterPortDE) pt1.getFather()).getValue(); + String name2 = ((ELNModulePortDE) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; } + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g.setStroke(dashed); + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if ((pt1.getFather() instanceof ELNModulePortTDF && pt2.getFather() instanceof ELNModulePortTDF) || (pt2.getFather() instanceof ELNModulePortTDF && pt1.getFather() instanceof ELNModulePortTDF)) { + String name1 = ((ELNModulePortTDF) pt1.getFather()).getValue(); + String name2 = ((ELNModulePortTDF) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt1.getFather() instanceof ELNModulePortTDF && pt2.getFather() instanceof ELNClusterPortTDF) { + ((ELNClusterPortTDF) pt2.getFather()).setPortType(((ELNModulePortTDF) pt1.getFather()).getPortType()); + ((ELNClusterPortTDF) pt2.getFather()).setOrigin(((ELNModulePortTDF) pt1.getFather()).getOrigin()); + ((ELNClusterPortTDF) pt2.getFather()).setValue(((ELNModulePortTDF) pt1.getFather()).getValue()); + + String name1 = ((ELNModulePortTDF) pt1.getFather()).getValue(); + String name2 = ((ELNClusterPortTDF) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt2.getFather() instanceof ELNModulePortTDF && pt1.getFather() instanceof ELNClusterPortTDF) { + ((ELNClusterPortTDF) pt1.getFather()).setPortType(((ELNModulePortTDF) pt2.getFather()).getPortType()); + ((ELNClusterPortTDF) pt1.getFather()).setOrigin(((ELNModulePortTDF) pt2.getFather()).getOrigin()); + ((ELNClusterPortTDF) pt1.getFather()).setValue(((ELNModulePortTDF) pt2.getFather()).getValue()); + + String name1 = ((ELNClusterPortTDF) pt1.getFather()).getValue(); + String name2 = ((ELNModulePortTDF) pt2.getFather()).getValue(); + if (name1.equals(name2)) { + value = name1; + } + GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); + editable = true; + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + } else if (pt1.getFather() instanceof ELNModulePortTDF && (pt2.getFather() instanceof ELNComponentVoltageSourceTDF || pt2.getFather() instanceof ELNComponentVoltageSinkTDF || pt2.getFather() instanceof ELNComponentCurrentSourceTDF || pt2.getFather() instanceof ELNComponentCurrentSinkTDF)) { + g.drawLine(x1, y1, x2, y2); + value = ((ELNModulePortTDF) pt1.getFather()).getValue(); + } else if (pt2.getFather() instanceof ELNModulePortTDF && (pt1.getFather() instanceof ELNComponentVoltageSourceTDF || pt1.getFather() instanceof ELNComponentVoltageSinkTDF || pt1.getFather() instanceof ELNComponentCurrentSourceTDF || pt1.getFather() instanceof ELNComponentCurrentSinkTDF)) { + g.drawLine(x1, y1, x2, y2); + value = ((ELNModulePortTDF) pt2.getFather()).getValue(); + } else { + g.drawLine(x1, y1, x2, y2); } + g.setFont(fold); - - g.drawLine(x1, y1, x2, y2); } private String searchName(ELNConnector c) { - if (c.get_p1().getFather() instanceof ELNComponent) { - if (c.get_p2().getFather() instanceof ELNComponent) { + if (c.p1.getFather() instanceof ELNPrimitiveComponent) { + if (c.p2.getFather() instanceof ELNPrimitiveComponent) { return c.getValue(); } - if (c.get_p2().getFather() instanceof ELNComponentNodeRef || c.get_p2().getFather() instanceof ELNModuleTerminal) { + if (c.p2.getFather() instanceof ELNNodeRef || c.p2.getFather() instanceof ELNModuleTerminal) { return ""; } - if (c.get_p2().getFather() instanceof ELNMidPortTerminal) { - ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.get_p2().getFather()).getFather(); + if (c.p2.getFather() instanceof ELNMidPortTerminal) { + ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.p2.getFather()).getFather(); if (!connector.getValue().equals("")) { return connector.getValue(); } else { @@ -134,15 +244,15 @@ public class ELNConnector extends TGConnector implements ScalableTGComponent { } } } - if (c.get_p1().getFather() instanceof ELNComponentNodeRef || c.get_p1().getFather() instanceof ELNModuleTerminal) { + if (c.p1.getFather() instanceof ELNNodeRef || c.p1.getFather() instanceof ELNModuleTerminal) { return ""; } - if (c.get_p1().getFather() instanceof ELNMidPortTerminal) { - if (c.get_p2().getFather() instanceof ELNComponentNodeRef || c.get_p2().getFather() instanceof ELNModuleTerminal) { + if (c.p1.getFather() instanceof ELNMidPortTerminal) { + if (c.p2.getFather() instanceof ELNNodeRef || c.p2.getFather() instanceof ELNModuleTerminal) { return ""; } - if (c.get_p2().getFather() instanceof ELNComponent) { - ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.get_p1().getFather()).getFather(); + if (c.p2.getFather() instanceof ELNPrimitiveComponent) { + ELNConnector connector = (ELNConnector) ((ELNMidPortTerminal) c.p1.getFather()).getFather(); if (!connector.getValue().equals("")) { return connector.getValue(); } else { diff --git a/src/main/java/ui/eln/ELNDiagramToolBar.java b/src/main/java/ui/eln/ELNDiagramToolBar.java index 466a7147ff2d8d2add97df817b504fd15b1dcf0c..f8cd9289a4baab5701f977d45f7d2100e69c3251 100644 --- a/src/main/java/ui/eln/ELNDiagramToolBar.java +++ b/src/main/java/ui/eln/ELNDiagramToolBar.java @@ -81,13 +81,21 @@ public class ELNDiagramToolBar extends TToolBar { mgui.actions[TGUIAction.ELN_TDF_CURRENT_SINK].setEnabled(b); mgui.actions[TGUIAction.ELN_MODULE].setEnabled(b); mgui.actions[TGUIAction.ELN_MODULE_TERMINAL].setEnabled(b); + mgui.actions[TGUIAction.ELN_MODULE_PORT_DE].setEnabled(b); + mgui.actions[TGUIAction.ELN_MODULE_PORT_TDF].setEnabled(b); mgui.actions[TGUIAction.ELN_TOGGLE_ATTR].setEnabled(b); mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SOURCE].setEnabled(b); mgui.actions[TGUIAction.ELN_TDF_CURRENT_SOURCE].setEnabled(b); mgui.actions[TGUIAction.ELN_CONNECTOR].setEnabled(b); mgui.actions[TGUIAction.ELN_CLUSTER].setEnabled(b); - mgui.actions[TGUIAction.CAMS_PORT_DE].setEnabled(b); - mgui.actions[TGUIAction.CAMS_PORT_TDF].setEnabled(b); + mgui.actions[TGUIAction.ELN_CLUSTER_TERMINAL].setEnabled(b); + mgui.actions[TGUIAction.ELN_CLUSTER_PORT_DE].setEnabled(b); + mgui.actions[TGUIAction.ELN_CLUSTER_PORT_TDF].setEnabled(b); + mgui.actions[TGUIAction.ELN_GENCODE].setEnabled(b); + mgui.actions[TGUIAction.ELN_DE_CURRENT_SINK].setEnabled(b); + mgui.actions[TGUIAction.ELN_DE_CURRENT_SOURCE].setEnabled(b); + mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SINK].setEnabled(b); + mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SOURCE].setEnabled(b); mgui.actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(b); mgui.actions[TGUIAction.ACT_ONECLICK_LOTOS_RG].setEnabled(b); @@ -116,10 +124,13 @@ public class ELNDiagramToolBar extends TToolBar { button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER]); button.addMouseListener(mgui.mouseHandler); - button = this.add(mgui.actions[TGUIAction.CAMS_PORT_DE]); + button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER_TERMINAL]); button.addMouseListener(mgui.mouseHandler); - button = this.add(mgui.actions[TGUIAction.CAMS_PORT_TDF]); + button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_DE]); + button.addMouseListener(mgui.mouseHandler); + + button = this.add(mgui.actions[TGUIAction.ELN_CLUSTER_PORT_TDF]); button.addMouseListener(mgui.mouseHandler); this.addSeparator(); @@ -130,6 +141,12 @@ public class ELNDiagramToolBar extends TToolBar { button = this.add(mgui.actions[TGUIAction.ELN_MODULE_TERMINAL]); button.addMouseListener(mgui.mouseHandler); + button = this.add(mgui.actions[TGUIAction.ELN_MODULE_PORT_DE]); + button.addMouseListener(mgui.mouseHandler); + + button = this.add(mgui.actions[TGUIAction.ELN_MODULE_PORT_TDF]); + button.addMouseListener(mgui.mouseHandler); + this.addSeparator(); button = this.add(mgui.actions[TGUIAction.ELN_RESISTOR]); @@ -159,18 +176,15 @@ public class ELNDiagramToolBar extends TToolBar { button = this.add(mgui.actions[TGUIAction.ELN_INDEPENDENT_CURRENT_SOURCE]); button.addMouseListener(mgui.mouseHandler); - button = this.add(mgui.actions[TGUIAction.ELN_NODE_REF]); - button.addMouseListener(mgui.mouseHandler); - this.addSeparator(); button = this.add(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SOURCE]); button.addMouseListener(mgui.mouseHandler); - button = this.add(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SOURCE]); + button = this.add(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SINK]); button.addMouseListener(mgui.mouseHandler); - button = this.add(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SINK]); + button = this.add(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SOURCE]); button.addMouseListener(mgui.mouseHandler); button = this.add(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SINK]); @@ -178,7 +192,31 @@ public class ELNDiagramToolBar extends TToolBar { this.addSeparator(); + button = this.add(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SOURCE]); + button.addMouseListener(mgui.mouseHandler); + + button = this.add(mgui.actions[TGUIAction.ELN_DE_VOLTAGE_SINK]); + button.addMouseListener(mgui.mouseHandler); + + button = this.add(mgui.actions[TGUIAction.ELN_DE_CURRENT_SOURCE]); + button.addMouseListener(mgui.mouseHandler); + + button = this.add(mgui.actions[TGUIAction.ELN_DE_CURRENT_SINK]); + button.addMouseListener(mgui.mouseHandler); + + this.addSeparator(); + + button = this.add(mgui.actions[TGUIAction.ELN_NODE_REF]); + button.addMouseListener(mgui.mouseHandler); + + this.addSeparator(); + button = this.add(mgui.actions[TGUIAction.ELN_TOGGLE_ATTR]); button.addMouseListener(mgui.mouseHandler); + + this.addSeparator(); + + button = this.add(mgui.actions[TGUIAction.ELN_GENCODE]); + button.addMouseListener(mgui.mouseHandler); } } \ No newline at end of file diff --git a/src/main/java/ui/eln/ELNModule.java b/src/main/java/ui/eln/ELNModule.java index dc7c22550daa59261b0b144714f3f2b761ed969b..018c6b39f8111de355b0e5b9ee3774dbb2ddcd05 100644 --- a/src/main/java/ui/eln/ELNModule.java +++ b/src/main/java/ui/eln/ELNModule.java @@ -41,8 +41,8 @@ package ui.eln; import myutil.GraphicLib; import ui.*; import ui.eln.sca_eln.*; +import ui.eln.sca_eln_sca_de.*; import ui.eln.sca_eln_sca_tdf.*; -import ui.syscams.*; import ui.util.IconManager; import ui.window.*; import java.awt.*; @@ -91,7 +91,7 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall removable = true; userResizable = true; - value = tdp.findELNComponentName("Module"); + value = tdp.findELNComponentName("module"); } public void internalDrawing(Graphics g) { @@ -205,153 +205,33 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall } public boolean acceptSwallowedTGComponent(TGComponent tgc) { - if (tgc instanceof ELNComponentCapacitor) { + if (tgc instanceof ELNPrimitiveComponent) { return true; } - if (tgc instanceof ELNComponentIdealTransformer) { - return true; - } - if (tgc instanceof ELNComponentIndependentCurrentSource) { - return true; - } - if (tgc instanceof ELNComponentIndependentVoltageSource) { - return true; - } - if (tgc instanceof ELNComponentInductor) { - return true; - } - if (tgc instanceof ELNComponentResistor) { - return true; - } - if (tgc instanceof ELNComponentTransmissionLine) { - return true; - } - if (tgc instanceof ELNComponentVoltageControlledCurrentSource) { - return true; - } - if (tgc instanceof ELNComponentVoltageControlledVoltageSource) { - return true; - } - if (tgc instanceof ELNComponentCurrentSinkTDF) { - return true; - } - if (tgc instanceof ELNComponentCurrentSourceTDF) { - return true; - } - if (tgc instanceof ELNComponentVoltageSinkTDF) { - return true; - } - if (tgc instanceof ELNComponentVoltageSourceTDF) { - return true; - } - if (tgc instanceof ELNComponentNodeRef) { + if (tgc instanceof ELNNodeRef) { return true; } if (tgc instanceof ELNModuleTerminal) { return true; } - if (tgc instanceof SysCAMSPortDE) { + if (tgc instanceof ELNModulePortDE) { return true; } - if (tgc instanceof SysCAMSPortTDF) { + if (tgc instanceof ELNModulePortTDF) { return true; } return false; } public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { - if (tgc instanceof ELNComponentCapacitor) { + if (tgc instanceof ELNPrimitiveComponent) { tgc.setFather(this); tgc.setDrawingZone(true); tgc.resizeWithFather(); addInternalComponent(tgc, 0); return true; } - if (tgc instanceof ELNComponentIdealTransformer) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentIndependentCurrentSource) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentIndependentVoltageSource) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentInductor) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentResistor) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentTransmissionLine) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentVoltageControlledCurrentSource) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentVoltageControlledVoltageSource) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentCurrentSinkTDF) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentCurrentSourceTDF) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentVoltageSinkTDF) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentVoltageSourceTDF) { - tgc.setFather(this); - tgc.setDrawingZone(true); - tgc.resizeWithFather(); - addInternalComponent(tgc, 0); - return true; - } - if (tgc instanceof ELNComponentNodeRef) { + if (tgc instanceof ELNNodeRef) { tgc.setFather(this); tgc.setDrawingZone(true); tgc.resizeWithFather(); @@ -365,14 +245,14 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall addInternalComponent(tgc, 0); return true; } - if (tgc instanceof SysCAMSPortDE) { + if (tgc instanceof ELNModulePortDE) { tgc.setFather(this); tgc.setDrawingZone(true); tgc.resizeWithFather(); addInternalComponent(tgc, 0); return true; } - if (tgc instanceof SysCAMSPortTDF) { + if (tgc instanceof ELNModulePortTDF) { tgc.setFather(this); tgc.setDrawingZone(true); tgc.resizeWithFather(); @@ -389,55 +269,19 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall public void hasBeenResized() { rescaled = true; for(int i=0; i<nbInternalTGComponent; i++) { - if (tgcomponent[i] instanceof ELNComponentCapacitor) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentIdealTransformer) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentIndependentCurrentSource) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentIndependentVoltageSource) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentInductor) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentResistor) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentTransmissionLine) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentVoltageControlledCurrentSource) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentVoltageControlledVoltageSource) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentCurrentSinkTDF) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentCurrentSourceTDF) { + if (tgcomponent[i] instanceof ELNPrimitiveComponent) { tgcomponent[i].resizeWithFather(); } - if (tgcomponent[i] instanceof ELNComponentVoltageSinkTDF) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentVoltageSourceTDF) { - tgcomponent[i].resizeWithFather(); - } - if (tgcomponent[i] instanceof ELNComponentNodeRef) { + if (tgcomponent[i] instanceof ELNNodeRef) { tgcomponent[i].resizeWithFather(); } if (tgcomponent[i] instanceof ELNModuleTerminal) { tgcomponent[i].resizeWithFather(); } - if (tgcomponent[i] instanceof SysCAMSPortDE) { + if (tgcomponent[i] instanceof ELNModulePortDE) { tgcomponent[i].resizeWithFather(); } - if (tgcomponent[i] instanceof SysCAMSPortTDF) { + if (tgcomponent[i] instanceof ELNModulePortTDF) { tgcomponent[i].resizeWithFather(); } } @@ -480,6 +324,26 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall return list; } + public java.util.List<ELNComponentCurrentSinkDE> getAllComponentCurrentSinkDE() { + java.util.List<ELNComponentCurrentSinkDE> list = new ArrayList<ELNComponentCurrentSinkDE>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNComponentCurrentSinkDE) { + list.add((ELNComponentCurrentSinkDE)(tgcomponent[i])); + } + } + return list; + } + + public java.util.List<ELNComponentCurrentSourceDE> getAllComponentCurrentSourceDE() { + java.util.List<ELNComponentCurrentSourceDE> list = new ArrayList<ELNComponentCurrentSourceDE>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNComponentCurrentSourceDE) { + list.add((ELNComponentCurrentSourceDE)(tgcomponent[i])); + } + } + return list; + } + public java.util.List<ELNComponentCurrentSinkTDF> getAllComponentCurrentSinkTDF() { java.util.List<ELNComponentCurrentSinkTDF> list = new ArrayList<ELNComponentCurrentSinkTDF>(); for(int i=0; i<nbInternalTGComponent; i++) { @@ -540,11 +404,11 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall return list; } - public java.util.List<ELNComponentNodeRef> getAllComponentNodeRef() { - java.util.List<ELNComponentNodeRef> list = new ArrayList<ELNComponentNodeRef>(); + public java.util.List<ELNNodeRef> getAllComponentNodeRef() { + java.util.List<ELNNodeRef> list = new ArrayList<ELNNodeRef>(); for(int i=0; i<nbInternalTGComponent; i++) { - if (tgcomponent[i] instanceof ELNComponentNodeRef) { - list.add((ELNComponentNodeRef)(tgcomponent[i])); + if (tgcomponent[i] instanceof ELNNodeRef) { + list.add((ELNNodeRef)(tgcomponent[i])); } } return list; @@ -590,6 +454,26 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall return list; } + public java.util.List<ELNComponentVoltageSinkDE> getAllComponentVoltageSinkDE() { + java.util.List<ELNComponentVoltageSinkDE> list = new ArrayList<ELNComponentVoltageSinkDE>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNComponentVoltageSinkDE) { + list.add((ELNComponentVoltageSinkDE)(tgcomponent[i])); + } + } + return list; + } + + public java.util.List<ELNComponentVoltageSourceDE> getAllComponentVoltageSourceDE() { + java.util.List<ELNComponentVoltageSourceDE> list = new ArrayList<ELNComponentVoltageSourceDE>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNComponentVoltageSourceDE) { + list.add((ELNComponentVoltageSourceDE)(tgcomponent[i])); + } + } + return list; + } + public java.util.List<ELNComponentVoltageSinkTDF> getAllComponentVoltageSinkTDF() { java.util.List<ELNComponentVoltageSinkTDF> list = new ArrayList<ELNComponentVoltageSinkTDF>(); for(int i=0; i<nbInternalTGComponent; i++) { @@ -619,4 +503,24 @@ public class ELNModule extends TGCScalableWithInternalComponent implements Swall } return list; } + + public java.util.List<ELNModulePortDE> getAllModulePortDE() { + java.util.List<ELNModulePortDE> list = new ArrayList<ELNModulePortDE>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNModulePortDE) { + list.add((ELNModulePortDE)(tgcomponent[i])); + } + } + return list; + } + + public java.util.List<ELNModulePortTDF> getAllModulePortTDF() { + java.util.List<ELNModulePortTDF> list = new ArrayList<ELNModulePortTDF>(); + for(int i=0; i<nbInternalTGComponent; i++) { + if (tgcomponent[i] instanceof ELNModulePortTDF) { + list.add((ELNModulePortTDF)(tgcomponent[i])); + } + } + return list; + } } \ No newline at end of file diff --git a/src/main/java/ui/eln/ELNModulePortDE.java b/src/main/java/ui/eln/ELNModulePortDE.java new file mode 100644 index 0000000000000000000000000000000000000000..a085cf40fc4c4f28e2ae855e361e67a4fa064528 --- /dev/null +++ b/src/main/java/ui/eln/ELNModulePortDE.java @@ -0,0 +1,353 @@ +/* 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.eln; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.window.*; +import javax.swing.*; +import java.awt.*; + +/** + * Class ELNModulePortDE + * Primitive port. To be used in ELN diagrams + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNModulePortDE extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + protected int oldx, oldy; + protected int currentOrientation = GraphicLib.NORTH; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private String type; + private String origin; + + public ELNModulePortDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(20, 20); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initConnectingPoint(2); + + addTGConnectingPointsComment(); + + nbInternalTGComponent = 0; + + moveable = true; + editable = true; + removable = true; + userResizable = false; + + value = ""; + type = "bool"; + origin = "in"; + } + + public void initConnectingPoint(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, ""); + connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0, ""); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + + if ((x != oldx) | (oldy != y)) { + manageMove(g, f); + oldx = x; + oldy = y; + } else { + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + } + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.setFont(fold); + } + + public void manageMove(Graphics g, Font f) { + if (father != null) { + Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(), + father.getWidth(), father.getHeight()); + + x = p.x - width / 2; + y = p.y - height / 2; + + setMoveCd(x, y); + + int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(), + father.getY(), father.getWidth(), father.getHeight()); + + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + + switch (orientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + + if (orientation != currentOrientation) { + setOrientation(orientation); + } + } + } + + public void setOrientation(int orientation) { + currentOrientation = orientation; + double w0, h0, w1, h1; + + switch (orientation) { + case GraphicLib.NORTH: + w0 = 0.5; + h0 = 1.0; + w1 = 0.5; + h1 = 0.0; + break; + case GraphicLib.WEST: + w0 = 1.0; + h0 = 0.5; + w1 = 0.0; + h1 = 0.5; + break; + case GraphicLib.SOUTH: + w0 = 0.5; + h0 = 0.0; + w1 = 0.5; + h1 = 1.0; + break; + case GraphicLib.EAST: + default: + w0 = 0.0; + h0 = 0.5; + w1 = 1.0; + h1 = 0.5; + } + + ((ELNConnectingPoint) connectingPoint[0]).setW(w0); + ((ELNConnectingPoint) connectingPoint[0]).setH(h0); + ((ELNConnectingPoint) connectingPoint[1]).setW(w1); + ((ELNConnectingPoint) connectingPoint[1]).setH(h1); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_MODULE_PORT_DE; + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNModule)) { + setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2, + father.getHeight() - (getHeight() / 2)); + setMoveCd(x, y); + oldx = -1; + oldy = -1; + } + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNModulePortDE jde = new JDialogELNModulePortDE(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes name=\"" + value); + sb.append("\" type=\"" + type); + sb.append("\" origin=\"" + origin + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + String name, type, origin; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + name = elt.getAttribute("name"); + type = elt.getAttribute("type"); + origin = elt.getAttribute("origin"); + setValue(name); + setPortType(type); + setOrigin(origin); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public String getPortType() { + return type; + } + + public void setPortType(String _type) { + type = _type; + } + + public String getOrigin() { + return origin; + } + + public void setOrigin(String _origin) { + origin = _origin; + } +} \ No newline at end of file diff --git a/src/main/java/ui/eln/ELNModulePortTDF.java b/src/main/java/ui/eln/ELNModulePortTDF.java new file mode 100644 index 0000000000000000000000000000000000000000..dc20d004aa25f4868386b30c63bf8c407bdeb774 --- /dev/null +++ b/src/main/java/ui/eln/ELNModulePortTDF.java @@ -0,0 +1,353 @@ +/* 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.eln; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.window.*; +import javax.swing.*; +import java.awt.*; + +/** + * Class ELNModulePortTDF + * Primitive port. To be used in ELN diagrams + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNModulePortTDF extends TGCScalableWithInternalComponent implements SwallowedTGComponent, LinkedReference { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + protected int oldx, oldy; + protected int currentOrientation = GraphicLib.NORTH; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private String type; + private String origin; + + public ELNModulePortTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(20, 20); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initConnectingPoint(2); + + addTGConnectingPointsComment(); + + nbInternalTGComponent = 0; + + moveable = true; + editable = true; + removable = true; + userResizable = false; + + value = ""; + type = "bool"; + origin = "in"; + } + + public void initConnectingPoint(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, ""); + connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0, ""); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + + if ((x != oldx) | (oldy != y)) { + manageMove(g, f); + oldx = x; + oldy = y; + } else { + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + } + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + g.setColor(Color.BLACK); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.setFont(fold); + } + + public void manageMove(Graphics g, Font f) { + if (father != null) { + Point p = GraphicLib.putPointOnRectangle(x + (width / 2), y + (height / 2), father.getX(), father.getY(), + father.getWidth(), father.getHeight()); + + x = p.x - width / 2; + y = p.y - height / 2; + + setMoveCd(x, y); + + int orientation = GraphicLib.getCloserOrientation(x + (width / 2), y + (height / 2), father.getX(), + father.getY(), father.getWidth(), father.getHeight()); + + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(value); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.PLAIN)); + + switch (orientation) { + case GraphicLib.NORTH: + g.drawString(value, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(value, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(value, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(value, x + width, y + height + height / 2 + h); + } + + if (orientation != currentOrientation) { + setOrientation(orientation); + } + } + } + + public void setOrientation(int orientation) { + currentOrientation = orientation; + double w0, h0, w1, h1; + + switch (orientation) { + case GraphicLib.NORTH: + w0 = 0.5; + h0 = 1.0; + w1 = 0.5; + h1 = 0.0; + break; + case GraphicLib.WEST: + w0 = 1.0; + h0 = 0.5; + w1 = 0.0; + h1 = 0.5; + break; + case GraphicLib.SOUTH: + w0 = 0.5; + h0 = 0.0; + w1 = 0.5; + h1 = 1.0; + break; + case GraphicLib.EAST: + default: + w0 = 0.0; + h0 = 0.5; + w1 = 1.0; + h1 = 0.5; + } + + ((ELNConnectingPoint) connectingPoint[0]).setW(w0); + ((ELNConnectingPoint) connectingPoint[0]).setH(h0); + ((ELNConnectingPoint) connectingPoint[1]).setW(w1); + ((ELNConnectingPoint) connectingPoint[1]).setH(h1); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_MODULE_PORT_TDF; + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNModule)) { + setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2, + father.getHeight() - (getHeight() / 2)); + setMoveCd(x, y); + oldx = -1; + oldy = -1; + } + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNModulePortTDF jde = new JDialogELNModulePortTDF(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes name=\"" + value); + sb.append("\" type=\"" + type); + sb.append("\" origin=\"" + origin + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + String name, type, origin; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + name = elt.getAttribute("name"); + type = elt.getAttribute("type"); + origin = elt.getAttribute("origin"); + setValue(name); + setPortType(type); + setOrigin(origin); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public String getPortType() { + return type; + } + + public void setPortType(String _type) { + type = _type; + } + + public String getOrigin() { + return origin; + } + + public void setOrigin(String _origin) { + origin = _origin; + } +} \ No newline at end of file diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java b/src/main/java/ui/eln/ELNNodeRef.java similarity index 97% rename from src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java rename to src/main/java/ui/eln/ELNNodeRef.java index 64ecee13b321917c6e3032ca2ed6345de329d97e..1ddbf7911e0a49dca41bd93ae272044cbd5f12f2 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java +++ b/src/main/java/ui/eln/ELNNodeRef.java @@ -36,7 +36,7 @@ * knowledge of the CeCILL license and that you accept its terms. */ -package ui.eln.sca_eln; +package ui.eln; import myutil.GraphicLib; @@ -44,9 +44,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; -import ui.eln.ELNConnectingPoint; -import ui.eln.ELNModule; -import ui.window.JDialogELNComponentNodeRef; +import ui.window.JDialogELNNodeRef; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; @@ -60,7 +58,7 @@ import java.awt.event.ActionListener; * @author Irina Kit Yan LEE */ -public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent { +public class ELNNodeRef extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -76,7 +74,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem private int old; private boolean first; - public ELNComponentNodeRef(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + public ELNNodeRef(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); initScaling(40, 40); @@ -96,7 +94,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem editable = true; removable = true; userResizable = false; - value = tdp.findELNComponentName("gnd"); + value = "gnd"; old = width; width = height; @@ -382,7 +380,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem } public boolean editOndoubleClick(JFrame frame) { - JDialogELNComponentNodeRef jde = new JDialogELNComponentNodeRef(this); + JDialogELNNodeRef jde = new JDialogELNNodeRef(this); jde.setVisible(true); return true; } diff --git a/src/main/java/ui/eln/ELNPrimitiveComponent.java b/src/main/java/ui/eln/ELNPrimitiveComponent.java new file mode 100644 index 0000000000000000000000000000000000000000..712d2657dbb68837ebebcede0bb29f504ee0dd6b --- /dev/null +++ b/src/main/java/ui/eln/ELNPrimitiveComponent.java @@ -0,0 +1,5 @@ +package ui.eln; + +public interface ELNPrimitiveComponent { + +} diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java b/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java index 9429e0f1b8dfc0fba2cad937282ee5721747e52b..b11e4023b6f6083497d1e1cb8b51d809d8734514 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java @@ -58,7 +58,7 @@ import java.awt.event.ActionListener; * @author Irina Kit Yan LEE */ -public class ELNComponentCapacitor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentCapacitor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java b/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java index 2934a908c2b62b84af273784f150068a4ba235ec..dedda5b0a3767f0f9e2b41a937cf17ad74909b84 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java @@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentIdealTransformer extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentIdealTransformer extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java index 76c95f747b8a0026c526c47055f6fa46c67aa5ad..049ab73c308441c1a1b7cca5dc5d2ddba4a99b75 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java @@ -58,7 +58,7 @@ import java.awt.event.ActionListener; * @author Irina Kit Yan LEE */ -public class ELNComponentIndependentCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentIndependentCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java index f211f3ee04619e3be7afa1938f6109cd251ed02e..35762a5d75425a101b300aa5635ade0e6f2308f5 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java @@ -58,7 +58,7 @@ import java.awt.event.ActionListener; * @author Irina Kit Yan LEE */ -public class ELNComponentIndependentVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentIndependentVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java b/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java index ad95dcbd85f4f717343ecd2d04c79e0afffee07d..02f649d07c2a9f7d225dcf0cb0e590bcf6571ab4 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java @@ -59,7 +59,7 @@ import java.awt.event.ActionListener; * @author Irina Kit Yan LEE */ -public class ELNComponentInductor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentInductor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java b/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java index 6ea92b14d86cc27a1ef78256c89c116b1be471bc..354af03fbd89e95f31a6acf1b0cd81607aadcb32 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java @@ -58,7 +58,7 @@ import java.awt.event.ActionListener; * @author Irina Kit Yan LEE */ -public class ELNComponentResistor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentResistor extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java b/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java index a079fe145eb5b1529c612e80bd4172d8c8ad8305..1c55f9a32d81867586666dd585819674501f9586 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java @@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentTransmissionLine extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentTransmissionLine extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java index 499e97ba6ac4ac2e376fa049bcf6b8fbc0a7c091..8a7efa12f25e820d7169c17b3fc9d90320162b22 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java @@ -52,14 +52,15 @@ import java.awt.event.ActionListener; import java.awt.geom.RoundRectangle2D; /** - * Class ELNComponentVoltageControlledCurrentSource - * Voltage controlled current source to be used in ELN diagrams - * Creation: 13/06/2018 + * Class ELNComponentVoltageControlledCurrentSource Voltage controlled current + * source to be used in ELN diagrams Creation: 13/06/2018 + * * @version 1.0 13/06/2018 * @author Irina Kit Yan LEE */ -public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithInternalComponent + implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -78,7 +79,8 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI private int old; private boolean first; - public ELNComponentVoltageControlledCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + public ELNComponentVoltageControlledCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, + boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); initScaling(120, 80); @@ -626,27 +628,22 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 24 }; - int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16, - y + height / 4, y + height / 4 }; + int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4, + y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 }; - int[] pty4 = { y + height - height / 4, y + height - height / 4 }; + int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24, x + 5 * width / 6 + width / 12 + width / 24, - x + 5 * width / 6 + width / 12, x + 5 * width / 6 + width / 12 + width / 24, - x + 5 * width / 6 + width / 6, x + 5 * width / 6 + width / 12 + width / 24 }; - int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8, - y + 3 * height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width - width / 12 - width / 24, y + height / 4, + x + width - width / 12 - width / 24, y + 3 * height / 4, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 12, height / 8); g.setColor(Color.WHITE); g.fillOval(x, y, width / 12, height / 8); @@ -683,27 +680,23 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 24 }; - int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16, - y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 }; + int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, + y + height - height / 8, y + height - height / 4, y + height - height / 8 - height / 16, + y + height - height / 8 - height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 }; - int[] pty4 = { y + height / 4, y + height / 4 }; + int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24, x + 5 * width / 6 + width / 12 + width / 24, - x + 5 * width / 6 + width / 12, x + 5 * width / 6 + width / 12 + width / 24, - x + 5 * width / 6 + width / 6, x + 5 * width / 6 + width / 12 + width / 24 }; - int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8, y + height / 4, - y + height / 4 + height / 8, y + height / 4 + height / 8 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width - width / 12 - width / 24, y + 3 * height / 4, + x + width - width / 12 - width / 24, y + height / 4, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8, 10, 10)); - g2d.dispose(); - + g2d.dispose(); + g.drawOval(x, y, width / 12, height / 8); g.setColor(Color.WHITE); g.fillOval(x, y, width / 12, height / 8); @@ -740,27 +733,23 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI int[] ptx3 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16, - y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 }; + int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, + y + height - height / 8, y + height - height / 4, y + height - height / 8 - height / 16, + y + height - height / 8 - height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty4 = { y + height / 4, y + height / 4 }; + int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 12 - width / 24, - x + width / 6 - width / 12, x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 6, - x + width / 6 - width / 12 - width / 24 }; - int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8, y + height / 4, - y + height / 4 + height / 8, y + height / 4 + height / 8 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 12 + width / 24, y + 3 * height / 4, + x + width / 12 + width / 24, y + height / 4, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 12, height / 8); g.setColor(Color.WHITE); g.fillOval(x, y, width / 12, height / 8); @@ -797,27 +786,22 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI int[] ptx3 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16, - y + height / 4, y + height / 4 }; + int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4, + y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty4 = { y + height - height / 4, y + height - height / 4 }; + int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 12 - width / 24, - x + width / 6 - width / 12, x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 6, - x + width / 6 - width / 12 - width / 24 }; - int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8, - y + 3 * height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 12 + width / 24, y + height / 4, x + width / 12 + width / 24, + y + 3 * height / 4, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x + width / 24, y - height / 16, width - width / 12, height + height / 8, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 12, height / 8); g.setColor(Color.WHITE); g.fillOval(x, y, width / 12, height / 8); @@ -851,30 +835,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6, y + 5 * height / 6, y + 3 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6 }; g.drawPolygon(ptx2, pty2, 14); - int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16, - x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 }; + int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8, + x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width / 4, x + width / 4 }; + int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8, x + width / 4 + width / 8, x + width / 4, - x + width / 4 + width / 8, x + width / 4 + width / 8 }; - int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24, y + 5 * height / 6 + height / 12 + height / 24, - y + 5 * height / 6 + height / 12, y + 5 * height / 6 + height / 12 + height / 24, - y + 5 * height / 6 + height / 6, y + 5 * height / 6 + height / 12 + height / 24 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 3 * width / 4, y + height - height / 12 - height / 24, x + width / 4, + y + height - height / 12 - height / 24, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 8, height / 12); g.setColor(Color.WHITE); g.fillOval(x, y, width / 8, height / 12); @@ -908,30 +887,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6, y + height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6 }; g.drawPolygon(ptx2, pty2, 14); - int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16, - x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 }; + int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8, + x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty3 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width / 4, x + width / 4 }; + int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty4 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8, x + width / 4 + width / 8, x + width / 4, - x + width / 4 + width / 8, x + width / 4 + width / 8 }; - int[] pty5 = { y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 12 - height / 24, - y + height / 6 - height / 12, y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 6, - y + height / 6 - height / 12 - height / 24 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 3 * width / 4, y + height / 12 + height / 24, x + width / 4, + y + height / 12 + height / 24, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 8, height / 12); g.setColor(Color.WHITE); g.fillOval(x, y, width / 8, height / 12); @@ -965,30 +939,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6, y + height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6 }; g.drawPolygon(ptx2, pty2, 14); - int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16, - x + width / 4, x + width / 4 }; + int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4, + x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty3 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width - width / 4, x + width - width / 4 }; + int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty4 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8, x + 3 * width / 4, - x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8 }; - int[] pty5 = { y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 12 - height / 24, - y + height / 6 - height / 12, y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 6, - y + height / 6 - height / 12 - height / 24 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 4, y + height / 12 + height / 24, x + 3 * width / 4, + y + height / 12 + height / 24, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 8, height / 12); g.setColor(Color.WHITE); g.fillOval(x, y, width / 8, height / 12); @@ -1022,30 +991,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6, y + 5 * height / 6, y + 3 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6 }; g.drawPolygon(ptx2, pty2, 14); - int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16, - x + width / 4, x + width / 4 }; + int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4, + x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width - width / 4, x + width - width / 4 }; + int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8, x + 3 * width / 4, - x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8 }; - int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24, y + 5 * height / 6 + height / 12 + height / 24, - y + 5 * height / 6 + height / 12, y + 5 * height / 6 + height / 12 + height / 24, - y + 5 * height / 6 + height / 6, y + 5 * height / 6 + height / 12 + height / 24 }; - g.drawPolygon(ptx5, pty5, 6); - g.fillPolygon(ptx5, pty5, 6); - + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 4, y + height - height / 12 - height / 24, x + 3 * width / 4, + y + height - height / 12 - height / 24, true); + Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); g2d.setStroke(dashed); g2d.draw(new RoundRectangle2D.Double(x - width / 16, y + height / 24, width + width / 8, height - height / 12, 10, 10)); g2d.dispose(); - + g.drawOval(x, y, width / 8, height / 12); g.setColor(Color.WHITE); g.fillOval(x, y, width / 8, height / 12); diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java index 7204be924b0f9dec740f00f9cefa0c6dcdb0ad5a..8b9300eac5afb71354f5f73d0cae021018dd8563 100644 --- a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java +++ b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java @@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -624,20 +624,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 24 }; - int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16, - y + height / 4, y + height / 4 }; + int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4, + y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 }; - int[] pty4 = { y + height - height / 4, y + height - height / 4 }; + int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx4, pty4, 2); int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty5 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16, - y + height / 4, y + height / 4 }; + int[] pty5 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4, + y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx5, pty5, 6); int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty6 = { y + height - height / 4, y + height - height / 4 }; + int[] pty6 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx6, pty6, 2); Graphics2D g2d = (Graphics2D) g.create(); @@ -683,20 +683,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 24 }; - int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16, - y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 }; + int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4, + y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 }; - int[] pty4 = { y + height / 4, y + height / 4 }; + int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx4, pty4, 2); int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty5 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16, - y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 }; + int[] pty5 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4, + y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx5, pty5, 6); int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty6 = { y + height / 4, y + height / 4 }; + int[] pty6 = { y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx6, pty6, 2); Graphics2D g2d = (Graphics2D) g.create(); @@ -741,20 +741,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 24 }; - int[] pty3 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16, - y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 }; + int[] pty3 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4, + y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 }; - int[] pty4 = { y + height / 4, y + height / 4 }; + int[] pty4 = { y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx4, pty4, 2); int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty5 = { y + height - height / 4, y + height - height / 4, y + height - height / 4 + height / 16, - y + height - height / 4 - height / 16, y + height - height / 4, y + height - height / 4 }; + int[] pty5 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 4, + y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx5, pty5, 6); int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty6 = { y + height / 4, y + height / 4 }; + int[] pty6 = { y + height / 8 + height / 16, y + height / 8 + height / 16 };; g.drawPolygon(ptx6, pty6, 2); Graphics2D g2d = (Graphics2D) g.create(); @@ -799,20 +799,20 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 24 }; - int[] pty3 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16, - y + height / 4, y + height / 4 }; + int[] pty3 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4, + y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx3, pty3, 6); int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 }; - int[] pty4 = { y + height - height / 4, y + height - height / 4 }; + int[] pty4 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx4, pty4, 2); int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty5 = { y + height / 4, y + height / 4, y + height / 4 - height / 16, y + height / 4 + height / 16, - y + height / 4, y + height / 4 }; + int[] pty5 = { y + height / 8 + height / 16, y + height / 8 + height / 16, y + height / 8, y + height / 4, + y + height / 8 + height / 16, y + height / 8 + height / 16 }; g.drawPolygon(ptx5, pty5, 6); int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 }; - int[] pty6 = { y + height - height / 4, y + height - height / 4 }; + int[] pty6 = { y + height - height / 8 - height / 16, y + height - height / 8 - height / 16 }; g.drawPolygon(ptx6, pty6, 2); Graphics2D g2d = (Graphics2D) g.create(); @@ -855,22 +855,22 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI y + 4 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6 }; g.drawPolygon(ptx2, pty2, 12); - int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16, - x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 }; + int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8, + x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width / 4, x + width / 4 }; + int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16, - x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 }; + int[] ptx5 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8, + x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx5, pty5, 6); - int[] ptx6 = { x + width / 4, x + width / 4 }; + int[] ptx6 = { x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx6, pty6, 2); @@ -914,21 +914,24 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI y + 2 * height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6 }; g.drawPolygon(ptx2, pty2, 12); - int[] ptx3 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16, - x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 }; + int[] ptx3 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8, + x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width / 4, x + width / 4 }; + int[] ptx4 = { x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width - width / 4, x + width - width / 4, x + width - width / 4 + width / 16, - x + width - width / 4 - width / 16, x + width - width / 4, x + width - width / 4 }; + int[] ptx5 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16, x + width - width / 8, + x + width - width / 4, x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx5, pty5, 6); + int[] ptx6 = { x + width / 8 + width / 16, x + width / 8 + width / 16 }; + int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; + g.drawPolygon(ptx6, pty6, 2); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -937,9 +940,6 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI 10, 10)); g2d.dispose(); - int[] ptx6 = { x + width / 4, x + width / 4 }; - int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; - g.drawPolygon(ptx6, pty6, 2); g.drawOval(x, y, width / 8, height / 12); g.setColor(Color.WHITE); g.fillOval(x, y, width / 8, height / 12); @@ -973,22 +973,22 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI y + 2 * height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6 }; g.drawPolygon(ptx2, pty2, 12); - int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16, - x + width / 4, x + width / 4 }; + int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4, + x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width - width / 4, x + width - width / 4 }; + int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16, - x + width / 4, x + width / 4 }; + int[] ptx5 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4, + x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx5, pty5, 6); - int[] ptx6 = { x + width - width / 4, x + width - width / 4 }; + int[] ptx6 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx6, pty6, 2); @@ -1032,22 +1032,22 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI y + 4 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6 }; g.drawPolygon(ptx2, pty2, 12); - int[] ptx3 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16, - x + width / 4, x + width / 4 }; + int[] ptx3 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4, + x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx3, pty3, 6); - int[] ptx4 = { x + width - width / 4, x + width - width / 4 }; + int[] ptx4 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 }; g.drawPolygon(ptx4, pty4, 2); - int[] ptx5 = { x + width / 4, x + width / 4, x + width / 4 - width / 16, x + width / 4 + width / 16, - x + width / 4, x + width / 4 }; + int[] ptx5 = { x + width / 8 + width / 16, x + width / 8 + width / 16, x + width / 8, x + width / 4, + x + width / 8 + width / 16, x + width / 8 + width / 16 }; int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx5, pty5, 6); - int[] ptx6 = { x + width - width / 4, x + width - width / 4 }; + int[] ptx6 = { x + width - width / 8 - width / 16, x + width - width / 8 - width / 16 }; int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 }; g.drawPolygon(ptx6, pty6, 2); diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSinkDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSinkDE.java new file mode 100644 index 0000000000000000000000000000000000000000..cb7e1a5c3e365dd016878ffc4136f6bfb8b60e87 --- /dev/null +++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSinkDE.java @@ -0,0 +1,1035 @@ +/* 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.eln.sca_eln_sca_de; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.eln.*; +import ui.window.JDialogELNComponentCurrentSinkDE; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.geom.RoundRectangle2D; + +/** + * Class ELNComponentCurrentSinkDE + * Converts current to a TDF output signal to be used in ELN diagrams + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNComponentCurrentSinkDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private double scale; + + private int position = 0; + private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false; + private int old; + private boolean first; + + public ELNComponentCurrentSinkDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(100, 100); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initPortTerminal(3); + + addTGConnectingPointsComment(); + + moveable = true; + editable = true; + removable = true; + userResizable = false; + value = tdp.findELNComponentName("DE_ISink"); + + setScale(1.0); + + old = width; + width = height; + height = old; + } + + public void initPortTerminal(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p"); + connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n"); + connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "outp"); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + MainGUI mgui = getTDiagramPanel().getMainGUI(); + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + + if (position == 0) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("outp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 1) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + } else if (position == 2) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("outp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 3) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + } + g.setColor(c); + g.setFont(fold); + } + + private void rotateTop(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + 2 * width / 5 - width / 20, x + 2 * width / 5, x + 2 * width / 5 + width / 20 }; + int[] pty1 = { y + height / 2, y + height / 2 + height / 20, y + height / 2 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateTopFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + 2 * width / 5 - width / 20, x + 2 * width / 5, x + 2 * width / 5 + width / 20 }; + int[] pty1 = { y + height / 2, y + height / 2 - height / 20, y + height / 2 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottom(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5, + x + 3 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + 3 * width / 5 - width / 20, x + 3 * width / 5, x + 3 * width / 5 + width / 20 }; + int[] pty1 = { y + height / 2, y + height / 2 - height / 20, y + height / 2 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottomFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5, + x + 3 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + 3 * width / 5 - width / 20, x + 3 * width / 5, x + 3 * width / 5 + width / 20 }; + int[] pty1 = { y + height / 2, y + height / 2 + height / 20, y + height / 2 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateRight(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + width / 2, x + width / 2 - width / 20, x + width / 2 }; + int[] pty1 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5, y + 2 * height / 5 + height / 20 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + private void rotateRightFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5, + y + 3 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + width / 2, x + width / 2 - width / 20, x + width / 2 }; + int[] pty1 = { y + 3 * height / 5 - height / 20, y + 3 * height / 5, y + 3 * height / 5 + height / 20 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + private void rotateLeft(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5, + y + 3 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + width / 2, x + width / 2 + width / 20, x + width / 2 }; + int[] pty1 = { y + 3 * height / 5 - height / 20, y + 3 * height / 5, y + 3 * height / 5 + height / 20 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + + } + + private void rotateLeftFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + int[] ptx1 = { x + width / 2, x + width / 2 + width / 20, x + width / 2 }; + int[] pty1 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5, y + 2 * height / 5 + height / 20 }; + g.drawPolygon(ptx1, pty1, 3); + g.fillPolygon(ptx1, pty1, 3); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_DE_CURRENT_SINK; + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNComponentCurrentSinkDE jde = new JDialogELNComponentCurrentSinkDE(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes scale=\"" + scale); + sb.append("\" position=\"" + position); + sb.append("\" fv_0_2=\"" + fv_0_2); + sb.append("\" fv_1_3=\"" + fv_1_3); + sb.append("\" fh_0_2=\"" + fh_0_2); + sb.append("\" fh_1_3=\"" + fh_1_3); + sb.append("\" first=\"" + first + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + double scale; + int position; + boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + scale = Double.parseDouble(elt.getAttribute("scale")); + position = Integer.parseInt(elt.getAttribute("position")); + fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2")); + fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3")); + fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2")); + fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3")); + first = Boolean.parseBoolean(elt.getAttribute("first")); + setScale(scale); + setPosition(position); + setFv_0_2(fv_0_2); + setFv_1_3(fv_1_3); + setFh_0_2(fh_0_2); + setFh_1_3(fh_1_3); + setFirst(first); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) { + componentMenu.addSeparator(); + + JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0"); + rotateright.addActionListener(this); + componentMenu.add(rotateright); + + JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0"); + rotateleft.addActionListener(this); + componentMenu.add(rotateleft); + + componentMenu.addSeparator(); + + JMenuItem rotatevertically = new JMenuItem("Flip vertically"); + rotatevertically.addActionListener(this); + componentMenu.add(rotatevertically); + + JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally"); + rotatehorizontally.addActionListener(this); + componentMenu.add(rotatehorizontally); + } + + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("Rotate right 90\u00b0")) { + position++; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Rotate left 90\u00b0")) { + position = position + 3; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Flip vertically")) { + if (position == 0 || position == 2) { + if (fv_0_2 == false) { + fv_0_2 = true; + } else { + fv_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fv_1_3 == false) { + fv_1_3 = true; + } else { + fv_1_3 = false; + } + } + } + if (e.getActionCommand().equals("Flip horizontally")) { + if (position == 0 || position == 2) { + if (fh_0_2 == false) { + fh_0_2 = true; + } else { + fh_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fh_1_3 == false) { + fh_1_3 = true; + } else { + fh_1_3 = false; + } + } + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public double getScale() { + return scale; + } + + public void setScale(double _scale) { + scale = _scale; + } + + public int getPosition() { + return position; + } + + public void setPosition(int _position) { + position = _position; + } + + public boolean isFv_0_2() { + return fv_0_2; + } + + public void setFv_0_2(boolean _fv_0_2) { + fv_0_2 = _fv_0_2; + } + + public boolean isFv_1_3() { + return fv_1_3; + } + + public void setFv_1_3(boolean _fv_1_3) { + fv_1_3 = _fv_1_3; + } + + public boolean isFh_0_2() { + return fh_0_2; + } + + public void setFh_0_2(boolean _fh_0_2) { + fh_0_2 = _fh_0_2; + } + + public boolean isFh_1_3() { + return fh_1_3; + } + + public void setFh_1_3(boolean _fh_1_3) { + fh_1_3 = _fh_1_3; + } + + public boolean isFirst() { + return first; + } + + public void setFirst(boolean _first) { + first = _first; + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNModule)) { + resizeToFatherSize(); + + setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight()); + setMoveCd(x, y); + } + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } +} diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSourceDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSourceDE.java new file mode 100644 index 0000000000000000000000000000000000000000..7ca70f874c8fb686e8f2c040d71c6a6a03f15b35 --- /dev/null +++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentCurrentSourceDE.java @@ -0,0 +1,1066 @@ +/* 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.eln.sca_eln_sca_de; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.eln.*; +import ui.window.JDialogELNComponentCurrentSourceDE; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.geom.RoundRectangle2D; + +/** + * Class ELNComponentCurrentSourceDE + * Current source driven by a TDF input signal signal to be used in ELN diagrams + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNComponentCurrentSourceDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private double scale; + + private int position = 0; + private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false; + private int old; + private boolean first; + + public ELNComponentCurrentSourceDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(100, 100); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initPortTerminal(3); + + addTGConnectingPointsComment(); + + moveable = true; + editable = true; + removable = true; + userResizable = false; + value = tdp.findELNComponentName("DE_ISource"); + + setScale(1.0); + + old = width; + width = height; + height = old; + } + + public void initPortTerminal(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p"); + connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n"); + connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "inp"); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + MainGUI mgui = getTDiagramPanel().getMainGUI(); + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + + if (position == 0) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("inp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 1) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + } else if (position == 2) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("inp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 3) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + } + g.setColor(c); + g.setFont(fold); + } + + private void rotateTop(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10, + y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + 2 * width / 5, y + height / 2, x + 4 * width / 5, y + height / 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 + width / 10, y + height / 5 + height / 10, + x + 4 * width / 5 + width / 10, y + 4 * height / 5 - height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateTopFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10, + y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + 2 * width / 5, y + height / 2, x + 4 * width / 5, y + height / 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 + width / 10, y + 4 * height / 5 - height / 10, + x + 4 * width / 5 + width / 10, y + height / 5 + height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottom(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10, + y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + width / 5, y + height / 2, x + 3 * width / 5, y + height / 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 10, y + 4 * height / 5 - height / 10, x + width / 10, + y + height / 5 + height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottomFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height / 5 + height / 10, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x, x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20, y + 4 * height / 5 - height / 10, + y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + width / 5, y + height / 2, x + 3 * width / 5, y + height / 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 10, y + height / 5 + height / 10, x + width / 10, + y + 4 * height / 5 - height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateRight(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10, + x + width - width / 20 }; + int[] pty1 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + width / 2, y + 2 * height / 5, x + width / 2, y + 4 * height / 5); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 - width / 10, y + 4 * height / 5 + height / 10, + x + width / 5 + width / 10, y + 4 * height / 5 + height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + private void rotateRightFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10, + x + width - width / 20 }; + int[] pty1 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + width / 2, y + height / 5, x + width / 2, y + 3 * height / 5); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5 - width / 10, y + height / 10, + x + width / 5 + width / 10, y + height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + private void rotateLeft(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10, + x + width - width / 20 }; + int[] pty1 = { y, y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + width / 2, y + height / 5, x + width / 2, y + 3 * height / 5); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5 + width / 10, y + height / 10, + x + 4 * width / 5 - width / 10, y + height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + private void rotateLeftFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + height / 5 + height / 10, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 }; + g.drawPolygon(ptx0, pty0, 4); + int[] ptx1 = { x + width - width / 20, x + width - width / 20, x + 4 * width / 5 - width / 10, + x + width - width / 20 }; + int[] pty1 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 }; + g.drawPolygon(ptx1, pty1, 4); + g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5); + g.drawLine(x + width / 2, y + 2 * height / 5, x + width / 2, y + 4 * height / 5); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5 + width / 10, y + 4 * height / 5 + height / 10, + x + 4 * width / 5 - width / 10, y + 4 * height / 5 + height / 10, true); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_DE_CURRENT_SOURCE; + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNComponentCurrentSourceDE jde = new JDialogELNComponentCurrentSourceDE(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes scale=\"" + scale); + sb.append("\" position=\"" + position); + sb.append("\" fv_0_2=\"" + fv_0_2); + sb.append("\" fv_1_3=\"" + fv_1_3); + sb.append("\" fh_0_2=\"" + fh_0_2); + sb.append("\" fh_1_3=\"" + fh_1_3); + sb.append("\" first=\"" + first + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + double scale; + int position; + boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + scale = Double.parseDouble(elt.getAttribute("scale")); + position = Integer.parseInt(elt.getAttribute("position")); + fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2")); + fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3")); + fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2")); + fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3")); + first = Boolean.parseBoolean(elt.getAttribute("first")); + setScale(scale); + setPosition(position); + setFv_0_2(fv_0_2); + setFv_1_3(fv_1_3); + setFh_0_2(fh_0_2); + setFh_1_3(fh_1_3); + setFirst(first); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) { + componentMenu.addSeparator(); + + JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0"); + rotateright.addActionListener(this); + componentMenu.add(rotateright); + + JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0"); + rotateleft.addActionListener(this); + componentMenu.add(rotateleft); + + componentMenu.addSeparator(); + + JMenuItem rotatevertically = new JMenuItem("Flip vertically"); + rotatevertically.addActionListener(this); + componentMenu.add(rotatevertically); + + JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally"); + rotatehorizontally.addActionListener(this); + componentMenu.add(rotatehorizontally); + } + + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("Rotate right 90\u00b0")) { + position++; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Rotate left 90\u00b0")) { + position = position + 3; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Flip vertically")) { + if (position == 0 || position == 2) { + if (fv_0_2 == false) { + fv_0_2 = true; + } else { + fv_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fv_1_3 == false) { + fv_1_3 = true; + } else { + fv_1_3 = false; + } + } + } + if (e.getActionCommand().equals("Flip horizontally")) { + if (position == 0 || position == 2) { + if (fh_0_2 == false) { + fh_0_2 = true; + } else { + fh_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fh_1_3 == false) { + fh_1_3 = true; + } else { + fh_1_3 = false; + } + } + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public double getScale() { + return scale; + } + + public void setScale(double _scale) { + scale = _scale; + } + + public int getPosition() { + return position; + } + + public void setPosition(int _position) { + position = _position; + } + + public boolean isFv_0_2() { + return fv_0_2; + } + + public void setFv_0_2(boolean _fv_0_2) { + fv_0_2 = _fv_0_2; + } + + public boolean isFv_1_3() { + return fv_1_3; + } + + public void setFv_1_3(boolean _fv_1_3) { + fv_1_3 = _fv_1_3; + } + + public boolean isFh_0_2() { + return fh_0_2; + } + + public void setFh_0_2(boolean _fh_0_2) { + fh_0_2 = _fh_0_2; + } + + public boolean isFh_1_3() { + return fh_1_3; + } + + public void setFh_1_3(boolean _fh_1_3) { + fh_1_3 = _fh_1_3; + } + + public boolean isFirst() { + return first; + } + + public void setFirst(boolean _first) { + first = _first; + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNModule)) { + resizeToFatherSize(); + + setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight()); + setMoveCd(x, y); + } + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } +} diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSinkDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSinkDE.java new file mode 100644 index 0000000000000000000000000000000000000000..c9ed65c513f3158017ee7e773b22d5bd76c51dc0 --- /dev/null +++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSinkDE.java @@ -0,0 +1,1127 @@ +/* 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.eln.sca_eln_sca_de; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.eln.*; +import ui.window.JDialogELNComponentVoltageSinkDE; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.geom.RoundRectangle2D; + +/** + * Class ELNComponentVoltageSinkDE + * Converts voltage to a TDF output signal to be used in ELN diagrams + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNComponentVoltageSinkDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private double scale; + + private int position = 0; + private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false; + private int old; + private boolean first; + + public ELNComponentVoltageSinkDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(100, 100); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initPortTerminal(3); + + addTGConnectingPointsComment(); + + moveable = true; + editable = true; + removable = true; + userResizable = false; + value = tdp.findELNComponentName("DE_VSink"); + + setScale(1.0); + + old = width; + width = height; + height = old; + } + + public void initPortTerminal(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p"); + connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n"); + connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "outp"); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + MainGUI mgui = getTDiagramPanel().getMainGUI(); + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + + if (position == 0) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("outp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 1) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + } else if (position == 2) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("outp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 3) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + } + g.setColor(c); + g.setFont(fold); + } + + private void rotateTop(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5 - width / 10 }; + int[] pty0 = { y + height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x, x + 2 * width / 5 - width / 10 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + width / 5 - width / 20, x + width / 5, x + width / 5, x + width / 5, x + width / 5, + x + width / 5 + width / 20 }; + int[] pty3 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, y + height / 5, + y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width / 5 - width / 20, x + width / 5 + width / 20 }; + int[] pty4 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 - width / 20, + x + 2 * width / 5 + width / 20, x + 2 * width / 5 }; + int[] pty5 = { y + height / 20, y + height - height / 20, y + height - height / 10, y + height - height / 10, + y + height - height / 20 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateTopFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5 - width / 10 }; + int[] pty0 = { y + height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x, x + 2 * width / 5 - width / 10 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + width / 5 - width / 20, x + width / 5, x + width / 5, x + width / 5, x + width / 5, + x + width / 5 + width / 20 }; + int[] pty3 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20, + y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20, + y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width / 5 - width / 20, x + width / 5 + width / 20 }; + int[] pty4 = { y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + 2 * width / 5, x + 2 * width / 5, x + 2 * width / 5 - width / 20, + x + 2 * width / 5 + width / 20, x + 2 * width / 5 }; + int[] pty5 = { y + height - height / 20, y + height / 20, y + height / 10, y + height / 10, y + height / 20 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottom(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5 + width / 10 }; + int[] pty0 = { y + height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x + height, x + 3 * width / 5 + width / 10 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5, + x + 4 * width / 5, x + 4 * width / 5 + width / 20 }; + int[] pty3 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20, + y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20, + y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5 + width / 20 }; + int[] pty4 = { y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 + width / 20, + x + 3 * width / 5 - width / 20, x + 3 * width / 5 }; + int[] pty5 = { y + height - height / 20, y + height / 20, y + height / 10, y + height / 10, y + height / 20 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottomFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5 + width / 10 }; + int[] pty0 = { y + height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x + height, x + 3 * width / 5 + width / 10 }; + int[] pty1 = { y + height - height / 20, y + height - height / 20 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5, + x + 4 * width / 5, x + 4 * width / 5 + width / 20 }; + int[] pty3 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, y + height / 5, + y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + 4 * width / 5 - width / 20, x + 4 * width / 5 + width / 20 }; + int[] pty4 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + 3 * width / 5, x + 3 * width / 5, x + 3 * width / 5 + width / 20, + x + 3 * width / 5 - width / 20, x + 3 * width / 5 }; + int[] pty5 = { y + height / 20, y + height - height / 20, y + height - height / 10, y + height - height / 10, + y + height - height / 20 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateRight(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5 - height / 10 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x + width - width / 20, x + width - width / 20 }; + int[] pty1 = { y, y + 2 * height / 5 - height / 10 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 20 }; + int[] pty3 = { y + height / 5 - height / 20, y + height / 5, y + height / 5, y + height / 5, y + height / 5, + y + height / 5 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty4 = { y + height / 5 - height / 20, y + height / 5 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + width - width / 20, x + width / 20, x + width / 10, x + width / 10, x + width / 20 }; + int[] pty5 = { y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 - height / 20, + y + 2 * height / 5 + height / 20, y + 2 * height / 5 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + private void rotateRightFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5 + height / 10 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x + width - width / 20, x + width - width / 20 }; + int[] pty1 = { y + height, y + 3 * height / 5 + height / 10 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 20 }; + int[] pty3 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5, + y + 4 * height / 5, y + 4 * height / 5 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty4 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + width - width / 20, x + width / 20, x + width / 10, x + width / 10, x + width / 20 }; + int[] pty5 = { y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 + height / 20, + y + 3 * height / 5 - height / 20, y + 3 * height / 5 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + private void rotateLeft(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5 + height / 10 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x + width - width / 20, x + width - width / 20 }; + int[] pty1 = { y + height, y + 3 * height / 5 + height / 10 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10, x + width / 5, + x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty3 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5, + y + 4 * height / 5, y + 4 * height / 5 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 }; + int[] pty4 = { y + 4 * height / 5 - height / 20, y + 4 * height / 5 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + width / 20, x + width - width / 20, x + width - width / 10, x + width - width / 10, + x + width - width / 20 }; + int[] pty5 = { y + 3 * height / 5, y + 3 * height / 5, y + 3 * height / 5 + height / 20, + y + 3 * height / 5 - height / 20, y + 3 * height / 5 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + private void rotateLeftFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5 - height / 10 }; + g.drawPolygon(ptx0, pty0, 2); + int[] ptx1 = { x + width - width / 20, x + width - width / 20 }; + int[] pty1 = { y, y + 2 * height / 5 - height / 10 }; + g.drawPolygon(ptx1, pty1, 2); + int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10, x + width / 5, + x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty3 = { y + height / 5 - height / 20, y + height / 5, y + height / 5, y + height / 5, y + height / 5, + y + height / 5 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 }; + int[] pty4 = { y + height / 5 - height / 20, y + height / 5 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + int[] ptx5 = { x + width / 20, x + width - width / 20, x + width - width / 10, x + width - width / 10, + x + width - width / 20 }; + int[] pty5 = { y + 2 * height / 5, y + 2 * height / 5, y + 2 * height / 5 - height / 20, + y + 2 * height / 5 + height / 20, y + 2 * height / 5 }; + g.drawPolygon(ptx5, pty5, 5); + g.fillPolygon(ptx5, pty5, 5); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_DE_VOLTAGE_SINK; + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNComponentVoltageSinkDE jde = new JDialogELNComponentVoltageSinkDE(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes scale=\"" + scale); + sb.append("\" position=\"" + position); + sb.append("\" fv_0_2=\"" + fv_0_2); + sb.append("\" fv_1_3=\"" + fv_1_3); + sb.append("\" fh_0_2=\"" + fh_0_2); + sb.append("\" fh_1_3=\"" + fh_1_3); + sb.append("\" first=\"" + first + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + double scale; + int position; + boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + scale = Double.parseDouble(elt.getAttribute("scale")); + position = Integer.parseInt(elt.getAttribute("position")); + fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2")); + fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3")); + fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2")); + fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3")); + first = Boolean.parseBoolean(elt.getAttribute("first")); + setScale(scale); + setPosition(position); + setFv_0_2(fv_0_2); + setFv_1_3(fv_1_3); + setFh_0_2(fh_0_2); + setFh_1_3(fh_1_3); + setFirst(first); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) { + componentMenu.addSeparator(); + + JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0"); + rotateright.addActionListener(this); + componentMenu.add(rotateright); + + JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0"); + rotateleft.addActionListener(this); + componentMenu.add(rotateleft); + + componentMenu.addSeparator(); + + JMenuItem rotatevertically = new JMenuItem("Flip vertically"); + rotatevertically.addActionListener(this); + componentMenu.add(rotatevertically); + + JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally"); + rotatehorizontally.addActionListener(this); + componentMenu.add(rotatehorizontally); + } + + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("Rotate right 90\u00b0")) { + position++; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Rotate left 90\u00b0")) { + position = position + 3; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Flip vertically")) { + if (position == 0 || position == 2) { + if (fv_0_2 == false) { + fv_0_2 = true; + } else { + fv_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fv_1_3 == false) { + fv_1_3 = true; + } else { + fv_1_3 = false; + } + } + } + if (e.getActionCommand().equals("Flip horizontally")) { + if (position == 0 || position == 2) { + if (fh_0_2 == false) { + fh_0_2 = true; + } else { + fh_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fh_1_3 == false) { + fh_1_3 = true; + } else { + fh_1_3 = false; + } + } + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public double getScale() { + return scale; + } + + public void setScale(double _scale) { + scale = _scale; + } + + public int getPosition() { + return position; + } + + public void setPosition(int _position) { + position = _position; + } + + public boolean isFv_0_2() { + return fv_0_2; + } + + public void setFv_0_2(boolean _fv_0_2) { + fv_0_2 = _fv_0_2; + } + + public boolean isFv_1_3() { + return fv_1_3; + } + + public void setFv_1_3(boolean _fv_1_3) { + fv_1_3 = _fv_1_3; + } + + public boolean isFh_0_2() { + return fh_0_2; + } + + public void setFh_0_2(boolean _fh_0_2) { + fh_0_2 = _fh_0_2; + } + + public boolean isFh_1_3() { + return fh_1_3; + } + + public void setFh_1_3(boolean _fh_1_3) { + fh_1_3 = _fh_1_3; + } + + public boolean isFirst() { + return first; + } + + public void setFirst(boolean _first) { + first = _first; + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNModule)) { + resizeToFatherSize(); + + setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight()); + setMoveCd(x, y); + } + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } +} diff --git a/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSourceDE.java b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSourceDE.java new file mode 100644 index 0000000000000000000000000000000000000000..606e965e38a915e7cee1e59a9530c0f949c2f6f2 --- /dev/null +++ b/src/main/java/ui/eln/sca_eln_sca_de/ELNComponentVoltageSourceDE.java @@ -0,0 +1,1098 @@ +/* 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.eln.sca_eln_sca_de; + +import myutil.GraphicLib; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import ui.*; +import ui.eln.*; +import ui.window.JDialogELNComponentVoltageSourceDE; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.geom.RoundRectangle2D; + +/** + * Class ELNComponentVoltageSourceDE + * Voltage source driven by a TDF input signal to be used in ELN diagrams + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE + */ + +public class ELNComponentVoltageSourceDE extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { + protected Color myColor; + protected int orientation; + private int maxFontSize = 14; + private int minFontSize = 4; + private int currentFontSize = -1; + + private int textX = 15; + private double dtextX = 0.0; + protected int decPoint = 3; + + private double scale; + + private int position = 0; + private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false; + private int old; + private boolean first; + + public ELNComponentVoltageSourceDE(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + + initScaling(100, 100); + + dtextX = textX * oldScaleFactor; + textX = (int) dtextX; + dtextX = dtextX - textX; + + minWidth = 1; + minHeight = 1; + + initPortTerminal(3); + + addTGConnectingPointsComment(); + + moveable = true; + editable = true; + removable = true; + userResizable = false; + value = tdp.findELNComponentName("DE_VSource"); + + setScale(1.0); + + old = width; + width = height; + height = old; + } + + public void initPortTerminal(int nb) { + nbConnectingPoint = nb; + connectingPoint = new TGConnectingPoint[nb]; + connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p"); + connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "n"); + connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "inp"); + } + + public Color getMyColor() { + return myColor; + } + + public void internalDrawing(Graphics g) { + Font f = g.getFont(); + Font fold = f; + MainGUI mgui = getTDiagramPanel().getMainGUI(); + + if (this.rescaled && !this.tdp.isScaled()) { + this.rescaled = false; + int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom()))); + f = f.deriveFont((float) maxCurrentFontSize); + + while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) { + if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) { + break; + } + maxCurrentFontSize--; + f = f.deriveFont((float) maxCurrentFontSize); + } + + if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) { + maxCurrentFontSize++; + f = f.deriveFont((float) maxCurrentFontSize); + } + g.setFont(f); + this.currentFontSize = maxCurrentFontSize; + } else { + f = f.deriveFont(this.currentFontSize); + } + + Color c = g.getColor(); + + if (position == 0) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("inp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 1) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + } else if (position == 2) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sw2 = g.getFontMetrics().stringWidth("inp"); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int w = g.getFontMetrics().stringWidth(value); + g.drawString(value, x + (width - w) / 2, y - height / 5 - height / 20); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateBottom(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateTopFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, + y + height + height / 20 + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateBottomFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateTop(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.5); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width, y - height / 20); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width, + y + height + height / 20 + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - sw2, + y + height / 2 + height / 10 + height / 20 + sh2); + } + } + } else if (position == 3) { + if (first == false) { + first = true; + old = width; + width = height; + height = old; + resizeWithFather(); + } + + int attributeFontSize = this.currentFontSize * 5 / 6; + int sw0 = g.getFontMetrics().stringWidth("p"); + int sh0 = g.getFontMetrics().getAscent(); + int sw1 = g.getFontMetrics().stringWidth("n"); + int sh1 = g.getFontMetrics().getAscent(); + int sh2 = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + int h = g.getFontMetrics().getAscent(); + g.drawString(value, x + width + width / 5 + width / 20, y + (height + h) / 2); + g.setFont(f.deriveFont(Font.PLAIN)); + + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) { + rotateLeft(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, y); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) { + rotateLeftFlip(g); + ((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[1]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 20 - sw0, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 20, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) { + rotateRightFlip(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(0.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(1.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 20 - sw1, y); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 20, y); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, + y + height + sh2); + } + } + if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true) + || (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false) + || (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) { + rotateRight(g); + ((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[1]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[0]).setW(19.0 / 20.0); + ((ELNConnectingPoint) connectingPoint[0]).setH(1.0); + ((ELNConnectingPoint) connectingPoint[2]).setW(0.5); + ((ELNConnectingPoint) connectingPoint[2]).setH(0.0); + if (mgui.getHidden() == false) { + g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 16 - sw1, + y + height + sh1); + g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 16, + y + height + sh0); + g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width / 2 + width / 10 + width / 20, y); + } + } + } + g.setColor(c); + g.setFont(fold); + } + + private void rotateTop(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5, + x + 3 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx1 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10, + x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10, + x + 3 * width / 5 + width / 10 + width / 20 }; + int[] pty1 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, + y + height / 10 + height / 10, y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx1, pty1, 6); + int[] ptx2 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10 + width / 20 }; + int[] pty2 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx2, pty2, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateTopFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width, x + 3 * width / 5, x + 3 * width / 5, x + width, x + 3 * width / 5, + x + 3 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + 2 * width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx1 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10, + x + 3 * width / 5 + width / 10, x + 3 * width / 5 + width / 10, + x + 3 * width / 5 + width / 10 + width / 20 }; + int[] pty1 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20, + y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20, + y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx1, pty1, 6); + int[] ptx2 = { x + 3 * width / 5 + width / 20, x + 3 * width / 5 + width / 10 + width / 20 }; + int[] pty2 = { y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx2, pty2, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 10, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottom(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx3 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 10, + x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10, + x + 2 * width / 5 - width / 20 }; + int[] pty3 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20, + y + height - 2 * height / 10, y + height - height / 10, y + height - height / 10 - height / 20, + y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 20 }; + int[] pty4 = { y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateBottomFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x, x + 2 * width / 5, x + 2 * width / 5, x, x + 2 * width / 5, x + 2 * width / 5 }; + int[] pty0 = { y + height / 20, y + height / 20, y + height - height / 20, y + height - height / 20, + y + height - height / 20, y + height / 20 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + width / 5, y + height / 2 - height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx3 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 10, + x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10, x + 2 * width / 5 - width / 10, + x + 2 * width / 5 - width / 20 }; + int[] pty3 = { y + height / 10 + height / 20, y + height / 10 + height / 20, y + height / 10, y + height / 5, + y + height / 10 + height / 20, y + height / 10 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + 2 * width / 5 - width / 10 - width / 20, x + 2 * width / 5 - width / 20 }; + int[] pty4 = { y + height - height / 10 - height / 20, y + height - height / 10 - height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x + width / 20, y - height / 20, 4 * width / 5 + width / 10 - width / 20, + height + height / 10, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + } + + private void rotateRight(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5, + y + 3 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 20 }; + int[] pty3 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10, + y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10, + y + 3 * height / 5 + height / 10 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty4 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + private void rotateRightFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx3 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 10, x + width - width / 10, x + width - width / 10 - width / 20, + x + width - width / 10 - width / 20 }; + int[] pty3 = { y + 2 * height / 5 - height / 10 - height / 20, y + 2 * height / 5 - height / 10, + y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10, + y + 2 * height / 5 - height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty4 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5 - height / 10 - height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + private void rotateLeft(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y, y + 2 * height / 5, y + 2 * height / 5, y, y + 2 * height / 5, y + 2 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + width / 2 - width / 5, y + height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10, + x + width / 10 + width / 10, x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty3 = { y + 2 * height / 5 - height / 10 - height / 20, y + 2 * height / 5 - height / 10, + y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10, y + 2 * height / 5 - height / 10, + y + 2 * height / 5 - height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 }; + int[] pty4 = { y + 2 * height / 5 - height / 20, y + 2 * height / 5 - height / 10 - height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, + true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 20, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + } + + private void rotateLeftFlip(Graphics g) { + Color c = g.getColor(); + int[] ptx0 = { x + width / 20, x + width / 20, x + width - width / 20, x + width - width / 20, + x + width - width / 20, x + width / 20 }; + int[] pty0 = { y + height, y + 3 * height / 5, y + 3 * height / 5, y + height, y + 3 * height / 5, + y + 3 * height / 5 }; + g.drawPolygon(ptx0, pty0, 6); + g.drawOval(x + width / 2 - width / 5, y + 2 * height / 5, width / 5 + width / 5, height / 5 + height / 5); + int[] ptx3 = { x + width / 10 + width / 20, x + width / 10 + width / 20, x + width / 10, + x + width / 10 + width / 10, x + width / 10 + width / 20, x + width / 10 + width / 20 }; + int[] pty3 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10, + y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10, y + 3 * height / 5 + height / 10, + y + 3 * height / 5 + height / 10 + height / 20 }; + g.drawPolygon(ptx3, pty3, 6); + int[] ptx4 = { x + width - width / 10 - width / 20, x + width - width / 10 - width / 20 }; + int[] pty4 = { y + 3 * height / 5 + height / 20, y + 3 * height / 5 + height / 10 + height / 20 }; + g.drawPolygon(ptx4, pty4, 2); + GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); + + Graphics2D g2d = (Graphics2D) g.create(); + Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); + g2d.setStroke(dashed); + g2d.draw(new RoundRectangle2D.Double(x - width / 20, y + height / 10, width + width / 10, + 4 * height / 5 + height / 10 - height / 20, 10, 10)); + g2d.dispose(); + + g.drawOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + g.drawOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(Color.WHITE); + g.fillOval(x + width - width / 10, y + height - height / 10, width / 10, height / 10); + g.setColor(c); + + g.setColor(Color.WHITE); + g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.setColor(c); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); + } + + public TGComponent isOnOnlyMe(int _x, int _y) { + if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { + return this; + } + return null; + } + + public int getType() { + return TGComponentManager.ELN_DE_VOLTAGE_SOURCE; + } + + public boolean editOndoubleClick(JFrame frame) { + JDialogELNComponentVoltageSourceDE jde = new JDialogELNComponentVoltageSourceDE(this); + jde.setVisible(true); + return true; + } + + protected String translateExtraParam() { + StringBuffer sb = new StringBuffer("<extraparam>\n"); + sb.append("<attributes scale=\"" + scale); + sb.append("\" position=\"" + position); + sb.append("\" fv_0_2=\"" + fv_0_2); + sb.append("\" fv_1_3=\"" + fv_1_3); + sb.append("\" fh_0_2=\"" + fh_0_2); + sb.append("\" fh_1_3=\"" + fh_1_3); + sb.append("\" first=\"" + first + "\""); + sb.append("/>\n"); + sb.append("</extraparam>\n"); + return new String(sb); + } + + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { + try { + NodeList nli; + Node n1, n2; + Element elt; + + double scale; + int position; + boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first; + + for (int i = 0; i < nl.getLength(); i++) { + n1 = nl.item(i); + if (n1.getNodeType() == Node.ELEMENT_NODE) { + nli = n1.getChildNodes(); + for (int j = 0; j < nli.getLength(); j++) { + n2 = nli.item(j); + if (n2.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n2; + if (elt.getTagName().equals("attributes")) { + scale = Double.parseDouble(elt.getAttribute("scale")); + position = Integer.parseInt(elt.getAttribute("position")); + fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2")); + fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3")); + fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2")); + fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3")); + first = Boolean.parseBoolean(elt.getAttribute("first")); + setScale(scale); + setPosition(position); + setFv_0_2(fv_0_2); + setFv_1_3(fv_1_3); + setFh_0_2(fh_0_2); + setFh_1_3(fh_1_3); + setFirst(first); + } + } + } + } + } + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) { + componentMenu.addSeparator(); + + JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0"); + rotateright.addActionListener(this); + componentMenu.add(rotateright); + + JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0"); + rotateleft.addActionListener(this); + componentMenu.add(rotateleft); + + componentMenu.addSeparator(); + + JMenuItem rotatevertically = new JMenuItem("Flip vertically"); + rotatevertically.addActionListener(this); + componentMenu.add(rotatevertically); + + JMenuItem rotatehorizontally = new JMenuItem("Flip horizontally"); + rotatehorizontally.addActionListener(this); + componentMenu.add(rotatehorizontally); + } + + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("Rotate right 90\u00b0")) { + position++; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Rotate left 90\u00b0")) { + position = position + 3; + position %= 4; + first = false; + } + if (e.getActionCommand().equals("Flip vertically")) { + if (position == 0 || position == 2) { + if (fv_0_2 == false) { + fv_0_2 = true; + } else { + fv_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fv_1_3 == false) { + fv_1_3 = true; + } else { + fv_1_3 = false; + } + } + } + if (e.getActionCommand().equals("Flip horizontally")) { + if (position == 0 || position == 2) { + if (fh_0_2 == false) { + fh_0_2 = true; + } else { + fh_0_2 = false; + } + } + if (position == 1 || position == 3) { + if (fh_1_3 == false) { + fh_1_3 = true; + } else { + fh_1_3 = false; + } + } + } + } + + public int getDefaultConnector() { + return TGComponentManager.ELN_CONNECTOR; + } + + public double getScale() { + return scale; + } + + public void setScale(double _scale) { + scale = _scale; + } + + public int getPosition() { + return position; + } + + public void setPosition(int _position) { + position = _position; + } + + public boolean isFv_0_2() { + return fv_0_2; + } + + public void setFv_0_2(boolean _fv_0_2) { + fv_0_2 = _fv_0_2; + } + + public boolean isFv_1_3() { + return fv_1_3; + } + + public void setFv_1_3(boolean _fv_1_3) { + fv_1_3 = _fv_1_3; + } + + public boolean isFh_0_2() { + return fh_0_2; + } + + public void setFh_0_2(boolean _fh_0_2) { + fh_0_2 = _fh_0_2; + } + + public boolean isFh_1_3() { + return fh_1_3; + } + + public void setFh_1_3(boolean _fh_1_3) { + fh_1_3 = _fh_1_3; + } + + public boolean isFirst() { + return first; + } + + public void setFirst(boolean _first) { + first = _first; + } + + public void resizeWithFather() { + if ((father != null) && (father instanceof ELNModule)) { + resizeToFatherSize(); + + setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight()); + setMoveCd(x, y); + } + } + + public void wasSwallowed() { + myColor = null; + } + + public void wasUnswallowed() { + myColor = null; + setFather(null); + TDiagramPanel tdp = getTDiagramPanel(); + setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); + } +} diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java index 65b6ae4b57331bb0be97d3adc1726f9da3c36585..db305e44b99cfcf71278eb3f625ee3bb9eee5407 100644 --- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java +++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java @@ -59,7 +59,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -554,6 +554,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -583,6 +584,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -613,6 +615,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -643,6 +646,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -672,6 +676,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -702,6 +707,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -732,6 +738,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -761,6 +768,7 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx1, pty1, 3); g.fillPolygon(ptx1, pty1, 3); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java index 8279eeefc90925b8a536ad6b22a8ca922d012847..ab21fbe7552639ef278e5af847691e2fda99cffb 100644 --- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java +++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSourceTDF.java @@ -60,7 +60,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -559,6 +559,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone x + 4 * width / 5 + width / 10, y + 4 * height / 5 - height / 10, true); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -592,6 +593,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone x + 4 * width / 5 + width / 10, y + height / 5 + height / 10, true); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -626,6 +628,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, true); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -660,6 +663,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, true); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -693,6 +697,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone x + width / 5 + width / 10, y + 4 * height / 5 + height / 10, true); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -727,6 +732,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, true); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -761,6 +767,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, true); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -794,6 +801,7 @@ public class ELNComponentCurrentSourceTDF extends TGCScalableWithInternalCompone x + 4 * width / 5 - width / 10, y + 4 * height / 5 + height / 10, true); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java index 5868c2fab8269ba89fce0f8767c5d0dba4be3289..4184fba141fede5205a6987aa4abed96f4f6b13a 100644 --- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java +++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java @@ -60,7 +60,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -567,6 +567,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -608,6 +609,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -649,6 +651,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -690,6 +693,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -731,6 +735,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -772,6 +777,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -813,6 +819,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -854,6 +861,7 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent g.drawPolygon(ptx5, pty5, 5); g.fillPolygon(ptx5, pty5, 5); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java index 9a8fa2733bc0861affe318b4cf57e1406169fa65..cb5b97b8b0a0b9db56f34e940203a5256c7ff3b2 100644 --- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java +++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSourceTDF.java @@ -60,7 +60,7 @@ import java.awt.geom.RoundRectangle2D; * @author Irina Kit Yan LEE */ -public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNComponent { +public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalComponent implements ActionListener, SwallowedTGComponent, ELNPrimitiveComponent { protected Color myColor; protected int orientation; private int maxFontSize = 14; @@ -563,6 +563,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone g.drawPolygon(ptx2, pty2, 2); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -601,6 +602,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone g.drawPolygon(ptx2, pty2, 2); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 5, y + height / 2, x + 2 * width / 5, y + height / 2, true); g.fillRect(x, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -639,6 +641,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, true); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -676,6 +679,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + 4 * width / 5, y + height / 2, x + 3 * width / 5, y + height / 2, true); g.fillRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); + g.drawRect(x + 4 * width / 5, y + 2 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -714,6 +718,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone g.drawPolygon(ptx4, pty4, 2); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -751,6 +756,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone g.drawPolygon(ptx4, pty4, 2); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, true); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); @@ -789,6 +795,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + 4 * height / 5, x + width / 2, y + 3 * height / 5, true); g.fillRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y + 4 * height / 5, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); @@ -826,6 +833,7 @@ public class ELNComponentVoltageSourceTDF extends TGCScalableWithInternalCompone g.drawPolygon(ptx4, pty4, 2); GraphicLib.arrowWithLine(g, 1, 0, 10, x + width / 2, y + height / 5, x + width / 2, y + 2 * height / 5, true); g.fillRect(x + 2 * width / 5, y, width / 5, height / 5); + g.drawRect(x + 2 * width / 5, y, width / 5, height / 5); Graphics2D g2d = (Graphics2D) g.create(); Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 9 }, 0); diff --git a/src/main/java/ui/ftd/FTDFault.java b/src/main/java/ui/ftd/FTDFault.java index e14ba3352c50b5d268175d7a2998aa1a24393dff..f4862392ae7491656f6c2fe9e1914f8feb1ce1d6 100644 --- a/src/main/java/ui/ftd/FTDFault.java +++ b/src/main/java/ui/ftd/FTDFault.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ftd; - import myutil.GraphicLib; import myutil.TraceManager; import org.w3c.dom.Element; @@ -54,11 +50,6 @@ import ui.window.JDialogFault; import javax.swing.*; import java.awt.*; - -//import org.w3c.dom.*; -//import org.xml.sax.*; -//import javax.xml.parsers.*; - /** * Class FTDFault * Panel used for drawing fault trees @@ -67,7 +58,7 @@ import java.awt.*; * @author Ludovic APVRILLE */ -public class FTDFault extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility, CanBeDisabled { +public class FTDFault extends TGCScalableWithInternalComponent implements SwallowedTGComponent, WithAttributes, CheckableAccessibility/*, Issue #69 CanBeDisabled*/ { public static double DEFAULT_PROBABILITY = 0.5; private int textY1 = 3; @@ -139,6 +130,7 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo myImageIcon = IconManager.imgic702; } + @Override public void internalDrawing(Graphics g) { String ster; if (isRootFault) { @@ -183,7 +175,11 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo g.setColor(ColorManager.FTD_FAULT); } } else { - g.setColor(ColorManager.FTD_FAULT_DISABLED); + // Issue #69: Disabled color now managed in TGComponent / ColorManager + // For filled shapes ensure background color is white so that text is + // readable + g.setColor( ColorManager.DISABLED_FILLING ); + //g.setColor(ColorManager.FTD_FAULT_DISABLED); } g.fill3DRect(x+1, y+1, width-1, height-1, true); @@ -234,25 +230,22 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo } } - if (!isEnabled()) { - String val = "disabled"; - w = g.getFontMetrics().stringWidth(val); - //int h = currentFontSize + (int)(textY1 * tdp.getZoom()); - g.setFont(f.deriveFont(Font.ITALIC)); - g.drawString(val, x + (width - w - 5), y + height - 2); - } - - - + // Issue #69 +// if (!isEnabled()) { +// String val = "disabled"; +// w = g.getFontMetrics().stringWidth(val); +// //int h = currentFontSize + (int)(textY1 * tdp.getZoom()); +// g.setFont(f.deriveFont(Font.ITALIC)); +// g.drawString(val, x + (width - w - 5), y + height - 2); +// } } else { TraceManager.addDev("-------------------------------------------------- Cannot display text of attack"); } g.setFont(fold); - } - public void setValue(String val, Graphics g) { + private void setValue(String val, Graphics g) { oldValue = value; String ster; if (isRootFault) { @@ -278,12 +271,10 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo resizeWithFather(); } - g.setFont(f0); - - // } + @Override public void resizeWithFather() { if ((father != null) && (father instanceof FTDBlock)) { // @@ -293,7 +284,7 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo } } - + @Override public boolean editOndoubleClick(JFrame frame) { String tmp; boolean error = false; @@ -328,8 +319,6 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo probability = new Double(dialog.getProbability()).doubleValue(); } - - isRootFault = dialog.isRootFault(); if (error) { @@ -342,18 +331,20 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo return !error; } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { - if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; } return null; } + @Override public int getType() { return TGComponentManager.FTD_FAULT; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info description=\"" + description); @@ -361,14 +352,13 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo sb.append("\" probability=\"" + probability); sb.append("\" />\n"); sb.append("</extraparam>\n"); + return new String(sb); } @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - // try { - NodeList nli; Node n1, n2; Element elt; @@ -418,11 +408,10 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } - public double getProbability() { return probability; } @@ -445,7 +434,6 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo return s; } - public boolean isRootFault() { return isRootFault; } @@ -456,6 +444,13 @@ public class FTDFault extends TGCScalableWithInternalComponent implements Swallo setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); } - - + + /** + * Issue #69 + * @return + */ + @Override + public boolean canBeDisabled() { + return true; + } } diff --git a/src/main/java/ui/ncdd/NCDiagramPanel.java b/src/main/java/ui/ncdd/NCDiagramPanel.java index 87f1f197fcf1e938392137896550f04341f55a66..19a5228ee27f6be872053612dab0b551aac9f27f 100755 --- a/src/main/java/ui/ncdd/NCDiagramPanel.java +++ b/src/main/java/ui/ncdd/NCDiagramPanel.java @@ -36,20 +36,22 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ncdd; - -import org.w3c.dom.Element; -import ui.*; - import java.util.ArrayList; -import java.util.Iterator; import java.util.LinkedList; +import java.util.List; import java.util.ListIterator; +import org.w3c.dom.Element; + +import ui.MainGUI; +import ui.TDPWithAttributes; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGConnectingPoint; +import ui.TToolBar; + /** * Class NCDiagramPanel * Panel for drawing an NC diagram @@ -66,6 +68,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { addMouseMotionListener(tdmm);*/ } + @Override public boolean actionOnDoubleClick(TGComponent tgc) { // /*if (tgc instanceof TCDTClass) { @@ -86,6 +89,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return false; } + @Override public boolean actionOnAdd(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { TCDTClass tgcc = (TCDTClass)(tgc); @@ -96,6 +100,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return false; } + @Override public boolean actionOnRemove(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { TCDTClass tgcc = (TCDTClass)(tgc); @@ -106,6 +111,7 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return false; } + @Override public boolean actionOnValueChanged(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { return actionOnDoubleClick(tgc); @@ -113,26 +119,32 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return false; } + @Override public String getXMLHead() { return "<NCDiagramPanel name=\"" + name + "\"" + sizeParam() + displayParam() + " >"; } + @Override public String getXMLTail() { return "</NCDiagramPanel>"; } + @Override public String getXMLSelectedHead() { return "<NCDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >"; } + @Override public String getXMLSelectedTail() { return "</NCDiagramPanelCopy>"; } + @Override public String getXMLCloneHead() { return "<NCDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >"; } + @Override public String getXMLCloneTail() { return "</NCDiagramPanelCopy>"; } @@ -177,8 +189,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return true; }*/ - public LinkedList<TGComponent> getListOfNodes() { - LinkedList<TGComponent> ll = new LinkedList<>(); + public List<TGComponent> getListOfNodes() { + List<TGComponent> ll = new LinkedList<>(); for (TGComponent tgc : componentList) { if (tgc instanceof NCEqNode) { @@ -194,8 +206,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return ll; } - public LinkedList<NCEqNode> getListOfEqNode() { - LinkedList<NCEqNode> ll = new LinkedList<>(); + public List<NCEqNode> getListOfEqNode() { + List<NCEqNode> ll = new LinkedList<>(); for (TGComponent tgc : this.componentList) { if (tgc instanceof NCEqNode) { @@ -218,8 +230,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return null; } - public LinkedList<NCSwitchNode> getListOfSwitchNode() { - LinkedList<NCSwitchNode> ll = new LinkedList<>(); + public List<NCSwitchNode> getListOfSwitchNode() { + List<NCSwitchNode> ll = new LinkedList<>(); for (TGComponent tgc : this.componentList) { if (tgc instanceof NCSwitchNode) { ll.add((NCSwitchNode) tgc); @@ -229,8 +241,8 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return ll; } - public LinkedList<NCConnectorNode> getListOfLinks() { - LinkedList<NCConnectorNode> ll = new LinkedList<>(); + public List<NCConnectorNode> getListOfLinks() { + List<NCConnectorNode> ll = new LinkedList<>(); for (TGComponent tgc : this.componentList) { if (tgc instanceof NCConnectorNode) { ll.add((NCConnectorNode) tgc); @@ -240,15 +252,15 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return ll; } - public ArrayList<String> getInterfaces(NCSwitchNode sw) { - ListIterator iterator = getListOfLinks().listIterator(); + public List<String> getInterfaces(NCSwitchNode sw) { + ListIterator<NCConnectorNode> iterator = getListOfLinks().listIterator(); NCConnectorNode lk; TGConnectingPoint p; - ArrayList<String> list = new ArrayList<String>(); + List<String> list = new ArrayList<String>(); while (iterator.hasNext()) { - lk = (NCConnectorNode) (iterator.next()); + lk = iterator.next(); p = lk.getTGConnectingPointP1(); if (sw.belongsToMe(p)) { list.add(lk.getInterfaceName()); @@ -263,10 +275,10 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return list; } - public ArrayList<NCRoute> getAllRoutesFor(NCSwitchNode sw, NCTrafficArtifact arti) { - ArrayList<NCRoute> list = sw.getRoutesList(); + public List<NCRoute> getAllRoutesFor(NCSwitchNode sw, NCTrafficArtifact arti) { + List<NCRoute> list = sw.getRoutesList(); - ArrayList<NCRoute> ret = new ArrayList<NCRoute>(); + List<NCRoute> ret = new ArrayList<NCRoute>(); for (NCRoute route : list) { if (route.traffic.equals(arti.getValue())) { @@ -277,15 +289,15 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return ret; } - public ArrayList<NCSwitchNode> getSwitchesOfEq(NCEqNode eq) { - ListIterator iterator = getListOfLinks().listIterator(); + public List<NCSwitchNode> getSwitchesOfEq(NCEqNode eq) { + ListIterator<NCConnectorNode> iterator = getListOfLinks().listIterator(); NCConnectorNode lk; TGConnectingPoint p; ArrayList<NCSwitchNode> list = new ArrayList<NCSwitchNode>(); while (iterator.hasNext()) { - lk = (NCConnectorNode) (iterator.next()); + lk = iterator.next(); p = lk.getTGConnectingPointP1(); if (eq.belongsToMe(p)) { list.add((NCSwitchNode) (getComponentToWhichBelongs(lk.getTGConnectingPointP2()))); @@ -300,15 +312,15 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return list; } - public ArrayList<NCConnectorNode> getConnectorOfEq(NCEqNode eq) { - ListIterator iterator = getListOfLinks().listIterator(); + public List<NCConnectorNode> getConnectorOfEq(NCEqNode eq) { + ListIterator<NCConnectorNode> iterator = getListOfLinks().listIterator(); NCConnectorNode lk; TGConnectingPoint p; - ArrayList<NCConnectorNode> list = new ArrayList<NCConnectorNode>(); + List<NCConnectorNode> list = new ArrayList<NCConnectorNode>(); while (iterator.hasNext()) { - lk = (NCConnectorNode) (iterator.next()); + lk = iterator.next(); p = lk.getTGConnectingPointP1(); if (eq.belongsToMe(p)) { list.add(lk); @@ -323,14 +335,14 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { return list; } - public ArrayList<NCTrafficArtifact> getTrafficArtifacts() { - ListIterator iterator = getListOfEqNode().listIterator(); + public List<NCTrafficArtifact> getTrafficArtifacts() { + ListIterator<NCEqNode> iterator = getListOfEqNode().listIterator(); NCEqNode eq; - ArrayList<NCTrafficArtifact> list = new ArrayList<NCTrafficArtifact>(); + List<NCTrafficArtifact> list = new ArrayList<NCTrafficArtifact>(); while (iterator.hasNext()) { - eq = (NCEqNode) (iterator.next()); + eq = iterator.next(); eq.addAllTrafficArtifacts(list); } @@ -338,11 +350,11 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { } public NCEqNode getNCEqNodeOf(NCTrafficArtifact arti) { - ListIterator iterator = getListOfEqNode().listIterator(); + ListIterator<NCEqNode> iterator = getListOfEqNode().listIterator(); NCEqNode eq; while (iterator.hasNext()) { - eq = (NCEqNode) (iterator.next()); + eq = iterator.next(); if (eq.hasTraffic(arti)) { return eq; } @@ -352,14 +364,14 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { } - public ArrayList<String> getTraffics() { - ListIterator iterator = getListOfEqNode().listIterator(); + public List<String> getTraffics() { + ListIterator<NCEqNode> iterator = getListOfEqNode().listIterator(); NCEqNode eq; - ArrayList<String> list = new ArrayList<String>(); + List<String> list = new ArrayList<String>(); while (iterator.hasNext()) { - eq = (NCEqNode) (iterator.next()); + eq = iterator.next(); eq.addAllTraffics(list); } @@ -399,7 +411,6 @@ public class NCDiagramPanel extends TDiagramPanel implements TDPWithAttributes { } public NCConnectorNode getLinkByName(String name) { - for (TGComponent tgc : this.componentList) { if (tgc instanceof NCConnectorNode) { NCConnectorNode link = (NCConnectorNode) tgc; diff --git a/src/main/java/ui/ncdd/NCEqNode.java b/src/main/java/ui/ncdd/NCEqNode.java index a92bfe543b96f483b8bdc444bc28ebab7022388d..563cde58463f45053563da8f32ae44610e99dd0e 100755 --- a/src/main/java/ui/ncdd/NCEqNode.java +++ b/src/main/java/ui/ncdd/NCEqNode.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ncdd; import myutil.GraphicLib; @@ -47,8 +44,13 @@ import ui.util.IconManager; import ui.window.JDialogNCEqNode; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Polygon; import java.util.ArrayList; +import java.util.List; import java.util.Vector; @@ -113,6 +115,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo myImageIcon = IconManager.imgic700; } + @Override public void internalDrawing(Graphics g) { Color c = g.getColor(); g.draw3DRect(x, y, width, height, true); @@ -146,6 +149,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo g.drawImage(IconManager.imgic1100.getImage(), x + width - 20, y + 4, null); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { Polygon pol = new Polygon(); @@ -179,6 +183,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo return type; } + @Override public boolean editOndoubleClick(JFrame frame) { // String oldName = name; @@ -225,16 +230,18 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo return true; } - + @Override public int getType() { return TGComponentManager.NCDD_EQNODE; } + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { return tgc instanceof NCTrafficArtifact; } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { if (tgc instanceof NCTrafficArtifact) { @@ -251,11 +258,11 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { removeInternalComponent(tgc); } - public Vector<NCTrafficArtifact> getArtifactList() { Vector<NCTrafficArtifact> v = new Vector<NCTrafficArtifact> (); for(int i=0; i<nbInternalTGComponent; i++) { @@ -266,13 +273,13 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo return v; } - public void addAllTraffics(ArrayList<String> list) { + public void addAllTraffics( List<String> list) { for(int i=0; i<nbInternalTGComponent; i++) { list.add(tgcomponent[i].getValue()); } } - public void addAllTrafficArtifacts(ArrayList<NCTrafficArtifact> list) { + public void addAllTrafficArtifacts( List<NCTrafficArtifact> list) { for(int i=0; i<nbInternalTGComponent; i++) { list.add((NCTrafficArtifact)(tgcomponent[i])); } @@ -296,14 +303,13 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo } - - + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_NODE_NC; } - public String getAttributes() { - String attr = "Type: "; + public String getAttributes() { + String attr = "Type: "; if (type == 0) { attr += "Standard\n"; } else { @@ -316,8 +322,7 @@ public class NCEqNode extends TGCWithInternalComponent implements SwallowTGCompo pol = "SP"; } attr += "Scheduling policy = " + pol + "\n"; - return attr; + return attr; } - } diff --git a/src/main/java/ui/ncdd/NCRouteArtifact.java b/src/main/java/ui/ncdd/NCRouteArtifact.java index 5254257b7a49d03a6880b0fbe2154233745bc629..3f5e3c2bfe8b6c177bc9382b1e7109af235afb50 100755 --- a/src/main/java/ui/ncdd/NCRouteArtifact.java +++ b/src/main/java/ui/ncdd/NCRouteArtifact.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.ncdd; import myutil.GraphicLib; @@ -50,8 +47,11 @@ import ui.util.IconManager; import ui.window.JDialogNCRoute; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Graphics; import java.util.ArrayList; +import java.util.List; import java.util.Vector; /** @@ -95,8 +95,8 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal myImageIcon = IconManager.imgic702; } + @Override public void internalDrawing(Graphics g) { - if (oldValue.compareTo(value) != 0) { setValue(value, g); } @@ -117,10 +117,9 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran); g.drawString(value, x + textX , y + textY); - } - public void setValue(String val, Graphics g) { + private void setValue(String val, Graphics g) { oldValue = value; int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX + fileX + space); @@ -130,9 +129,9 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal width = w1; resizeWithFather(); } - // } + @Override public void resizeWithFather() { if ((father != null) && ((father instanceof NCEqNode) || (father instanceof NCSwitchNode))) { // @@ -142,15 +141,16 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal } } + @Override public boolean editOndoubleClick(JFrame frame) { String tmp; boolean error = false; Vector<NCRoute> vroutes = new Vector<NCRoute>(routes); - ArrayList<String> inputInterfaces = ((NCDiagramPanel)tdp).getInterfaces((NCSwitchNode)(getFather())); - ArrayList<String> traffics = ((NCDiagramPanel)tdp).getTraffics(); - ArrayList<String> outputInterfaces = new ArrayList<>(inputInterfaces); + List<String> inputInterfaces = ((NCDiagramPanel)tdp).getInterfaces((NCSwitchNode)(getFather())); + List<String> traffics = ((NCDiagramPanel)tdp).getTraffics(); + List<String> outputInterfaces = new ArrayList<>(inputInterfaces); JDialogNCRoute dialog = new JDialogNCRoute(frame, "Setting route attributes", value, vroutes, inputInterfaces, traffics, outputInterfaces); // dialog.setSize(900, 500); @@ -196,6 +196,7 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -203,10 +204,12 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal return null; } + @Override public int getType() { return TGComponentManager.NCDD_ROUTE_ARTIFACT; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); for(NCRoute route: routes) { @@ -265,7 +268,7 @@ public class NCRouteArtifact extends TGCWithoutInternalComponent implements Swal //makeFullValue(); } - public java.util.List<NCRoute> getRoutes() { + public List<NCRoute> getRoutes() { return routes; } diff --git a/src/main/java/ui/syscams/SysCAMSBlockDE.java b/src/main/java/ui/syscams/SysCAMSBlockDE.java index cabef17c3e73e14dfd3666282a58692b3b78068d..b88b13e3c82a19afa02a6584084c75cdf76bae9b 100644 --- a/src/main/java/ui/syscams/SysCAMSBlockDE.java +++ b/src/main/java/ui/syscams/SysCAMSBlockDE.java @@ -104,7 +104,7 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements removable = true; userResizable = true; - value = tdp.findSysCAMSPrimitiveComponentName("Block_DE_"); + value = tdp.findSysCAMSPrimitiveComponentName("blockDE"); name = "Primitive component - Block DE"; // setPeriod(-1); @@ -430,7 +430,6 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements Node n1, n2; Element elt; - int period; String code, nameFn, listStruct, nameTemplate, typeTemplate, listTypedef; for(int i=0; i<nl.getLength(); i++) { diff --git a/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java b/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java index 7541ca889e9aeda9703b9b0be66b20c814d79cf7..152947c73a371f6b56ddf1099565bf33c4b6044a 100644 --- a/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java +++ b/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java @@ -89,7 +89,7 @@ public class SysCAMSBlockGPIO2VCI extends TGCScalableWithInternalComponent imple removable = true; userResizable = true; - value = "Block_GPIO2VCI"; + value = "blockGPIO2VCI"; name = "Primitive component - Block GPIO2VCI"; myImageIcon = IconManager.imgic1202; diff --git a/src/main/java/ui/syscams/SysCAMSBlockTDF.java b/src/main/java/ui/syscams/SysCAMSBlockTDF.java index 004bf5d78ddbe80691a6e06bf53e0559b4b3c8cc..6241fbc349acc0a6854daba4b4f179db60c8b8e6 100644 --- a/src/main/java/ui/syscams/SysCAMSBlockTDF.java +++ b/src/main/java/ui/syscams/SysCAMSBlockTDF.java @@ -102,7 +102,7 @@ public class SysCAMSBlockTDF extends TGCScalableWithInternalComponent implements removable = true; userResizable = true; - value = tdp.findSysCAMSPrimitiveComponentName("Block_TDF_"); + value = tdp.findSysCAMSPrimitiveComponentName("blockTDF"); oldValue = value; name = "Primitive component - Block TDF"; diff --git a/src/main/java/ui/syscams/SysCAMSCompositeComponent.java b/src/main/java/ui/syscams/SysCAMSCompositeComponent.java index b4715c23be17b14934c853c5863e53c085eb266d..7291cfafd470159d757649601770f32203d1d195 100644 --- a/src/main/java/ui/syscams/SysCAMSCompositeComponent.java +++ b/src/main/java/ui/syscams/SysCAMSCompositeComponent.java @@ -39,9 +39,6 @@ package ui.syscams; import myutil.GraphicLib; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import ui.*; import ui.util.IconManager; diff --git a/src/main/java/ui/syscams/SysCAMSPortConnector.java b/src/main/java/ui/syscams/SysCAMSPortConnector.java index 4749eda5da4460fdb2371cad12ea80661a8af7b1..ca2f7828ccf83bfe9f8c0085989cdda708dc97e2 100644 --- a/src/main/java/ui/syscams/SysCAMSPortConnector.java +++ b/src/main/java/ui/syscams/SysCAMSPortConnector.java @@ -40,7 +40,6 @@ package ui.syscams; import ui.*; import ui.util.IconManager; -import ui.window.JDialogELNConnector; import ui.window.JDialogSysCAMSConnector; import java.awt.*; @@ -90,13 +89,6 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGCompo protected void drawLastSegment(Graphics gr, int x1, int y1, int x2, int y2) { Graphics2D g = (Graphics2D) gr; - int w = g.getFontMetrics().stringWidth(value); - Font fold = g.getFont(); - Font f = fold.deriveFont(Font.ITALIC, (float) (tdp.getFontSize())); - g.setFont(f); - g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); - g.setFont(fold); - try { SysCAMSPortConnectingPoint pt1 = (SysCAMSPortConnectingPoint) p1; SysCAMSPortConnectingPoint pt2 = (SysCAMSPortConnectingPoint) p2; @@ -113,6 +105,11 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGCompo } } if ((pt1.port != null) && (pt2.port != null)) { + String name1 = pt1.port.getPortName(); + String name2 = pt2.port.getPortName(); + if (name1.equals(name2)) { + value = name1; + } if ((pt1.port instanceof SysCAMSPortConverter) && (pt2.port instanceof SysCAMSPortDE)) { if (pt2.port.getFather().getFather() instanceof SysCAMSCompositeComponent) { GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); @@ -144,6 +141,14 @@ public class SysCAMSPortConnector extends TGConnector implements ScalableTGCompo GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); } } + + int w = g.getFontMetrics().stringWidth(value); + Font fold = g.getFont(); + Font f = fold.deriveFont(Font.ITALIC, (float) (tdp.getFontSize())); + g.setFont(f); + g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2) / 2); + g.setFont(fold); + return; } catch (Exception e) { } diff --git a/src/main/java/ui/syscams/SysCAMSPrimitivePort.java b/src/main/java/ui/syscams/SysCAMSPrimitivePort.java index d50ac502636280e33b42ba2d9529faa3ffe4bd2a..8d2e225f1c3113239b6f8196ba399e753f8d71f8 100644 --- a/src/main/java/ui/syscams/SysCAMSPrimitivePort.java +++ b/src/main/java/ui/syscams/SysCAMSPrimitivePort.java @@ -65,7 +65,6 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple private int minFontSize = 4; private int currentFontSize = -1; protected int oldx, oldy; - protected int halfwidth = 13; protected int currentOrientation = GraphicLib.NORTH; private int isOrigin = -1; @@ -76,14 +75,11 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple private int textX = 15; private double dtextX = 0.0; protected int decPoint = 3; - - private ImageIcon portImageIconTDF, portImageIconDE; - private ImageIcon portImageIconW, portImageIconE, portImageIconN, portImageIconS; public SysCAMSPrimitivePort(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - initScaling(2*halfwidth, 2*halfwidth); + initScaling(20, 20); dtextX = textX * oldScaleFactor; textX = (int)dtextX; @@ -107,12 +103,6 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple name = "Primitive port - " + getPortTypeName(); myImageIcon = IconManager.imgic1206; - portImageIconTDF = IconManager.imgic8000; - portImageIconDE = IconManager.imgic8001; - portImageIconW = IconManager.imgic8002; - portImageIconE = IconManager.imgic8003; - portImageIconN = IconManager.imgic8004; - portImageIconS = IconManager.imgic8005; if (this instanceof SysCAMSPortTDF) { ((SysCAMSPortTDF) this).setPeriod(-1); @@ -186,84 +176,205 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple f = f.deriveFont(this.currentFontSize); } + int attributeFontSize = this.currentFontSize * 5 / 6; + int w = g.getFontMetrics().stringWidth(commName); + int h = g.getFontMetrics().getAscent(); + g.setFont(f.deriveFont((float) attributeFontSize)); + g.setFont(f); + g.setFont(f.deriveFont(Font.BOLD)); + Color c = g.getColor(); g.setColor(c); if (this instanceof SysCAMSPortTDF) { - g.drawRect(x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, portImageIconTDF.getIconWidth(), portImageIconTDF.getIconHeight()); - g.drawImage(portImageIconTDF.getImage(), x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, null); + g.setColor(Color.BLACK); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(commName, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(commName, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(commName, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(commName, x + width, y + height + height / 2 + h); + } } else if (this instanceof SysCAMSPortConverter) { switch(currentOrientation) { case GraphicLib.NORTH: - g.drawRect(x-1+width/2-portImageIconN.getIconWidth()/2, y-1+height/2-portImageIconN.getIconHeight()/2, portImageIconN.getIconWidth()+2, portImageIconN.getIconHeight()+2); - g.drawImage(portImageIconN.getImage(), x+width/2-portImageIconN.getIconWidth()/2, y+height/2-portImageIconN.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height / 2); + g.setColor(Color.BLACK); + g.fillRect(x, y + height / 2, width, height / 2); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x + width + width / 2, y); break; case GraphicLib.SOUTH: - g.drawRect(x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, portImageIconS.getIconWidth(), portImageIconS.getIconHeight()); - g.drawImage(portImageIconS.getImage(), x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, null); + g.setColor(Color.BLACK); + g.fillRect(x, y, width, height / 2); + g.setColor(Color.WHITE); + g.fillRect(x, y + height / 2, width, height / 2); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x + width + width / 2, y + height + h); break; case GraphicLib.WEST: - g.drawRect(x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, portImageIconW.getIconWidth(), portImageIconW.getIconHeight()); - g.drawImage(portImageIconW.getImage(), x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width / 2, height); + g.setColor(Color.BLACK); + g.fillRect(x + width / 2, y, width / 2, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x - w, y + height + height / 2 + h); break; case GraphicLib.EAST: default: - g.drawRect(x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, portImageIconE.getIconWidth(), portImageIconE.getIconHeight()); - g.drawImage(portImageIconE.getImage(), x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, null); + g.setColor(Color.BLACK); + g.fillRect(x, y, width / 2, height); + g.setColor(Color.WHITE); + g.fillRect(x + width / 2, y, width / 2, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x + width, y + height + height / 2 + h); } } else if (this instanceof SysCAMSPortDE) { - g.drawRect(x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, portImageIconDE.getIconWidth(), portImageIconDE.getIconHeight()); - g.drawImage(portImageIconDE.getImage(), x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(commName, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(commName, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(commName, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(commName, x + width, y + height + height / 2 + h); + } } TGComponent tgc = getFather(); if ((tgc != null) && (tgc instanceof SysCAMSBlockTDF)) { if (tgc instanceof SysCAMSBlockTDF && this instanceof SysCAMSPortTDF) { - g.drawRect(x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, portImageIconTDF.getIconWidth(), portImageIconTDF.getIconHeight()); - g.drawImage(portImageIconTDF.getImage(), x+width/2-portImageIconTDF.getIconWidth()/2, y+height/2-portImageIconTDF.getIconHeight()/2, null); + g.setColor(Color.BLACK); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(commName, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(commName, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(commName, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(commName, x + width, y + height + height / 2 + h); + } } } if ((tgc != null) && (tgc instanceof SysCAMSBlockDE)) { if (tgc instanceof SysCAMSBlockDE && this instanceof SysCAMSPortDE) { - g.drawRect(x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, portImageIconDE.getIconWidth(), portImageIconDE.getIconHeight()); - g.drawImage(portImageIconDE.getImage(), x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(commName, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(commName, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(commName, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(commName, x + width, y + height + height / 2 + h); + } } } if ((tgc != null) && (tgc instanceof SysCAMSBlockGPIO2VCI)) { if (tgc instanceof SysCAMSBlockGPIO2VCI && this instanceof SysCAMSPortDE) { - g.drawRect(x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, portImageIconDE.getIconWidth(), portImageIconDE.getIconHeight()); - g.drawImage(portImageIconDE.getImage(), x+width/2-portImageIconDE.getIconWidth()/2, y+height/2-portImageIconDE.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height); + g.setColor(c); + g.drawRect(x, y, width, height); + switch (currentOrientation) { + case GraphicLib.NORTH: + g.drawString(commName, x + width + width / 2, y); + break; + case GraphicLib.WEST: + g.drawString(commName, x - w, y + height + height / 2 + h); + break; + case GraphicLib.SOUTH: + g.drawString(commName, x + width + width / 2, y + height + h); + break; + case GraphicLib.EAST: + default: + g.drawString(commName, x + width, y + height + height / 2 + h); + } } } if ((tgc != null) && (tgc instanceof SysCAMSBlockTDF)) { if (tgc instanceof SysCAMSBlockTDF && this instanceof SysCAMSPortConverter) { switch(currentOrientation) { case GraphicLib.NORTH: - g.drawRect(x-1+width/2-portImageIconN.getIconWidth()/2, y-1+height/2-portImageIconN.getIconHeight()/2, portImageIconN.getIconWidth()+2, portImageIconN.getIconHeight()+2); - g.drawImage(portImageIconN.getImage(), x+width/2-portImageIconN.getIconWidth()/2, y+height/2-portImageIconN.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width, height / 2); + g.setColor(Color.BLACK); + g.fillRect(x, y + height / 2, width, height / 2); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x + width + width / 2, y); break; case GraphicLib.SOUTH: - g.drawRect(x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, portImageIconS.getIconWidth(), portImageIconS.getIconHeight()); - g.drawImage(portImageIconS.getImage(), x+width/2-portImageIconS.getIconWidth()/2, y+height/2-portImageIconS.getIconHeight()/2, null); + g.setColor(Color.BLACK); + g.fillRect(x, y, width, height / 2); + g.setColor(Color.WHITE); + g.fillRect(x, y + height / 2, width, height / 2); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x + width + width / 2, y + height + h); break; case GraphicLib.WEST: - g.drawRect(x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, portImageIconW.getIconWidth(), portImageIconW.getIconHeight()); - g.drawImage(portImageIconW.getImage(), x+width/2-portImageIconW.getIconWidth()/2, y+height/2-portImageIconW.getIconHeight()/2, null); + g.setColor(Color.WHITE); + g.fillRect(x, y, width / 2, height); + g.setColor(Color.BLACK); + g.fillRect(x + width / 2, y, width / 2, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x - w, y + height + height / 2 + h); break; case GraphicLib.EAST: default: - g.drawRect(x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, portImageIconE.getIconWidth(), portImageIconE.getIconHeight()); - g.drawImage(portImageIconE.getImage(), x+width/2-portImageIconE.getIconWidth()/2, y+height/2-portImageIconE.getIconHeight()/2, null); + g.setColor(Color.BLACK); + g.fillRect(x, y, width / 2, height); + g.setColor(Color.WHITE); + g.fillRect(x + width / 2, y, width / 2, height); + g.setColor(c); + g.drawRect(x, y, width, height); + g.drawString(commName, x + width, y + height + height / 2 + h); } } } - int attributeFontSize = this.currentFontSize * 5 / 6; - g.setFont(f.deriveFont((float) attributeFontSize)); - g.setFont(f); - g.setFont(f.deriveFont(Font.BOLD)); - g.drawString(commName, x, y-1); - g.setFont(fold); } diff --git a/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java b/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java index a1f5ab090278a65ba89fe4397722fe2ea02150b9..a397a102bd7980d1f1f2be480f381e377249fe64 100755 --- a/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java +++ b/src/main/java/ui/tmlad/TGConnectingPointTMLAD.java @@ -36,16 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -//import java.awt.*; - import ui.CDElement; import ui.TGComponentManager; -import ui.TGConnectingPointWidthHeight; +import ui.ad.TGConnectingPointAD; /** * Class TGConnectingPointTMLAD @@ -54,21 +49,14 @@ import ui.TGConnectingPointWidthHeight; * @version 1.0 28/10/2005 * @author Ludovic APVRILLE */ -public class TGConnectingPointTMLAD extends TGConnectingPointWidthHeight{ +public class TGConnectingPointTMLAD extends TGConnectingPointAD /* Issue #69TGConnectingPoint*/ { public TGConnectingPointTMLAD(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) { super(_container, _x, _y, _in, _out, _w, _h); } + @Override public boolean isCompatibleWith(int type) { return type == TGComponentManager.CONNECTOR_TMLAD; } - } - - - - - - - diff --git a/src/main/java/ui/tmlad/TGConnectorTMLAD.java b/src/main/java/ui/tmlad/TGConnectorTMLAD.java index c7943dd2e9293f4c44041a3306b7578016c8178c..35955d3d254f9431278c572aff4451a787b45746 100755 --- a/src/main/java/ui/tmlad/TGConnectorTMLAD.java +++ b/src/main/java/ui/tmlad/TGConnectorTMLAD.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADConnector; import ui.util.IconManager; import java.awt.*; @@ -56,8 +54,9 @@ import java.util.Vector; * @version 1.0 30/09/2004 * @author Ludovic APVRILLE */ -public class TGConnectorTMLAD extends TGConnector { - protected int arrowLength = 10; +public class TGConnectorTMLAD extends TADConnector /* Issue #69 TGConnector*/ { + + protected int arrowLength = 10; public TGConnectorTMLAD(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); @@ -65,6 +64,7 @@ public class TGConnectorTMLAD extends TGConnector { myImageIcon = IconManager.imgic202; } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -73,14 +73,8 @@ public class TGConnectorTMLAD extends TGConnector { } } + @Override public int getType() { return TGComponentManager.CONNECTOR_TMLAD; } } - - - - - - - diff --git a/src/main/java/ui/tmlad/TMLADActionState.java b/src/main/java/ui/tmlad/TMLADActionState.java index 75d464612c7a1a151e895f1d2d015f0b4b515c7f..a216f7d0454b47ce6a819814f67940bcfe3a7503 100755 --- a/src/main/java/ui/tmlad/TMLADActionState.java +++ b/src/main/java/ui/tmlad/TMLADActionState.java @@ -36,17 +36,25 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; +import java.awt.Color; +import java.awt.Graphics; -import java.awt.*; -import java.awt.geom.Line2D; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.PostJavaCode; +import ui.PreJavaCode; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADActionState; /** * Class TMLADActionState @@ -55,36 +63,45 @@ import java.awt.geom.Line2D; * @version 1.0 21/11/2005 * @author Ludovic APVRILLE */ -public class TMLADActionState extends TGCOneLineText implements PreJavaCode, PostJavaCode, CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - protected int lineLength = 5; - protected int textX = 5; - protected int textY = 15; - protected int arc = 5; - - protected int stateOfError = 0; // Not yet checked +public class TMLADActionState extends TADActionState/* Issue #69 TGCOneLineText */implements PreJavaCode, PostJavaCode, CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +// protected int lineLength = 5; +// protected int textX = 5; +// protected int textY = 15; +// protected int arc = 5; +// +// protected int stateOfError = 0; // Not yet checked public TMLADActionState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - width = 30; - height = 20; - minWidth = 30; - - nbConnectingPoint = 2; - connectingPoint = new TGConnectingPoint[2]; - connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); - - moveable = true; - editable = true; - removable = true; - - value = "action"; - name = "action state"; - - myImageIcon = IconManager.imgic204; +// +// width = 30; +// height = 20; +// minWidth = 30; +// +// nbConnectingPoint = 2; +// connectingPoint = new TGConnectingPoint[2]; +// connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); +// +// moveable = true; +// editable = true; +// removable = true; +// +// value = "action"; +// name = "action state"; +// +// myImageIcon = IconManager.imgic204; } + @Override + protected void createConnectingPoints() { + nbConnectingPoint = 2; + connectingPoint = new TGConnectingPoint[ nbConnectingPoint ]; + connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); + } + + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -94,9 +111,9 @@ public class TMLADActionState extends TGCOneLineText implements PreJavaCode, Pos //updateConnectingPoints(); } - if (stateOfError > 0) { + if (stateAction > 0) { Color c = g.getColor(); - switch(stateOfError) { + switch(stateAction) { case ErrorHighlight.OK: g.setColor(ColorManager.ATTRIBUTE_BOX_ACTION); break; @@ -112,25 +129,25 @@ public class TMLADActionState extends TGCOneLineText implements PreJavaCode, Pos g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); g.drawString(value, x + (width - w) / 2 , y + textY); - - } - - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x +width/2, y- lineLength, x+width/2, y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - - return null; } - public String getAction() { - return value; - } +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x +width/2, y- lineLength, x+width/2, y + lineLength + height, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } +// +// public String getAction() { +// return value; +// } + @Override public String getAction(int cpt) { if (cpt <0) { return value; @@ -156,17 +173,17 @@ public class TMLADActionState extends TGCOneLineText implements PreJavaCode, Pos return ret; } + @Override public int getType() { return TGComponentManager.TMLAD_ACTION_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } - - +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/tmlad/TMLADChoice.java b/src/main/java/ui/tmlad/TMLADChoice.java index 6d054ed994d909f352f682fb856cdb00912c18fc..c2f1175b4bf8fe8966880b691ae749a43b9cfcce 100755 --- a/src/main/java/ui/tmlad/TMLADChoice.java +++ b/src/main/java/ui/tmlad/TMLADChoice.java @@ -36,17 +36,16 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; -import java.awt.geom.Line2D; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.EmbeddedComment; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADChoice; /** * Class TMLADChoice @@ -55,13 +54,13 @@ import java.awt.geom.Line2D; * @version 1.0 21/11/2005 * @author Ludovic APVRILLE */ -public class TMLADChoice extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - private int lineLength = 10; - private int lineOutLength = 25; - private int textX1, textY1, textX2, textY2, textX3, textY3; - - protected int stateOfError = 0; // Not yet checked - public final static int NOT_VERIFIED = 0; +public class TMLADChoice extends TADChoice /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +// private int lineLength = 10; +// private int lineOutLength = 25; +// private int textX1, textY1, textX2, textY2, textX3, textY3; +// +// protected int stateOfError = 0; // Not yet checked +// public final static int NOT_VERIFIED = 0; public final static int REACHABLE = 1; public final static int NOT_REACHABLE = 2; @@ -70,150 +69,161 @@ public class TMLADChoice extends TGCWithInternalComponent implements EmbeddedCom public TMLADChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 30; - height = 30; - textX1 = -lineOutLength; - textY1 = height/2 - 5; - textX2 = width + 5; - textY2 = height/2 - 5; - textX3 = width /2 + 5; - textY3 = height + 15; - - nbConnectingPoint = 4; - connectingPoint = new TGConnectingPoint[nbConnectingPoint]; - connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, -lineOutLength, 0, false, true, 0.0, 0.5); - connectingPoint[2] = new TGConnectingPointTMLAD(this, lineOutLength, 0, false, true, 1.0, 0.5); - connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineOutLength, false, true, 0.5, 1.0); - - nbInternalTGComponent = 3; - tgcomponent = new TGComponent[nbInternalTGComponent]; - - TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 1"); - tgcomponent[0] = tgc; - - tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 2"); - tgcomponent[1] = tgc; - - tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 3"); - tgcomponent[2] = tgc; - - moveable = true; - editable = false; - removable = true; - - name = "choice"; - - myImageIcon = IconManager.imgic208; - } - - public void internalDrawing(Graphics g) { - if (stateOfError > 0) { - Color c = g.getColor(); - switch(stateOfError) { - case ErrorHighlight.OK: - g.setColor(ColorManager.CHOICE); - break; - default: - g.setColor(ColorManager.UNKNOWN_BOX_ACTION); - } - // Making the polygon - int [] px1 = {x+(width/2), x+width+2, x + (width/2), x}; - int [] py1 = {y, y + height/2, y+height+2, y+height/2}; - g.fillPolygon(px1, py1, 4); - g.setColor(c); - } - - g.drawLine(x+(width/2), y, x+width, y + height/2); - g.drawLine(x, y + height / 2, x+width/2, y + height); - g.drawLine(x + width/2, y, x, y + height/2); - g.drawLine(x + width, y + height/2, x + width/2, y + height); - - g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); - g.drawLine(x, y + height/2, x-lineOutLength, y + height/2); - g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2); - g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); - } - - public TGComponent isOnOnlyMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) { - return this; - } - - return null; - } - - public String getGuard(int i) { - if ((i>=0) && (i<nbInternalTGComponent)) { - return tgcomponent[i].getValue(); - } - return ""; +// width = 30; +// height = 30; +// textX1 = -lineOutLength; +// textY1 = height/2 - 5; +// textX2 = width + 5; +// textY2 = height/2 - 5; +// textX3 = width /2 + 5; +// textY3 = height + 15; +// +// nbConnectingPoint = 4; +// connectingPoint = new TGConnectingPoint[nbConnectingPoint]; +// connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointTMLAD(this, -lineOutLength, 0, false, true, 0.0, 0.5); +// connectingPoint[2] = new TGConnectingPointTMLAD(this, lineOutLength, 0, false, true, 1.0, 0.5); +// connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineOutLength, false, true, 0.5, 1.0); +// +// nbInternalTGComponent = 3; +// tgcomponent = new TGComponent[nbInternalTGComponent]; +// +// TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 1"); +// tgcomponent[0] = tgc; +// +// tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 2"); +// tgcomponent[1] = tgc; +// +// tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 3"); +// tgcomponent[2] = tgc; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "choice"; +// +// myImageIcon = IconManager.imgic208; } - public void drawSecurityInformation(Graphics g) { - if (securityInformation > 0) { - - Color c = g.getColor(); - Color c1; - switch(securityInformation) { - case REACHABLE: - c1 = Color.green; - break; - case NOT_REACHABLE: - c1 = Color.red; - break; - default: - return; - } - - GraphicLib.arrowWithLine(g, 1, 0, 10, x-30, y+4, x-15, y+4, true); - g.drawOval(x-11, y-3, 7, 9); - g.setColor(c1); - g.fillRect(x-12, y, 9, 7); - g.setColor(c); - g.drawRect(x-12, y, 9, 7); - - } + @Override + protected void createConnectingPoints() { + nbConnectingPoint = 4; + connectingPoint = new TGConnectingPoint[nbConnectingPoint]; + connectingPoint[ 0 ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[ 1 ] = new TGConnectingPointTMLAD(this, -lineOutLength, 0, false, true, 0.0, 0.5); + connectingPoint[ 2 ] = new TGConnectingPointTMLAD(this, lineOutLength, 0, false, true, 1.0, 0.5); + connectingPoint[ 3 ] = new TGConnectingPointTMLAD(this, 0, lineOutLength, false, true, 0.5, 1.0); } - public void setGuard(String guard, int i) { - if ((i>=0) && (i<nbInternalTGComponent)) { - tgcomponent[i].setValue(guard); - } - } +// public void internalDrawing(Graphics g) { +// if (stateOfError > 0) { +// Color c = g.getColor(); +// switch(stateOfError) { +// case ErrorHighlight.OK: +// g.setColor(ColorManager.CHOICE); +// break; +// default: +// g.setColor(ColorManager.UNKNOWN_BOX_ACTION); +// } +// // Making the polygon +// int [] px1 = {x+(width/2), x+width+2, x + (width/2), x}; +// int [] py1 = {y, y + height/2, y+height+2, y+height/2}; +// g.fillPolygon(px1, py1, 4); +// g.setColor(c); +// } +// +// g.drawLine(x+(width/2), y, x+width, y + height/2); +// g.drawLine(x, y + height / 2, x+width/2, y + height); +// g.drawLine(x + width/2, y, x, y + height/2); +// g.drawLine(x + width, y + height/2, x + width/2, y + height); +// +// g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); +// g.drawLine(x, y + height/2, x-lineOutLength, y + height/2); +// g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2); +// g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); +// } +// +// public TGComponent isOnOnlyMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } + +// public String getGuard(int i) { +// if ((i>=0) && (i<nbInternalTGComponent)) { +// return tgcomponent[i].getValue(); +// } +// return ""; +// } +// public void drawSecurityInformation(Graphics g) { +// if (securityInformation > 0) { +// +// Color c = g.getColor(); +// Color c1; +// switch(securityInformation) { +// case REACHABLE: +// c1 = Color.green; +// break; +// case NOT_REACHABLE: +// c1 = Color.red; +// break; +// default: +// return; +// } +// +// GraphicLib.arrowWithLine(g, 1, 0, 10, x-30, y+4, x-15, y+4, true); +// g.drawOval(x-11, y-3, 7, 9); +// g.setColor(c1); +// g.fillRect(x-12, y, 9, 7); +// g.setColor(c); +// g.drawRect(x-12, y, 9, 7); +// +// } +// +// } +// +// public void setGuard(String guard, int i) { +// if ((i>=0) && (i<nbInternalTGComponent)) { +// tgcomponent[i].setValue(guard); +// } +// } + @Override public int getType() { return TGComponentManager.TMLAD_CHOICE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } - +// +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/tmlad/TMLADDecrypt.java b/src/main/java/ui/tmlad/TMLADDecrypt.java index 5c75a5f9554e6f2c88027b57d71a585fe8b57b29..09c37ac7b23a6c6bd2dd073b906f32bce059de58 100755 --- a/src/main/java/ui/tmlad/TMLADDecrypt.java +++ b/src/main/java/ui/tmlad/TMLADDecrypt.java @@ -44,6 +44,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogMultiString; @@ -60,7 +61,7 @@ import java.util.ArrayList; * @author Ludovic APVRILLE * @version 1.0 21/11/2005 */ -public class TMLADDecrypt extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADDecrypt extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; // private int textX, textY; private int ilength = 20; @@ -92,6 +93,7 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -131,6 +133,7 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde g.drawString("sec:" + securityContext, x + 3 * width / 2, y + height / 2); } + @Override public boolean editOndoubleClick(JFrame frame) { String[] labels = new String[1]; String[] values = new String[1]; @@ -151,9 +154,9 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde } return false; - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -170,6 +173,7 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde return null; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data secPattern=\""); @@ -190,9 +194,6 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde // int k; // String s; - // - // - for (int i = 0; i < nl.getLength(); i++) { n1 = nl.item(i); // @@ -213,20 +214,22 @@ public class TMLADDecrypt extends TGCWithoutInternalComponent implements Embedde } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } + @Override public int getType() { return TGComponentManager.TMLAD_DECRYPT; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } } - diff --git a/src/main/java/ui/tmlad/TMLADDelay.java b/src/main/java/ui/tmlad/TMLADDelay.java index fd017298059b4340999d9ad8f812843638defaf0..4a936c36df55a6a06b11f688590fb97b034b2eca 100755 --- a/src/main/java/ui/tmlad/TMLADDelay.java +++ b/src/main/java/ui/tmlad/TMLADDelay.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,11 +53,11 @@ import java.awt.geom.Line2D; * @version 1.0 10/11/2008 * @author Ludovic APVRILLE */ -public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADDelay extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; private int textX, textY; - private int ilength = 10; - private int lineLength1 = 2; +// private int ilength = 10; +// private int lineLength1 = 2; protected int stateOfError = 0; // Not yet checked @@ -97,6 +95,7 @@ public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComm myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -116,6 +115,7 @@ public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComm g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -140,17 +140,18 @@ public class TMLADDelay extends TGCWithInternalComponent implements EmbeddedComm return ((TGCTimeDelay)tgcomponent[0]).getUnit(); } + @Override public int getType() { return TGComponentManager.TMLAD_DELAY; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } - diff --git a/src/main/java/ui/tmlad/TMLADDelayInterval.java b/src/main/java/ui/tmlad/TMLADDelayInterval.java index f7bb0e9277b593d72406f83cf2cc8102f504f46b..d7234a843973ff198f44154178de647737fcf1da 100755 --- a/src/main/java/ui/tmlad/TMLADDelayInterval.java +++ b/src/main/java/ui/tmlad/TMLADDelayInterval.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,11 +53,11 @@ import java.awt.geom.Line2D; * @version 1.0 10/11/2008 * @author Ludovic APVRILLE */ -public class TMLADDelayInterval extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADDelayInterval extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; private int textX, textY; - private int ilength = 10; - private int lineLength1 = 2; +// private int ilength = 10; +// private int lineLength1 = 2; private int incrementY = 3; private int segment = 4; @@ -99,8 +97,8 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { - if (stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { @@ -130,6 +128,7 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe } } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -158,10 +157,12 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe ((TGCTimeDelay)(tgcomponent[0])).setMaxDelay(val); } + @Override public int getType() { return TGComponentManager.TMLAD_INTERVAL_DELAY; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } @@ -170,8 +171,8 @@ public class TMLADDelayInterval extends TGCWithInternalComponent implements Embe return ((TGCTimeDelay)tgcomponent[0]).getUnit(); } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } diff --git a/src/main/java/ui/tmlad/TMLADEncrypt.java b/src/main/java/ui/tmlad/TMLADEncrypt.java index 11ecb9a3809b83e37eac778954fbbea9b4afff1d..f3fac8dc34d48549623c0e285519c9390824ec0a 100755 --- a/src/main/java/ui/tmlad/TMLADEncrypt.java +++ b/src/main/java/ui/tmlad/TMLADEncrypt.java @@ -44,6 +44,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogCryptographicConfiguration; @@ -59,7 +60,7 @@ import java.awt.geom.Line2D; * @author Ludovic APVRILLE * @version 1.0 21/11/2005 */ -public class TMLADEncrypt extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADEncrypt extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; // private int textX, textY; private int ex = 5; @@ -101,6 +102,7 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -181,8 +183,8 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde g.drawImage(IconManager.imgic7000.getImage(), x - 22, y + height / 2, null); } + @Override public boolean editOndoubleClick(JFrame frame) { - //JDialogTwoString jdts = new JDialogTwoString(frame, "Setting channel's properties", "Channel name", channelName, "Nb of samples", nbOfSamples);] String[] values = new String[]{securityContext, type, message_overhead, encTime, size, nonce, formula, decTime, key, algorithm}; String[] nonces = tdp.getMGUI().getAllNonce(); @@ -209,6 +211,7 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde return false; } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -225,6 +228,7 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde return null; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data secContext=\""); @@ -252,18 +256,13 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { - // try { - NodeList nli; Node n1, n2; Element elt; // int k; // String s; - // - // - for (int i = 0; i < nl.getLength(); i++) { n1 = nl.item(i); // @@ -292,20 +291,22 @@ public class TMLADEncrypt extends TGCWithoutInternalComponent implements Embedde } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } + @Override public int getType() { return TGComponentManager.TMLAD_ENCRYPT; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } } - diff --git a/src/main/java/ui/tmlad/TMLADExecC.java b/src/main/java/ui/tmlad/TMLADExecC.java index e8df888ce212a9761a0063c8e4552d6ded723c7d..c7be2687dd657920ed6b6ac0e6c01318711eb433 100755 --- a/src/main/java/ui/tmlad/TMLADExecC.java +++ b/src/main/java/ui/tmlad/TMLADExecC.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 21/05/2008 * @author Ludovic APVRILLE */ -public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADExecC extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; private int textX, textY; private int ilength = 10; @@ -93,6 +91,7 @@ public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComm myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -114,6 +113,7 @@ public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComm g.drawLine(x + (width/2) - lineLength1, y+(height-ilength)/2, x + (width/2)- lineLength1, y+(height+ilength)/2); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -134,17 +134,18 @@ public class TMLADExecC extends TGCWithInternalComponent implements EmbeddedComm tgcomponent[0].setValue(value); } + @Override public int getType() { return TGComponentManager.TMLAD_EXECC; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } - diff --git a/src/main/java/ui/tmlad/TMLADExecCInterval.java b/src/main/java/ui/tmlad/TMLADExecCInterval.java index 3ba864c72349c86ccff8559eb0a0144fadc007e8..bf07c7eafebfad4b5f9e7dbb541b9cb3b648fae4 100755 --- a/src/main/java/ui/tmlad/TMLADExecCInterval.java +++ b/src/main/java/ui/tmlad/TMLADExecCInterval.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 21/05/2008 * @author Ludovic APVRILLE */ -public class TMLADExecCInterval extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADExecCInterval extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; private int textX, textY; private int ilength = 10; @@ -93,6 +91,7 @@ public class TMLADExecCInterval extends TGCWithInternalComponent implements Embe myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -114,6 +113,7 @@ public class TMLADExecCInterval extends TGCWithInternalComponent implements Embe g.drawLine(x + (width/2) - lineLength1, y+(height-ilength)/2, x + (width/2) - lineLength1, y+(height+ilength)/2); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -142,14 +142,17 @@ public class TMLADExecCInterval extends TGCWithInternalComponent implements Embe ((TGCTimeInterval)(tgcomponent[0])).setMaxDelay(val); } + @Override public int getType() { return TGComponentManager.TMLAD_EXECC_INTERVAL; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } diff --git a/src/main/java/ui/tmlad/TMLADExecI.java b/src/main/java/ui/tmlad/TMLADExecI.java index cac0941253553a4a66a28e5f02be97ca969f8d42..024b0c57605c721713c0afe1e10b36e62a3dc7f5 100755 --- a/src/main/java/ui/tmlad/TMLADExecI.java +++ b/src/main/java/ui/tmlad/TMLADExecI.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 21/11/2005 * @author Ludovic APVRILLE */ -public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, CheckableLatency, BasicErrorHighlight { +public class TMLADExecI extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, CheckableLatency, BasicErrorHighlight { private int lineLength = 5; private int textX, textY; private int ilength = 10; @@ -93,6 +91,7 @@ public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComm myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -114,6 +113,7 @@ public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComm g.drawLine(x + (width/2), y+(height-ilength)/2, x + (width/2), y+(height+ilength)/2); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -134,16 +134,18 @@ public class TMLADExecI extends TGCWithInternalComponent implements EmbeddedComm tgcomponent[0].setValue(value); } + @Override public int getType() { return TGComponentManager.TMLAD_EXECI; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } } - diff --git a/src/main/java/ui/tmlad/TMLADExecIInterval.java b/src/main/java/ui/tmlad/TMLADExecIInterval.java index 585478caeca499e4637deffb7518be25b0b6afcd..49c6b1546867e49a1c55c881509aec503ff0ddd9 100755 --- a/src/main/java/ui/tmlad/TMLADExecIInterval.java +++ b/src/main/java/ui/tmlad/TMLADExecIInterval.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 02/12/2005 * @author Ludovic APVRILLE */ -public class TMLADExecIInterval extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADExecIInterval extends TADComponentWithSubcomponents /* Issue #69 TGCWithInternalComponent */ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 5; private int textX, textY; private int ilength = 10; @@ -93,6 +91,7 @@ public class TMLADExecIInterval extends TGCWithInternalComponent implements Embe myImageIcon = IconManager.imgic214; } + @Override public void internalDrawing(Graphics g) { if (stateOfError > 0) { Color c = g.getColor(); @@ -114,6 +113,7 @@ public class TMLADExecIInterval extends TGCWithInternalComponent implements Embe g.drawLine(x + (width/2), y+(height-ilength)/2, x + (width/2), y+(height+ilength)/2); } + @Override public TGComponent isOnOnlyMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -142,16 +142,18 @@ public class TMLADExecIInterval extends TGCWithInternalComponent implements Embe ((TGCTimeInterval)(tgcomponent[0])).setMaxDelay(val); } + @Override public int getType() { return TGComponentManager.TMLAD_EXECI_INTERVAL; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } diff --git a/src/main/java/ui/tmlad/TMLADForEverLoop.java b/src/main/java/ui/tmlad/TMLADForEverLoop.java index 58cb33eb2e3adaf9e5b44f74782ab5115df4894b..a59a009886c6c686b298f12d51eb4b02e1b3ff7d 100755 --- a/src/main/java/ui/tmlad/TMLADForEverLoop.java +++ b/src/main/java/ui/tmlad/TMLADForEverLoop.java @@ -36,17 +36,21 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; +import java.awt.Color; +import java.awt.Graphics; -import java.awt.*; -import java.awt.geom.Line2D; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADForLoop; /** * Class TMLADForEverLoop @@ -55,41 +59,39 @@ import java.awt.geom.Line2D; * @version 1.0 19/11/2008 * @author Ludovic APVRILLE */ -public class TMLADForEverLoop extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - protected int lineLength = 5; - protected int textX = 5; - protected int textY = 15; - protected int arc = 5; - - protected int stateOfError = 0; // Not yet checked +public class TMLADForEverLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +// protected int lineLength = 5; +// protected int textX = 5; +// protected int textY = 15; +// protected int arc = 5; +// +// protected int stateOfError = 0; // Not yet checked public TMLADForEverLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 30; - height = 20; - minWidth = 30; +// width = 30; +// height = 20; +// minWidth = 30; nbConnectingPoint = 2; connectingPoint = new TGConnectingPoint[2]; - connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop + connectingPoint[ INDEX_ENTER_LOOP ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[ INDEX_INSIDE_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop //connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp - moveable = true; - editable = true; - removable = true; +// moveable = true; +// editable = true; +// removable = true; value = "Loop for ever"; name = "for ever loop"; - myImageIcon = IconManager.imgic912; + // myImageIcon = IconManager.imgic912; } - + @Override public void internalDrawing(Graphics g) { - - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -142,32 +144,33 @@ public class TMLADForEverLoop extends TGCWithoutInternalComponent implements Emb return false; }*/ - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) { - return this; - } - - return null; - } - +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } + @Override public int getType() { return TGComponentManager.TMLAD_FOR_EVER_LOOP; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } +// +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/tmlad/TMLADForLoop.java b/src/main/java/ui/tmlad/TMLADForLoop.java index c214fd743cc6d7e5e576502a4401cf5e3e220306..75e89fcb6ccc172803358b7d42af2e7dedad1763 100755 --- a/src/main/java/ui/tmlad/TMLADForLoop.java +++ b/src/main/java/ui/tmlad/TMLADForLoop.java @@ -36,22 +36,31 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.tmlad; +import java.awt.Color; +import java.awt.Graphics; +import javax.swing.JFrame; -package ui.tmlad; - -import myutil.GraphicLib; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import ui.*; -import ui.util.IconManager; -import ui.window.JDialogMultiString; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; +import myutil.GraphicLib; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.GTURTLEModeling; +import ui.MalformedModelingException; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADForLoop; +import ui.window.JDialogMultiString; /** * Class TMLADForLoop @@ -60,47 +69,48 @@ import java.awt.geom.Line2D; * @version 1.0 21/11/2005 * @author Ludovic APVRILLE */ -public class TMLADForLoop extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - - private final static String IN_LOOP = "inside loop"; - private final static String EXIT_LOOP = "exit loop"; +public class TMLADForLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - - protected int lineLength = 5; - protected int textX = 5; - protected int textY = 15; - protected int arc = 5; +// private final static String IN_LOOP = "inside loop"; +// private final static String EXIT_LOOP = "exit loop"; +// +// +// protected int lineLength = 5; +// protected int textX = 5; +// protected int textY = 15; +// protected int arc = 5; protected String init = "i=0"; protected String condition = "i<5"; protected String increment = "i = i+1"; - protected int stateOfError = 0; // Not yet checked + // protected int stateOfError = 0; // Not yet checked public TMLADForLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 30; - height = 20; - minWidth = 30; +// width = 30; +// height = 20; +// minWidth = 30; nbConnectingPoint = 3; connectingPoint = new TGConnectingPoint[3]; - connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop - connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp - - moveable = true; - editable = true; - removable = true; + connectingPoint[ INDEX_ENTER_LOOP ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[ INDEX_INSIDE_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop + connectingPoint[ INDEX_EXIT_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp +// +// moveable = true; +// editable = true; +// removable = true; makeValue(); name = "for loop"; - myImageIcon = IconManager.imgic912; + // myImageIcon = IconManager.imgic912; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -110,7 +120,7 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde //updateConnectingPoints(); } - if (stateOfError > 0) { + if ( isEnabled() && stateOfError > 0 ) { Color c = g.getColor(); switch(stateOfError) { case ErrorHighlight.OK: @@ -130,13 +140,13 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde g.drawString(value, x + (width - w) / 2 , y + textY); - // Info on loops - g.drawString(IN_LOOP, x+width+2, y+height/2); - //int wTmp = g.getFontMetrics().stringWidth(EXIT_LOOP); - g.drawString(EXIT_LOOP, x+width/2+2, y+height+10); - + // Info on loops + g.drawString(IN_LOOP, x+width+2, y+height/2); + //int wTmp = g.getFontMetrics().stringWidth(EXIT_LOOP); + g.drawString(EXIT_LOOP, x+width/2+2, y+height+10); } + @Override public boolean editOndoubleClick(JFrame frame) { String [] labels = new String[3]; String [] values = new String[3]; @@ -163,26 +173,25 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde } return false; - - } - - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) { - return this; - } - - return null; } - public void makeValue() { +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } + + private void makeValue() { value = "for(" + init + ";" + condition + ";" + increment + ")"; } @@ -202,6 +211,7 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde return increment; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data init=\""); @@ -219,16 +229,12 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ // try { - NodeList nli; Node n1, n2; Element elt; // int k; // String s; - // - // - for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); // @@ -251,23 +257,22 @@ public class TMLADForLoop extends TGCWithoutInternalComponent implements Embedde } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_FOR_LOOP; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } - - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } - - +// +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/tmlad/TMLADForStaticLoop.java b/src/main/java/ui/tmlad/TMLADForStaticLoop.java index 1c85ff268f29ce7f136ba3de759bdffcab9fdc49..5f38637077528baa1aec8360ebf6aaf79672fcc0 100755 --- a/src/main/java/ui/tmlad/TMLADForStaticLoop.java +++ b/src/main/java/ui/tmlad/TMLADForStaticLoop.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADForLoop; import ui.util.IconManager; import javax.swing.*; @@ -56,50 +54,51 @@ import java.awt.geom.Line2D; * @version 1.0 21/11/2005 * @author Ludovic APVRILLE */ -public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - private final static String IN_LOOP = "inside loop"; - private final static String EXIT_LOOP = "exit loop"; - - protected int lineLength = 5; - protected int textX = 5; - protected int textY = 15; - protected int arc = 5; +public class TMLADForStaticLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +// private final static String IN_LOOP = "inside loop"; +// private final static String EXIT_LOOP = "exit loop"; +// +// protected int lineLength = 5; +// protected int textX = 5; +// protected int textY = 15; +// protected int arc = 5; protected String valueLoop = ""; - protected int stateOfError = 0; // Not yet checked + //protected int stateOfError = 0; // Not yet checked public TMLADForStaticLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 30; - height = 20; - minWidth = 30; +// width = 30; +// height = 20; +// minWidth = 30; nbConnectingPoint = 3; connectingPoint = new TGConnectingPoint[3]; - connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop - connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp + connectingPoint[ INDEX_ENTER_LOOP ] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[ INDEX_INSIDE_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 1.0, 0.45); // loop + connectingPoint[ INDEX_EXIT_LOOP ] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp - moveable = true; - editable = true; - removable = true; +// moveable = true; +// editable = true; +// removable = true; value = "10"; name = "for loop"; - myImageIcon = IconManager.imgic912; +// myImageIcon = IconManager.imgic912; } - public void makeValueLoop() { + private void makeValueLoop() { valueLoop = "Loop " + value + " times"; } + @Override public void internalDrawing(Graphics g) { - if (valueLoop.length() == 0) { makeValueLoop(); } + int w = g.getFontMetrics().stringWidth(valueLoop); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -134,6 +133,7 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E } + @Override public boolean editOndoubleClick(JFrame frame) { String text = "Static for loop : "; String s = (String)JOptionPane.showInputDialog(frame, text, @@ -145,8 +145,6 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E s = s.trim(); } - // - if ((s != null) && (s.length() > 0) && (s.matches("\\d*"))) { setValue(s); makeValueLoop(); @@ -157,6 +155,7 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E return false; } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -173,16 +172,17 @@ public class TMLADForStaticLoop extends TGCWithoutInternalComponent implements E return null; } - + @Override public int getType() { return TGComponentManager.TMLAD_FOR_STATIC_LOOP; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } - - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } +// +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/tmlad/TMLADNotifiedEvent.java b/src/main/java/ui/tmlad/TMLADNotifiedEvent.java index c48a8ba84807206ab4fe9f10ec21b9400bb21719..174ae7f50293825ebb3c860cc224936ad96626a7 100755 --- a/src/main/java/ui/tmlad/TMLADNotifiedEvent.java +++ b/src/main/java/ui/tmlad/TMLADNotifiedEvent.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; @@ -46,6 +43,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogMultiString; @@ -60,7 +58,7 @@ import java.awt.geom.Line2D; * @version 1.0 27/10/2006 * @author Ludovic APVRILLE */ -public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADNotifiedEvent extends TADComponentWithoutSubcomponents/* Issue #69TGCWithoutInternalComponent */ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -94,6 +92,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 3 * textX); @@ -147,6 +146,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E g.drawString(value, x + linebreak + textX1, y + textY); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -159,7 +159,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E return null; } - public void makeValue() { + private void makeValue() { value = result + "=?" + eventName + "()"; } @@ -180,6 +180,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E return value; } + @Override public boolean editOndoubleClick(JFrame frame) { String [] labels = new String[2]; String [] values = new String[2]; @@ -205,6 +206,7 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data eventName=\""); @@ -218,18 +220,13 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - // try { - NodeList nli; Node n1, n2; Element elt; // int k; // String s; - // - // - for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); // @@ -251,23 +248,22 @@ public class TMLADNotifiedEvent extends TGCWithoutInternalComponent implements E } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_NOTIFIED_EVENT; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - - } diff --git a/src/main/java/ui/tmlad/TMLADRandom.java b/src/main/java/ui/tmlad/TMLADRandom.java index 50879302ac79cdb469c0bc0b4f15f81fb558ae1c..45e41fe525452fe78f1469450f236f90cb7ad5ec 100755 --- a/src/main/java/ui/tmlad/TMLADRandom.java +++ b/src/main/java/ui/tmlad/TMLADRandom.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; @@ -46,6 +43,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogTMLADRandom; @@ -60,7 +58,7 @@ import java.awt.geom.Line2D; * @version 1.0 10/06/2008 * @author Ludovic APVRILLE */ -public class TMLADRandom extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADRandom extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent */implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -97,12 +95,12 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded myImageIcon = IconManager.imgic912; } - public void makeValue() { + private void makeValue() { valueRandom = variable + " = RANDOM" + functionId + "(" + minValue + ", " + maxValue + ")"; } + @Override public void internalDrawing(Graphics g) { - if (valueRandom.length() == 0) { makeValue(); } @@ -136,6 +134,7 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded g.drawString(valueRandom, x + (width - w) / 2 , y + textY); } + @Override public boolean editOndoubleClick(JFrame frame) { boolean error = false; String errors = ""; @@ -191,6 +190,7 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded return true; } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -223,6 +223,7 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded return functionId; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data variable=\""); @@ -240,18 +241,13 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - // try { - NodeList nli; Node n1, n2; Element elt; // int k; String s; - // - // - for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); // @@ -281,23 +277,23 @@ public class TMLADRandom extends TGCWithoutInternalComponent implements Embedded } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_RANDOM; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - - } diff --git a/src/main/java/ui/tmlad/TMLADReadChannel.java b/src/main/java/ui/tmlad/TMLADReadChannel.java index 97b2a4358cde48b05e00ece0fbda06432b9d9e4d..0e4ec24024cbc7581e7e30876891dc4e86e2189f 100755 --- a/src/main/java/ui/tmlad/TMLADReadChannel.java +++ b/src/main/java/ui/tmlad/TMLADReadChannel.java @@ -36,26 +36,41 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.tmlad; -import myutil.GraphicLib; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import javax.swing.JFrame; + import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import ui.*; + +import myutil.GraphicLib; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.LinkedReference; +import ui.MalformedModelingException; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; -import ui.window.JDialogMultiString; -import myutil.*; import ui.window.JDialogMultiStringAndTabs; import ui.window.TabInfo; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.ArrayList; -import java.util.concurrent.ConcurrentHashMap; - /** * Class TMLADReadChannel * Action of writing data in channel @@ -64,8 +79,8 @@ import java.util.concurrent.ConcurrentHashMap; * @author Ludovic APVRILLE * @version 1.0 21/11/2005 */ -public class TMLADReadChannel extends TGCWithoutInternalComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { - private ConcurrentHashMap<String, String> latencyVals; +public class TMLADReadChannel extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { + private Map<String, String> latencyVals; protected int lineLength = 5; protected int textX = 5; protected int textX0 = 2; @@ -117,17 +132,17 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che myImageIcon = IconManager.imgic906; latencyVals = new ConcurrentHashMap<String, String>(); //latencyVals.put("sendChannel: sensorData", "3"); - } /*public void addLatency(String name, String num){ latencyVals.put(name,num); }*/ - public ConcurrentHashMap<String, String> getLatencyMap() { + public Map<String, String> getLatencyMap() { return latencyVals; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -201,7 +216,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che } } - public void drawLatencyInformation(Graphics g) { + private void drawLatencyInformation(Graphics g) { int index = 1; for (String s : latencyVals.keySet()) { int w = g.getFontMetrics().stringWidth(s); @@ -213,9 +228,8 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che } } - public void drawReachabilityInformation(Graphics g) { + private void drawReachabilityInformation(Graphics g) { if (reachabilityInformation > 0) { - Color c = g.getColor(); Color c1; switch (reachabilityInformation) { @@ -242,6 +256,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -270,6 +285,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che return value; } + @Override public boolean editOndoubleClick(JFrame frame) { TabInfo tab1 = new TabInfo("Name and samples"); String[] labels = new String[2]; @@ -280,7 +296,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che values[1] = nbOfSamples; tab1.labels=labels; tab1.values = values; - ArrayList<String[]> help = new ArrayList<String[]>(); + List<String[]> help = new ArrayList<String[]>(); String[] allInChannels = tdp.getMGUI().getAllInChannels(); if (isAttacker) { allInChannels = tdp.getMGUI().getAllCompInChannels(); @@ -307,7 +323,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che tab2.values = values; tab2.help = help; - ArrayList<TabInfo> tabs = new ArrayList<>(); + List<TabInfo> tabs = new ArrayList<>(); tabs.add(tab1); tabs.add(tab2); @@ -328,8 +344,6 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che } return false; - - } public void setSamples(String sp) { @@ -337,6 +351,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che makeValue(); } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data channelName=\""); @@ -388,12 +403,11 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - public String getSecurityContext() { return securityContext; } @@ -406,18 +420,22 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che return isAttacker; } + @Override public int getType() { return TGComponentManager.TMLAD_READ_CHANNEL; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - public boolean getEncForm(){ + + public boolean getEncForm(){ return isEncForm; } @@ -430,5 +448,4 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che channelName = s; makeValue(); } - } diff --git a/src/main/java/ui/tmlad/TMLADReadRequestArg.java b/src/main/java/ui/tmlad/TMLADReadRequestArg.java index f6d1b240b784acb2a6fcfe28c49eda9b9eb4b66c..89a6fd960122b7adea9cf65d68f1c0ddcbc10132 100755 --- a/src/main/java/ui/tmlad/TMLADReadRequestArg.java +++ b/src/main/java/ui/tmlad/TMLADReadRequestArg.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; @@ -46,6 +43,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogMultiString; @@ -60,7 +58,7 @@ import java.awt.geom.Line2D; * @version 1.0 11/02/201 * @author Ludovic APVRILLE */ -public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADReadRequestArg extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -152,8 +150,8 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements return value; } + @Override public void internalDrawing(Graphics g) { - if (value.length() == 0) { makeValue(); } @@ -189,6 +187,7 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements g.drawString(value, x + (width - w) / 2 , y + textY); } + @Override public boolean editOndoubleClick(JFrame frame) { String [] labels = new String[nParam]; String [] values = new String[nParam]; @@ -214,6 +213,7 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -255,9 +255,6 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements int k; String s; - // - // - for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); // @@ -287,18 +284,18 @@ public class TMLADReadRequestArg extends TGCWithoutInternalComponent implements makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_READ_REQUEST_ARG; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - - } diff --git a/src/main/java/ui/tmlad/TMLADSelectEvt.java b/src/main/java/ui/tmlad/TMLADSelectEvt.java index 8e48f75f1e2476b26b19eb1a9bd66df30b3ecfa9..693b65b5838544a27d216404b4c2d65f3c4afb4e 100755 --- a/src/main/java/ui/tmlad/TMLADSelectEvt.java +++ b/src/main/java/ui/tmlad/TMLADSelectEvt.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import java.awt.*; @@ -55,7 +53,7 @@ import java.awt.geom.Line2D; * @version 1.0 06/04/2007 * @author Ludovic APVRILLE */ -public class TMLADSelectEvt extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADSelectEvt extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { private int lineLength = 10; private int lineOutLength = 25; //private int textX1, textY1, textX2, textY2, textX3, textY3; @@ -96,8 +94,8 @@ public class TMLADSelectEvt extends TGCWithoutInternalComponent implements Embed myImageIcon = IconManager.imgic208; } + @Override public void internalDrawing(Graphics g) { - if (stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { @@ -126,9 +124,9 @@ public class TMLADSelectEvt extends TGCWithoutInternalComponent implements Embed //g.drawString("select", x, y + height/2 - 5); g.drawString("evt", x+7, y + height/2 + 3); - } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -153,15 +151,27 @@ public class TMLADSelectEvt extends TGCWithoutInternalComponent implements Embed return null; } + @Override public int getType() { return TGComponentManager.TMLAD_SELECT_EVT; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } + + /* Issue #69 + * (non-Javadoc) + * @see ui.AbstractCDElement#canBeDisabled() + */ + @Override + public boolean canBeDisabled() { + return false; + } } diff --git a/src/main/java/ui/tmlad/TMLADSendEvent.java b/src/main/java/ui/tmlad/TMLADSendEvent.java index 3d73447ce45756e2490add2cb573139b46e6159a..9715bc12867b78b620b0a303d7daba12a4c615b3 100755 --- a/src/main/java/ui/tmlad/TMLADSendEvent.java +++ b/src/main/java/ui/tmlad/TMLADSendEvent.java @@ -36,22 +36,37 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.tmlad; -import myutil.GraphicLib; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.JFrame; + import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import ui.*; + +import myutil.GraphicLib; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.MalformedModelingException; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogMultiString; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.ArrayList; - /** * Class TMLADSendEvent * Action of sending an event @@ -60,7 +75,7 @@ import java.util.ArrayList; * @author Ludovic APVRILLE * @version 1.0 21/11/2005 */ -public class TMLADSendEvent extends TGCWithoutInternalComponent implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADSendEvent extends TADComponentWithoutSubcomponents implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -106,8 +121,8 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { - int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) & (!tdp.isScaled())) { @@ -116,7 +131,8 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check } - if (stateOfError > 0) { + // Issue #69 + if ( isEnabled() && stateOfError > 0) { Color c = g.getColor(); switch (stateOfError) { case ErrorHighlight.OK: @@ -147,7 +163,12 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check int y1 = y + 1; int height1 = height; int width1 = width; - g.setColor(ColorManager.TML_PORT_EVENT); + + // Issue #69 + if ( isEnabled() ) { + g.setColor(ColorManager.TML_PORT_EVENT); + } + g.drawLine(x1, y1, x1 + width1 - linebreak, y1); g.drawLine(x1, y1 + height1, x1 + width1 - linebreak, y1 + height1); g.drawLine(x1, y1, x1, y1 + height1); @@ -166,10 +187,9 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check g.drawString(value, x + (width - w) / 2, y + textY); drawReachabilityInformation(g); - } - public void drawReachabilityInformation(Graphics g) { + private void drawReachabilityInformation(Graphics g) { if (reachabilityInformation > 0) { Color c = g.getColor(); @@ -194,6 +214,7 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check } } + // @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -206,7 +227,7 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check return null; } - public void makeValue() { + private void makeValue() { boolean first = true; value = eventName + "("; for (int i = 0; i < nParam; i++) { @@ -269,6 +290,7 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check return value; } + @Override public boolean editOndoubleClick(JFrame frame) { String[] labels = new String[nParam + 1]; String[] values = new String[nParam + 1]; @@ -278,7 +300,8 @@ public class TMLADSendEvent extends TGCWithoutInternalComponent implements Check labels[i + 1] = "Param #" + (i + 1); values[i + 1] = params[i]; } - ArrayList<String[]> help = new ArrayList<String[]>(); + + List<String[]> help = new ArrayList<String[]>(); String[] allOutEvents = tdp.getMGUI().getAllOutEvents(); help.add(allOutEvents); diff --git a/src/main/java/ui/tmlad/TMLADSendRequest.java b/src/main/java/ui/tmlad/TMLADSendRequest.java index 4d1a9033b76c54d5b05152561d59b2068f56f1a5..8bb62a0d90b6f78aca0583f55df0d55ce4de5240 100755 --- a/src/main/java/ui/tmlad/TMLADSendRequest.java +++ b/src/main/java/ui/tmlad/TMLADSendRequest.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; @@ -46,13 +43,17 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogMultiString; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Graphics; import java.awt.geom.Line2D; import java.util.ArrayList; +import java.util.List; /** * Class TMLADSendRequest @@ -61,7 +62,7 @@ import java.util.ArrayList; * @version 1.0 18/11/2005 * @author Ludovic APVRILLE */ -public class TMLADSendRequest extends TGCWithoutInternalComponent implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADSendRequest extends TADComponentWithoutSubcomponents/* Issue #69TGCWithoutInternalComponent*/ implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -107,6 +108,7 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che myImageIcon = IconManager.imgic902; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -157,11 +159,11 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che g.drawString("req", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 , y + textY); - drawReachabilityInformation(g); + drawReachabilityInformation(g); } - public void drawReachabilityInformation(Graphics g) { + + private void drawReachabilityInformation(Graphics g) { if (reachabilityInformation > 0) { - Color c = g.getColor(); Color c1; switch(reachabilityInformation) { @@ -181,9 +183,10 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che g.fillRect(x-12, y-7, 9, 7); g.setColor(c); g.drawRect(x-12, y-7, 9, 7); - } } + + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -218,7 +221,6 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che return requestName; } - public void setRequestName(String name){ requestName = name; makeValue(); @@ -263,6 +265,7 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che return value; } + @Override public boolean editOndoubleClick(JFrame frame) { String [] labels = new String[nParam + 1]; String [] values = new String[nParam + 1]; @@ -273,9 +276,9 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che values[i+1] = params[i]; } - ArrayList<String []> help = new ArrayList<String []>(); - String[] allOutRequests = tdp.getMGUI().getAllOutRequests(); - help.add(allOutRequests); + List<String []> help = new ArrayList<String []>(); + String[] allOutRequests = tdp.getMGUI().getAllOutRequests(); + help.add(allOutRequests); JDialogMultiString jdms = new JDialogMultiString(frame, "Setting request's properties", nParam+1, labels, values, help); // jdms.setSize(350, 300); @@ -293,9 +296,9 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che } return false; - } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data requestName=\""); @@ -326,9 +329,6 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che int k; String s; - // - // - for(int i=0; i<nl.getLength(); i++) { n1 = nl.item(i); // @@ -354,22 +354,23 @@ public class TMLADSendRequest extends TGCWithoutInternalComponent implements Che } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_SEND_REQUEST; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } diff --git a/src/main/java/ui/tmlad/TMLADSequence.java b/src/main/java/ui/tmlad/TMLADSequence.java index ce9d380867124519c4ba27305b237ea9205896ef..c29c9d814cfccf780f8bfe8d908b9a5b1c6cdb34 100755 --- a/src/main/java/ui/tmlad/TMLADSequence.java +++ b/src/main/java/ui/tmlad/TMLADSequence.java @@ -36,16 +36,15 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; +import ui.AllowedBreakpoint; +import ui.EmbeddedComment; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADSequence; /** * Class TMLADSequence @@ -54,66 +53,71 @@ import java.awt.*; * @version 1.0 13/03/2006 * @author Ludovic APVRILLE */ -public class TMLADSequence extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint { - private int lineLength = 0; - private int textX, textY; +public class TMLADSequence extends TADSequence /* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint { + // private int lineLength = 0; + //private int textX, textY; public TMLADSequence(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - width = 150; - height = 5; - - textX = width - 6; - textY = height + 2; - +// width = 150; +// height = 5; +// +// textX = width - 6; +// textY = height + 2; +// +// nbConnectingPoint = 6; +// connectingPoint = new TGConnectingPoint[6]; +// connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0); +// connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0); +// connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); +// connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0); +// connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0); +// +// nbInternalTGComponent = 1; +// tgcomponent = new TGComponent[nbInternalTGComponent]; +// +// TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp); +// tgc.setValue(">>"); +// tgc.setName("Sequence"); +// tgc.setEditable(false); +// +// tgcomponent[0] = tgc; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "sequence"; +// +// myImageIcon = IconManager.imgic206; + } + + @Override + protected void createConnectingPoints() { nbConnectingPoint = 6; connectingPoint = new TGConnectingPoint[6]; connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0); + connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0); connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0); connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0); connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0); - - nbInternalTGComponent = 1; - tgcomponent = new TGComponent[nbInternalTGComponent]; - - TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp); - tgc.setValue(">>"); - tgc.setName("Sequence"); - tgc.setEditable(false); - - tgcomponent[0] = tgc; - - moveable = true; - editable = false; - removable = true; - - name = "sequence"; - - myImageIcon = IconManager.imgic206; } - public void internalDrawing(Graphics g) { - g.drawRect(x, y, width, height); - g.fillRect(x, y, width, height); - } +// public void internalDrawing(Graphics g) { +// g.drawRect(x, y, width, height); +// g.fillRect(x, y, width, height); +// } - public TGComponent isOnOnlyMe(int x1, int y1) { - if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { - return this; - } - return null; - } - + @Override public int getType() { return TGComponentManager.TMLAD_SEQUENCE; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } - } diff --git a/src/main/java/ui/tmlad/TMLADStartState.java b/src/main/java/ui/tmlad/TMLADStartState.java index 5e0e06b9d56462d653809e1960fbac4a2925ab0e..0fa07b1319dba0045d4045d4c243ef2490af8de7 100755 --- a/src/main/java/ui/tmlad/TMLADStartState.java +++ b/src/main/java/ui/tmlad/TMLADStartState.java @@ -36,17 +36,14 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; -import java.awt.geom.Line2D; +import ui.EmbeddedComment; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADStartState; /** * Class TMLADStartState @@ -55,53 +52,61 @@ import java.awt.geom.Line2D; * @version 1.0 28/10/2005 * @author Ludovic APVRILLE */ -public class TMLADStartState extends TGCWithoutInternalComponent implements EmbeddedComment{ +public class TMLADStartState extends TADStartState /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment{ private int lineLength = 5; public TMLADStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - width = 15; - height = 15; - +// +// width = 15; +// height = 15; +// +// nbConnectingPoint = 1; +// connectingPoint = new TGConnectingPoint[1]; +// connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); +// +// nbInternalTGComponent = 0; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "start state"; +// +// myImageIcon = IconManager.imgic222; + } + + @Override + protected void createConnectingPoints() { nbConnectingPoint = 1; connectingPoint = new TGConnectingPoint[1]; connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); - - nbInternalTGComponent = 0; - - moveable = true; - editable = false; - removable = true; - - name = "start state"; - - myImageIcon = IconManager.imgic222; } - public void internalDrawing(Graphics g) { - g.fillOval(x, y, width, height); - g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); - } - - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - - return null; - } +// public void internalDrawing(Graphics g) { +// g.fillOval(x, y, width, height); +// g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); +// } +// +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } + @Override public int getType() { return TGComponentManager.TMLAD_START_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - } diff --git a/src/main/java/ui/tmlad/TMLADStopState.java b/src/main/java/ui/tmlad/TMLADStopState.java index 09cecbfca23954a0274e3342da25fa99ae0a53ac..516a2dcddad5fd7669d777b45092a8461bbfeceb 100755 --- a/src/main/java/ui/tmlad/TMLADStopState.java +++ b/src/main/java/ui/tmlad/TMLADStopState.java @@ -36,16 +36,15 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; +import ui.AllowedBreakpoint; +import ui.EmbeddedComment; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADStopState; /** * Class TMLADStopState @@ -54,59 +53,59 @@ import java.awt.*; * @version 1.0 28/10/2005 * @author Ludovic APVRILLE */ -public class TMLADStopState extends TGCWithoutInternalComponent implements EmbeddedComment, AllowedBreakpoint { - private int internalCircleSize = 16; - private int lineLength = 5; +public class TMLADStopState extends TADStopState /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint { +// private int internalCircleSize = 16; +// private int lineLength = 5; public TMLADStopState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - width = 20; - height = 20; - - nbConnectingPoint = 1; - connectingPoint = new TGConnectingPoint[1]; - connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, - lineLength, true, false, 0.5, 0.0); - - nbInternalTGComponent = 0; - - moveable = true; - editable = false; - removable = true; - - name = "stop state"; - - myImageIcon = IconManager.imgic210; +// +// width = 20; +// height = 20; +// +// nbConnectingPoint = 1; +// connectingPoint = new TGConnectingPoint[1]; +// connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, - lineLength, true, false, 0.5, 0.0); +// +// nbInternalTGComponent = 0; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "stop state"; +// +// myImageIcon = IconManager.imgic210; } - public void internalDrawing(Graphics g) { - ColorManager.setColor(g, state, 0); - g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); - g.drawOval(x, y, width, height); - g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); - } - - - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - return null; + @Override + protected void createConnectingPoints() { + nbConnectingPoint = 1; + connectingPoint = new TGConnectingPoint[1]; + connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, - lineLength, true, false, 0.5, 0.0); } +// public void internalDrawing(Graphics g) { +// ColorManager.setColor(g, state, 0); +// g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); +// g.drawOval(x, y, width, height); +// g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); +// } +// +// +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// return null; +// } + @Override public int getType() { return TGComponentManager.TMLAD_STOP_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - } - - - - - - - diff --git a/src/main/java/ui/tmlad/TMLADUnorderedSequence.java b/src/main/java/ui/tmlad/TMLADUnorderedSequence.java index aca4f9bd327004739889f7edde30fc4a75646250..0df1f8d927889b4f42d3fbfa40adae92cadd6289 100755 --- a/src/main/java/ui/tmlad/TMLADUnorderedSequence.java +++ b/src/main/java/ui/tmlad/TMLADUnorderedSequence.java @@ -36,16 +36,15 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; +import ui.AllowedBreakpoint; +import ui.EmbeddedComment; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADSequence; /** * Class TMLADUnorderedSequence @@ -54,66 +53,77 @@ import java.awt.*; * @version 1.0 07/07/2010 * @author Ludovic APVRILLE */ -public class TMLADUnorderedSequence extends TGCWithInternalComponent implements EmbeddedComment, AllowedBreakpoint { - private int lineLength = 0; - private int textX, textY; +public class TMLADUnorderedSequence extends TADSequence/* Issue #69 TGCWithInternalComponent*/ implements EmbeddedComment, AllowedBreakpoint { +// private int lineLength = 0; +// private int textX, textY; public TMLADUnorderedSequence(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - width = 150; - height = 5; - - textX = width - 6; - textY = height + 2; - +// width = 150; +// height = 5; +// +// textX = width - 6; +// textY = height + 2; +// +// nbConnectingPoint = 6; +// connectingPoint = new TGConnectingPoint[6]; +// connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0); +// connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0); +// connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); +// connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0); +// connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0); +// +// nbInternalTGComponent = 1; +// tgcomponent = new TGComponent[nbInternalTGComponent]; +// +// TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp); +// tgc.setValue("<>"); +// tgc.setName("Random sequence"); +// tgc.setEditable(false); +// +// tgcomponent[0] = tgc; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "random sequence"; +// +// myImageIcon = IconManager.imgic206; + } + + @Override + protected void createConnectingPoints() { nbConnectingPoint = 6; connectingPoint = new TGConnectingPoint[6]; connectingPoint[0] = new TGConnectingPointTMLAD(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0); + connectingPoint[1] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.167, 1.0); connectingPoint[2] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.333, 1.0); connectingPoint[3] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.5, 1.0); connectingPoint[4] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.667, 1.0); connectingPoint[5] = new TGConnectingPointTMLAD(this, 0, lineLength, false, true, 0.833, 1.0); - - nbInternalTGComponent = 1; - tgcomponent = new TGComponent[nbInternalTGComponent]; - - TGCOneLineText tgc = new TGCOneLineText(x+textX + 10, y+textY, textX +10 , textX + 10 , textY, textY, true, this, _tdp); - tgc.setValue("<>"); - tgc.setName("Random sequence"); - tgc.setEditable(false); - - tgcomponent[0] = tgc; - - moveable = true; - editable = false; - removable = true; - - name = "random sequence"; - - myImageIcon = IconManager.imgic206; - } - - public void internalDrawing(Graphics g) { - g.drawRect(x, y, width, height); - g.fillRect(x, y, width, height); } +// public void internalDrawing(Graphics g) { +// g.drawRect(x, y, width, height); +// g.fillRect(x, y, width, height); +// } - public TGComponent isOnOnlyMe(int x1, int y1) { - if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { - return this; - } - return null; - } +// public TGComponent isOnOnlyMe(int x1, int y1) { +// if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { +// return this; +// } +// return null; +// } + @Override public int getType() { return TGComponentManager.TMLAD_UNORDERED_SEQUENCE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLAD; + return TGComponentManager.CONNECTOR_TMLAD; } - } diff --git a/src/main/java/ui/tmlad/TMLADWaitEvent.java b/src/main/java/ui/tmlad/TMLADWaitEvent.java index 91da01c21690508513f8276d4b1e27da9fac00d7..ae17151b2df4d2d5f186a09c4251719384ba35a8 100755 --- a/src/main/java/ui/tmlad/TMLADWaitEvent.java +++ b/src/main/java/ui/tmlad/TMLADWaitEvent.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlad; import myutil.GraphicLib; @@ -46,13 +43,17 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ui.*; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; import ui.window.JDialogMultiString; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Graphics; import java.awt.geom.Line2D; import java.util.ArrayList; +import java.util.List; /** * Class TMLADWaitEvent @@ -61,7 +62,7 @@ import java.util.ArrayList; * @version 1.0 21/11/2005 * @author Ludovic APVRILLE */ -public class TMLADWaitEvent extends TGCWithoutInternalComponent implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADWaitEvent extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements CheckableAccessibility, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -107,6 +108,7 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check myImageIcon = IconManager.imgic904; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -116,7 +118,8 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check //updateConnectingPoints(); } - if (stateOfError > 0) { + // Issue #69 + if ( isEnabled() && stateOfError > 0) { Color c = g.getColor(); switch(stateOfError) { case ErrorHighlight.OK: @@ -141,7 +144,12 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check int y1 = y + 1; int height1 = height; int width1 = width; - g.setColor(ColorManager.TML_PORT_EVENT); + + // Issue #69 + if ( isEnabled() ) { + g.setColor(ColorManager.TML_PORT_EVENT); + } + g.drawLine(x1, y1, x1+width1, y1); g.drawLine(x1+width1, y1, x1+width1, y1+height1); g.drawLine(x1, y1+height1, x1+width1, y1+height1); @@ -158,12 +166,12 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check g.drawString("evt", x+(width-w) / 2, y); g.drawString(value, x + linebreak + textX1, y + textY); - drawReachabilityInformation(g); - + drawReachabilityInformation(g); } - public void drawReachabilityInformation(Graphics g) { - if (reachabilityInformation > 0) { + private void drawReachabilityInformation(Graphics g) { + // Issue #69 + if ( isEnabled() && reachabilityInformation > 0 ) { Color c = g.getColor(); Color c1; switch(reachabilityInformation) { @@ -186,6 +194,8 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check } } + + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -216,8 +226,6 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check } - - public String getEventName() { return eventName; } @@ -268,6 +276,7 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check return value; } + @Override public boolean editOndoubleClick(JFrame frame) { String [] labels = new String[nParam + 1]; String [] values = new String[nParam + 1]; @@ -278,9 +287,9 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check values[i+1] = params[i]; } - ArrayList<String []> help = new ArrayList<String []>(); - String[] allInEvents = tdp.getMGUI().getAllInEvents(); - help.add(allInEvents); + List<String []> help = new ArrayList<String []>(); + String[] allInEvents = tdp.getMGUI().getAllInEvents(); + help.add(allInEvents); JDialogMultiString jdms = new JDialogMultiString(frame, "Setting event's properties", nParam+1, labels, values, help); // jdms.setSize(450, 300); @@ -301,6 +310,7 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data eventName=\""); @@ -359,22 +369,23 @@ public class TMLADWaitEvent extends TGCWithoutInternalComponent implements Check } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_WAIT_EVENT; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } diff --git a/src/main/java/ui/tmlad/TMLADWriteChannel.java b/src/main/java/ui/tmlad/TMLADWriteChannel.java index 3eb3ca19ac03d308891229890dce37ff025d1af7..f38f4dedba2a5f34977fa37aef4c0b706938c9b3 100755 --- a/src/main/java/ui/tmlad/TMLADWriteChannel.java +++ b/src/main/java/ui/tmlad/TMLADWriteChannel.java @@ -36,26 +36,42 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.tmlad; -import myutil.Conversion; -import myutil.GraphicLib; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.geom.Line2D; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import javax.swing.JFrame; + import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import ui.*; + +import myutil.Conversion; +import myutil.GraphicLib; +import ui.AllowedBreakpoint; +import ui.BasicErrorHighlight; +import ui.CheckableAccessibility; +import ui.CheckableLatency; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.LinkedReference; +import ui.MalformedModelingException; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; -import ui.window.JDialogMultiString; import ui.window.JDialogMultiStringAndTabs; import ui.window.TabInfo; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.ArrayList; -import java.util.concurrent.ConcurrentHashMap; - /** * Class TMLADWriteChannel * Action of writting data in channel @@ -64,7 +80,7 @@ import java.util.concurrent.ConcurrentHashMap; * @author Ludovic APVRILLE * @version 1.0 17/11/2005 */ -public class TMLADWriteChannel extends TGCWithoutInternalComponent implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { +public class TMLADWriteChannel extends TADComponentWithoutSubcomponents/* Issue #69 TGCWithoutInternalComponent*/ implements CheckableAccessibility, LinkedReference, CheckableLatency, EmbeddedComment, AllowedBreakpoint, BasicErrorHighlight { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -72,15 +88,13 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch protected int linebreak = 10; protected int decSec = 4; - - private ConcurrentHashMap<String, String> latencyVals; + private Map<String, String> latencyVals; protected int latencyX = 30; protected int latencyY = 25; protected int textWidth = 10; protected int textHeight = 20; - protected String channelName = "ch"; protected String nbOfSamples = "1"; protected String securityContext = ""; @@ -120,10 +134,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch latencyVals = new ConcurrentHashMap<String, String>(); } - public ConcurrentHashMap<String, String> getLatencyMap() { + public Map<String, String> getLatencyMap() { return latencyVals; } + @Override public void internalDrawing(Graphics g) { int w = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, w + 2 * textX); @@ -197,7 +212,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch drawReachabilityInformation(g); } - public void drawLatencyInformation(Graphics g) { + private void drawLatencyInformation(Graphics g) { int index = 1; for (String s : latencyVals.keySet()) { int w = g.getFontMetrics().stringWidth(s); @@ -209,12 +224,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch } } - public void addLatency(String name, String num) { latencyVals.put(name, num); } - public void drawReachabilityInformation(Graphics g) { + private void drawReachabilityInformation(Graphics g) { if (reachabilityInformation > 0) { Color c = g.getColor(); @@ -243,6 +257,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch } } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -282,6 +297,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch return value; } + @Override public boolean editOndoubleClick(JFrame frame) { TabInfo tab1 = new TabInfo("Name and samples"); String[] labels = new String[2]; @@ -295,7 +311,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch values[2] = securityContext; labels[3] = "Attacker?"; values[3] = isAttacker ? "Yes" : "No"; */ - ArrayList<String []> help = new ArrayList<String []>(); + List<String []> help = new ArrayList<String []>(); String[] allOutChannels = tdp.getMGUI().getAllOutChannels(); if (isAttacker){ allOutChannels =tdp.getMGUI().getAllCompOutChannels(); @@ -328,7 +344,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch tab2.values = values; tab2.help = help; - ArrayList<TabInfo> tabs = new ArrayList<>(); + List<TabInfo> tabs = new ArrayList<>(); tabs.add(tab1); tabs.add(tab2); @@ -347,15 +363,13 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch isEncForm = jdmsat.getString(1, 2).equals("Yes"); makeValue(); - - return true; } return false; - } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data channelName=\""); @@ -375,16 +389,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { - // try { - NodeList nli; Node n1, n2; Element elt; - // - // - for (int i = 0; i < nl.getLength(); i++) { n1 = nl.item(i); // @@ -413,16 +422,17 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLAD_WRITE_CHANNEL; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLAD; } @@ -449,7 +459,6 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch securityContext = sc; } - public boolean isAttacker() { return isAttacker; } @@ -463,8 +472,8 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch isEncForm=encForm; } + @Override public void setStateAction(int _stateAction) { stateOfError = _stateAction; } - } diff --git a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java index 3358c81e3fd67605a8efadd60431fffbc13650d4..8c54b5663383e769bdb0e04106f94de0835e5910 100755 --- a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java +++ b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcompd; import myutil.GraphicLib; @@ -49,8 +46,12 @@ import ui.*; import ui.util.IconManager; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.util.ArrayList; +import java.util.List; import java.util.ListIterator; /** @@ -111,6 +112,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp myImageIcon = IconManager.imgic1200; } + @Override public void internalDrawing(Graphics g) { int w; int c; @@ -158,7 +160,6 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp currentFontSize = maxCurrentFontSize; displayText = currentFontSize >= minFontSize; - } // Zoom is assumed to be computed @@ -191,6 +192,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } + @Override public void rescale(double scaleFactor){ dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor; textX = (int)(dtextX); @@ -199,6 +201,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp super.rescale(scaleFactor); } + @Override public TGComponent isOnOnlyMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -206,7 +209,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return null; } - + @Override public boolean editOndoubleClick(JFrame frame) { String s = (String)JOptionPane.showInputDialog(frame, "Name:", "Setting component name", JOptionPane.PLAIN_MESSAGE, IconManager.imgic100, @@ -233,25 +236,27 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return false; } - + @Override public int getType() { return TGComponentManager.TMLCTD_CCOMPONENT; } + @Override public void wasSwallowed() { myColor = null; } + @Override public void wasUnswallowed() { myColor = null; setFather(null); TDiagramPanel tdp = getTDiagramPanel(); setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); - } + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { - if (tgc instanceof TMLCCompositeComponent) { + if (tgc instanceof TMLCCompositeComponent) { return true; } @@ -268,9 +273,9 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } return tgc instanceof TMLCCompositePort; - } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { boolean swallowed = false; @@ -332,6 +337,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return true; } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { // if (tgc instanceof TMLCCompositePort) { @@ -360,8 +366,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } - - + @Override public void hasBeenResized() { rescaled = true; for(int i=0; i<nbInternalTGComponent; i++) { @@ -387,6 +392,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } + @Override public void resizeWithFather() { if ((father != null) && ((father instanceof TMLCCompositeComponent) ||(father instanceof TMLCPrimitiveComponent))) { // Too large to fit in the father? -> resize it! @@ -397,8 +403,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } - public java.util.List<TMLCPrimitiveComponent> getAllPrimitiveComponents() { - ArrayList<TMLCPrimitiveComponent> ll = new ArrayList<TMLCPrimitiveComponent>(); + public List<TMLCPrimitiveComponent> getAllPrimitiveComponents() { + List<TMLCPrimitiveComponent> ll = new ArrayList<TMLCPrimitiveComponent>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof TMLCCompositeComponent) { ll.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllPrimitiveComponents()); @@ -415,8 +421,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return ll; } - public ArrayList<TMLCRecordComponent> getAllRecordComponents() { - ArrayList<TMLCRecordComponent> ll = new ArrayList<TMLCRecordComponent>(); + public List<TMLCRecordComponent> getAllRecordComponents() { + List<TMLCRecordComponent> ll = new ArrayList<TMLCRecordComponent>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof TMLCCompositeComponent) { ll.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllRecordComponents()); @@ -433,7 +439,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return ll; } - public void getAllCompositeComponents(ArrayList<String> list, String _name) { + public void getAllCompositeComponents( List<String> list, String _name) { String s; TMLCCompositeComponent tmlcc; for(int i=0; i<nbInternalTGComponent; i++) { @@ -446,8 +452,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } - public ArrayList<TMLCCompositePort> getAllInternalCompositePorts() { - ArrayList<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); + public List<TMLCCompositePort> getAllInternalCompositePorts() { + List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof TMLCCompositeComponent) { list.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllInternalCompositePorts()); @@ -463,8 +469,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return list; } - public ArrayList<TMLCCompositePort> getAllReferencedCompositePorts() { - ArrayList<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); + public List<TMLCCompositePort> getAllReferencedCompositePorts() { + List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof TMLCCompositeComponent) { list.addAll(((TMLCCompositeComponent)tgcomponent[i]).getAllReferencedCompositePorts()); @@ -477,8 +483,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return list; } - public ArrayList<TMLCCompositePort> getFirstLevelCompositePorts() { - ArrayList<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); + public List<TMLCCompositePort> getFirstLevelCompositePorts() { + List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof TMLCCompositePort) { list.add((TMLCCompositePort)(tgcomponent[i])); @@ -488,8 +494,8 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return list; } - public ArrayList<TMLCPrimitivePort> getAllInternalPrimitivePorts() { - ArrayList<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>(); + public List<TMLCPrimitivePort> getAllInternalPrimitivePorts() { + List<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>(); for(int i=0; i<nbInternalTGComponent; i++) { if (tgcomponent[i] instanceof TMLCCompositeComponent) { @@ -540,6 +546,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return null; } + @Override public void setInternalsHidden(boolean hide) { hiddeni = hide; for(int i=0; i<nbInternalTGComponent; i++) { @@ -553,20 +560,22 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } + @Override public boolean areInternalsHidden() { return hiddeni; } - - public void drawInternalComponentsWhenHidden(Graphics g) { - // - for(int i=0; i<nbInternalTGComponent; i++) { - if (tgcomponent[i] instanceof TMLCCompositePort) { - //ColorManager.setColor(g, tgcomponent[i].getState(), 0); - tgcomponent[i].draw(g); - } - } - } +// +// private void drawInternalComponentsWhenHidden(Graphics g) { +// // +// for(int i=0; i<nbInternalTGComponent; i++) { +// if (tgcomponent[i] instanceof TMLCCompositePort) { +// //ColorManager.setColor(g, tgcomponent[i].getState(), 0); +// tgcomponent[i].draw(g); +// } +// } +// } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<info hiddeni=\"" + hiddeni + "\" "); @@ -577,9 +586,7 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - // try { - NodeList nli; Node n1, n2; Element elt; @@ -607,10 +614,11 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } + @Override public void drawTGConnectingPoint(Graphics g, int type) { // for (int i=0; i<nbConnectingPoint; i++) { @@ -700,5 +708,4 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp return false; } - } diff --git a/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java b/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java index 64474151cab0c40e6b985a1edadb116654419dca..0eb38b932ddf50c25e66100810f2c6dc572a4ace 100755 --- a/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java +++ b/src/main/java/ui/tmlcompd/TMLCRemoteCompositeComponent.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcompd; import myutil.GraphicLib; @@ -51,8 +48,12 @@ import ui.util.IconManager; import ui.window.JDialogTMLRemoteCompositeComponent; import javax.swing.*; -import java.awt.*; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; import java.util.ArrayList; +import java.util.List; /** * Class TMLCRemoteCompositeComponent @@ -137,6 +138,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone } } + @Override public void internalDrawing(Graphics g) { int w; int c; @@ -258,6 +260,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone } } + @Override public void rescale(double scaleFactor){ dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor; textX = (int)(dtextX); @@ -270,6 +273,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone super.rescale(scaleFactor); } + @Override public TGComponent isOnOnlyMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -277,7 +281,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone return null; } - + @Override public boolean editOndoubleClick(JFrame frame, int _x, int _y) { // On the icon? @@ -316,6 +320,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone return false; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); @@ -354,7 +359,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone TMLCRemotePortCompositeComponent pcc; TGConnectingPoint[] old = null; - ArrayList<TMLCCompositePort> tmp = null; + List<TMLCCompositePort> tmp = null; //ArrayList<TMLCReferencePortConnectingPoint> points = new ArrayList<TMLCReferencePortConnectingPoint>(); for(int i=0; i<nl.getLength(); i++) { @@ -458,29 +463,30 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone ((TMLComponentTaskDiagramPanel)getTDiagramPanel()).makePaths(); } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } } - + @Override public int getType() { return TGComponentManager.TMLCTD_CREMOTECOMPONENT; } + @Override public void wasSwallowed() { myColor = null; } + @Override public void wasUnswallowed() { myColor = null; setFather(null); TDiagramPanel tdp = getTDiagramPanel(); setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY()); - } - + @Override public void hasBeenResized() { rescaled = true; /*for(int i=0; i<nbInternalTGComponent; i++) { @@ -500,6 +506,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone } } + @Override public void resizeWithFather() { if ((father != null) && ((father instanceof TMLCCompositeComponent) ||(father instanceof TMLCPrimitiveComponent))) { // Too large to fit in the father? -> resize it! @@ -510,30 +517,30 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone } } - public java.util.List<TMLCPrimitiveComponent> getAllPrimitiveComponents() { + public List<TMLCPrimitiveComponent> getAllPrimitiveComponents() { if (tmlcc == null) { return new ArrayList<TMLCPrimitiveComponent>(); } return tmlcc.getAllPrimitiveComponents(); } - public java.util.List<TMLCRecordComponent> getAllRecordComponents() { + public List<TMLCRecordComponent> getAllRecordComponents() { if (tmlcc == null) { return new ArrayList<TMLCRecordComponent>(); } return tmlcc.getAllRecordComponents(); } - public java.util.List<TMLCCompositePort> getAllInternalCompositePorts() { - java.util.List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); + public List<TMLCCompositePort> getAllInternalCompositePorts() { + List<TMLCCompositePort> list = new ArrayList<TMLCCompositePort>(); if (tmlcc == null) { return list; } return tmlcc.getAllInternalCompositePorts(); } - public ArrayList<TMLCPrimitivePort> getAllInternalPrimitivePorts() { - ArrayList<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>(); + public List<TMLCPrimitivePort> getAllInternalPrimitivePorts() { + List<TMLCPrimitivePort> list = new ArrayList<TMLCPrimitivePort>(); if (tmlcc == null) { return list; } @@ -573,7 +580,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone // to a list of those points, keep that list, and then, generate a array of those points. public void updatePorts() { //TraceManager.addDev("Update my ports"); - ArrayList<TMLCCompositePort> list = tmlcc.getFirstLevelCompositePorts(); + List<TMLCCompositePort> list = tmlcc.getFirstLevelCompositePorts(); int cpt=0; /*TraceManager.addDev("list size:" + list.size()); @@ -604,7 +611,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone if (change) { TraceManager.addDev("change on ports!"); // Delete unused ports and - ArrayList<TMLCReferencePortConnectingPoint> points = new ArrayList<TMLCReferencePortConnectingPoint>(); + List<TMLCReferencePortConnectingPoint> points = new ArrayList<TMLCReferencePortConnectingPoint>(); cpt=0; for(i=0; i<ports.size(); i++) { @@ -699,7 +706,6 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone int i; //TraceManager.addDev("name= " + name + " nbCP=" + nbConnectingPoint + " num=" + num + "id=" + id); try { - if (connectingPoint == null) { nbConnectingPoint = num + 1; connectingPoint = new TGConnectingPoint[nbConnectingPoint]; @@ -781,11 +787,13 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone } }*/ + @Override public boolean acceptSwallowedTGComponent(TGComponent tgc) { return tgc instanceof TMLCRemotePortCompositeComponent; } + @Override public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) { if (!acceptSwallowedTGComponent(tgc)) { return false; @@ -799,6 +807,7 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone return true; } + @Override public void removeSwallowedTGComponent(TGComponent tgc) { } @@ -816,5 +825,4 @@ public class TMLCRemoteCompositeComponent extends TGCScalableWithInternalCompone public TMLCCompositeComponent getReference() { return tmlcc; } - } diff --git a/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java b/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java index 58a7adaf1d40a10faa3b31cee23717a1078a2603..6bff4804513d6b57b5b737269471195772b21e89 100755 --- a/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java +++ b/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java @@ -37,10 +37,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.tmlcompd; - import myutil.TraceManager; import org.w3c.dom.Element; import ui.*; @@ -66,6 +64,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi //setAttributesVisible(true); } + @Override public boolean actionOnDoubleClick(TGComponent tgc) { /*TraceManager.addDev("Action on double click!"); if (tgc instanceof TMLCPrimitiveComponent) { @@ -77,6 +76,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return false; } + @Override public boolean actionOnAdd(TGComponent tgc) { //TraceManager.addDev("Action on add! value=" + tgc.getValue()); if (tgc instanceof TMLCPrimitiveComponent) { @@ -98,6 +98,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return true; } + @Override public boolean actionOnRemove(TGComponent tgc) { //TraceManager.addDev("Action on remove tgc=" + tgc + " value=" + tgc.getValue()); if (tgc instanceof TMLCPrimitiveComponent) { @@ -167,6 +168,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return ports; } + @Override public boolean actionOnValueChanged(TGComponent tgc) { //TraceManager.addDev("Action on value changed on component:" + tgc); if (tgc instanceof TMLCPrimitiveComponent) { @@ -195,21 +197,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return ko ? ko : nameAllRecordComponentInUse(oldValue, newValue); } - /** - * Check if newvalue is already a name of a component. - * - * @param newvalue - * @return true if the name is used - * @author Fabien Tessier - */ - public boolean isCompositeNameUsed(String newvalue) { - for (TGComponent tgc : this.componentList) { - if (tgc.getValue().equals(newvalue)) - return true; - } - return false; - } - public boolean nameAllRecordComponentInUse(String oldValue, String newValue) { // LinkedList ll = getRecordComponentList(); Iterator<TMLCRecordComponent> iterator = getRecordComponentList().listIterator(); @@ -226,8 +213,8 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return false; } - public LinkedList<TMLCRecordComponent> getRecordComponentList() { - LinkedList<TMLCRecordComponent> ll = new LinkedList<TMLCRecordComponent>(); + public List<TMLCRecordComponent> getRecordComponentList() { + List<TMLCRecordComponent> ll = new LinkedList<TMLCRecordComponent>(); TGComponent tgc; Iterator<TGComponent> iterator = componentList.listIterator(); @@ -472,7 +459,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return al; } - public void getAllPortsConnectedTo(List<TGComponent> ll, TMLCPrimitivePort _port) { List<TGComponent> components = getMGUI().getAllTMLComponents(); Iterator<TGComponent> iterator = components.listIterator(); @@ -514,36 +500,40 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } } + @Override public String getXMLHead() { return "<TMLComponentTaskDiagramPanel name=\"" + name + "\"" + sizeParam() + displayParam() + zoomParam() + " >"; } + @Override public String getXMLTail() { return "</TMLComponentTaskDiagramPanel>"; } + @Override public String getXMLSelectedHead() { return "<TMLComponentTaskDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >"; } + @Override public String getXMLSelectedTail() { return "</TMLComponentTaskDiagramPanelCopy>"; } + @Override public String getXMLCloneHead() { return "<TMLComponentTaskDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >"; } + @Override public String getXMLCloneTail() { return "</TMLComponentTaskDiagramPanelCopy>"; } - public boolean areAttributesVisible() { return attributesVisible; } - public boolean areChannelVisible() { return synchroVisible; } @@ -552,7 +542,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi attributesVisible = b; } - public void setChannelVisible(boolean b) { channelVisible = b; } @@ -612,8 +601,8 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } } - public ArrayList<String> getAllCompositeComponent(String _name) { - ArrayList<String> list = new ArrayList<String>(); + public List<String> getAllCompositeComponent(String _name) { + List<String> list = new ArrayList<String>(); TGComponent tgc1; String s; TMLCCompositeComponent tmlcc; @@ -650,7 +639,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi TGComponent tgc; Iterator<TGComponent> iterator = componentList.listIterator(); // List<String> list = new ArrayList<String>(); - TMLCPrimitiveComponent tmp; + //TMLCPrimitiveComponent tmp; while (iterator.hasNext()) { tgc = iterator.next(); @@ -674,7 +663,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi TGComponent tgc; Iterator<TGComponent> iterator = componentList.listIterator(); // List<String> list = new ArrayList<String>(); - TMLCPrimitiveComponent tmp; + //TMLCPrimitiveComponent tmp; while (iterator.hasNext()) { tgc = iterator.next(); @@ -693,7 +682,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return chlArray; } - public TMLCPrimitiveComponent getPrimitiveComponentByName(String _name) { TGComponent tgc; Iterator<TGComponent> iterator = componentList.listIterator(); @@ -993,10 +981,10 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } // Returns the faulty paths - public ArrayList<TMLCPath> updatePorts() { + public List<TMLCPath> updatePorts() { //TraceManager.addDev("Making paths"); List<TMLCPath> paths = makePaths(); - ArrayList<TMLCPath> faultyPaths = new ArrayList<TMLCPath>(); + List<TMLCPath> faultyPaths = new ArrayList<TMLCPath>(); //String error = ""; // Checking rules of paths, and setting colors accordingly @@ -1079,7 +1067,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } // We take each primitive ports individually and we go thru the graph - ArrayList<TMLCChannelFacility> mets = new ArrayList<TMLCChannelFacility>(); + List<TMLCChannelFacility> mets = new ArrayList<TMLCChannelFacility>(); TGConnector connector; TGConnectingPoint tp; String conflictMessage; @@ -1104,7 +1092,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } } - public String propagate(TMLCPrimitivePort pport, TGConnectingPoint tp, TGConnector connector, ArrayList<TMLCChannelFacility> mets) { + public String propagate(TMLCPrimitivePort pport, TGConnectingPoint tp, TGConnector connector, List<TMLCChannelFacility> mets) { TGConnectingPoint tp2; TMLCChannelFacility cp = null; //boolean conflict = false; @@ -1283,7 +1271,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return conflictMessage; } - public String explore(TMLCPrimitivePort pport, TGConnectingPoint _tp, TMLCChannelFacility cp, ArrayList<TMLCChannelFacility> mets) { + public String explore(TMLCPrimitivePort pport, TGConnectingPoint _tp, TMLCChannelFacility cp, List<TMLCChannelFacility> mets) { String conflictMessage = null; String conflictMessageTmp; TGConnectingPoint tp; @@ -1305,7 +1293,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return conflictMessage; } - public void analysePorts(TMLCPrimitivePort pport, ArrayList<TMLCChannelFacility> mets, boolean conflict, String message) { + public void analysePorts(TMLCPrimitivePort pport, List<TMLCChannelFacility> mets, boolean conflict, String message) { if (mets.size() == 0) { return; } @@ -1532,11 +1520,9 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi for (TDiagramPanel panel : panels) { iterator = panel.getComponentList().listIterator(); - List<TMLCCompositePort> listcp; List<TMLCPrimitivePort> listpp; - while (iterator.hasNext()) { tgc = iterator.next(); @@ -1646,7 +1632,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi return paths; - } public TMLCPath getPathOf(List<TMLCPath> paths, TGComponent tgc) { @@ -1675,8 +1660,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi paths.add(ph); } - - public void getPanelsUsingAComponent(TMLCCompositeComponent tmlcc, ArrayList<TMLComponentTaskDiagramPanel> panels) { + public void getPanelsUsingAComponent(TMLCCompositeComponent tmlcc, List<TMLComponentTaskDiagramPanel> panels) { //TraceManager.addDev("Update from " + tmlcc.getValue()); Iterator<TGComponent> iterator = componentList.listIterator(); TGComponent tgc; @@ -1699,7 +1683,6 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } } - public String[] getAllOutEvents(String nameOfComponent) { TMLCPrimitiveComponent comp = getPrimitiveComponentByName(nameOfComponent); if (comp == null) { @@ -1707,7 +1690,7 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi } List<TMLCPrimitivePort> ll = comp.getAllEventsOriginPorts(); - LinkedList<String> lString = new LinkedList<>(); + List<String> lString = new LinkedList<>(); //String[] terms = new String[ll.size()]; diff --git a/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java b/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java index 311de473ad9c5bd404483a6af6933a4493ab4d17..7e071398c9304250562b91732f80dc2701b2950c 100755 --- a/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java +++ b/src/main/java/ui/tmlcp/TGConnectingPointTMLCP.java @@ -36,12 +36,8 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; - import ui.CDElement; import ui.TGComponentManager; import ui.TGConnectingPointWidthHeight; @@ -54,13 +50,12 @@ import ui.TGConnectingPointWidthHeight; * @author Ludovic APVRILLE */ public class TGConnectingPointTMLCP extends TGConnectingPointWidthHeight{ - - public TGConnectingPointTMLCP(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) { super(_container, _x, _y, _in, _out, _w, _h); } + @Override public boolean isCompatibleWith(int type) { // if (type == TGComponentManager.CONNECTOR_TMLCP) { diff --git a/src/main/java/ui/tmlcp/TGConnectorTMLCP.java b/src/main/java/ui/tmlcp/TGConnectorTMLCP.java index 71b38e664c9e99332963f3ddb7d9f382f8eb584d..4bcca5ef6284ce4f394d8e69446cdf295a867831 100755 --- a/src/main/java/ui/tmlcp/TGConnectorTMLCP.java +++ b/src/main/java/ui/tmlcp/TGConnectorTMLCP.java @@ -36,13 +36,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; import myutil.GraphicLib; import ui.*; +import ui.ad.TADConnector; import ui.util.IconManager; import java.awt.*; @@ -56,7 +54,7 @@ import java.util.Vector; * @version 1.0 17/02/2014 * @author Ludovic APVRILLE */ -public class TGConnectorTMLCP extends TGConnector { +public class TGConnectorTMLCP extends TADConnector /* Issue #69 TGConnector*/ { protected int arrowLength = 10; protected String guard = ""; @@ -65,12 +63,12 @@ public class TGConnectorTMLCP extends TGConnector { myImageIcon = IconManager.imgic202; name = "connector"; - _p1.setReferenceToConnector( this ); - _p2.setReferenceToConnector( this ); - + _p1.setReferenceToConnector( this ); + _p2.setReferenceToConnector( this ); //editable = true; } + @Override protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); @@ -79,6 +77,7 @@ public class TGConnectorTMLCP extends TGConnector { } } + @Override public int getType() { return TGComponentManager.CONNECTOR_TMLCP; } @@ -95,5 +94,4 @@ public class TGConnectorTMLCP extends TGConnector { } return "noGuard"; } - }//End of class diff --git a/src/main/java/ui/tmlcp/TMLCPChoice.java b/src/main/java/ui/tmlcp/TMLCPChoice.java index 8b55369d70a2b01fef5ea613f5359fe27bba0803..9e9ea5db9759211e30342b9ca5b60b8331ff4759 100755 --- a/src/main/java/ui/tmlcp/TMLCPChoice.java +++ b/src/main/java/ui/tmlcp/TMLCPChoice.java @@ -37,18 +37,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; -import java.awt.geom.Line2D; -import java.util.ArrayList; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADChoice; /** * Class TMLCPChoice @@ -57,10 +52,10 @@ import java.util.ArrayList; * @version 1.0 17/02/2014 * @author Ludovic APVRILLE, Andrea ENRICI */ -public class TMLCPChoice extends TGCWithInternalComponent { - private int lineLength = 10; - private int lineOutLength = 25; - private int textX1, textY1, textX2, textY2, textX3, textY3; +public class TMLCPChoice extends TADChoice /* Issue #69 TGCWithInternalComponent*/ { +// private int lineLength = 10; +// private int lineOutLength = 25; +// private int textX1, textY1, textX2, textY2, textX3, textY3; private static int instanceCounter = 0; private int counter = 0; @@ -68,151 +63,161 @@ public class TMLCPChoice extends TGCWithInternalComponent { public TMLCPChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 30; - height = 30; - textX1 = -lineOutLength; - textY1 = height/2 - 5; - textX2 = width + 5; - textY2 = height/2 - 5; - textX3 = width /2 + 5; - textY3 = height + 15; - - nbConnectingPoint = 4; - connectingPoint = new TGConnectingPoint[nbConnectingPoint]; - connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5); - connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5); - connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength, false, true, 0.5, 1.0); +// width = 30; +// height = 30; +// textX1 = -lineOutLength; +// textY1 = height/2 - 5; +// textX2 = width + 5; +// textY2 = height/2 - 5; +// textX3 = width /2 + 5; +// textY3 = height + 15; +// +// nbConnectingPoint = 4; +// connectingPoint = new TGConnectingPoint[nbConnectingPoint]; +// connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0); +// connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5); +// connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5); +// connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength, false, true, 0.5, 1.0); addTGConnectingPointsComment(); //nbInternalTGComponent = 0; - nbInternalTGComponent = 3; - tgcomponent = new TGComponent[nbInternalTGComponent]; - - TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 1"); - tgcomponent[0] = tgc; - - tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 2"); - tgcomponent[1] = tgc; - - tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); - tgc.setValue("[ ]"); - tgc.setName("guard 3"); - tgcomponent[2] = tgc; - - moveable = true; - editable = false; - removable = true; +// nbInternalTGComponent = 3; +// tgcomponent = new TGComponent[nbInternalTGComponent]; +// +// TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 1"); +// tgcomponent[0] = tgc; +// +// tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 2"); +// tgcomponent[1] = tgc; +// +// tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp); +// tgc.setValue("[ ]"); +// tgc.setName("guard 3"); +// tgcomponent[2] = tgc; +// +// moveable = true; +// editable = false; +// removable = true; instanceCounter++; counter = instanceCounter; name = "choice" + Integer.toString(counter); - myImageIcon = IconManager.imgic208; - } - - public void internalDrawing(Graphics g) { - g.drawLine(x+(width/2), y, x+width, y + height/2); - g.drawLine(x, y + height / 2, x+width/2, y + height); - g.drawLine(x + width/2, y, x, y + height/2); - g.drawLine(x + width, y + height/2, x + width/2, y + height); - - g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); - g.drawLine(x, y + height/2, x-lineOutLength, y + height/2); - g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2); - g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); - } - - public TGComponent isOnOnlyMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - // horizontal line - if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) { - return this; - } - - return null; + // myImageIcon = IconManager.imgic208; } - + + @Override + protected void createConnectingPoints() { + nbConnectingPoint = 4; + connectingPoint = new TGConnectingPoint[nbConnectingPoint]; + connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0); + connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5); + connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5); + connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength, false, true, 0.5, 1.0); + } +// +// public void internalDrawing(Graphics g) { +// g.drawLine(x+(width/2), y, x+width, y + height/2); +// g.drawLine(x, y + height / 2, x+width/2, y + height); +// g.drawLine(x + width/2, y, x, y + height/2); +// g.drawLine(x + width, y + height/2, x + width/2, y + height); +// +// g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); +// g.drawLine(x, y + height/2, x-lineOutLength, y + height/2); +// g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2); +// g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength); +// } +// +// public TGComponent isOnOnlyMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// // horizontal line +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } + + @Override public int getType() { return TGComponentManager.TMLCP_CHOICE; } - - public String getGuard(int i) { - if ((i>=0) && (i<nbInternalTGComponent)) { - // - return tgcomponent[i].getValue(); - } - return ""; - } - - public ArrayList<String> getGuards() { - - ArrayList<String> guards = new ArrayList<String>(); - for( int i = 0; i < nbInternalTGComponent; i++ ) { - guards.add( getGuard(i) ); - } - return guards; - } - - public boolean hasUnvalidGuards() { - return (getUnvalidGuards() != null); - } - - public String getUnvalidGuards() { - String s, g; - int index; - for(int i=0; i<nbInternalTGComponent; i++) { - s = getGuard(i); - g = s; - if ((s.compareTo("[]") != 0) && (s.compareTo("[ ]") != 0)) { - index = s.indexOf('/'); - if (index == -1) { - return g; - } - s = s.substring(1, index); - s = s.trim(); - // - if (!TAttribute.isAValidId(s, false, false)) { - //if (!s.matches("(\\w)+*(\\s)*")) { - return g; - } - } - } - - return null; - } - +// +// public String getGuard(int i) { +// if ((i>=0) && (i<nbInternalTGComponent)) { +// // +// return tgcomponent[i].getValue(); +// } +// return ""; +// } +// +// public ArrayList<String> getGuards() { +// +// ArrayList<String> guards = new ArrayList<String>(); +// for( int i = 0; i < nbInternalTGComponent; i++ ) { +// guards.add( getGuard(i) ); +// } +// return guards; +// } +// +// public boolean hasUnvalidGuards() { +// return (getUnvalidGuards() != null); +// } +// +// public String getUnvalidGuards() { +// String s, g; +// int index; +// for(int i=0; i<nbInternalTGComponent; i++) { +// s = getGuard(i); +// g = s; +// if ((s.compareTo("[]") != 0) && (s.compareTo("[ ]") != 0)) { +// index = s.indexOf('/'); +// if (index == -1) { +// return g; +// } +// s = s.substring(1, index); +// s = s.trim(); +// // +// if (!TAttribute.isAValidId(s, false, false)) { +// //if (!s.matches("(\\w)+*(\\s)*")) { +// return g; +// } +// } +// } +// +// return null; +// } + + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLCP; } - - - - public TGConnectingPoint[] getConnectingPoints() { - return connectingPoint; - } - - public TGComponent[] getTGComponents() { - return tgcomponent; - } +// +// public TGConnectingPoint[] getConnectingPoints() { +// return connectingPoint; +// } +// +// public TGComponent[] getTGComponents() { +// return tgcomponent; +// } } diff --git a/src/main/java/ui/tmlcp/TMLCPForLoop.java b/src/main/java/ui/tmlcp/TMLCPForLoop.java index 923246f4b90fcad985f52d5bf9c1ce8eaa2b9205..5a2e19156d237684c8a5f34a9e278e14cdfad72c 100755 --- a/src/main/java/ui/tmlcp/TMLCPForLoop.java +++ b/src/main/java/ui/tmlcp/TMLCPForLoop.java @@ -36,20 +36,30 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.tmlcp; -import myutil.GraphicLib; +import java.awt.Color; +import java.awt.Graphics; + +import javax.swing.JFrame; + import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import ui.*; -import ui.util.IconManager; -import ui.window.JDialogMultiString; -import javax.swing.*; -import java.awt.*; -import java.awt.geom.Line2D; +import myutil.GraphicLib; +import ui.BasicErrorHighlight; +import ui.ColorManager; +import ui.EmbeddedComment; +import ui.ErrorHighlight; +import ui.GTURTLEModeling; +import ui.MalformedModelingException; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADForLoop; +import ui.window.JDialogMultiString; /** * Class TMLCPForLoop @@ -59,24 +69,24 @@ import java.awt.geom.Line2D; * @author Ludovic APVRILLE * @version 1.0 03/06/2015 */ -public class TMLCPForLoop extends TGCWithoutInternalComponent implements EmbeddedComment, BasicErrorHighlight { - protected int lineLength = 5; - protected int textX = 5; - protected int textY = 15; - protected int arc = 5; +public class TMLCPForLoop extends TADForLoop /* Issue #69 TGCWithoutInternalComponent*/ implements EmbeddedComment, BasicErrorHighlight { +// protected int lineLength = 5; +// protected int textX = 5; +// protected int textY = 15; +// protected int arc = 5; protected String init = "i=0"; protected String condition = "i<5"; protected String increment = "i = i+1"; - protected int stateOfError = 0; // Not yet checked + // protected int stateOfError = 0; // Not yet checked public TMLCPForLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 30; - height = 20; - minWidth = 30; +// width = 30; +// height = 20; +// minWidth = 30; nbConnectingPoint = 3; connectingPoint = new TGConnectingPoint[3]; @@ -84,17 +94,18 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde connectingPoint[1] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 1.0, 0.45); // loop connectingPoint[2] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp - moveable = true; - editable = true; - removable = true; +// moveable = true; +// editable = true; +// removable = true; makeValue(); name = "for loop"; - myImageIcon = IconManager.imgic912; +// myImageIcon = IconManager.imgic912; } + @Override public void internalDrawing(Graphics g) { final int textWidth = g.getFontMetrics().stringWidth(value); int w1 = Math.max(minWidth, textWidth + 2 * textX); @@ -125,6 +136,7 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde g.drawString(value, x + (width - textWidth) / 2, y + textY); } + @Override public boolean editOndoubleClick(JFrame frame) { String[] labels = new String[3]; String[] values = new String[3]; @@ -135,7 +147,6 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde labels[2] = "Increment at each loop"; values[2] = increment; - JDialogMultiString jdms = new JDialogMultiString(frame, "Setting loop's properties", 3, labels, values); // jdms.setSize(400, 300); GraphicLib.centerOnParent(jdms, 400, 300); @@ -151,24 +162,23 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde } return false; - } - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int) (Line2D.ptSegDistSq(x + (width / 2), y - lineLength, x + (width / 2), y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - - if ((int) (Line2D.ptSegDistSq(x + width, y + height / 2, x + width + lineLength, y + height / 2, _x, _y)) < distanceSelected) { - return this; - } - - return null; - } +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int) (Line2D.ptSegDistSq(x + (width / 2), y - lineLength, x + (width / 2), y + lineLength + height, _x, _y)) < distanceSelected) { +// return this; +// } +// +// if ((int) (Line2D.ptSegDistSq(x + width, y + height / 2, x + width + lineLength, y + height / 2, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } public void makeValue() { value = "for(" + init + ";" + condition + ";" + increment + ")"; @@ -190,6 +200,7 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde return increment; } + @Override protected String translateExtraParam() { StringBuffer sb = new StringBuffer("<extraparam>\n"); sb.append("<Data init=\""); @@ -205,18 +216,12 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde @Override public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { - // try { - NodeList nli; Node n1, n2; Element elt; // int k; // String s; - - // - // - for (int i = 0; i < nl.getLength(); i++) { n1 = nl.item(i); // @@ -239,23 +244,22 @@ public class TMLCPForLoop extends TGCWithoutInternalComponent implements Embedde } } catch (Exception e) { - throw new MalformedModelingException(); + throw new MalformedModelingException( e ); } makeValue(); } - + @Override public int getType() { return TGComponentManager.TMLCP_FOR_LOOP; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLCP; } - public void setStateAction(int _stateAction) { - stateOfError = _stateAction; - } - - +// public void setStateAction(int _stateAction) { +// stateOfError = _stateAction; +// } } diff --git a/src/main/java/ui/tmlcp/TMLCPFork.java b/src/main/java/ui/tmlcp/TMLCPFork.java index 4e98d86590eacd79e0ec4e65d8805d7caa3b9b0c..eeb8146e7acc91d84d9c294238c1b91f46be7223 100755 --- a/src/main/java/ui/tmlcp/TMLCPFork.java +++ b/src/main/java/ui/tmlcp/TMLCPFork.java @@ -37,17 +37,18 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; +import java.awt.Graphics; +import java.util.Arrays; +import java.util.List; + import myutil.GraphicLib; import ui.*; +import ui.ad.EnablingADConnectorVisitor; +import ui.ad.TADComponentWithoutSubcomponents; import ui.util.IconManager; -import java.awt.*; - /** * Class TMLCPFork * Fork operator. The incoming activity is split into several outgoing activities @@ -56,7 +57,7 @@ import java.awt.*; * @version 1.0 17/02/2014 * @author Ludovic APVRILLE */ -public class TMLCPFork extends TGCWithoutInternalComponent{ +public class TMLCPFork extends TADComponentWithoutSubcomponents /* Issue #69 TGCWithoutInternalComponent*/ { private int lineLength = 0; private static int instanceCounter = 0; @@ -81,7 +82,7 @@ public class TMLCPFork extends TGCWithoutInternalComponent{ connectingPoint[4] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.833, 1.0); connectingPoint[5] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0); - addTGConnectingPointsComment(); + addTGConnectingPointsComment(); nbInternalTGComponent = 0; @@ -96,11 +97,13 @@ public class TMLCPFork extends TGCWithoutInternalComponent{ myImageIcon = IconManager.imgic206; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); } + @Override public TGComponent isOnMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -112,11 +115,36 @@ public class TMLCPFork extends TGCWithoutInternalComponent{ return tgcomponent[0].getValue(); } + @Override public int getType() { return TGComponentManager.TMLCP_FORK; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLCP; } + + public TGConnectingPoint getEnterConnectingPoint() { + return connectingPoint[ 5 ]; + } + + public List<TGConnectingPoint> getExitConnectingPoints() { + return Arrays.asList( Arrays.copyOfRange( connectingPoint, 0, connectingPoint.length - 1 ) ); + } + + /** + * Issue #69 + * @param _enabled + */ + @Override + public void setEnabled( final boolean _enabled ) { + super.setEnabled( _enabled ); + + for ( final TGConnectingPoint point : connectingPoint ) { + if ( point != getEnterConnectingPoint() ) { + point.acceptForward( new EnablingADConnectorVisitor( _enabled ) ); + } + } + } } diff --git a/src/main/java/ui/tmlcp/TMLCPJoin.java b/src/main/java/ui/tmlcp/TMLCPJoin.java index 74a4ae549865794cac2638a76600d3094ecd0d80..341f896cde57bc4c08d38b91565f367f4cb59474 100755 --- a/src/main/java/ui/tmlcp/TMLCPJoin.java +++ b/src/main/java/ui/tmlcp/TMLCPJoin.java @@ -37,17 +37,16 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; +import java.awt.Graphics; +import java.util.Arrays; +import java.util.List; + import myutil.GraphicLib; import ui.*; import ui.util.IconManager; -import java.awt.*; - /** * Class TMLCPJoin * Join operator. All incoming activities join in one remaining activity @@ -81,8 +80,7 @@ public class TMLCPJoin extends TGCWithoutInternalComponent{ connectingPoint[4] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.833, 0.0); connectingPoint[5] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0); - - addTGConnectingPointsComment(); + addTGConnectingPointsComment(); nbInternalTGComponent = 0; @@ -97,11 +95,13 @@ public class TMLCPJoin extends TGCWithoutInternalComponent{ myImageIcon = IconManager.imgic206; } + @Override public void internalDrawing(Graphics g) { g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); } + @Override public TGComponent isOnMe(int x1, int y1) { if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) { return this; @@ -113,11 +113,21 @@ public class TMLCPJoin extends TGCWithoutInternalComponent{ return tgcomponent[0].getValue(); } + @Override public int getType() { return TGComponentManager.TMLCP_JOIN; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLCP; + return TGComponentManager.CONNECTOR_TMLCP; + } + + public List<TGConnectingPoint> getEnterConnectingPoints() { + return Arrays.asList( Arrays.copyOfRange( connectingPoint, 0, connectingPoint.length - 1 ) ); + } + + public TGConnectingPoint getExitConnectingPoint() { + return connectingPoint[ 5 ]; } } diff --git a/src/main/java/ui/tmlcp/TMLCPJunction.java b/src/main/java/ui/tmlcp/TMLCPJunction.java deleted file mode 100755 index 007fc1f42614b18a4d92167da3198e77cb1bc78f..0000000000000000000000000000000000000000 --- a/src/main/java/ui/tmlcp/TMLCPJunction.java +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, Andrea Enrici - * - * ludovic.apvrille AT telecom-paristech.fr - * andrea.enrici AT telecom-paristech.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.tmlcp; - -import ui.*; -import ui.util.IconManager; - -import java.awt.*; -import java.awt.geom.Line2D; - - -/** - * Class TMLCPJunction - * Junction between several activities, without any synchronization. - * To be used in communication patterns diagrams - * Creation: 17/02/2014 - * @version 1.0 17/02/2014 - * @author Ludovic APVRILLE, Andrea ENRICI - */ -public class TMLCPJunction extends TGCWithoutInternalComponent { - - private static int instanceCounter = 0; - private int counter = 0; - - public TMLCPJunction(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { - super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - - width = 30; - height = 30; - - nbConnectingPoint = 4; - connectingPoint = new TGConnectingPoint[nbConnectingPoint]; - connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, 0, true, false, 0.5, 0.0); - connectingPoint[1] = new TGConnectingPointTMLCP(this, 0, 0, true, false, 0.0, 0.5); - connectingPoint[2] = new TGConnectingPointTMLCP(this, 0, 0, true, false, 1.0, 0.5); - connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, 0, false, true, 0.5, 1); - - moveable = true; - editable = false; - removable = true; - - value = ""; - instanceCounter++; - counter = instanceCounter; - name = "junction" + Integer.toString(counter); - - myImageIcon = IconManager.imgic212; - } - - public void internalDrawing(Graphics g) { - g.drawLine(x +width/2, y, x+width/2, y + height); - g.drawLine(x, y + (height/2), x+width, y + (height/2)); - } - - public TGComponent isOnMe(int _x, int _y) { - // vertical line - if ((int)(Line2D.ptSegDistSq(x +width/2, y, x+width/2, y + height, _x, _y)) < distanceSelected) { - return this; - } - // horizontal line - if ((int)(Line2D.ptSegDistSq(x, y + (height/2), x+width, y + (height/2), _x, _y)) < distanceSelected) { - return this; - } - return null; - } - - public int getType() { - return TGComponentManager.TMLCP_JUNCTION; - } - - public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLCP; - } - -} - - - - - - - diff --git a/src/main/java/ui/tmlcp/TMLCPPanel.java b/src/main/java/ui/tmlcp/TMLCPPanel.java index 94bdaf07d13098377ec634b2cf0548a893b38a00..cb458388ddd31668b754b4cc3f9cc31631b3e29b 100755 --- a/src/main/java/ui/tmlcp/TMLCPPanel.java +++ b/src/main/java/ui/tmlcp/TMLCPPanel.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; import ui.*; @@ -60,6 +57,7 @@ public class TMLCPPanel extends TDiagramPanel { } + @Override public boolean actionOnDoubleClick(TGComponent tgc) { // /*if (tgc instanceof TCDTClass) { @@ -80,6 +78,7 @@ public class TMLCPPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnAdd(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { TCDTClass tgcc = (TCDTClass)(tgc); @@ -89,6 +88,7 @@ public class TMLCPPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnRemove(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { TCDTClass tgcc = (TCDTClass)(tgc); @@ -99,6 +99,7 @@ public class TMLCPPanel extends TDiagramPanel { return false; } + @Override public boolean actionOnValueChanged(TGComponent tgc) { /*if (tgc instanceof TCDTClass) { return actionOnDoubleClick(tgc); @@ -106,26 +107,32 @@ public class TMLCPPanel extends TDiagramPanel { return false; } + @Override public String getXMLHead() { return "<CommunicationPatternDiagramPanel name=\"" + name + "\"" + sizeParam() + " >"; } + @Override public String getXMLTail() { return "</CommunicationPatternDiagramPanel>"; } + @Override public String getXMLSelectedHead() { return "<CommunicationPatternDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >"; } + @Override public String getXMLSelectedTail() { return "</CommunicationPatternDiagramPanelCopy>"; } + @Override public String getXMLCloneHead() { return "<CommunicationPatternDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >"; } + @Override public String getXMLCloneTail() { return "</CommunicationPatternDiagramPanelCopy>"; } @@ -183,7 +190,7 @@ public class TMLCPPanel extends TDiagramPanel { }*/ public void makePostLoadingProcessing() throws MalformedModelingException { - TGComponent tgc; + // TGComponent tgc; /*for(int i=0; i<componentList.size(); i++) { tgc = (TGComponent)(componentList.elementAt(i)); @@ -225,7 +232,7 @@ public class TMLCPPanel extends TDiagramPanel { // Vector<TGComponent> v = new Vector<>(); Object o; - Iterator iterator = componentList.listIterator(); + Iterator<TGComponent> iterator = componentList.listIterator(); while(iterator.hasNext()) { o = iterator.next(); @@ -243,8 +250,6 @@ public class TMLCPPanel extends TDiagramPanel { TGConnector tgcon; int i; - // - if (tgc == null) { return; } @@ -275,8 +280,8 @@ public class TMLCPPanel extends TDiagramPanel { } } + @Override public boolean hasAutoConnect() { return true; } - } diff --git a/src/main/java/ui/tmlcp/TMLCPRefAD.java b/src/main/java/ui/tmlcp/TMLCPRefAD.java index 621a6c6772be6fe0b50f9016ddb4fb75169887bc..5e07d716018dd43b9402c9b5ebbfcd8d6a1c8cef 100755 --- a/src/main/java/ui/tmlcp/TMLCPRefAD.java +++ b/src/main/java/ui/tmlcp/TMLCPRefAD.java @@ -37,13 +37,11 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; import myutil.GraphicLib; import ui.*; +import ui.ad.TADOneLineText; import ui.util.IconManager; import javax.swing.*; @@ -59,7 +57,7 @@ import java.awt.geom.Line2D; * @version 1.0 17/02/2014 * @author Ludovic APVRILLE, Andrea ENRICI */ -public class TMLCPRefAD extends TGCOneLineText { +public class TMLCPRefAD extends TADOneLineText /* Issue #69 TGCOneLineText*/ { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; @@ -89,6 +87,7 @@ public class TMLCPRefAD extends TGCOneLineText { myImageIcon = IconManager.imgic400; } + @Override public void internalDrawing(Graphics g) { //int w2 = g.getFontMetrics().stringWidth("ref"); int w = g.getFontMetrics().stringWidth(value) /*+ w2*/; @@ -119,6 +118,7 @@ public class TMLCPRefAD extends TGCOneLineText { } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -136,12 +136,13 @@ public class TMLCPRefAD extends TGCOneLineText { } + @Override public int getType() { return TGComponentManager.TMLCP_REF_CP; } + @Override public void addActionToPopupMenu( JPopupMenu componentMenu, ActionListener menuAL, int x, int y ) { - componentMenu.addSeparator(); boolean b = ( (TMLCPPanel)tdp ).isTMLCPCreated( name ); JMenuItem isCPCreated; @@ -157,8 +158,8 @@ public class TMLCPRefAD extends TGCOneLineText { componentMenu.add( isCPCreated ); } + @Override public boolean eventOnPopup( ActionEvent e ) { - boolean b = ( (TMLCPPanel)tdp ).isTMLCPCreated( name ); if (b) { ( (TMLCPPanel)tdp ).openTMLCPDiagram( name ); @@ -170,13 +171,13 @@ public class TMLCPRefAD extends TGCOneLineText { return true; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLCP; } - @Override public boolean editOndoubleClick( JFrame frame ) { - - // + @Override + public boolean editOndoubleClick( JFrame frame ) { String text = "Reference to AD: "; if( hasFather() ) { text = getTopLevelName() + " / " + text; diff --git a/src/main/java/ui/tmlcp/TMLCPRefSD.java b/src/main/java/ui/tmlcp/TMLCPRefSD.java index da3776579b218ce6bee5058d08b3faea9f064ccd..dc6bb9e8469ffe7fc6f6b911a8aa3e1fc8179d92 100755 --- a/src/main/java/ui/tmlcp/TMLCPRefSD.java +++ b/src/main/java/ui/tmlcp/TMLCPRefSD.java @@ -36,22 +36,28 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; -import myutil.GraphicLib; -import ui.*; -import ui.tmlsd.TMLSDPanel; -import ui.util.IconManager; - -import javax.swing.*; -import java.awt.*; +import java.awt.Color; +import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Line2D; +import javax.swing.JFrame; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; + +import myutil.GraphicLib; +import ui.ColorManager; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADOneLineText; +import ui.util.IconManager; + /** * Class TMLCPRefSD * Reference to an SD in a communication pattern diagram @@ -59,12 +65,12 @@ import java.awt.geom.Line2D; * @version 1.0 17/02/2014 * @author Ludovic APVRILLE */ -public class TMLCPRefSD extends TGCOneLineText { +public class TMLCPRefSD extends TADOneLineText /* Issue #69 TGCOneLineText*/ { protected int lineLength = 5; protected int textX = 5; protected int textY = 15; protected int arc = 5; - private TMLSDPanel refToSD; + // private TMLSDPanel refToSD; // private TGConnectorTMLCP[] connectors = new TGConnectorTMLCP[2]; //private int index = 0; @@ -87,11 +93,12 @@ public class TMLCPRefSD extends TGCOneLineText { removable = true; value = "Reference to a SD"; name = "SequenceDiagram"; - refToSD = null; + // refToSD = null; myImageIcon = IconManager.imgic400; } + @Override public void internalDrawing(Graphics g) { //int w2 = g.getFontMetrics().stringWidth("ref"); int w = g.getFontMetrics().stringWidth(value) /*+ w2*/; @@ -118,6 +125,7 @@ public class TMLCPRefSD extends TGCOneLineText { g.drawLine(x+15, y+15, x+25, y+8); } + @Override public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { return this; @@ -134,41 +142,42 @@ public class TMLCPRefSD extends TGCOneLineText { return value; } - + @Override public int getType() { return TGComponentManager.TMLCP_REF_SD; } + @Override public void addActionToPopupMenu( JPopupMenu componentMenu, ActionListener menuAL, int x, int y ) { - - componentMenu.addSeparator(); - boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name ); - JMenuItem isSDCreated; - - if( b ) { - isSDCreated = new JMenuItem("Open diagram"); - } - else { - isSDCreated = new JMenuItem( "Create Sequence Diagram" ); - } - - isSDCreated.addActionListener( menuAL ); - componentMenu.add( isSDCreated ); + componentMenu.addSeparator(); + boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name ); + JMenuItem isSDCreated; + + if( b ) { + isSDCreated = new JMenuItem("Open diagram"); + } + else { + isSDCreated = new JMenuItem( "Create Sequence Diagram" ); + } + + isSDCreated.addActionListener( menuAL ); + componentMenu.add( isSDCreated ); } + @Override public boolean eventOnPopup(ActionEvent e) { - - boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name ); - if( b ) { - ( (TMLCPPanel)tdp ).openTMLCPSequenceDiagram( name ); - } - else { - ( (TMLCPPanel)tdp ).createTMLCPSequenceDiagram( name ); - } - tdp.getMouseManager().setSelection(-1, -1); - return true; + boolean b = ((TMLCPPanel)tdp).isTMLCPSDCreated( name ); + if( b ) { + ( (TMLCPPanel)tdp ).openTMLCPSequenceDiagram( name ); + } + else { + ( (TMLCPPanel)tdp ).createTMLCPSequenceDiagram( name ); + } + tdp.getMouseManager().setSelection(-1, -1); + return true; } + @Override public int getDefaultConnector() { return TGComponentManager.CONNECTOR_TMLCP; } @@ -177,28 +186,26 @@ public class TMLCPRefSD extends TGCOneLineText { refToSD = _panel; }*/ - @Override public boolean editOndoubleClick(JFrame frame) { - - // - String text = "Reference to a SD: "; - if( hasFather() ) { + @Override + public boolean editOndoubleClick(JFrame frame) { + String text = "Reference to a SD: "; + if( hasFather() ) { text = getTopLevelName() + " / " + text; - } - String s = (String) JOptionPane.showInputDialog(frame, text, - "Setting Name", JOptionPane.PLAIN_MESSAGE, IconManager.imgic100, null, getName() ); - if( (s != null) && (s.length() > 0) ) { - if (nameUsed(s)) { - JOptionPane.showMessageDialog(frame, - "Error: the name is already in use", - "Name modification", - JOptionPane.ERROR_MESSAGE); - return false; - } - renameTab(s); + } + String s = (String) JOptionPane.showInputDialog(frame, text, + "Setting Name", JOptionPane.PLAIN_MESSAGE, IconManager.imgic100, null, getName() ); + if( (s != null) && (s.length() > 0) ) { + if (nameUsed(s)) { + JOptionPane.showMessageDialog(frame, + "Error: the name is already in use", + "Name modification", + JOptionPane.ERROR_MESSAGE); + return false; + } + renameTab(s); setName(s); return true; } - return false; + return false; } - } //End of Class diff --git a/src/main/java/ui/tmlcp/TMLCPStartState.java b/src/main/java/ui/tmlcp/TMLCPStartState.java index d7eadfa554e6ffa5124cf796bec44e76a906ed5d..03816840c1817200800f6c78f911828490f48d92 100755 --- a/src/main/java/ui/tmlcp/TMLCPStartState.java +++ b/src/main/java/ui/tmlcp/TMLCPStartState.java @@ -36,17 +36,13 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; -import java.awt.geom.Line2D; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADStartState; /** * Class TMLCPStartState @@ -55,52 +51,61 @@ import java.awt.geom.Line2D; * @version 1.0 17/02/2014 * @author Ludovic APVRILLE */ -public class TMLCPStartState extends TGCWithoutInternalComponent{ +public class TMLCPStartState extends TADStartState /* Issue #69 TGCWithoutInternalComponent*/{ private int lineLength = 5; public TMLCPStartState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 15; - height = 15; +// width = 15; +// height = 15; +// +// nbConnectingPoint = 1; +// connectingPoint = new TGConnectingPoint[1]; +// connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0); +// +// nbInternalTGComponent = 0; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "start state"; +// +// myImageIcon = IconManager.imgic222; + } + @Override + protected void createConnectingPoints() { nbConnectingPoint = 1; connectingPoint = new TGConnectingPoint[1]; connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0); - - nbInternalTGComponent = 0; - - moveable = true; - editable = false; - removable = true; - - name = "start state"; - - myImageIcon = IconManager.imgic222; } - public void internalDrawing(Graphics g) { - g.fillOval(x, y, width, height); - g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); - } +// public void internalDrawing(Graphics g) { +// g.fillOval(x, y, width, height); +// g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height); +// } - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - - if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { - return this; - } - - return null; - } +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// +// if ((int)(Line2D.ptSegDistSq(x+(width/2), y+height, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) { +// return this; +// } +// +// return null; +// } + @Override public int getType() { return TGComponentManager.TMLCP_START_STATE; } + @Override public int getDefaultConnector() { - return TGComponentManager.CONNECTOR_TMLCP; + return TGComponentManager.CONNECTOR_TMLCP; } } \ No newline at end of file diff --git a/src/main/java/ui/tmlcp/TMLCPStopState.java b/src/main/java/ui/tmlcp/TMLCPStopState.java index f5f6bdc4be267b5a6560f742051095cc6b96fed9..238b27a331a28c1e34f5ecd4f0ae2b0e195e6a59 100755 --- a/src/main/java/ui/tmlcp/TMLCPStopState.java +++ b/src/main/java/ui/tmlcp/TMLCPStopState.java @@ -35,17 +35,14 @@ * 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.tmlcp; -import myutil.GraphicLib; -import ui.*; -import ui.util.IconManager; - -import java.awt.*; +import ui.TDiagramPanel; +import ui.TGComponent; +import ui.TGComponentManager; +import ui.TGConnectingPoint; +import ui.ad.TADStopState; /** * Class TMLCPStopState @@ -54,55 +51,55 @@ import java.awt.*; * @version 1.0 30/09/2004 * @author Ludovic APVRILLE */ -public class TMLCPStopState extends TGCWithoutInternalComponent{ - private int internalCircleSize = 16; - private int lineLength = 5; +public class TMLCPStopState extends TADStopState /* Issue #69 TGCWithoutInternalComponent*/{ +// private int internalCircleSize = 16; +// private int lineLength = 5; public TMLCPStopState(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = 20; - height = 20; +// width = 20; +// height = 20; +// +// nbConnectingPoint = 1; +// connectingPoint = new TGConnectingPoint[1]; +// connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, - lineLength, true, false, 0.5, 0.0); +// +// nbInternalTGComponent = 0; +// +// moveable = true; +// editable = false; +// removable = true; +// +// name = "stop state"; +// +// myImageIcon = IconManager.imgic210; + } + @Override + protected void createConnectingPoints() { nbConnectingPoint = 1; connectingPoint = new TGConnectingPoint[1]; connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, - lineLength, true, false, 0.5, 0.0); - - nbInternalTGComponent = 0; - - moveable = true; - editable = false; - removable = true; - - name = "stop state"; - - myImageIcon = IconManager.imgic210; - } - - public void internalDrawing(Graphics g) { - ColorManager.setColor(g, state, 0); - g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); - g.drawOval(x, y, width, height); - g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); } - - public TGComponent isOnMe(int _x, int _y) { - if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { - return this; - } - return null; - } +// public void internalDrawing(Graphics g) { +// ColorManager.setColor(g, state, 0); +// g.fillOval(x + (width - internalCircleSize)/2, y + (height - internalCircleSize)/2, internalCircleSize, internalCircleSize); +// g.drawOval(x, y, width, height); +// g.drawLine(x+(width/2), y, x+(width/2), y - lineLength); +// } +// +// +// public TGComponent isOnMe(int _x, int _y) { +// if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) { +// return this; +// } +// return null; +// } + @Override public int getType() { return TGComponentManager.TMLCP_STOP_STATE; } - } - - - - - - - diff --git a/src/main/java/ui/tmlcp/TMLCPToolBar.java b/src/main/java/ui/tmlcp/TMLCPToolBar.java index a75922b2cf303fd4de6dba6e6b40755961853f71..aca7bcf04ae1881d51f92a490421d16d5b9b1a0f 100755 --- a/src/main/java/ui/tmlcp/TMLCPToolBar.java +++ b/src/main/java/ui/tmlcp/TMLCPToolBar.java @@ -37,9 +37,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.tmlcp; import ui.MainGUI; @@ -48,9 +45,6 @@ import ui.TToolBar; import javax.swing.*; -//import java.awt.*; -//import java.awt.event.*; - /** * Class TMLCPToolBar * Implements the toolbar to be used in conjunction with the panel of an interaction overview diagram @@ -63,9 +57,9 @@ public class TMLCPToolBar extends TToolBar { public TMLCPToolBar(MainGUI _mgui) { super(_mgui); - } + @Override protected void setActive(boolean b) { mgui.actions[TGUIAction.TMLCP_EDIT].setEnabled(b); mgui.actions[TGUIAction.UML_NOTE].setEnabled(b); @@ -79,7 +73,7 @@ public class TMLCPToolBar extends TToolBar { mgui.actions[TGUIAction.TMLCP_START].setEnabled(b); mgui.actions[TGUIAction.TMLCP_STOP].setEnabled(b); //mgui.actions[TGUIAction.TMLCP_JUNCTION].setEnabled(b); - mgui.actions[TGUIAction.TMLCP_FOR_LOOP].setEnabled(b); + mgui.actions[TGUIAction.TMLCP_FOR_LOOP].setEnabled(b); mgui.actions[TGUIAction.ACT_ENHANCE].setEnabled(b); mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(false); @@ -90,6 +84,7 @@ public class TMLCPToolBar extends TToolBar { } + @Override protected void setButtons() { JButton button; @@ -129,7 +124,7 @@ public class TMLCPToolBar extends TToolBar { button.addMouseListener(mgui.mouseHandler); button = this.add(mgui.actions[TGUIAction.TMLCP_JOIN]); - button.addMouseListener(mgui.mouseHandler); + button.addMouseListener(mgui.mouseHandler); button = this.add(mgui.actions[TGUIAction.TMLCP_CHOICE]); @@ -138,14 +133,12 @@ public class TMLCPToolBar extends TToolBar { /*button = this.add(mgui.actions[TGUIAction.TMLCP_JUNCTION]); button.addMouseListener(mgui.mouseHandler);*/ - button = this.add(mgui.actions[TGUIAction.TMLCP_FOR_LOOP]); - button.addMouseListener(mgui.mouseHandler); + button = this.add(mgui.actions[TGUIAction.TMLCP_FOR_LOOP]); + button.addMouseListener(mgui.mouseHandler); this.addSeparator(); button = this.add(mgui.actions[TGUIAction.ACT_ENHANCE]); button.addMouseListener(mgui.mouseHandler); - } - } // Class diff --git a/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java b/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java index e4ba382344471f10a966ad4de782779ee427e33d..1d1c8571b49ddee9c7ff55e2515605062f647938 100755 --- a/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java +++ b/src/main/java/ui/tmldd/TMLArchiDiagramToolBar.java @@ -69,6 +69,7 @@ public class TMLArchiDiagramToolBar extends TToolBar implements ActionListener super(_mgui); } + @Override protected void setActive(boolean b) { mgui.actions[TGUIAction.TMLARCHI_EDIT].setEnabled(b); mgui.actions[TGUIAction.UML_NOTE].setEnabled(b); @@ -100,6 +101,7 @@ public class TMLArchiDiagramToolBar extends TToolBar implements ActionListener mgui.updateZoomInfo(); } + @Override protected void setButtons() { JButton button; diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java index ca6785b0a23c9f45212c3f2903e5d5f9dff58346..53a16508a09d2d47ef5ce99987d7db935fff7407 100755 --- a/src/main/java/ui/util/DefaultText.java +++ b/src/main/java/ui/util/DefaultText.java @@ -50,8 +50,8 @@ package ui.util; */ public class DefaultText { - public static String BUILD = "12707"; - public static String DATE = "2018/07/23 16:51:06 CET"; + public static String BUILD = "12734"; + public static String DATE = "2018/08/23 02:01:53 CET"; public static StringBuffer sbAbout = makeAbout(); diff --git a/src/main/java/ui/util/IconManager.java b/src/main/java/ui/util/IconManager.java index b54bb121219ad0ed343b1f21a3ccd9a7f951c15d..d85639588433221e0c71ba60057ee2823edfe669 100755 --- a/src/main/java/ui/util/IconManager.java +++ b/src/main/java/ui/util/IconManager.java @@ -183,11 +183,11 @@ public class IconManager { public static ImageIcon imgic2111; //New icon created by Solange // SystemC-AMS - public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006, imgic8007, imgic8008, imgic8009; + public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006; // ELN - public static ImageIcon imgic8020, imgic8021, imgic8022, imgic8023, imgic8024, imgic8025, imgic8026, imgic8027, imgic8028, imgic8029, - imgic8030, imgic8031, imgic8032, imgic8033, imgic8034; + public static ImageIcon imgic8010, imgic8011, imgic8012, imgic8013, imgic8014, imgic8015, imgic8016, imgic8017, imgic8018, imgic8019, + imgic8020, imgic8021, imgic8022, imgic8023, imgic8024, imgic8025, imgic8026, imgic8027, imgic8028, imgic8029; //private static String icon7 = "turtle_large.gif"; private static String ttoolStringIcon = "starting_logo.gif"; @@ -669,31 +669,33 @@ public class IconManager { // SystemC-AMS private static String icon8000 = "camstdfport.gif"; private static String icon8001 = "camsdeport.gif"; - private static String icon8002 = "camsconverterportW.gif"; - private static String icon8003 = "camsconverterportE.gif"; - private static String icon8004 = "camsconverterportN.gif"; - private static String icon8005 = "camsconverterportS.gif"; - private static String icon8006 = "camsclusterblock.gif"; - private static String icon8007 = "camstdfblock.gif"; - private static String icon8008 = "camsdeblock.gif"; - private static String icon8009 = "camsgpio2vciblock.gif"; + private static String icon8002 = "camsconverterport.gif"; + private static String icon8003 = "camsclusterblock.gif"; + private static String icon8004 = "camstdfblock.gif"; + private static String icon8005 = "camsdeblock.gif"; + private static String icon8006 = "camsgpio2vciblock.gif"; // ELN - private static String icon8020 = "elnresistor.gif"; - private static String icon8021 = "elncapacitor.gif"; - private static String icon8022 = "elninductor.gif"; - private static String icon8023 = "elnvcvs.gif"; - private static String icon8024 = "elnvccs.gif"; - private static String icon8025 = "elnidealtransformer.gif"; - private static String icon8026 = "elntransmissionline.gif"; - private static String icon8027 = "elnvsource.gif"; - private static String icon8028 = "elnisource.gif"; - private static String icon8029 = "elnground.gif"; - private static String icon8030 = "elntdfvsink.gif"; - private static String icon8031 = "elntdfisink.gif"; - private static String icon8032 = "elnportterminal.gif"; - private static String icon8033 = "elntdfvsource.gif"; - private static String icon8034 = "elntdfisource.gif"; + private static String icon8010 = "elnresistor.gif"; + private static String icon8011 = "elncapacitor.gif"; + private static String icon8012 = "elninductor.gif"; + private static String icon8013 = "elnvcvs.gif"; + private static String icon8014 = "elnvccs.gif"; + private static String icon8015 = "elnidealtransformer.gif"; + private static String icon8016 = "elntransmissionline.gif"; + private static String icon8017 = "elnvsource.gif"; + private static String icon8018 = "elnisource.gif"; + private static String icon8019 = "elnground.gif"; + private static String icon8020 = "elntdfvsink.gif"; + private static String icon8021 = "elntdfisink.gif"; + private static String icon8022 = "elnterminal.gif"; + private static String icon8023 = "elntdfvsource.gif"; + private static String icon8024 = "elntdfisource.gif"; + private static String icon8025 = "elnmodule.gif"; + private static String icon8026 = "elndeisink.gif"; + private static String icon8027 = "elndeisource.gif"; + private static String icon8028 = "elndevsink.gif"; + private static String icon8029 = "elndevsource.gif"; public IconManager() { @@ -1191,10 +1193,17 @@ public class IconManager { imgic8004 = getIcon(icon8004); imgic8005 = getIcon(icon8005); imgic8006 = getIcon(icon8006); - imgic8007 = getIcon(icon8007); - imgic8008 = getIcon(icon8008); - imgic8009 = getIcon(icon8009); + imgic8010 = getIcon(icon8010); + imgic8011 = getIcon(icon8011); + imgic8012 = getIcon(icon8012); + imgic8013 = getIcon(icon8013); + imgic8014 = getIcon(icon8014); + imgic8015 = getIcon(icon8015); + imgic8016 = getIcon(icon8016); + imgic8017 = getIcon(icon8017); + imgic8018 = getIcon(icon8018); + imgic8019 = getIcon(icon8019); imgic8020 = getIcon(icon8020); imgic8021 = getIcon(icon8021); imgic8022 = getIcon(icon8022); @@ -1205,11 +1214,6 @@ public class IconManager { imgic8027 = getIcon(icon8027); imgic8028 = getIcon(icon8028); imgic8029 = getIcon(icon8029); - imgic8030 = getIcon(icon8030); - imgic8031 = getIcon(icon8031); - imgic8032 = getIcon(icon8032); - imgic8033 = getIcon(icon8033); - imgic8034 = getIcon(icon8034); } } // Class diff --git a/src/main/java/ui/window/JBirdPanel.java b/src/main/java/ui/window/JBirdPanel.java index 5b0265f9fc0c8b23399ae44bde72d35b96d65ac4..9c37bc6b7f025968aabfe120cfc7699d3191b919 100644 --- a/src/main/java/ui/window/JBirdPanel.java +++ b/src/main/java/ui/window/JBirdPanel.java @@ -36,9 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.window; import ui.ColorManager; @@ -51,7 +48,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; - /** * Class JbirdPanel * Panel for displaying bird'eyes view of panels @@ -60,7 +56,8 @@ import java.awt.event.MouseMotionListener; * @author Ludovic APVRILLE */ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionListener { - private MainGUI mgui; + + private MainGUI mgui; private int w, h, wc, wh; //private Image image, scaledImage; //private Graphics graphics; @@ -84,6 +81,7 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList startProcess(); } + @Override protected void paintComponent(Graphics g) { if (isShowing()) { super.paintComponent(g); @@ -109,8 +107,7 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList } } - - public void centerRectangle(int x, int y) { + private void centerRectangle(int x, int y) { if (rect != null) { x = (int)(x - rect.width*wratio/2); y = (int)(y - rect.height*hratio/2); @@ -127,6 +124,7 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList } } + @Override public void mousePressed(MouseEvent e) { // //startX = e.getX(); @@ -145,28 +143,27 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList } } - public void mouseReleased(MouseEvent e) { - + @Override + public void mouseReleased(MouseEvent e) { } + @Override public void mouseEntered(MouseEvent e) { - } + @Override public void mouseExited(MouseEvent e) { - } + @Override public void mouseClicked(MouseEvent e) { - } - + @Override public void mouseMoved(MouseEvent e) { - - } + @Override public void mouseDragged(MouseEvent e) { centerRectangle(e.getX(), e.getY()); } @@ -183,5 +180,4 @@ public class JBirdPanel extends JPanel implements MouseListener, MouseMotionList public boolean getGo() { return go; } - } diff --git a/src/main/java/ui/window/JDialogAvatarBlock.java b/src/main/java/ui/window/JDialogAvatarBlock.java index 1990712faa3069c10c8a83a1d3c92243aceeca70..c3bdb5e3252b86d5d92c10d2d02e5006743acb75 100644 --- a/src/main/java/ui/window/JDialogAvatarBlock.java +++ b/src/main/java/ui/window/JDialogAvatarBlock.java @@ -48,10 +48,19 @@ import ui.TAttribute; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; +import java.util.List; /** @@ -64,10 +73,10 @@ import java.util.LinkedList; */ public class JDialogAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener { - private LinkedList<TAttribute> attributes, attributesPar, forbidden; - private LinkedList<Boolean> initValues; - private LinkedList<AvatarMethod> methods, methodsPar; - private LinkedList<AvatarSignal> signals, signalsPar; + private List<TAttribute> attributes, attributesPar, forbidden; + private List<Boolean> initValues; + private List<AvatarMethod> methods, methodsPar; + private List<AvatarSignal> signals, signalsPar; private boolean checkKeyword, checkJavaKeyword; private boolean cancelled = true; @@ -122,7 +131,7 @@ public class JDialogAvatarBlock extends JDialogBase implements ActionListener, L /** * Creates new form */ - public JDialogAvatarBlock(LinkedList<TAttribute> _attributes, LinkedList<AvatarMethod> _methods, LinkedList<AvatarSignal> _signals, LinkedList<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) { + public JDialogAvatarBlock( List<TAttribute> _attributes, List<AvatarMethod> _methods, List<AvatarSignal> _signals, List<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) { super(f, title, true); frame = f; attributesPar = _attributes; diff --git a/src/main/java/ui/window/JDialogAvatarSignal.java b/src/main/java/ui/window/JDialogAvatarSignal.java index c463100117e717db09c6518b180c254d5dfd0185..611cfe791b2fb3e49bc3f13926492324faa8ad51 100644 --- a/src/main/java/ui/window/JDialogAvatarSignal.java +++ b/src/main/java/ui/window/JDialogAvatarSignal.java @@ -38,19 +38,28 @@ package ui.window; -import ui.AvatarSignal; -import ui.util.IconManager; -import ui.TGComponent; -import myutil.TraceManager; - -import javax.swing.*; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; import java.util.List; import java.util.Vector; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import myutil.TraceManager; +import ui.AvatarSignal; +import ui.TGComponent; /** * Class JDialogAvatarSignal @@ -61,8 +70,8 @@ import java.util.Vector; */ public class JDialogAvatarSignal extends JDialogBase implements ActionListener { - private LinkedList<AvatarSignal> signals, realSignals; - private LinkedList<String> showSignals; + private List<AvatarSignal> signals, realSignals; + private List<String> showSignals; private String currentSignal; private boolean isOut; @@ -81,8 +90,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener private JTextField signal; /** Creates new form */ - public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, LinkedList<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) { - + public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, List<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) { super(_f, _title, true); signals = _signals; @@ -91,16 +99,14 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener reference=_reference; refs=_refs; - makeSignals(); initComponents(); - myInitComponents(); +// myInitComponents(); pack(); } - private void makeSignals() { showSignals = new LinkedList<String> (); realSignals = new LinkedList<AvatarSignal> (); @@ -112,11 +118,8 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener } } - - - private void myInitComponents() { - } - +// private void myInitComponents() { +// } private void initComponents() { Container c = getContentPane(); @@ -187,6 +190,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener c.add(buttons, BorderLayout.SOUTH); } + @Override public void actionPerformed(ActionEvent evt) { //String command = evt.getActionCommand(); @@ -218,7 +222,6 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener return (TGComponent) refChecks.getSelectedItem(); } - public boolean hasValidString() { return signal.getText().length() > 0; } diff --git a/src/main/java/ui/window/JDialogAvatarTimer.java b/src/main/java/ui/window/JDialogAvatarTimer.java index 845172d98b277dfb7457c85edb30ffb0082b84ec..913b268c5aa7a90f37e8792226fcf92f1e282e97 100644 --- a/src/main/java/ui/window/JDialogAvatarTimer.java +++ b/src/main/java/ui/window/JDialogAvatarTimer.java @@ -36,18 +36,25 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.window; -import ui.util.IconManager; - -import javax.swing.*; -import java.awt.*; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.LinkedList; +import java.util.List; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.border.TitledBorder; /** * Class JDialogAvatarTimer @@ -58,7 +65,7 @@ import java.util.LinkedList; */ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { - private LinkedList<String> timers; + private List<String> timers; private boolean cancelled = true; private JPanel panel1, panel2; @@ -77,8 +84,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { /** Creates new form */ - public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, LinkedList<String> _timers, boolean _setValue) { - + public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, List<String> _timers, boolean _setValue) { super(_f, _title, true); timers = _timers; @@ -87,13 +93,13 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { setValue = _setValue; initComponents(); - myInitComponents(); + // myInitComponents(); pack(); } - - - private void myInitComponents() { - } +// +// +// private void myInitComponents() { +// } private void initComponents() { Container c = getContentPane(); @@ -102,7 +108,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { GridBagLayout gridbag2 = new GridBagLayout(); GridBagConstraints c0 = new GridBagConstraints(); GridBagConstraints c1 = new GridBagConstraints(); - GridBagConstraints c2 = new GridBagConstraints(); + //GridBagConstraints c2 = new GridBagConstraints(); setFont(new Font("Helvetica", Font.PLAIN, 14)); c.setLayout(gridbag0); @@ -112,7 +118,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener { panel1 = new JPanel(); panel1.setLayout(gridbag1); - panel1.setBorder(new javax.swing.border.TitledBorder("Timer")); + panel1.setBorder(new TitledBorder("Timer")); panel1.setPreferredSize(new Dimension(300, 150)); diff --git a/src/main/java/ui/window/JDialogAvatarTransition.java b/src/main/java/ui/window/JDialogAvatarTransition.java index fa6a4772183309ec845df40fff2b1dd71a851c19..ff423d54bd155d2ee20b3164a509152cfec139aa 100644 --- a/src/main/java/ui/window/JDialogAvatarTransition.java +++ b/src/main/java/ui/window/JDialogAvatarTransition.java @@ -36,24 +36,48 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.window; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Vector; +import javax.swing.DefaultCellEditor; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.SwingConstants; +import javax.swing.border.TitledBorder; +import javax.swing.event.CellEditorListener; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import javax.swing.table.DefaultTableModel; +import javax.swing.text.BadLocationException; -package ui.window; - -import myutil.Conversion; import myutil.GraphicLib; import ui.AvatarMethod; -import ui.util.IconManager; +import ui.Expression; import ui.TAttribute; -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.LinkedList; -import java.util.Vector; - /** * Class JDialogAvatarTransition * Dialog for managing transitions between states @@ -63,25 +87,36 @@ import java.util.Vector; */ public class JDialogAvatarTransition extends JDialogBase implements ActionListener { - private Vector<String> actions; - private String guard, afterMin, afterMax, computeMin, computeMax, probability; - private LinkedList<TAttribute> myAttributes; - private LinkedList<AvatarMethod> myMethods; + private Vector<Vector<Expression>> actionRows; + //private Vector<String> actions; + private String guard, afterMin, afterMax, /*computeMin, computeMax,*/ probability; + private List<TAttribute> myAttributes; + private List<AvatarMethod> myMethods; private Vector<String> allElements, insertElements; - protected String [] filesToInclude; - protected String [] codeToInclude; +// protected String [] filesToInclude; +// protected String [] codeToInclude; private boolean cancelled = true; - private JPanel panel1; - private JPanel panel2; + private JPanel pnlTransitionInfo; +// private JPanel panel1; +// private JPanel panel2; // Panel1 - private JTextField guardT, afterMinT, afterMaxT, computeMinT, computeMaxT, probabilityT; - private JTextArea actionsT; - private JComboBox<String> elements; - private JButton insertElement; + private JTextField guardT, afterMinT, afterMaxT, /*computeMinT, computeMaxT,*/ probabilityT; + + private JTable actionsTable; +// private JTextArea actionsT; + private final Vector<String> actionsListHeader; + + private JComboBox<String> codeElements; + //private JButton insertElement; + private JButton insertCodeButton; + private JButton addButton; + private JButton upButton; + private JButton downButton; + private JButton removeButton; // Panel of code and files protected JTextArea jtaCode, jtaFiles; @@ -89,26 +124,45 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen /** Creates new form */ // arrayDelay: [0] -> minDelay ; [1] -> maxDelay - public JDialogAvatarTransition(Frame _f, String _title, String _guard, String _afterMin, String _afterMax, - String _computeMin, String _computeMax, Vector<String> _actions, - LinkedList<TAttribute> _myAttributes, LinkedList<AvatarMethod> _myMethods, - String[] _filesToInclude, String[] _codeToInclude, String _probability) { + public JDialogAvatarTransition( Frame _f, + String _title, + String _guard, + String _afterMin, + String _afterMax, + /* String _computeMin, String _computeMax,*/ + Vector<Expression> _actions, + List<TAttribute> _myAttributes, + List<AvatarMethod> _myMethods, +// String[] _filesToInclude, +// String[] _codeToInclude, + String _probability) { super(_f, _title, true); guard = _guard; afterMin = _afterMin; afterMax = _afterMax; - computeMin = _computeMin; - computeMax = _computeMax; - actions = _actions; +// computeMin = _computeMin; +// computeMax = _computeMax; + + actionRows = new Vector<Vector<Expression>>(); + + for ( final Expression actionExpr : _actions ) { + final Vector<Expression> row = new Vector<Expression>(); + row.add( actionExpr ); + actionRows.add( row ); + } + + actionsListHeader = new Vector<String>(); + + //actions = _actions; probability = _probability; myAttributes = _myAttributes; myMethods = _myMethods; - filesToInclude = _filesToInclude; - codeToInclude = _codeToInclude; +// filesToInclude = _filesToInclude; +// codeToInclude = _codeToInclude; makeElements(); @@ -139,15 +193,15 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen // } // private void initComponents() { - int i; + // int i; Container c = getContentPane(); - GridBagLayout gridbag0 = new GridBagLayout(); - GridBagLayout gridbag1 = new GridBagLayout(); - GridBagLayout gridbag2 = new GridBagLayout(); - GridBagConstraints c0 = new GridBagConstraints(); - GridBagConstraints c1 = new GridBagConstraints(); - GridBagConstraints c2 = new GridBagConstraints(); +// GridBagLayout gridbag0 = new GridBagLayout(); +// GridBagLayout gridbag1 = new GridBagLayout(); +// GridBagLayout gridbag2 = new GridBagLayout(); +// GridBagConstraints c0 = new GridBagConstraints(); +// GridBagConstraints c1 = new GridBagConstraints(); +// GridBagConstraints c2 = new GridBagConstraints(); setFont(new Font("Helvetica", Font.PLAIN, 14)); //c.setLayout(gridbag0); @@ -155,38 +209,72 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - panel1 = new JPanel(); - panel1.setLayout(gridbag1); + pnlTransitionInfo = new JPanel(); + pnlTransitionInfo.setLayout( new GridBagLayout() ); + + pnlTransitionInfo.setBorder(new TitledBorder("Transition parameters")); +// panel1 = new JPanel(); +// panel1.setLayout(gridbag1); - panel1.setBorder(new javax.swing.border.TitledBorder("Transition parameters")); +// panel1.setBorder(new javax.swing.border.TitledBorder("Transition parameters")); //panel1.setPreferredSize(new Dimension(350, 350)); + final int defaultMargin = 3; // guard - c1.weighty = 1.0; - c1.weightx = 1.0; - c1.gridwidth = 1; - c1.gridheight = 1; - c1.fill = GridBagConstraints.BOTH; - c1.gridheight = 1; - panel1.add(new JLabel("guard = "), c1); - c1.gridwidth = GridBagConstraints.REMAINDER; //end row + final GridBagConstraints constraintsLabels = new GridBagConstraints(); + constraintsLabels.weighty = 0.0; + constraintsLabels.weightx = 0.0; + constraintsLabels.gridwidth = 1; + constraintsLabels.gridheight = 1; + constraintsLabels.fill = GridBagConstraints.BOTH; + constraintsLabels.insets = new Insets( defaultMargin, defaultMargin, 0, 0 ); + pnlTransitionInfo.add( new JLabel( "guard = ", SwingConstants.RIGHT ), constraintsLabels ); + +// c1.weighty = 1.0; +// c1.weightx = 1.0; +// c1.gridwidth = 1; +// c1.gridheight = 1; +// c1.fill = GridBagConstraints.BOTH; +// c1.gridheight = 1; +// panel1.add(new JLabel("guard = "), c1); +// c1.gridwidth = GridBagConstraints.REMAINDER; //end row guardT = new JTextField(guard); - panel1.add(guardT, c1); + final GridBagConstraints constraintsFields = new GridBagConstraints(); + constraintsFields.weighty = 0.0; + constraintsFields.weightx = 1.0; + constraintsFields.gridwidth = GridBagConstraints.REMAINDER; //end row; + constraintsFields.gridheight = 1; + constraintsFields.fill = GridBagConstraints.BOTH; + constraintsFields.insets = new Insets( defaultMargin, 0, 0, defaultMargin ); + + pnlTransitionInfo.add( guardT, constraintsFields ); + //panel1.add(guardT, c1); // After - c1.gridwidth = 1; - c1.gridheight = 1; - c1.weighty = 1.0; - c1.weightx = 1.0; - panel1.add(new JLabel("after ("), c1); + pnlTransitionInfo.add(new JLabel("after ( ", SwingConstants.RIGHT ), constraintsLabels ); +// c1.gridwidth = 1; +// c1.gridheight = 1; +// c1.weighty = 1.0; +// c1.weightx = 1.0; +// panel1.add(new JLabel("after ("), c1); afterMinT = new JTextField(afterMin, 10); - panel1.add(afterMinT, c1); - panel1.add(new JLabel(","), c1); + constraintsFields.gridwidth = 1; + constraintsFields.insets.right = 0; + pnlTransitionInfo.add(afterMinT, constraintsFields ); + constraintsLabels.insets.left = 0; + pnlTransitionInfo.add(new JLabel( ", " ), constraintsLabels ); +// panel1.add(afterMinT, c1); + // panel1.add(new JLabel(","), c1); afterMaxT = new JTextField(afterMax, 10); - panel1.add(afterMaxT, c1); - c1.gridwidth = GridBagConstraints.REMAINDER; //end row - panel1.add(new JLabel(")"), c1); + pnlTransitionInfo.add(afterMaxT, constraintsFields ); + constraintsLabels.gridwidth = GridBagConstraints.REMAINDER; + constraintsLabels.insets.right = defaultMargin; + pnlTransitionInfo.add(new JLabel( " )" ), constraintsLabels ); + constraintsLabels.gridwidth = 1; +// panel1.add(afterMaxT, c1); +// c1.gridwidth = GridBagConstraints.REMAINDER; //end row +// panel1.add(new JLabel(")"), c1); // Compute /*c1.gridwidth = 1; @@ -203,108 +291,257 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen panel1.add(new JLabel(")"), c1);*/ // probability - c1.weighty = 1.0; - c1.weightx = 1.0; - c1.gridwidth = 1; - c1.gridheight = 1; - c1.fill = GridBagConstraints.BOTH; - c1.gridheight = 1; - panel1.add(new JLabel("weight in [0...1000] (default = 1) = "), c1); - c1.gridwidth = GridBagConstraints.REMAINDER; //end row - probabilityT = new JTextField(probability); - panel1.add(probabilityT, c1); + pnlTransitionInfo.add( new JLabel("weight in [0...1000] (default = 1) = "), constraintsLabels ); +// c1.weighty = 1.0; +// c1.weightx = 1.0; +// c1.gridwidth = 1; +// c1.gridheight = 1; +// c1.fill = GridBagConstraints.BOTH; +// c1.gridheight = 1; + //panel1.add(new JLabel("weight in [0...1000] (default = 1) = "), c1); + // c1.gridwidth = GridBagConstraints.REMAINDER; //end row + constraintsFields.gridwidth = GridBagConstraints.REMAINDER; //end row; + probabilityT = new JTextField(probability); + pnlTransitionInfo.add( probabilityT, constraintsFields ); +// panel1.add(probabilityT, c1); // actions + constraintsFields.gridwidth = GridBagConstraints.REMAINDER; + + codeElements = new JComboBox<String>(allElements); + pnlTransitionInfo.add(codeElements, constraintsFields ); + + insertCodeButton = new JButton( "Insert Code" ); + insertCodeButton.addActionListener( new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + insertCodeAction(); + } + } ); + pnlTransitionInfo.add( insertCodeButton, constraintsFields ); + + actionsTable = new JTable( new DefaultTableModel() { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public Object getValueAt(int row, int column) { + final Expression expression = (Expression) super.getValueAt( row, column ); + + return expression.getText(); + } + + @Override + public void setValueAt(Object aValue, int row, int column) { + final Expression expression = (Expression) super.getValueAt( row, column ); + + expression.setText( String.valueOf( aValue ) ); + + fireTableCellUpdated(row, column); + } + } ); + + actionsTable.setShowGrid( false ); + + final ListSelectionModel selectionModel = actionsTable.getSelectionModel(); + selectionModel.addListSelectionListener( new ListSelectionListener() { + + @Override + public void valueChanged( ListSelectionEvent e ) { + manageButtonsEnablement(); + } + } ); + + actionsTable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); + actionsListHeader.addElement(""); + + final DefaultCellEditor defaultCellEditor = (DefaultCellEditor) actionsTable.getDefaultEditor( Object.class ); + defaultCellEditor.setClickCountToStart( 1 ); + defaultCellEditor.addCellEditorListener( new CellEditorListener() { + + @Override + public void editingStopped(ChangeEvent e) { + manageButtonsEnablement(); + } + + @Override + public void editingCanceled(ChangeEvent e) { + manageButtonsEnablement(); + } + }); + + ( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader ); - elements = new JComboBox<String>(allElements); - panel1.add(elements, c1); - - insertElement = new JButton("Insert"); - insertElement.setEnabled(allElements.size() > 0); - insertElement.addActionListener(this); - panel1.add(insertElement, c1); - - c1.gridheight = 10; - c1.weighty = 10.0; - c1.weightx = 10.0; - c1.gridwidth = GridBagConstraints.REMAINDER; //end row - c1.fill = GridBagConstraints.BOTH; - actionsT = new JTextArea(); - actionsT.setEditable(true); - actionsT.setMargin(new Insets(10, 10, 10, 10)); - actionsT.setTabSize(3); - actionsT.setFont(new Font("times", Font.PLAIN, 12)); + //actionsT.getCellRenderer().sEditable(true); + //actionsT.setMargin(new Insets(10, 10, 10, 10))); + //actionsT.setTabSize(3); + //actionsT.setFont(new Font("times", Font.PLAIN, 12)); //actionsT.setPreferredSize(new Dimension(350, 250)); - JScrollPane jsp = new JScrollPane(actionsT, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - for(i=0; i<actions.size(); i++) { - actionsT.append(actions.get(i) + "\n"); - } - panel1.add(jsp, c1); - - - panel2 = new JPanel(); - panel2.setLayout(gridbag2); - - panel2.setBorder(new javax.swing.border.TitledBorder("Code")); - // guard - c2.weighty = 1.0; - c2.weightx = 1.0; - c2.gridwidth = 1; - c2.gridheight = 1; - c2.fill = GridBagConstraints.BOTH; - c2.gridwidth = GridBagConstraints.REMAINDER; - c2.gridheight = 1; - panel2.add(new JLabel("Files to include:"), c2); - jtaFiles = new JTextArea(); - jtaFiles.setEditable(true); - jtaFiles.setMargin(new Insets(10, 10, 10, 10)); - jtaFiles.setTabSize(3); - String files = ""; - if (filesToInclude != null) { - for(i=0; i<filesToInclude.length; i++) { - files += filesToInclude[i] + "\n"; - } - } - jtaFiles.append(files); - jtaFiles.setFont(new Font("times", Font.PLAIN, 12)); - jsp = new JScrollPane(jtaFiles, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - //jsp.setPreferredSize(new Dimension(300, 300)); - panel2.add(jsp, c2); - panel2.add(new JLabel("Code to execute at the end of the transition"), c2); - jtaCode = new JTextArea(); - jtaCode.setEditable(true); - jtaCode.setMargin(new Insets(10, 10, 10, 10)); - jtaCode.setTabSize(3); - String code = ""; - if (codeToInclude != null) { - for(i=0; i<codeToInclude.length; i++) { - code += codeToInclude[i] + "\n"; - } - } - jtaCode.append(code); - jtaCode.setFont(new Font("times", Font.PLAIN, 12)); - jsp = new JScrollPane(jtaCode, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - //jsp.setPreferredSize(new Dimension(300, 300)); - panel2.add(jsp, c2); + JScrollPane jsp = new JScrollPane(actionsTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + +// for( int i=0; i<actions.size(); i++) { +// actionsT.append(actions.get(i) + "\n"); +// } + + final GridBagConstraints constraintsList = new GridBagConstraints(); + constraintsList.weighty = 1.0; + constraintsList.weightx = 1.0; + constraintsList.gridwidth = GridBagConstraints.REMAINDER; //end row; + constraintsList.gridheight = 1; + constraintsList.fill = GridBagConstraints.BOTH; + + pnlTransitionInfo.add(jsp, constraintsList ); + +// c1.weighty = 0.0; + + final GridBagConstraints constraintsButtons = new GridBagConstraints(); + constraintsButtons.weighty = 0.0; + constraintsButtons.weightx = 1.0; + constraintsButtons.gridwidth = GridBagConstraints.REMAINDER; //end row; + constraintsButtons.gridheight = 1; + constraintsButtons.fill = GridBagConstraints.BOTH; + + upButton = new JButton( "Up" ); + upButton.addActionListener( new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + upAction(); + } + }); + + constraintsFields.gridwidth = GridBagConstraints.REMAINDER; + constraintsFields.weightx = 1.0; + pnlTransitionInfo.add(upButton, constraintsButtons ); + + downButton = new JButton("Down"); + downButton.addActionListener( new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + downAction(); + } + } ); + + pnlTransitionInfo.add( downButton, constraintsButtons ); + + removeButton = new JButton("Remove"); + removeButton.addActionListener( new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + removeAction(); + } + } ); + + pnlTransitionInfo.add( removeButton, constraintsButtons ); + + addButton = new JButton( "Add" ); + addButton.addActionListener( new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + addAction(); + } + } ); + pnlTransitionInfo.add( addButton, constraintsButtons ); + + manageButtonsEnablement(); + +// elements = new JComboBox<String>(allElements); +// panel1.add(elements, c1); +// +// insertElement = new JButton("Insert"); +// insertElement.setEnabled(allElements.size() > 0); +// insertElement.addActionListener(this); +// panel1.add(insertElement, c1); +// +// c1.gridheight = 10; +// c1.weighty = 10.0; +// c1.weightx = 10.0; +// c1.gridwidth = GridBagConstraints.REMAINDER; //end row +// c1.fill = GridBagConstraints.BOTH; +// actionsT = new JTextArea(); +// actionsT.setEditable(true); +// actionsT.setMargin(new Insets(10, 10, 10, 10)); +// actionsT.setTabSize(3); +// actionsT.setFont(new Font("times", Font.PLAIN, 12)); +// //actionsT.setPreferredSize(new Dimension(350, 250)); +// JScrollPane jsp = new JScrollPane(actionsT, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); +// for(i=0; i<actions.size(); i++) { +// actionsT.append(actions.get(i) + "\n"); +// } +// panel1.add(jsp, c1); + + +// panel2 = new JPanel(); +// panel2.setLayout(gridbag2); +// +// panel2.setBorder(new javax.swing.border.TitledBorder("Code")); +// // guard +// c2.weighty = 1.0; +// c2.weightx = 1.0; +// c2.gridwidth = 1; +// c2.gridheight = 1; +// c2.fill = GridBagConstraints.BOTH; +// c2.gridwidth = GridBagConstraints.REMAINDER; +// c2.gridheight = 1; +// panel2.add(new JLabel("Files to include:"), c2); +// jtaFiles = new JTextArea(); +// jtaFiles.setEditable(true); +// jtaFiles.setMargin(new Insets(10, 10, 10, 10)); +// jtaFiles.setTabSize(3); +// String files = ""; +// if (filesToInclude != null) { +// for(i=0; i<filesToInclude.length; i++) { +// files += filesToInclude[i] + "\n"; +// } +// } +// jtaFiles.append(files); +// jtaFiles.setFont(new Font("times", Font.PLAIN, 12)); +// jsp = new JScrollPane(jtaFiles, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); +// //jsp.setPreferredSize(new Dimension(300, 300)); +// panel2.add(jsp, c2); +// panel2.add(new JLabel("Code to execute at the end of the transition"), c2); +// jtaCode = new JTextArea(); +// jtaCode.setEditable(true); +// jtaCode.setMargin(new Insets(10, 10, 10, 10)); +// jtaCode.setTabSize(3); +// String code = ""; +// if (codeToInclude != null) { +// for(i=0; i<codeToInclude.length; i++) { +// code += codeToInclude[i] + "\n"; +// } +// } +// jtaCode.append(code); +// jtaCode.setFont(new Font("times", Font.PLAIN, 12)); +// jsp = new JScrollPane(jtaCode, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); +// //jsp.setPreferredSize(new Dimension(300, 300)); +// panel2.add(jsp, c2); // button panel; - c0.gridwidth = 1; - c0.gridheight = 10; - c0.weighty = 1.0; - c0.weightx = 1.0; - c0.gridwidth = GridBagConstraints.REMAINDER; //end row +// c0.gridwidth = 1; +// c0.gridheight = 10; +// c0.weighty = 1.0; +// c0.weightx = 1.0; +// c0.gridwidth = GridBagConstraints.REMAINDER; //end row // Issue #41 Ordering of tabbed panes JTabbedPane jtp = GraphicLib.createTabbedPane();//new JTabbedPane(); - jtp.add("General", panel1); + jtp.add( "General", pnlTransitionInfo ); //jtp.add("Prototyping", panel2); //c.add(jtp, c0); c.add(jtp, BorderLayout.CENTER); JPanel buttons = new JPanel(); - buttons.setLayout(gridbag0); + buttons.setLayout( new GridBagLayout() ); + final GridBagConstraints c0 = new GridBagConstraints(); c0.gridwidth = 1; c0.gridheight = 1; c0.fill = GridBagConstraints.HORIZONTAL; @@ -313,6 +550,53 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen c.add(buttons, BorderLayout.SOUTH); } + + private void downAction() { + final int selectedActionIndex = actionsTable.getSelectedRow(); + + if ( selectedActionIndex > -1 ) { + saveCurrentActionEditing(); + + final int newIndex = selectedActionIndex + 1; + Collections.swap( actionRows, selectedActionIndex, newIndex ); + ( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader ); + actionsTable.getSelectionModel().setSelectionInterval( newIndex, newIndex ); + + manageButtonsEnablement(); + } + } + + private void upAction() { + final int selectedActionIndex = actionsTable.getSelectedRow(); + + if ( selectedActionIndex > 0 ) { + saveCurrentActionEditing(); + + final int newIndex = selectedActionIndex - 1; + Collections.swap( actionRows, selectedActionIndex, newIndex ); + ( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader ); + actionsTable.setRowSelectionInterval( newIndex, newIndex ); + + manageButtonsEnablement(); + } + } + + private void manageButtonsEnablement() { + final int selectedActionIndex = actionsTable.getSelectedRow(); + + if ( selectedActionIndex < 0 ) { + insertCodeButton.setEnabled( false ); + upButton.setEnabled( false ); + downButton.setEnabled( false ); + removeButton.setEnabled( false ); + } + else { + insertCodeButton.setEnabled( codeElements.getSelectedIndex() > -1 ); + removeButton.setEnabled( true ); + upButton.setEnabled( selectedActionIndex > 0 ); + downButton.setEnabled( selectedActionIndex < actionsTable.getRowCount() - 1 ); + } + } @Override public void actionPerformed(ActionEvent evt) { @@ -323,37 +607,114 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen closeDialog(); } else if (evt.getSource() == cancelButton) { cancelDialog(); - } else if (evt.getSource() == insertElement) { - insertElements(); +// } else if (evt.getSource() == insertElement) { +// insertElements(); } } + + private JTextField getEditingField() { + // TODO: Generalize for other fields so that code completion also works for them + + if ( actionsTable.getSelectedRow() > -1 ) { + DefaultCellEditor cellEditor = (DefaultCellEditor) actionsTable.getCellEditor(); + + if ( cellEditor == null ) { + actionsTable.editCellAt( actionsTable.getSelectedRow(), 0 ); + cellEditor = (DefaultCellEditor) actionsTable.getCellEditor(); + } + + return (JTextField) cellEditor.getComponent(); + } + + return null; + } + + private void insertCodeAction() { + int selectedCodeIndex = codeElements.getSelectedIndex(); + + if ( selectedCodeIndex > -1 ) { + final JTextField editingField = getEditingField(); + + if ( editingField != null ) { + final int caretPos = editingField.getCaretPosition(); + final String elementName = insertElements.get( codeElements.getSelectedIndex() ); + + try { + editingField.getDocument().insertString( caretPos, elementName, null ); + } + catch (BadLocationException e) { + e.printStackTrace(); + } + } + } + } + + private void saveCurrentActionEditing() { + if ( actionsTable.isEditing() ) { + actionsTable.getCellEditor().stopCellEditing(); + } + } + + private void addAction() { + saveCurrentActionEditing(); + + final int addingIndex = actionsTable.getSelectedRow() >= 0 ? actionsTable.getSelectedRow() + 1 : actionRows.size(); + final Expression newAction = new Expression( "" ); + final Vector<Expression> newActionRow = new Vector<Expression>(); + newActionRow.add( newAction ); + actionRows.add( addingIndex, newActionRow ); + ( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader ); + actionsTable.setRowSelectionInterval( addingIndex, addingIndex ); + + manageButtonsEnablement(); + } - public void insertElements() { - int index = elements.getSelectedIndex(); - int caretPos = actionsT.getCaretPosition (); - String str = insertElements.get(index); - String text = actionsT.getText (); - if (caretPos > 0 && text.charAt (caretPos-1) != ' ' && text.charAt (caretPos-1) != '(') - str = " " + str; - if (caretPos == text.length () || (text.charAt (caretPos) != ' ' && text.charAt (caretPos) != ')')) - str = str + " "; - actionsT.insert (str, caretPos); - actionsT.setCaretPosition (caretPos + str.length ()); - actionsT.requestFocusInWindow (); + private void removeAction() { + int selectedIndex = actionsTable.getSelectedRow(); + + if ( selectedIndex > -1 ) { + actionRows.remove( selectedIndex ); + ( (DefaultTableModel) actionsTable.getModel() ).setDataVector( actionRows, actionsListHeader ); + + selectedIndex = Math.min( selectedIndex, actionRows.size() - 1 ); + + if ( selectedIndex > -1 ) { + actionsTable.setRowSelectionInterval( selectedIndex, selectedIndex ); + } + + manageButtonsEnablement(); + } } +// +// public void insertElements() { +// int index = elements.getSelectedIndex(); +// int caretPos = actionsT.getCaretPosition (); +// String str = insertElements.get(index); +// String text = actionsT.getText (); +// if (caretPos > 0 && text.charAt (caretPos-1) != ' ' && text.charAt (caretPos-1) != '(') +// str = " " + str; +// if (caretPos == text.length () || (text.charAt (caretPos) != ' ' && text.charAt (caretPos) != ')')) +// str = str + " "; +// actionsT.insert (str, caretPos); +// actionsT.setCaretPosition (caretPos + str.length ()); +// actionsT.requestFocusInWindow (); +// } public void closeDialog() { - actions.removeAllElements(); - String[] act = actionsT.getText().split("\n"); - for(int i=0; i<act.length; i++) { - if (act[0].length() > 0) { - actions.add(act[i]); - } - } - filesToInclude = Conversion.wrapText(jtaFiles.getText()); - codeToInclude = Conversion.wrapText(jtaCode.getText()); +// actions.removeAllElements(); +// String[] act = actionsT.getText().split("\n"); +// for(int i=0; i<act.length; i++) { +// if (act[0].length() > 0) { +// actions.add(act[i]); +// } +// } +// filesToInclude = Conversion.wrapText(jtaFiles.getText()); +// codeToInclude = Conversion.wrapText(jtaCode.getText()); cancelled = false; + + saveCurrentActionEditing(); + dispose(); } @@ -373,19 +734,29 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen return afterMaxT.getText(); } - public String getComputeMin() { - if (computeMinT == null) { - return ""; - } - - return computeMinT.getText(); - } - - public String getComputeMax() { - if (computeMaxT == null) { - return ""; - } - return computeMaxT.getText(); +// public String getComputeMin() { +// if (computeMinT == null) { +// return ""; +// } +// +// return computeMinT.getText(); +// } +// +// public String getComputeMax() { +// if (computeMaxT == null) { +// return ""; +// } +// return computeMaxT.getText(); +// } + + public List<Expression> getActions() { + final List<Expression> actions = new ArrayList<Expression>(); + + for ( final Vector<Expression> actionVect : actionRows ) { + actions.add( actionVect.get( 0 ) ); + } + + return actions; } public String getProbability() { @@ -399,13 +770,12 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen public void cancelDialog() { dispose(); } - - public String[] getFilesToInclude() { - return filesToInclude; - } - - public String[] getCodeToInclude() { - return codeToInclude; - } - +// +// public String[] getFilesToInclude() { +// return filesToInclude; +// } +// +// public String[] getCodeToInclude() { +// return codeToInclude; +// } } diff --git a/src/main/java/ui/window/JDialogELNClusterPortDE.java b/src/main/java/ui/window/JDialogELNClusterPortDE.java new file mode 100644 index 0000000000000000000000000000000000000000..b5037a55d83b0b9969da06320f7cd08488c36a02 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNClusterPortDE.java @@ -0,0 +1,207 @@ +/* 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.window; + +import ui.eln.ELNClusterPortDE; +import ui.util.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; + +/** + * Class JDialogELNClusterPortDE + * Dialog for managing of ELN cluster port DE + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +@SuppressWarnings("serial") + +public class JDialogELNClusterPortDE extends JDialog implements ActionListener { + + private JTextField nameTextField; + private ArrayList<String> listArrayTypeString; + private JComboBox<String> typeComboBoxString; + private ArrayList<String> listOriginString; + private JComboBox<String> originComboBoxString; + + private ELNClusterPortDE term; + + public JDialogELNClusterPortDE(ELNClusterPortDE term) { + this.setTitle("Setting Cluster Port DE Attributes"); + this.setLocationRelativeTo(null); + this.setVisible(true); + this.setAlwaysOnTop(true); + this.setResizable(false); + + this.term = term; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + attributesMainPanel.setLayout(new BorderLayout()); + + Box attributesBox = Box.createVerticalBox(); + attributesBox.setBorder(BorderFactory.createTitledBorder("Setting cluster port DE attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel attributesBoxPanel = new JPanel(); + attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + attributesBoxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("Name : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + attributesBoxPanel.add(labelName); + + nameTextField = new JTextField(term.getValue().toString(), 10); + nameTextField.setEditable(false); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + attributesBoxPanel.add(nameTextField); + + JLabel typeLabel = new JLabel("Type : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeLabel, constraints); + attributesBoxPanel.add(typeLabel); + + listArrayTypeString = new ArrayList<String>(); + listArrayTypeString.add("bool"); + listArrayTypeString.add("double"); + listArrayTypeString.add("int"); + typeComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listArrayTypeString.size(); i++) { + typeComboBoxString.addItem(listArrayTypeString.get(i)); + } + for (int i = 0; i < listArrayTypeString.size(); i++) { + if (term.getPortType().equals(listArrayTypeString.get(i))) { + typeComboBoxString.setSelectedIndex(i); + } + } + typeComboBoxString.addActionListener(this); + typeComboBoxString.setEnabled(false); + constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeComboBoxString, constraints); + attributesBoxPanel.add(typeComboBoxString); + + JLabel orginLabel = new JLabel("In / Out : "); + constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(orginLabel, constraints); + attributesBoxPanel.add(orginLabel); + + listOriginString = new ArrayList<String>(); + listOriginString.add("in"); + listOriginString.add("out"); + originComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listOriginString.size(); i++) { + originComboBoxString.addItem(listOriginString.get(i)); + } + for (int i = 0; i < listOriginString.size(); i++) { + if (term.getOrigin().equals(listOriginString.get(i))) { + originComboBoxString.setSelectedIndex(i); + } + } + originComboBoxString.addActionListener(this); + originComboBoxString.setEnabled(false); + constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(originComboBoxString, constraints); + attributesBoxPanel.add(originComboBoxString); + + attributesBox.add(attributesBoxPanel); + + attributesMainPanel.add(attributesBox, BorderLayout.NORTH); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + term.setValue(new String(nameTextField.getText())); + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} \ No newline at end of file diff --git a/src/main/java/ui/window/JDialogELNClusterPortTDF.java b/src/main/java/ui/window/JDialogELNClusterPortTDF.java new file mode 100644 index 0000000000000000000000000000000000000000..9012f40e21a5853659290861703f219c829e1cc9 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNClusterPortTDF.java @@ -0,0 +1,207 @@ +/* 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.window; + +import ui.eln.ELNClusterPortTDF; +import ui.util.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; + +/** + * Class JDialogELNClusterPortTDF + * Dialog for managing of ELN cluster port TDF + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +@SuppressWarnings("serial") + +public class JDialogELNClusterPortTDF extends JDialog implements ActionListener { + + private JTextField nameTextField; + private ArrayList<String> listArrayTypeString; + private JComboBox<String> typeComboBoxString; + private ArrayList<String> listOriginString; + private JComboBox<String> originComboBoxString; + + private ELNClusterPortTDF term; + + public JDialogELNClusterPortTDF(ELNClusterPortTDF term) { + this.setTitle("Setting Cluster Port TDF Attributes"); + this.setLocationRelativeTo(null); + this.setVisible(true); + this.setAlwaysOnTop(true); + this.setResizable(false); + + this.term = term; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + attributesMainPanel.setLayout(new BorderLayout()); + + Box attributesBox = Box.createVerticalBox(); + attributesBox.setBorder(BorderFactory.createTitledBorder("Setting cluster port TDF attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel attributesBoxPanel = new JPanel(); + attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + attributesBoxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("Name : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + attributesBoxPanel.add(labelName); + + nameTextField = new JTextField(term.getValue().toString(), 10); + nameTextField.setEditable(false); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + attributesBoxPanel.add(nameTextField); + + JLabel typeLabel = new JLabel("Type : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeLabel, constraints); + attributesBoxPanel.add(typeLabel); + + listArrayTypeString = new ArrayList<String>(); + listArrayTypeString.add("bool"); + listArrayTypeString.add("double"); + listArrayTypeString.add("int"); + typeComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listArrayTypeString.size(); i++) { + typeComboBoxString.addItem(listArrayTypeString.get(i)); + } + for (int i = 0; i < listArrayTypeString.size(); i++) { + if (term.getPortType().equals(listArrayTypeString.get(i))) { + typeComboBoxString.setSelectedIndex(i); + } + } + typeComboBoxString.addActionListener(this); + typeComboBoxString.setEnabled(false); + constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeComboBoxString, constraints); + attributesBoxPanel.add(typeComboBoxString); + + JLabel orginLabel = new JLabel("In / Out : "); + constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(orginLabel, constraints); + attributesBoxPanel.add(orginLabel); + + listOriginString = new ArrayList<String>(); + listOriginString.add("in"); + listOriginString.add("out"); + originComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listOriginString.size(); i++) { + originComboBoxString.addItem(listOriginString.get(i)); + } + for (int i = 0; i < listOriginString.size(); i++) { + if (term.getOrigin().equals(listOriginString.get(i))) { + originComboBoxString.setSelectedIndex(i); + } + } + originComboBoxString.addActionListener(this); + originComboBoxString.setEnabled(false); + constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(originComboBoxString, constraints); + attributesBoxPanel.add(originComboBoxString); + + attributesBox.add(attributesBoxPanel); + + attributesMainPanel.add(attributesBox, BorderLayout.NORTH); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + term.setValue(new String(nameTextField.getText())); + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} \ No newline at end of file diff --git a/src/main/java/ui/window/JDialogELNClusterTerminal.java b/src/main/java/ui/window/JDialogELNClusterTerminal.java new file mode 100644 index 0000000000000000000000000000000000000000..af8c9b7ebf63cb704aa25106fe15b172be2f55e4 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNClusterTerminal.java @@ -0,0 +1,151 @@ +/* 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.window; + +import ui.eln.ELNClusterTerminal; +import ui.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * Class JDialogELNClusterTerminal + * Dialog for managing of ELN cluster terminal + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +@SuppressWarnings("serial") + +public class JDialogELNClusterTerminal extends JDialog implements ActionListener { + + private JTextField nameTextField; + + private ELNClusterTerminal term; + + public JDialogELNClusterTerminal(ELNClusterTerminal term) { + this.setTitle("Setting Cluster Terminal Attributes"); + this.setLocationRelativeTo(null); + this.setVisible(true); + this.setAlwaysOnTop(true); + this.setResizable(false); + + this.term = term; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + attributesMainPanel.setLayout(new BorderLayout()); + + Box attributesBox = Box.createVerticalBox(); + attributesBox.setBorder(BorderFactory.createTitledBorder("Setting cluster terminal attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel attributesBoxPanel = new JPanel(); + attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + attributesBoxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("Name : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + attributesBoxPanel.add(labelName); + + if (term.getValue().toString().equals("")) { + nameTextField = new JTextField(10); + } else { + nameTextField = new JTextField(term.getValue().toString(), 10); + } + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + attributesBoxPanel.add(nameTextField); + + attributesBox.add(attributesBoxPanel); + + attributesMainPanel.add(attributesBox, BorderLayout.NORTH); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + term.setValue(new String(nameTextField.getText())); + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} \ No newline at end of file diff --git a/src/main/java/ui/window/JDialogELNComponentCurrentSinkDE.java b/src/main/java/ui/window/JDialogELNComponentCurrentSinkDE.java new file mode 100644 index 0000000000000000000000000000000000000000..84ec08d6629ab6ec2eb5000a67b367c3036170e6 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNComponentCurrentSinkDE.java @@ -0,0 +1,183 @@ +/* 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.window; + +import ui.eln.sca_eln_sca_de.ELNComponentCurrentSinkDE; +import ui.util.IconManager; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * Class JDialogELNComponentCurrentSinkDE + * Dialog for managing the conversion of a ELN current to a DE output signal + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +@SuppressWarnings("serial") + +public class JDialogELNComponentCurrentSinkDE extends JDialog implements ActionListener { + private JTextField nameTextField; + private JTextField valueTextField; + + private ELNComponentCurrentSinkDE isink; + + public JDialogELNComponentCurrentSinkDE(ELNComponentCurrentSinkDE _isink) { + setTitle("Setting the conversion of current to DE output signal"); + setLocationRelativeTo(null); + setVisible(true); + setAlwaysOnTop(true); + setResizable(false); + + isink = _isink; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(new GridLayout()); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + Box box = Box.createVerticalBox(); + box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_isink attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel boxPanel = new JPanel(); + boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + boxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("nm : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + boxPanel.add(labelName); + + nameTextField = new JTextField(isink.getValue().toString(), 10); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + boxPanel.add(nameTextField); + + JLabel valueLabel = new JLabel("scale : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueLabel, constraints); + boxPanel.add(valueLabel); + + valueTextField = new JTextField("" + isink.getScale(), 10); + constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueTextField, constraints); + boxPanel.add(valueTextField); + + box.add(boxPanel); + attributesMainPanel.add(box); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + isink.setValue(new String(nameTextField.getText())); + + if (!(valueTextField.getText().isEmpty())) { + Boolean valValueDouble = false; + try { + Double.parseDouble(valueTextField.getText()); + } catch (NumberFormatException e1) { + JDialog msg = new JDialog(this); + msg.setLocationRelativeTo(null); + JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !", + JOptionPane.WARNING_MESSAGE); + valValueDouble = true; + } + if (valValueDouble == false) { + isink.setScale(Double.parseDouble(valueTextField.getText())); + } + } else { + isink.setScale(1.0); + } + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} diff --git a/src/main/java/ui/window/JDialogELNComponentCurrentSourceDE.java b/src/main/java/ui/window/JDialogELNComponentCurrentSourceDE.java new file mode 100644 index 0000000000000000000000000000000000000000..c9c8623f02d508bfad918b374f6a256e0c23cc54 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNComponentCurrentSourceDE.java @@ -0,0 +1,183 @@ +/* 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.window; + +import ui.eln.sca_eln_sca_de.ELNComponentCurrentSourceDE; +import ui.util.IconManager; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * Class JDialogELNComponentCurrentSourceDE + * Dialog for managing the ELN current driven by a DE input signal + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +@SuppressWarnings("serial") + +public class JDialogELNComponentCurrentSourceDE extends JDialog implements ActionListener { + private JTextField nameTextField; + private JTextField valueTextField; + + private ELNComponentCurrentSourceDE isource; + + public JDialogELNComponentCurrentSourceDE(ELNComponentCurrentSourceDE _isource) { + setTitle("Setting the current driven by a DE output signal"); + setLocationRelativeTo(null); + setVisible(true); + setAlwaysOnTop(true); + setResizable(false); + + isource = _isource; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(new GridLayout()); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + Box box = Box.createVerticalBox(); + box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_isource attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel boxPanel = new JPanel(); + boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + boxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("nm : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + boxPanel.add(labelName); + + nameTextField = new JTextField(isource.getValue().toString(), 10); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + boxPanel.add(nameTextField); + + JLabel valueLabel = new JLabel("scale : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueLabel, constraints); + boxPanel.add(valueLabel); + + valueTextField = new JTextField("" + isource.getScale(), 10); + constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueTextField, constraints); + boxPanel.add(valueTextField); + + box.add(boxPanel); + attributesMainPanel.add(box); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + isource.setValue(new String(nameTextField.getText())); + + if (!(valueTextField.getText().isEmpty())) { + Boolean valValueDouble = false; + try { + Double.parseDouble(valueTextField.getText()); + } catch (NumberFormatException e1) { + JDialog msg = new JDialog(this); + msg.setLocationRelativeTo(null); + JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !", + JOptionPane.WARNING_MESSAGE); + valValueDouble = true; + } + if (valValueDouble == false) { + isource.setScale(Double.parseDouble(valueTextField.getText())); + } + } else { + isource.setScale(1.0); + } + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} diff --git a/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java b/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java index 8ec0bbac777229d24376914016e058c19c102f69..35eb7c1c1cc84b6d3d794098e6ad99f4fbe696a0 100644 --- a/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java +++ b/src/main/java/ui/window/JDialogELNComponentTransmissionLine.java @@ -319,11 +319,14 @@ public class JDialogELNComponentTransmissionLine extends JDialog implements Acti } transmission_line.setUnit0((String) z0ComboBoxString.getSelectedItem()); - String a = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[0]; - String b = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[1].split(Pattern.quote(")"))[0].split(" ")[1]; - - if (delayTextField.getText() == "sc_core::SC_ZERO_TIME" || (Double.parseDouble(a) >= 1.0) && b.equals("sc_core::SC_SEC")) { + if (delayTextField.getText().equals("sc_core::SC_ZERO_TIME")) { transmission_line.setDelay(delayTextField.getText()); + } else if (!delayTextField.getText().equals("sc_core::SC_ZERO_TIME")) { + String a = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[0]; + String b = delayTextField.getText().split(Pattern.quote("("))[1].split(",")[1].split(Pattern.quote(")"))[0].split(" ")[1]; + if ((Double.parseDouble(a) >= 1.0) && (b.equals("sc_core::SC_SEC"))) { + transmission_line.setDelay(delayTextField.getText()); + } } if (!(delta0TextField.getText().isEmpty())) { diff --git a/src/main/java/ui/window/JDialogELNComponentVoltageSinkDE.java b/src/main/java/ui/window/JDialogELNComponentVoltageSinkDE.java new file mode 100644 index 0000000000000000000000000000000000000000..1fb4aae08df3f4968ad0da169f6bc8910639cf53 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNComponentVoltageSinkDE.java @@ -0,0 +1,183 @@ +/* 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.window; + +import ui.eln.sca_eln_sca_de.ELNComponentVoltageSinkDE; +import ui.util.IconManager; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * Class JDialogELNComponentVoltageSinkDE + * Dialog for managing the conversion of a ELN voltage to a DE output signal + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +@SuppressWarnings("serial") + +public class JDialogELNComponentVoltageSinkDE extends JDialog implements ActionListener { + private JTextField nameTextField; + private JTextField valueTextField; + + private ELNComponentVoltageSinkDE vsink; + + public JDialogELNComponentVoltageSinkDE(ELNComponentVoltageSinkDE _vsink) { + setTitle("Setting the conversion of voltage to DE output signal"); + setLocationRelativeTo(null); + setVisible(true); + setAlwaysOnTop(true); + setResizable(false); + + vsink = _vsink; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(new GridLayout()); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + Box box = Box.createVerticalBox(); + box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_vsink attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel boxPanel = new JPanel(); + boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + boxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("nm : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + boxPanel.add(labelName); + + nameTextField = new JTextField(vsink.getValue().toString(), 10); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + boxPanel.add(nameTextField); + + JLabel valueLabel = new JLabel("scale : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueLabel, constraints); + boxPanel.add(valueLabel); + + valueTextField = new JTextField("" + vsink.getScale(), 10); + constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueTextField, constraints); + boxPanel.add(valueTextField); + + box.add(boxPanel); + attributesMainPanel.add(box); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + vsink.setValue(new String(nameTextField.getText())); + + if (!(valueTextField.getText().isEmpty())) { + Boolean valValueDouble = false; + try { + Double.parseDouble(valueTextField.getText()); + } catch (NumberFormatException e1) { + JDialog msg = new JDialog(this); + msg.setLocationRelativeTo(null); + JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !", + JOptionPane.WARNING_MESSAGE); + valValueDouble = true; + } + if (valValueDouble == false) { + vsink.setScale(Double.parseDouble(valueTextField.getText())); + } + } else { + vsink.setScale(1.0); + } + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} diff --git a/src/main/java/ui/window/JDialogELNComponentVoltageSourceDE.java b/src/main/java/ui/window/JDialogELNComponentVoltageSourceDE.java new file mode 100644 index 0000000000000000000000000000000000000000..1ee3494d5dbedd15f9af07ea1431e27972dfd50c --- /dev/null +++ b/src/main/java/ui/window/JDialogELNComponentVoltageSourceDE.java @@ -0,0 +1,183 @@ +/* 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.window; + +import ui.eln.sca_eln_sca_de.ELNComponentVoltageSourceDE; +import ui.util.IconManager; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * Class JDialogELNComponentVoltageSourceDE + * Dialog for managing the ELN voltage driven by a DE input signal + * Creation: 07/08/2018 + * @version 1.0 07/08/2018 + * @author Irina Kit Yan LEE +*/ + +@SuppressWarnings("serial") + +public class JDialogELNComponentVoltageSourceDE extends JDialog implements ActionListener { + private JTextField nameTextField; + private JTextField valueTextField; + + private ELNComponentVoltageSourceDE vsource; + + public JDialogELNComponentVoltageSourceDE(ELNComponentVoltageSourceDE _vsource) { + setTitle("Setting the voltage driven by a DE output signal"); + setLocationRelativeTo(null); + setVisible(true); + setAlwaysOnTop(true); + setResizable(false); + + vsource = _vsource; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(new GridLayout()); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + Box box = Box.createVerticalBox(); + box.setBorder(BorderFactory.createTitledBorder("Setting eln_de_vsource attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel boxPanel = new JPanel(); + boxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + boxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("nm : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + boxPanel.add(labelName); + + nameTextField = new JTextField(vsource.getValue().toString(), 10); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + boxPanel.add(nameTextField); + + JLabel valueLabel = new JLabel("scale : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueLabel, constraints); + boxPanel.add(valueLabel); + + valueTextField = new JTextField("" + vsource.getScale(), 10); + constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(valueTextField, constraints); + boxPanel.add(valueTextField); + + box.add(boxPanel); + attributesMainPanel.add(box); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + vsource.setValue(new String(nameTextField.getText())); + + if (!(valueTextField.getText().isEmpty())) { + Boolean valValueDouble = false; + try { + Double.parseDouble(valueTextField.getText()); + } catch (NumberFormatException e1) { + JDialog msg = new JDialog(this); + msg.setLocationRelativeTo(null); + JOptionPane.showMessageDialog(msg, "The scale coefficient is not a Double", "Warning !", + JOptionPane.WARNING_MESSAGE); + valValueDouble = true; + } + if (valValueDouble == false) { + vsource.setScale(Double.parseDouble(valueTextField.getText())); + } + } else { + vsource.setScale(1.0); + } + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} diff --git a/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java new file mode 100644 index 0000000000000000000000000000000000000000..3ef7014b1da3efc007f14429f13a417bfddf491f --- /dev/null +++ b/src/main/java/ui/window/JDialogELNExecutableCodeGeneration.java @@ -0,0 +1,772 @@ +/* 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.window; + +import elntranslator.toELN.MakefileCode; +import elntranslator.toELN.TopCellGenerator; +import launcher.LauncherException; +import launcher.RshClient; +import myutil.*; +import elntranslator.ELNSpecification; +import elntranslator.ELNTCluster; +import ui.util.IconManager; +import ui.MainGUI; +import ui.ELNPanelTranslator; +import ui.eln.ELNDiagramPanel; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.FileWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.util.LinkedList; +import java.util.Vector; + +/** + * Class JDialogELNExecutableCodeGeneration + * Dialog for managing the generation and compilation of ELN executable code + * Creation: 31/07/2018 + * @version 1.0 31/07/2018 + * @author Irina Kit Yan LEE + */ + +@SuppressWarnings("serial") + +public class JDialogELNExecutableCodeGeneration extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface { + + protected Frame f; + protected MainGUI mgui; + + private String textSysC1 = "Base directory of code generation:"; + private String textSysC7 = "Base directory of topcell generation:"; + private String textSysC8 = "Base directory of Makefile:"; +// private String textSysC2 = "Compile SystemC-AMS executable with"; // compile +// private String textSysC4 = "Run code in soclib / mutekh:"; +// private String textSysC5 = "Show AVATAR trace from file w/o hardware:"; +// private String textSysC6 = "Show cycle accurate trace from MPSoC file:"; + +// private static String[] codes = {"AVATAR SOCLIB"}; + +// private static int selectedRun = 1; +// private static int selectedCompile = 0; +// private static int selectedViewTrace = 0; +// private static boolean static_putUserCode = true; + + protected static String pathCode; + protected static String pathSoclibTraceFile; + protected static String pathCompileMPSoC; + protected static String pathExecuteMPSoC; + protected static boolean optimizeModeSelected = true; + + protected final static int NOT_STARTED = 1; + protected final static int STARTED = 2; + protected final static int STOPPED = 3; + + private static + + int mode; + + //components + protected JTextArea jta; + protected JButton start; + protected JButton stop; + protected JButton close; + + protected JRadioButton exe, exeint, exetrace, exesoclib, compile, compilesoclib, viewtrace, viewtracesoclib; + protected ButtonGroup compilegroup, exegroup, viewgroup; + protected JLabel gen; + protected JTextField code1, code2, code3, compiler, exe1, exe2, exe3, exe4, exe2int, simulationTraceFile, simulationsoclibTraceFile; + protected JTabbedPane jp1; + protected JScrollPane jsp; + protected JCheckBox removeCFiles, removeXFiles, debugmode, tracemode, optimizemode, putUserCode; + protected JComboBox<String> versionCodeGenerator, units; + protected JButton showSimulationTrace, showOverflowStatus; + +// private static int selectedUnit = 2; +// private static boolean removeCFilesValue = true; +// private static boolean removeXFilesValue = true; +// private static boolean debugValue = false; +// private static boolean tracingValue = false; +// private static boolean optimizeValue = true; + + private Thread t; + private boolean go = false; +// private boolean hasError = false; + protected boolean startProcess = false; + +// private String hostExecute; + + protected RshClient rshc; + + public JDialogELNExecutableCodeGeneration(Frame _f, MainGUI _mgui, String title, String _pathCode) { + super(title); + f = _f; + mgui = _mgui; + + if (pathCode == null) { + pathCode = _pathCode; + } + +// if (pathCompileMPSoC == null) { +// pathCompileMPSoC = _pathCompileMPSoC; +// } +// +// if (pathExecuteMPSoC == null) { +// pathExecuteMPSoC = _pathExecuteMPSoC; +// } +// +// hostExecute = _hostExecute; + + initComponents(); + myInitComponents(); + pack(); + + getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + } + + protected void myInitComponents() { + mode = NOT_STARTED; + setButtons(); +// makeSelectionCompile(); +// makeSelectionExecute(); +// makeSelectionViewTrace(); + } + + protected void initComponents() { + Container c = getContentPane(); + setFont(new Font("Helvetica", Font.PLAIN, 14)); + c.setLayout(new BorderLayout()); + + // Issue #41 Ordering of tabbed panes + jp1 = GraphicLib.createTabbedPane();//new JTabbedPane(); + + JPanel jp01 = new JPanel(); + GridBagLayout gridbag01 = new GridBagLayout(); + GridBagConstraints c01 = new GridBagConstraints(); + jp01.setLayout(gridbag01); + jp01.setBorder(new javax.swing.border.TitledBorder("Code generation")); + +// JPanel jp02 = new JPanel(); +// GridBagLayout gridbag02 = new GridBagLayout(); +// GridBagConstraints c02 = new GridBagConstraints(); +// jp02.setLayout(gridbag02); +// jp02.setBorder(new javax.swing.border.TitledBorder("Compilation")); +// +// JPanel jp03 = new JPanel(); +// GridBagLayout gridbag03 = new GridBagLayout(); +// GridBagConstraints c03 = new GridBagConstraints(); +// jp03.setLayout(gridbag03); +// jp03.setBorder(new javax.swing.border.TitledBorder("Execution")); +// +// JPanel jp04 = new JPanel(); +// GridBagLayout gridbag04 = new GridBagLayout(); +// GridBagConstraints c04 = new GridBagConstraints(); +// jp04.setLayout(gridbag04); +// jp04.setBorder(new javax.swing.border.TitledBorder("Simulation trace")); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = GridBagConstraints.REMAINDER; //end row + c01.fill = GridBagConstraints.BOTH; + c01.gridheight = 1; + + gen = new JLabel(textSysC1); + jp01.add(gen, c01); + + code1 = new JTextField(pathCode, 100); + jp01.add(code1, c01); + + gen = new JLabel(textSysC7); + jp01.add(gen, c01); + + code2 = new JTextField(pathCode, 100); + jp01.add(code2, c01); + + gen = new JLabel(textSysC8); + jp01.add(gen, c01); + + code3 = new JTextField(pathCode, 100); + jp01.add(code3, c01); + + jp01.add(new JLabel(" "), c01); + c01.gridwidth = GridBagConstraints.REMAINDER; //end row + +// removeCFiles = new JCheckBox("Remove .c / .h files"); +// removeCFiles.setSelected(removeCFilesValue); +// jp01.add(removeCFiles, c01); + +// removeXFiles = new JCheckBox("Remove .x files"); +// removeXFiles.setSelected(removeXFilesValue); +// jp01.add(removeXFiles, c01); + +// debugmode = new JCheckBox("Put debug information in generated code"); +// debugmode.setSelected(debugValue); +// jp01.add(debugmode, c01); +// +// tracemode = new JCheckBox("Put tracing capabilities in generated code"); +// tracemode.setSelected(tracingValue); +// jp01.add(tracemode, c01); +// +// optimizemode = new JCheckBox("Optimize code"); +// optimizemode.setSelected(optimizeModeSelected); +// jp01.add(optimizemode, c01); +// +// putUserCode = new JCheckBox("Include user code"); +// putUserCode.setSelected(static_putUserCode); +// jp01.add(putUserCode, c01); + +// jp01.add(new JLabel("1 time unit ="), c01); +// +// units = new JComboBox<String>(unitTab); +// units.setSelectedIndex(selectedUnit); +// units.addActionListener(this); +// jp01.add(units, c01); + +// jp01.add(new JLabel("Code generator used:"), c01); + +// versionCodeGenerator = new JComboBox<String>(codes); + // versionCodeGenerator.setSelectedIndex(selectedItem); +// versionCodeGenerator.addActionListener(this); +// jp01.add(versionCodeGenerator, c01); + + jp01.add(new JLabel(" "), c01); + jp1.add("Generate code", jp01); + + // Panel 02 -> compile +// c02.gridheight = 1; +// c02.weighty = 1.0; +// c02.weightx = 1.0; +// c02.gridwidth = GridBagConstraints.REMAINDER; //end row +// c02.fill = GridBagConstraints.BOTH; +// c02.gridheight = 1; + +// compilegroup = new ButtonGroup(); +// +// compilesoclib = new JRadioButton(textSysC2, false); +// compilesoclib.addActionListener(this); +// jp02.add(compilesoclib, c02); +// compilegroup.add(compilesoclib); +// compiler = new JTextField(pathCompileMPSoC, 100); +// jp02.add(compiler, c02); + + //compile.setSelected(selectedCompile == 0); +// compilesoclib.setSelected(selectedCompile == 1); +// +// jp1.add("Compile", jp02); + + // Panel 03 -> Execute +// c03.gridheight = 1; +// c03.weighty = 1.0; +// c03.weightx = 1.0; +// c03.gridwidth = GridBagConstraints.REMAINDER; //end row +// c03.fill = GridBagConstraints.BOTH; +// c03.gridheight = 1; + +// exegroup = new ButtonGroup(); + + /*exetrace = new JRadioButton(textSysC3, false); + exetrace.addActionListener(this); + exegroup.add(exetrace); + jp03.add(exetrace, c03); + exe3 = new JTextField(pathExecuteMPSoC+"-trace", 100); + jp03.add(exe3, c03);*/ +// +// exesoclib = new JRadioButton(textSysC4, false); +// exesoclib.addActionListener(this); +// exegroup.add(exesoclib); +// jp03.add(exesoclib, c03); +// exe4 = new JTextField(pathExecuteMPSoC, 100); +// jp03.add(exe4, c03); + + //exe.setSelected(selectedRun == 0); + //exetrace.setSelected(selectedRun == 1); + // exesoclib.setSelected(selectedRun == 2); + +// jp03.add(new JLabel(" "), c03); + +// jp1.add("Execute", jp03); + + // Panel 04 -> View trace +// c04.gridheight = 1; +// c04.weighty = 1.0; +// c04.weightx = 1.0; +// c04.gridwidth = GridBagConstraints.REMAINDER; //end row +// c04.fill = GridBagConstraints.HORIZONTAL; +// c04.gridheight = 1; + +// viewgroup = new ButtonGroup(); +// viewtrace = new JRadioButton(textSysC5, false); +// viewgroup.add(viewtrace); +// viewtrace.addActionListener(this); +// jp04.add(viewtrace, c04); +// simulationTraceFile = new JTextField(pathCode + "trace.txt", 100); +// jp04.add(simulationTraceFile, c04); +// viewtracesoclib = new JRadioButton(textSysC6, false); +// viewgroup.add(viewtracesoclib); +// viewtracesoclib.addActionListener(this); +// jp04.add(viewtracesoclib, c04); +// simulationsoclibTraceFile = new JTextField(pathSoclibTraceFile, 100); +// jp04.add(simulationsoclibTraceFile, c04); +// +// showSimulationTrace = new JButton("Show simulation trace"); +// showSimulationTrace.addActionListener(this); +// jp04.add(showSimulationTrace, c04); + + //-------------Ajout C.Demarigny--------------- + +// showOverflowStatus = new JButton("Show overflow status"); +// showOverflowStatus.addActionListener(this); +// jp04.add(showOverflowStatus, c04); + + //----------------Fin ajout-------------------- + +// viewtrace.setSelected(selectedViewTrace == 0); +// viewtracesoclib.setSelected(selectedViewTrace == 1); + +// jp1.add("Results", jp04); + + c.add(jp1, BorderLayout.NORTH); + + jta = new ScrolledJTextArea(); + jta.setEditable(false); + jta.setMargin(new Insets(10, 10, 10, 10)); + jta.setTabSize(3); + jta.append("Select options and then, click on 'start' to launch code generation\n"); // / compilation / execution + Font f = new Font("Courrier", Font.BOLD, 12); + jta.setFont(f); + jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + + c.add(jsp, BorderLayout.CENTER); + + start = new JButton("Start", IconManager.imgic53); + stop = new JButton("Stop", IconManager.imgic55); + close = new JButton("Close", IconManager.imgic27); + + start.setPreferredSize(new Dimension(100, 30)); + stop.setPreferredSize(new Dimension(100, 30)); + close.setPreferredSize(new Dimension(100, 30)); + + start.addActionListener(this); + stop.addActionListener(this); + close.addActionListener(this); + + JPanel jp2 = new JPanel(); + jp2.add(start); + jp2.add(stop); + jp2.add(close); + + c.add(jp2, BorderLayout.SOUTH); + } + + public void actionPerformed(ActionEvent evt) { + String command = evt.getActionCommand(); + + // Compare the action command to the known actions. + if (command.equals("Start")) { + startProcess(); + } else if (command.equals("Stop")) { + stopProcess(); + } else if (command.equals("Close")) { + closeDialog(); + } else if (evt.getSource() == versionCodeGenerator) { + // selectedItem = versionCodeGenerator.getSelectedIndex(); +// } else if (evt.getSource() == units) { +// selectedUnit = units.getSelectedIndex(); +// } else if (evt.getSource() == showSimulationTrace) { +// showSimulationTrace(); + //} else if ((evt.getSource() == exe) || (evt.getSource() == exetrace)|| (evt.getSource() == exesoclib)) { +// else if ((evt.getSource() == exetrace) || (evt.getSource() == exesoclib)) { +// makeSelectionExecute(); +// // } else if ((evt.getSource() == compile) || (evt.getSource() == compilesoclib)) { +// } else if ((evt.getSource() == compilesoclib)) { +// makeSelectionCompile(); +// } else if ((evt.getSource() == viewtrace) || (evt.getSource() == viewtracesoclib)) { +// makeSelectionViewTrace(); +// } else if ((evt.getSource() == showOverflowStatus)) { //ajout CD +// showOverflowStatus(); + } + } + + public void closeDialog() { + if (mode == STARTED) { + stopProcess(); + } +// optimizeModeSelected = optimizemode.isSelected(); +// removeCFilesValue = removeCFiles.isSelected(); +// removeXFilesValue = removeXFiles.isSelected(); +// debugValue = debugmode.isSelected(); +// tracingValue = tracemode.isSelected(); +// static_putUserCode = putUserCode.isSelected(); + dispose(); + } +// +// public void makeSelectionExecute() { +// +// //if (exetrace.isSelected()) { +// // selectedRun = 1; +// //} else { +// selectedRun = 2; +// //} +// +// // exe2.setEnabled(selectedRun == 0); +// //exe3.setEnabled(selectedRun == 1); +// exe4.setEnabled(selectedRun == 2); +// } + +// public void makeSelectionCompile() { +// +// selectedCompile = 1; +// compiler.setEnabled(selectedCompile == 1); +// +// } + +// public void makeSelectionViewTrace() { +// if (viewtrace.isSelected()) { +// selectedViewTrace = 0; +// } else { +// selectedViewTrace = 1; +// } +// simulationTraceFile.setEnabled(selectedViewTrace == 0); +// // simulationsoclibTraceFile.setEnabled(selectedViewTrace == 1); +// } + + public void stopProcess() { + try { + rshc.stopCommand(); + } catch (LauncherException le) { + + } + rshc = null; + mode = STOPPED; + setButtons(); + go = false; + } + + public void startProcess() { + startProcess = false; + t = new Thread(this); + mode = STARTED; + setButtons(); + go = true; + t.start(); + } + + private void testGo() throws InterruptedException { + if (go == false) { + throw new InterruptedException("Stopped by user"); + } + } + + public void run() { +// String cmd; +// String list;//, data; +// hasError = false; + + try { + if (jp1.getSelectedIndex() == 0) { + jta.append("Generating executable code (ELN version)\n"); + + Vector<ELNDiagramPanel> elnDiagramPanels = mgui.getListELNPanel(); + LinkedList<ELNTCluster> clusters = new LinkedList<ELNTCluster>(); + for (ELNDiagramPanel elnDiagramPanel : elnDiagramPanels) { + ELNPanelTranslator elnPanelTranslator = new ELNPanelTranslator(elnDiagramPanel); + ELNSpecification elnSpec = elnPanelTranslator.getELNSpecification(); + clusters.add(elnSpec.getCluster()); + } + for (ELNDiagramPanel elnDiagramPanel : elnDiagramPanels) { + ELNPanelTranslator elnPanelTranslator = new ELNPanelTranslator(elnDiagramPanel); + ELNSpecification elnSpec = elnPanelTranslator.getELNSpecification(); + + // Generating code + if (elnSpec == null) { + jta.append("Error: No ELN specification\n"); + } else { + System.err.println("**ELN TOPCELL found"); + + TopCellGenerator topCellGenerator = new TopCellGenerator(elnSpec); + testGo(); + jta.append("Generation of TopCell \"" + elnSpec.getCluster().getName() + "\" executable code: done\n"); + + try { + jta.append("Saving ELN code in files\n"); + System.err.println("Saving ELN code in files\n"); + pathCode = code2.getText(); + + System.err.println("ELN TOPCELL : " + elnSpec.getCluster().getName() + "saved in " + code2.getText()); + topCellGenerator.saveFile(pathCode); + + jta.append("Code saved\n"); + } catch (Exception e) { + jta.append("Could not generate files\n"); + System.err.println("Could not generate ELN files\n"); + e.printStackTrace(); + } + } + testGo(); + } + try { + String makefile; + System.err.println(pathCode + "Makefile"); + FileWriter fw = new FileWriter(pathCode + "/" + "Makefile"); + makefile = MakefileCode.getMakefileCode(clusters); + fw.write(makefile); + fw.close(); + } catch (Exception ex) { + ex.printStackTrace(); + } + testGo(); + } +// if (removeCFiles.isSelected()) { +// +// jta.append("Removing all .h files\n"); +// +// list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".h"); +// if (list.length() == 0) { +// jta.append("No files were deleted\n"); +// } else { +// jta.append("Files deleted:\n" + list + "\n"); +// } +// jta.append("Removing all .c files\n"); +// list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".c"); +// if (list.length() == 0) { +// jta.append("No files were deleted\n"); +// } else { +// jta.append("Files deleted:\n" + list + "\n"); +// } +// } + +// if (removeXFiles.isSelected()) { +// jta.append("Removing all .x files\n"); +// list = FileUtils.deleteFiles(code1.getText(), ".x"); +// if (list.length() == 0) { +// jta.append("No files were deleted\n"); +// } else { +// jta.append("Files deleted:\n" + list + "\n"); +// } +// } + +// testGo(); + +// selectedUnit = units.getSelectedIndex(); + + // Generating code +// if (avspec == null) { +// jta.append("Error: No AVATAR specification\n"); +// } else { +// +// TasksAndMainGenerator gene = new TasksAndMainGenerator(syscalsspec, avspec); +// gene.includeUserCode(putUserCode.isSelected()); +// gene.setTimeUnit(selectedUnit); +// gene.generateSoclib(debugmode.isSelected(), tracemode.isSelected()); +// +// if (syscalsspec == null) { +// jta.append("Error: No AVATAR Deployment specification\n"); +// } else { +// System.err.println("AVATAR TOPCELL found"); +// } +// +// TopCellGenerator topCellGenerator = new TopCellGenerator(syscalsspec, tracemode.isSelected(), avspec); +// testGo(); +// jta.append("Generation of TopCell executable code: done\n"); +// +// try { +// jta.append("Saving code in files\n"); +// pathCode = code2.getText(); +// topCellGenerator.saveFile(pathCode); +// +// jta.append("Code saved\n"); +// } catch (Exception e) { +// jta.append("Could not generate files\n"); +// } +// +// testGo(); +// jta.append("Generation of C-SOCLIB executable code: done\n"); +// try { +// jta.append("Saving code in files\n"); +// pathCode = code1.getText(); +// gene.saveInFiles(pathCode); +// +// jta.append("Code saved\n"); +// } catch (Exception e) { +// jta.append("Could not generate files\n"); +// } +// } +// } + +// testGo(); + +// if (jp1.getSelectedIndex() == 1) { +// cmd = compiler.getText(); +// jta.append("Compiling executable code with command: \n" + cmd + "\n"); +// +// rshc = new RshClient(hostExecute); +// try { +// processCmd(cmd, jta); +// jta.append("Compilation done\n"); +// } catch (LauncherException le) { +// jta.append("Error: " + le.getMessage() + "\n"); +// mode = STOPPED; +// setButtons(); +// return; +// } catch (Exception e) { +// mode = STOPPED; +// setButtons(); +// return; +// } +// } +// +// if (jp1.getSelectedIndex() == 2) { +// try { +// cmd = exe4.getText(); +// jta.append("Executing code with command: \n" + cmd + "\n"); +// rshc = new RshClient(hostExecute); +// processCmd(cmd, jta); +// jta.append("Execution done\n"); +// } catch (LauncherException le) { +// jta.append("Error: " + le.getMessage() + "\n"); +// mode = STOPPED; +// setButtons(); +// return; +// } catch (Exception e) { +// mode = STOPPED; +// setButtons(); +// return; +// } +// } +// if ((hasError == false) && (jp1.getSelectedIndex() < 2)) { +// jp1.setSelectedIndex(jp1.getSelectedIndex() + 1); +// } + } catch (InterruptedException ie) { + jta.append("Interrupted\n"); + } + + jta.append("\n\nReady to process next command\n"); + + checkMode(); + setButtons(); + } + + protected void processCmd(String cmd, JTextArea _jta) throws LauncherException { + rshc.setCmd(cmd); + rshc.sendExecuteCommandRequest(); + final Writer output = new StringWriter(); + rshc.writeCommandMessages(output); + _jta.append(output.toString()); + + return; + } + + protected void checkMode() { + mode = NOT_STARTED; + } + + protected void setButtons() { + switch (mode) { + case NOT_STARTED: + start.setEnabled(true); + stop.setEnabled(false); + close.setEnabled(true); + getGlassPane().setVisible(false); + break; + case STARTED: + start.setEnabled(false); + stop.setEnabled(true); + close.setEnabled(false); + getGlassPane().setVisible(true); + break; + case STOPPED: + default: + start.setEnabled(false); + stop.setEnabled(false); + close.setEnabled(true); + getGlassPane().setVisible(false); + break; + } + } + + public boolean hasToContinue() { + return (go == true); + } + + public void appendOut(String s) { + jta.append(s); + } + + + public void setError() { +// hasError = true; + } + +// public void showSimulationTrace() { +// JFrameSimulationSDPanel jfssdp = new JFrameSimulationSDPanel(f, mgui, "Simulation trace of " + simulationTraceFile.getText()); +// jfssdp.setIconImage(IconManager.img8); +// GraphicLib.centerOnParent(jfssdp, 600, 600); +// if (selectedViewTrace == 0) { +// jfssdp.setFileReference(simulationTraceFile.getText()); +// } else { +// jfssdp.setFileReference(simulationsoclibTraceFile.getText()); +// } +// jfssdp.setVisible(true); +// TraceManager.addDev("Ok JFrame"); +// } + +// public void showOverflowStatus() { +// try { +// String path = ConfigurationTTool.AVATARMPSoCPerformanceEvaluationDirectory; +// String taille = "0"; +// +// String log = "mwmr0.log"; +// +// String[] commande = {"sh", path + "callingOverflow.sh", taille, path, log}; +// +// ProcessBuilder pb = new ProcessBuilder(commande); +// pb.redirectError(ProcessBuilder.Redirect.INHERIT); +// Process p = pb.start(); +// +// int exitStatus = p.waitFor(); +// +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +} diff --git a/src/main/java/ui/window/JDialogELNModulePortDE.java b/src/main/java/ui/window/JDialogELNModulePortDE.java new file mode 100644 index 0000000000000000000000000000000000000000..ddb7e5a7a98be635ababf3534d3d7036ca82c701 --- /dev/null +++ b/src/main/java/ui/window/JDialogELNModulePortDE.java @@ -0,0 +1,206 @@ +/* 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.window; + +import ui.eln.ELNModulePortDE; +import ui.util.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; + +/** + * Class JDialogELNModulePortDE + * Dialog for managing of ELN module port DE + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +@SuppressWarnings("serial") + +public class JDialogELNModulePortDE extends JDialog implements ActionListener { + + private JTextField nameTextField; + private ArrayList<String> listArrayTypeString; + private JComboBox<String> typeComboBoxString; + private ArrayList<String> listOriginString; + private JComboBox<String> originComboBoxString; + + private ELNModulePortDE term; + + public JDialogELNModulePortDE(ELNModulePortDE term) { + this.setTitle("Setting Module Port DE Attributes"); + this.setLocationRelativeTo(null); + this.setVisible(true); + this.setAlwaysOnTop(true); + this.setResizable(false); + + this.term = term; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + attributesMainPanel.setLayout(new BorderLayout()); + + Box attributesBox = Box.createVerticalBox(); + attributesBox.setBorder(BorderFactory.createTitledBorder("Setting module port DE attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel attributesBoxPanel = new JPanel(); + attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + attributesBoxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("Name : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + attributesBoxPanel.add(labelName); + + nameTextField = new JTextField(term.getValue().toString(), 10); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + attributesBoxPanel.add(nameTextField); + + JLabel typeLabel = new JLabel("Type : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeLabel, constraints); + attributesBoxPanel.add(typeLabel); + + listArrayTypeString = new ArrayList<String>(); + listArrayTypeString.add("bool"); + listArrayTypeString.add("double"); + listArrayTypeString.add("int"); + typeComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listArrayTypeString.size(); i++) { + typeComboBoxString.addItem(listArrayTypeString.get(i)); + } + for (int i = 0; i < listArrayTypeString.size(); i++) { + if (term.getPortType().equals(listArrayTypeString.get(i))) { + typeComboBoxString.setSelectedIndex(i); + } + } + typeComboBoxString.addActionListener(this); + constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeComboBoxString, constraints); + attributesBoxPanel.add(typeComboBoxString); + + JLabel orginLabel = new JLabel("In / Out : "); + constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(orginLabel, constraints); + attributesBoxPanel.add(orginLabel); + + listOriginString = new ArrayList<String>(); + listOriginString.add("in"); + listOriginString.add("out"); + originComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listOriginString.size(); i++) { + originComboBoxString.addItem(listOriginString.get(i)); + } + for (int i = 0; i < listOriginString.size(); i++) { + if (term.getOrigin().equals(listOriginString.get(i))) { + originComboBoxString.setSelectedIndex(i); + } + } + originComboBoxString.addActionListener(this); + constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(originComboBoxString, constraints); + attributesBoxPanel.add(originComboBoxString); + + attributesBox.add(attributesBoxPanel); + + attributesMainPanel.add(attributesBox, BorderLayout.NORTH); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + term.setValue(new String(nameTextField.getText())); + term.setPortType((String) typeComboBoxString.getSelectedItem()); + term.setOrigin((String) originComboBoxString.getSelectedItem()); + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} \ No newline at end of file diff --git a/src/main/java/ui/window/JDialogELNModulePortTDF.java b/src/main/java/ui/window/JDialogELNModulePortTDF.java new file mode 100644 index 0000000000000000000000000000000000000000..202c576b8280dd75b72d9c59ea9ea0ae4169c3ed --- /dev/null +++ b/src/main/java/ui/window/JDialogELNModulePortTDF.java @@ -0,0 +1,206 @@ +/* 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.window; + +import ui.eln.ELNModulePortTDF; +import ui.util.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; + +/** + * Class JDialogELNModulePortTDF + * Dialog for managing of ELN module port TDF + * Creation: 03/08/2018 + * @version 1.0 03/08/2018 + * @author Irina Kit Yan LEE + */ + +@SuppressWarnings("serial") + +public class JDialogELNModulePortTDF extends JDialog implements ActionListener { + + private JTextField nameTextField; + private ArrayList<String> listArrayTypeString; + private JComboBox<String> typeComboBoxString; + private ArrayList<String> listOriginString; + private JComboBox<String> originComboBoxString; + + private ELNModulePortTDF term; + + public JDialogELNModulePortTDF(ELNModulePortTDF term) { + this.setTitle("Setting Module Port TDF Attributes"); + this.setLocationRelativeTo(null); + this.setVisible(true); + this.setAlwaysOnTop(true); + this.setResizable(false); + + this.term = term; + + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close"); + getRootPane().getActionMap().put("close", new AbstractAction() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + + dialog(); + } + + public void dialog() { + JPanel mainPanel = new JPanel(new BorderLayout()); + this.add(mainPanel); + + JPanel attributesMainPanel = new JPanel(); + mainPanel.add(attributesMainPanel, BorderLayout.NORTH); + + attributesMainPanel.setLayout(new BorderLayout()); + + Box attributesBox = Box.createVerticalBox(); + attributesBox.setBorder(BorderFactory.createTitledBorder("Setting module port TDF attributes")); + + GridBagLayout gridBag = new GridBagLayout(); + GridBagConstraints constraints = new GridBagConstraints(); + JPanel attributesBoxPanel = new JPanel(); + attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14)); + attributesBoxPanel.setLayout(gridBag); + + JLabel labelName = new JLabel("Name : "); + constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(labelName, constraints); + attributesBoxPanel.add(labelName); + + nameTextField = new JTextField(term.getValue().toString(), 10); + constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(15, 10, 5, 10), 0, 0); + gridBag.setConstraints(nameTextField, constraints); + attributesBoxPanel.add(nameTextField); + + JLabel typeLabel = new JLabel("Type : "); + constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeLabel, constraints); + attributesBoxPanel.add(typeLabel); + + listArrayTypeString = new ArrayList<String>(); + listArrayTypeString.add("bool"); + listArrayTypeString.add("double"); + listArrayTypeString.add("int"); + typeComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listArrayTypeString.size(); i++) { + typeComboBoxString.addItem(listArrayTypeString.get(i)); + } + for (int i = 0; i < listArrayTypeString.size(); i++) { + if (term.getPortType().equals(listArrayTypeString.get(i))) { + typeComboBoxString.setSelectedIndex(i); + } + } + typeComboBoxString.addActionListener(this); + constraints = new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0, + GridBagConstraints.CENTER, + GridBagConstraints.BOTH, + new Insets(5, 10, 5, 10), 0, 0); + gridBag.setConstraints(typeComboBoxString, constraints); + attributesBoxPanel.add(typeComboBoxString); + + JLabel orginLabel = new JLabel("In / Out : "); + constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(orginLabel, constraints); + attributesBoxPanel.add(orginLabel); + + listOriginString = new ArrayList<String>(); + listOriginString.add("in"); + listOriginString.add("out"); + originComboBoxString = new JComboBox<String>(); + for (int i = 0; i < listOriginString.size(); i++) { + originComboBoxString.addItem(listOriginString.get(i)); + } + for (int i = 0; i < listOriginString.size(); i++) { + if (term.getOrigin().equals(listOriginString.get(i))) { + originComboBoxString.setSelectedIndex(i); + } + } + originComboBoxString.addActionListener(this); + constraints = new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(5, 10, 15, 10), 0, 0); + gridBag.setConstraints(originComboBoxString, constraints); + attributesBoxPanel.add(originComboBoxString); + + attributesBox.add(attributesBoxPanel); + + attributesMainPanel.add(attributesBox, BorderLayout.NORTH); + + JPanel downPanel = new JPanel(new FlowLayout()); + + JButton saveCloseButton = new JButton("Save and close"); + saveCloseButton.setIcon(IconManager.imgic25); + saveCloseButton.setActionCommand("Save_Close"); + saveCloseButton.addActionListener(this); + saveCloseButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(saveCloseButton); + + JButton cancelButton = new JButton("Cancel"); + cancelButton.setIcon(IconManager.imgic27); + cancelButton.setActionCommand("Cancel"); + cancelButton.addActionListener(this); + cancelButton.setPreferredSize(new Dimension(200, 30)); + downPanel.add(cancelButton); + + mainPanel.add(downPanel, BorderLayout.CENTER); + pack(); + this.getRootPane().setDefaultButton(saveCloseButton); + } + + public void actionPerformed(ActionEvent e) { + if ("Save_Close".equals(e.getActionCommand())) { + term.setValue(new String(nameTextField.getText())); + term.setPortType((String) typeComboBoxString.getSelectedItem()); + term.setOrigin((String) originComboBoxString.getSelectedItem()); + + this.dispose(); + } + + if ("Cancel".equals(e.getActionCommand())) { + this.dispose(); + } + } +} \ No newline at end of file diff --git a/src/main/java/ui/window/JDialogELNComponentNodeRef.java b/src/main/java/ui/window/JDialogELNNodeRef.java similarity index 85% rename from src/main/java/ui/window/JDialogELNComponentNodeRef.java rename to src/main/java/ui/window/JDialogELNNodeRef.java index 85e4380b1eb814d8e6b8e55de794b7576caa2f5b..20b3279e7e602ef37c45c4ddd1af7f54fbfeb661 100644 --- a/src/main/java/ui/window/JDialogELNComponentNodeRef.java +++ b/src/main/java/ui/window/JDialogELNNodeRef.java @@ -38,32 +38,13 @@ package ui.window; -import ui.eln.sca_eln.ELNComponentNodeRef; +import ui.TGComponent; +import ui.eln.ELNModule; +import ui.eln.ELNNodeRef; import ui.util.IconManager; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.GridLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.AbstractAction; -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.KeyStroke; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; /** * Class JDialogELNComponentNodeRef @@ -75,16 +56,16 @@ import javax.swing.KeyStroke; @SuppressWarnings("serial") -public class JDialogELNComponentNodeRef extends JDialog implements ActionListener { +public class JDialogELNNodeRef extends JDialog implements ActionListener { /** Access to ActionPerformed **/ private JTextField nameTextField; /** Parameters **/ - private ELNComponentNodeRef gnd; + private ELNNodeRef gnd; /** Constructor **/ - public JDialogELNComponentNodeRef(ELNComponentNodeRef _gnd) { + public JDialogELNNodeRef(ELNNodeRef _gnd) { /** Set JDialog **/ setTitle("Setting the reference node"); setLocationRelativeTo(null); @@ -168,6 +149,18 @@ public class JDialogELNComponentNodeRef extends JDialog implements ActionListene if ("Save_Close".equals(e.getActionCommand())) { gnd.setValue(new String(nameTextField.getText())); + for (TGComponent tgc : gnd.getTDiagramPanel().getComponentList()) { + if (tgc instanceof ELNModule) { + if (gnd.getFather() != null) { + if (gnd.getFather().equals(tgc)) { + for (ELNNodeRef t : ((ELNModule) tgc).getAllComponentNodeRef()) { + t.setValue(gnd.getValue()); + } + } + } + } + } + this.dispose(); } diff --git a/src/main/java/ui/window/JDialogModelChecking.java b/src/main/java/ui/window/JDialogModelChecking.java index 93fb37d7bb7f70746e6a739e717050895e5ebfe7..c6978e3a9030df76deb3dbdf9d500f2db7036fee 100644 --- a/src/main/java/ui/window/JDialogModelChecking.java +++ b/src/main/java/ui/window/JDialogModelChecking.java @@ -46,11 +46,20 @@ import ui.util.IconManager; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; /** * Class JDialogModelChecking @@ -61,10 +70,10 @@ import java.util.LinkedList; * @version 1.0 13/12/2003 */ public class JDialogModelChecking extends JDialogBase implements ActionListener, ListSelectionListener { - public static java.util.List<TClassInterface> validated, ignored; + public static List<TClassInterface> validated, ignored; private static boolean overideSyntaxChecking = false; - private java.util.List<TClassInterface> val, ign, back; + private List<TClassInterface> val, ign, back; //subpanels private JPanel panel1, panel2, panel3, panel4, panel5, panel6; @@ -79,7 +88,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, /** * Creates new form */ - public JDialogModelChecking(Frame f, LinkedList<TClassInterface> _back, java.util.List<TGComponent> componentList, String title) { + public JDialogModelChecking(Frame f, List<TClassInterface> _back, List<TGComponent> componentList, String title) { super(f, title, true); back = _back; @@ -101,8 +110,8 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, pack(); } - private java.util.List<TClassInterface> makeNewVal(java.util.List<TGComponent> list) { - java.util.List<TClassInterface> v = new LinkedList<TClassInterface>(); + private List<TClassInterface> makeNewVal(List<TGComponent> list) { + List<TClassInterface> v = new LinkedList<TClassInterface>(); for (TGComponent tgc : list) if (tgc instanceof TClassInterface) @@ -111,7 +120,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, return v; } - private void checkTClasses(java.util.List<TClassInterface> tobeChecked, java.util.List<TGComponent> source) { + private void checkTClasses( List<TClassInterface> tobeChecked, List<TGComponent> source) { Iterator<TClassInterface> iter = tobeChecked.iterator(); while (iter.hasNext()) { TClassInterface t = iter.next(); @@ -120,7 +129,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener, } } - public void addNewTclasses(java.util.List<TClassInterface> added, java.util.List<TGComponent> source, java.util.List<TClassInterface> notSource) { + public void addNewTclasses(List<TClassInterface> added, List<TGComponent> source, List<TClassInterface> notSource) { for (TGComponent tgc : source) if ((tgc instanceof TClassInterface) && (!added.contains(tgc)) && (!notSource.contains(tgc))) added.add((TClassInterface) tgc); diff --git a/src/main/java/ui/window/JDialogMultiString.java b/src/main/java/ui/window/JDialogMultiString.java index 102f2ca04785379cbba524979335d39bb13f71e8..b69246503d610d332e813e07e879f8feb0e072dd 100644 --- a/src/main/java/ui/window/JDialogMultiString.java +++ b/src/main/java/ui/window/JDialogMultiString.java @@ -36,15 +36,25 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; -import javax.swing.*; -import java.awt.*; +import java.awt.Container; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; /** * Class JDialogMultiString @@ -68,9 +78,9 @@ public class JDialogMultiString extends JDialogBase implements ActionListener { // Panel1 private JTextField[] texts; private JButton inserts[]; - private HashMap<Integer, JComboBox<String>> helps; + private Map<Integer, JComboBox<String>> helps; - private ArrayList<String[]> possibleValues = null; + private List<String[]> possibleValues = null; /** @@ -89,11 +99,11 @@ public class JDialogMultiString extends JDialogBase implements ActionListener { texts = new JTextField[nbString]; initComponents(); - myInitComponents(); + // myInitComponents(); pack(); } - public JDialogMultiString(Frame f, String title, int _nbString, String[] _labels, String[] _values, ArrayList<String[]> _possibleValues) { + public JDialogMultiString(Frame f, String title, int _nbString, String[] _labels, String[] _values, List<String[]> _possibleValues) { super(f, title, true); @@ -105,13 +115,12 @@ public class JDialogMultiString extends JDialogBase implements ActionListener { texts = new JTextField[nbString]; initComponents(); - myInitComponents(); + // myInitComponents(); pack(); } - - private void myInitComponents() { - } +// private void myInitComponents() { +// } private void initComponents() { inserts = new JButton[labels.length]; @@ -192,6 +201,7 @@ public class JDialogMultiString extends JDialogBase implements ActionListener { initButtons(c0, c, this); } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -209,7 +219,6 @@ public class JDialogMultiString extends JDialogBase implements ActionListener { } } - public void closeDialog() { set = true; dispose(); diff --git a/src/main/java/ui/window/JDialogMultiStringAndTabs.java b/src/main/java/ui/window/JDialogMultiStringAndTabs.java index 33bc0d40ee46ad4e9e4b111cb11e5a2362275fa4..c7b59926e6e96fee28efadf7adb0709d5428d703 100644 --- a/src/main/java/ui/window/JDialogMultiStringAndTabs.java +++ b/src/main/java/ui/window/JDialogMultiStringAndTabs.java @@ -36,15 +36,26 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; -import javax.swing.*; -import java.awt.*; +import java.awt.Container; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; /** * Class JDialogMultiStringAndTabs @@ -56,7 +67,7 @@ import java.util.HashMap; */ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionListener { - private ArrayList<TabInfo> tabs; + private List<TabInfo> tabs; private int totalNbOfStrings; private boolean set = false; @@ -64,16 +75,16 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList // Panel1 private JTextField[] texts; private JButton inserts[]; - private HashMap<Integer, JComboBox<String>> helps; + private Map<Integer, JComboBox<String>> helps; - private ArrayList<String[]> possibleValues = null; + // private List<String[]> possibleValues = null; /** * Creates new form */ // arrayDelay: [0] -> minDelay ; [1] -> maxDelay - public JDialogMultiStringAndTabs(Frame f, String title, ArrayList<TabInfo> _tabs) { + public JDialogMultiStringAndTabs(Frame f, String title, List<TabInfo> _tabs) { super(f, title, true); @@ -87,13 +98,13 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList texts = new JTextField[totalNbOfStrings]; initComponents(); - myInitComponents(); + //myInitComponents(); pack(); } - private void myInitComponents() { - } +// private void myInitComponents() { +// } private void initComponents() { inserts = new JButton[totalNbOfStrings]; @@ -161,15 +172,10 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList } - - //panel1.setBorder(new javax.swing.border.TitledBorder("Properties")); //panel1.setPreferredSize(new Dimension(600, 300)); - - - // main panel; c0.gridwidth = 1; c0.gridheight = 10; @@ -186,6 +192,7 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList initButtons(c0, c, this); } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -203,7 +210,6 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList } } - public void closeDialog() { set = true; dispose(); @@ -232,7 +238,6 @@ public class JDialogMultiStringAndTabs extends JDialogBase implements ActionList return texts[i].getText().length() > 0; } - public boolean hasBeenSet() { return set; } diff --git a/src/main/java/ui/window/JDialogNCRoute.java b/src/main/java/ui/window/JDialogNCRoute.java index abea3c8950400b26f32276ea2a7302bb1a4976cf..cdeca43774ed399994e2ee6f95f59fd9ef2825aa 100644 --- a/src/main/java/ui/window/JDialogNCRoute.java +++ b/src/main/java/ui/window/JDialogNCRoute.java @@ -36,23 +36,33 @@ * knowledge of the CeCILL license and that you accept its terms. */ - - - package ui.window; -import ui.util.IconManager; -import ui.ncdd.NCRoute; - -import javax.swing.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import java.awt.*; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.ArrayList; +import java.util.List; import java.util.Vector; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import ui.ncdd.NCRoute; + /** * Class JDialogNCRoute @@ -63,7 +73,7 @@ import java.util.Vector; */ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListSelectionListener { private Vector<NCRoute> routes; - private ArrayList<String> inputInterfaces, traffics, outputInterfaces; + private List<String> inputInterfaces, traffics, outputInterfaces; protected String value; @@ -82,7 +92,7 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS private JTextField valueText; /** Creates new form */ - public JDialogNCRoute(Frame _f, String _title, String _value, Vector<NCRoute> _routes, ArrayList<String> _inputInterfaces, ArrayList<String> _traffics, ArrayList<String> _outputInterfaces) { + public JDialogNCRoute(Frame _f, String _title, String _value, Vector<NCRoute> _routes, List<String> _inputInterfaces, List<String> _traffics, List<String> _outputInterfaces) { super(_f, _title, true); value = _value; @@ -276,8 +286,8 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS initButtons(c0, c, this); } + @Override public void actionPerformed(ActionEvent evt) { - String command = evt.getActionCommand(); // Compare the action command to the known actions. @@ -320,7 +330,6 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS } } - private void addRoute() { String s0 = (String)(inputInterfaceBox.getSelectedItem()); String s1 = (String)(trafficBox.getSelectedItem()); @@ -386,6 +395,7 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS return hasBeenCancelled; } + @Override public void valueChanged(ListSelectionEvent e) { int i = listRoute.getSelectedIndex() ; if (i == -1) { @@ -410,6 +420,4 @@ public class JDialogNCRoute extends JDialogBase implements ActionListener, ListS public String getValue() { return valueText.getText(); } - - } diff --git a/src/main/java/ui/window/JDialogPerformancePragma.java b/src/main/java/ui/window/JDialogPerformancePragma.java index ab990ef7b29119639f6a49adc47bab2a43b86b98..ba2dc8421e29308eeea7cdc4d6a38d64ab1f3d76 100644 --- a/src/main/java/ui/window/JDialogPerformancePragma.java +++ b/src/main/java/ui/window/JDialogPerformancePragma.java @@ -36,17 +36,27 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; import ui.util.IconManager; import javax.swing.*; import javax.swing.text.BadLocationException; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.ComponentOrientation; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Point; import java.awt.event.*; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Class JDialogPragma @@ -67,7 +77,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe protected JMenuBar menuBar; protected JMenu help; protected JPopupMenu helpPopup; - public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>(); + public Map<String, List<String>> blockAttributeMap = new HashMap<String, List<String>>(); /** * Creates new form @@ -85,7 +95,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe //Form list of all blocks //For each block, create a list of all states and signals - private JList list; + private JList<String> list; private JPopupMenu popupMenu; private String subWord; private final int insertionPosition; @@ -112,8 +122,8 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe } } - private JList createSuggestionList(int linePosition, final int position, final String subWord) { - ArrayList<String> matches = new ArrayList<String>(); + private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) { + List<String> matches = new ArrayList<String>(); if (linePosition < 6) { matches.add("Latency("); } else if (!subWord.contains(".")) { @@ -150,7 +160,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe return list; } - public boolean insertSelection() { //Note that it will not add if the selection will not fit on the current line if (!popupMenu.isVisible()) { @@ -257,7 +266,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe } protected void initComponents() { - Container c = getContentPane(); Font f = new Font("Helvetica", Font.PLAIN, 14); setFont(f); @@ -394,7 +402,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe } else if (evt.getSource() == close) { close(); } - } public void cancel() { @@ -417,6 +424,4 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe public String getText() { return text; } - - } diff --git a/src/main/java/ui/window/JDialogPragma.java b/src/main/java/ui/window/JDialogPragma.java index b9918ad98d08d9b96524b2d39571c68958e77e25..04d1b1fd37477f8bb5205460969104891e85b809 100644 --- a/src/main/java/ui/window/JDialogPragma.java +++ b/src/main/java/ui/window/JDialogPragma.java @@ -36,17 +36,27 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; import ui.util.IconManager; import javax.swing.*; import javax.swing.text.BadLocationException; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.ComponentOrientation; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Point; import java.awt.event.*; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -68,8 +78,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener { protected JButton cancel; protected JMenu help; private JPopupMenu helpPopup; - public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<>(); - public HashMap<String, java.util.List<String>> blockStateMap = new HashMap<>(); + public Map<String, List<String>> blockAttributeMap = new HashMap<>(); + public Map<String, List<String>> blockStateMap = new HashMap<>(); /** * Creates new form @@ -85,7 +95,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener { public class SuggestionPanel { private final String[] pragma = {"#Authenticity", "#Confidentiality", "#PublicConstant", "#PrivateConstant", "#InitialSessionKnowledge", "#InitialSystemKnowledge", "#PrivatePublicKeys", "#Public", "#SecrecyAssumption", "#Secret"}; - private JList list; + private JList<String> list; private JPopupMenu popupMenu; private String subWord; private final int insertionPosition; @@ -111,8 +121,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } } - private JList createSuggestionList(final int position, final String subWord, String header) { - ArrayList<String> matches = new ArrayList<>(); + private JList<String> createSuggestionList(final int position, final String subWord, String header) { + List<String> matches = new ArrayList<>(); if (subWord.startsWith("#")) { for (String p : pragma) { if (p.startsWith(subWord)) { @@ -291,7 +301,6 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } protected void initComponents() { - Container c = getContentPane(); Font f = new Font("Helvetica", Font.PLAIN, 14); setFont(f); @@ -358,12 +367,10 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } }); - JScrollPane jsp = new JScrollPane(textarea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); jsp.setPreferredSize(new Dimension(300, 300)); c.add(jsp, BorderLayout.CENTER); - close = new JButton("Ok", IconManager.imgic25); cancel = new JButton("Cancel", IconManager.imgic27); @@ -388,6 +395,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -397,7 +405,6 @@ public class JDialogPragma extends JDialogBase implements ActionListener { } else if (command.equals("Ok")) { close(); } - } public void cancel() { @@ -420,6 +427,4 @@ public class JDialogPragma extends JDialogBase implements ActionListener { public String getText() { return text; } - - } diff --git a/src/main/java/ui/window/JDialogSafetyPragma.java b/src/main/java/ui/window/JDialogSafetyPragma.java index 8e8f0fb24216dfe185da47962f87a0d704e152e9..6bb6c760e31f1101c3d23fd23b87893a7ced55ce 100644 --- a/src/main/java/ui/window/JDialogSafetyPragma.java +++ b/src/main/java/ui/window/JDialogSafetyPragma.java @@ -36,17 +36,27 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; import ui.util.IconManager; import javax.swing.*; import javax.swing.text.BadLocationException; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.ComponentOrientation; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Point; import java.awt.event.*; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Class JDialogPragma @@ -67,7 +77,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { protected JMenuBar menuBar; protected JMenu help; protected JPopupMenu helpPopup; - public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>(); + public Map<String, List<String>> blockAttributeMap = new HashMap<String, List<String>>(); /** * Creates new form @@ -86,7 +96,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { //Form list of all blocks //For each block, create a list of all attribute strings and states - private JList list; + private JList<String> list; private JPopupMenu popupMenu; private String subWord; private final int insertionPosition; @@ -113,8 +123,8 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { } } - private JList createSuggestionList(int linePosition, final int position, final String subWord) { - ArrayList<String> matches = new ArrayList<String>(); + private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) { + List<String> matches = new ArrayList<String>(); if (linePosition < 3) { for (String p : pragma) { if (p.startsWith(subWord)) { @@ -264,8 +274,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { } protected void initComponents() { - - Container c = getContentPane(); Font f = new Font("Helvetica", Font.PLAIN, 14); setFont(f); @@ -284,7 +292,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { textarea.setTabSize(3); textarea.append(text); textarea.setFont(new Font("times", Font.PLAIN, 12)); - JMenuBar menuBar = new JMenuBar(); + menuBar = new JMenuBar(); menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); help = new JMenu("?"); menuBar.add(help); @@ -364,6 +372,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { c.add(jp, BorderLayout.SOUTH); } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -373,7 +382,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { } else if (command.equals("Ok")) { close(); } - } public void cancel() { @@ -396,6 +404,4 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener { public String getText() { return text; } - - } diff --git a/src/main/java/ui/window/JDialogSelectAvatarBlock.java b/src/main/java/ui/window/JDialogSelectAvatarBlock.java index 98cb245ad0c2c9b4160466aa957dd07d45fa0e4b..6881282a33243cf095d191822a6b705956217b8a 100644 --- a/src/main/java/ui/window/JDialogSelectAvatarBlock.java +++ b/src/main/java/ui/window/JDialogSelectAvatarBlock.java @@ -36,7 +36,6 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; import ui.avatarbd.AvatarBDStateMachineOwner; @@ -45,11 +44,19 @@ import ui.util.IconManager; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; /** @@ -61,10 +68,11 @@ import java.util.LinkedList; * @version 1.0 18/05/2010 */ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener { - public LinkedList<AvatarBDStateMachineOwner> validated, ignored; + + public List<AvatarBDStateMachineOwner> validated, ignored; private boolean optimized = true; - private LinkedList<AvatarBDStateMachineOwner> val, ign, back; + private List<AvatarBDStateMachineOwner> val, ign, back; private JList<AvatarBDStateMachineOwner> listIgnored; private JList<AvatarBDStateMachineOwner> listValidated; @@ -79,7 +87,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe /** * Creates new form */ - public JDialogSelectAvatarBlock(Frame f, LinkedList<AvatarBDStateMachineOwner> _back, LinkedList<AvatarBDStateMachineOwner> componentList, String title, LinkedList<AvatarBDStateMachineOwner> _validated, LinkedList<AvatarBDStateMachineOwner> _ignored, boolean _optimized) { + public JDialogSelectAvatarBlock(Frame f, List<AvatarBDStateMachineOwner> _back, List<AvatarBDStateMachineOwner> componentList, String title, List<AvatarBDStateMachineOwner> _validated, List<AvatarBDStateMachineOwner> _ignored, boolean _optimized) { super(f, title, true); back = _back; @@ -103,7 +111,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe pack(); } - private void checkTask(LinkedList<AvatarBDStateMachineOwner> tobeChecked, LinkedList<AvatarBDStateMachineOwner> source) { + private void checkTask( List<AvatarBDStateMachineOwner> tobeChecked, List<AvatarBDStateMachineOwner> source) { Iterator<AvatarBDStateMachineOwner> iterator = tobeChecked.iterator(); while (iterator.hasNext()) { @@ -113,7 +121,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } } - private void addNewTask(LinkedList<AvatarBDStateMachineOwner> added, LinkedList<AvatarBDStateMachineOwner> source, LinkedList<AvatarBDStateMachineOwner> notSource) { + private void addNewTask( List<AvatarBDStateMachineOwner> added, List<AvatarBDStateMachineOwner> source, List<AvatarBDStateMachineOwner> notSource) { for (AvatarBDStateMachineOwner tgc : source) if (!added.contains(tgc) && !notSource.contains(tgc)) added.add(tgc); @@ -262,6 +270,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } + @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -273,8 +282,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe return; } - - // Compare the action command to the known actions. switch (command) { case "addOneIgnored": @@ -292,7 +299,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } } - private void addOneIgnored() { for (AvatarBDStateMachineOwner o : this.listValidated.getSelectedValuesList()) { ign.add(o); @@ -380,7 +386,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe } } - public void valueChanged(ListSelectionEvent e) { setButtons(); } @@ -393,11 +398,11 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe return hasBeenCancelled; } - public LinkedList<AvatarBDStateMachineOwner> getValidated() { + public List<AvatarBDStateMachineOwner> getValidated() { return validated; } - public LinkedList<AvatarBDStateMachineOwner> getIgnored() { + public List<AvatarBDStateMachineOwner> getIgnored() { return ignored; } } diff --git a/src/main/java/ui/window/JDialogSignalAssociation.java b/src/main/java/ui/window/JDialogSignalAssociation.java index 084e1046c1c41e2b63e128c69b64dd8f05b436a8..b87fd0fe74de31ec119cf2b8b18f46aafe26fc21 100644 --- a/src/main/java/ui/window/JDialogSignalAssociation.java +++ b/src/main/java/ui/window/JDialogSignalAssociation.java @@ -36,27 +36,39 @@ * knowledge of the CeCILL license and that you accept its terms. */ +package ui.window; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.List; +import java.util.Vector; - -package ui.window; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import myutil.TraceManager; import ui.AvatarSignal; -import ui.util.IconManager; import ui.avatarbd.AvatarBDBlock; import ui.avatarbd.AvatarBDPortConnector; -import javax.swing.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.LinkedList; -import java.util.Vector; - - /** * Class JDialogSignalAssociation * Dialog for managing associations between signals (AVATAR profile) @@ -67,7 +79,7 @@ import java.util.Vector; public class JDialogSignalAssociation extends JDialogBase implements ActionListener, ListSelectionListener { private Vector<String> signalAssociation, localSignalAssociations; private AvatarBDBlock block1, block2; - private LinkedList<AvatarSignal> available1, available2; + private List<AvatarSignal> available1, available2; private AvatarBDPortConnector connector; private JRadioButton synchronous, asynchronous; @@ -88,7 +100,6 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe private JButton downButton; private JButton removeButton; - /** Creates new form */ public JDialogSignalAssociation(Frame _f, AvatarBDBlock _block1, AvatarBDBlock _block2, Vector<String> _signalAssociation, AvatarBDPortConnector _connector, String _title) { super(_f, _title, true); @@ -100,13 +111,13 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe localSignalAssociations.addAll(signalAssociation); // Available signals - if (block1 != block2) { - available1 = block1.getListOfAvailableSignals(); - available2 = block2.getListOfAvailableSignals(); - } else { - available1 = block1.getListOfAvailableOutSignals(); - available2 = block2.getListOfAvailableInSignals(); - } + if (block1 != block2) { + available1 = block1.getListOfAvailableSignals(); + available2 = block2.getListOfAvailableSignals(); + } else { + available1 = block1.getListOfAvailableOutSignals(); + available2 = block2.getListOfAvailableInSignals(); + } initComponents(); myInitComponents(); diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java index 2da61d2d75eb55da2c4fee5a5b206c6ae0bc5f1f..3a4c9f2056e10a3f8487de5c3ce8f475f4609bbb 100644 --- a/src/main/java/ui/window/JDialogSystemCGeneration.java +++ b/src/main/java/ui/window/JDialogSystemCGeneration.java @@ -59,9 +59,9 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import javax.swing.text.BadLocationException; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.*; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -73,10 +73,22 @@ import java.util.Vector; * Creation: 01/12/2005 * * @author Ludovic APVRILLE, Andrea ENRICI - * @version 1.2 02/06/2014 + * @version 1.3 24/07/2018 */ public class JDialogSystemCGeneration extends JDialog implements ActionListener, Runnable, MasterProcessInterface, ListSelectionListener { + protected static final String HELP = "Penalties of components:\n" + + "*CPUs*: \n" + + "\tTask switching time \n" + + "\tPipeline\n" + + "\tCache miss\n" + + "\tMiss branching prediction\n" + + "\tCycles before being idle\n" + + "\tcycles for mode switch to/from idle\n\n" + + "*Buses*:\n" + + "\tPipeline\n"; + + protected MainGUI mgui; private static String textSysC1 = "Generate C++ simulator code in"; @@ -123,6 +135,11 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener, protected JCheckBox removeCppFiles, removeXFiles, debugmode, optimizemode, activatePenalties; protected JComboBox<String> versionSimulator; + protected JMenu help; + protected JPopupMenu helpPopup; + protected JTextArea textarea; + protected JMenuBar menuBar; + //TEPE Diagram private static Vector<AvatarPDPanel> validatedTepe, ignoredTepe; private Vector<AvatarPDPanel> valTepe, ignTepe; @@ -312,7 +329,24 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener, optimizemode.setSelected(optimizeModeSelected); jp01.add(optimizemode, c01); - activatePenalties = new JCheckBox("Activate penalties"); + + helpPopup = new JPopupMenu(); + helpPopup.add(new JTextArea(HELP)); + //helpPopup.setPreferredSize(new Dimension(400, 500)); + menuBar = new JMenuBar(); + menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); + help = new JMenu("?"); + help.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + help(); + } + }); + menuBar.add(help); + setJMenuBar(menuBar); + help.setPreferredSize(new Dimension(30, 30)); + + activatePenalties = new JCheckBox("Activate penalties (task switching time, cache miss, miss branching prediction)"); activatePenalties.setSelected(activatePenaltiesSelected); jp01.add(activatePenalties, c01); @@ -1147,4 +1181,12 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener, validatedTepe.add(valTepe.get(i)); } } + + public void help() { + if (!helpPopup.isVisible()) { + helpPopup.show(help, 20, 20); + } else { + helpPopup.setVisible(false); + } + } } diff --git a/src/main/java/ui/window/JDialogUPPAALValidation.java b/src/main/java/ui/window/JDialogUPPAALValidation.java index ba0199cdd454e899df7b58f521b13d34379a813e..7acaf31c0d55969bf344ae46dbf86bf73f6a5f2d 100644 --- a/src/main/java/ui/window/JDialogUPPAALValidation.java +++ b/src/main/java/ui/window/JDialogUPPAALValidation.java @@ -757,7 +757,7 @@ public class JDialogUPPAALValidation extends javax.swing.JDialog implements Acti UPPAALSpec spec = mgui.gtm.getLastUPPAALSpecification(); AVATAR2UPPAAL avatar2uppaal = mgui.gtm.getAvatar2Uppaal(); AvatarSpecification avspec = mgui.gtm.getAvatarSpecification(); - Hashtable<String, String> hash = avatar2uppaal.getHash(); + Map<String, String> hash = avatar2uppaal.getHash(); String finQuery = query + " "; /* String[] split = query.split("[\\s-()=]+"); for (String s: split){ diff --git a/src/main/java/ui/window/TabInfo.java b/src/main/java/ui/window/TabInfo.java index e2cfa09b8bbe1bcdc73615efda9cd0850608645c..c2f65e93c7425a0e8661ec01527c2ff89b97d030 100644 --- a/src/main/java/ui/window/TabInfo.java +++ b/src/main/java/ui/window/TabInfo.java @@ -36,15 +36,9 @@ * knowledge of the CeCILL license and that you accept its terms. */ - package ui.window; -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.List; /** * Class TabInfo @@ -59,7 +53,7 @@ public class TabInfo { public String identifier; public String[] labels; public String[] values; - public ArrayList<String[]> help; + public List<String[]> help; public TabInfo(String _identifier) { identifier = _identifier; diff --git a/src/main/resources/ui/util/camsclusterblock.gif b/src/main/resources/ui/util/camsclusterblock.gif index cc63c8caa4965eef406319fbee858c2c4bdbacde..ced246028109f6312b0ceb2cba689d99954a2fa3 100644 Binary files a/src/main/resources/ui/util/camsclusterblock.gif and b/src/main/resources/ui/util/camsclusterblock.gif differ diff --git a/src/main/resources/ui/util/camsconverterport.gif b/src/main/resources/ui/util/camsconverterport.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa581e567f10b8d71372b038207609fb41f37205 Binary files /dev/null and b/src/main/resources/ui/util/camsconverterport.gif differ diff --git a/src/main/resources/ui/util/camsconverterportE.gif b/src/main/resources/ui/util/camsconverterportE.gif deleted file mode 100644 index 23bd471b725ef22cdb122f9b0afb143c0a7aee68..0000000000000000000000000000000000000000 Binary files a/src/main/resources/ui/util/camsconverterportE.gif and /dev/null differ diff --git a/src/main/resources/ui/util/camsconverterportN.gif b/src/main/resources/ui/util/camsconverterportN.gif deleted file mode 100644 index c9b41b638f030edd9dae93debf68ca7461c97410..0000000000000000000000000000000000000000 Binary files a/src/main/resources/ui/util/camsconverterportN.gif and /dev/null differ diff --git a/src/main/resources/ui/util/camsconverterportS.gif b/src/main/resources/ui/util/camsconverterportS.gif deleted file mode 100644 index 373aa91832bc9029b2b7a1365e512ae7739c793b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/ui/util/camsconverterportS.gif and /dev/null differ diff --git a/src/main/resources/ui/util/camsconverterportW.gif b/src/main/resources/ui/util/camsconverterportW.gif deleted file mode 100644 index 5d0764a89068c6661d3b5937346d299a75d4d891..0000000000000000000000000000000000000000 Binary files a/src/main/resources/ui/util/camsconverterportW.gif and /dev/null differ diff --git a/src/main/resources/ui/util/camsdeblock.gif b/src/main/resources/ui/util/camsdeblock.gif index 333cf72b58b5054abe0c5d3c0cbd07fa345b075a..24ea4cb4e03069267f264c43421bef25d1e40216 100644 Binary files a/src/main/resources/ui/util/camsdeblock.gif and b/src/main/resources/ui/util/camsdeblock.gif differ diff --git a/src/main/resources/ui/util/camsdeport.gif b/src/main/resources/ui/util/camsdeport.gif index 960af0633abd6b6a3d64bdbd309c0d17622afd6a..61508b28da4a0afdce18f09c85079bec9d93ac2e 100644 Binary files a/src/main/resources/ui/util/camsdeport.gif and b/src/main/resources/ui/util/camsdeport.gif differ diff --git a/src/main/resources/ui/util/camsgpio2vciblock.gif b/src/main/resources/ui/util/camsgpio2vciblock.gif index 8b89e5b76aa23de07f822dd49ffca18991735321..065b69e1ae9a9ca0fa16bdfcd692c18a5e4851af 100644 Binary files a/src/main/resources/ui/util/camsgpio2vciblock.gif and b/src/main/resources/ui/util/camsgpio2vciblock.gif differ diff --git a/src/main/resources/ui/util/camstdfblock.gif b/src/main/resources/ui/util/camstdfblock.gif index 7a27c4d4558c3a554144a9088346fcfc9b021900..97e72b596393d2001efec4f1eb02cbed4aa80ee3 100644 Binary files a/src/main/resources/ui/util/camstdfblock.gif and b/src/main/resources/ui/util/camstdfblock.gif differ diff --git a/src/main/resources/ui/util/camstdfport.gif b/src/main/resources/ui/util/camstdfport.gif index f3cf58a7c94a0e051224909ee00496d072433013..03b10587c06ff9d6ddc728e565d76aa950f30ca9 100644 Binary files a/src/main/resources/ui/util/camstdfport.gif and b/src/main/resources/ui/util/camstdfport.gif differ diff --git a/src/main/resources/ui/util/elncapacitor.gif b/src/main/resources/ui/util/elncapacitor.gif index 70173e0a0f69a68365728184e652a79fb19697a7..6df70d62943b41b6611312450bf195af280d8703 100644 Binary files a/src/main/resources/ui/util/elncapacitor.gif and b/src/main/resources/ui/util/elncapacitor.gif differ diff --git a/src/main/resources/ui/util/elndeisink.gif b/src/main/resources/ui/util/elndeisink.gif new file mode 100644 index 0000000000000000000000000000000000000000..4dad84b3c3debef835b68c15debe0a4dafb59a34 Binary files /dev/null and b/src/main/resources/ui/util/elndeisink.gif differ diff --git a/src/main/resources/ui/util/elndeisource.gif b/src/main/resources/ui/util/elndeisource.gif new file mode 100644 index 0000000000000000000000000000000000000000..4335e19f0cfc160d9428d6fadce4f23e7f996da2 Binary files /dev/null and b/src/main/resources/ui/util/elndeisource.gif differ diff --git a/src/main/resources/ui/util/elndevsink.gif b/src/main/resources/ui/util/elndevsink.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a4df7b867152b74d187ffbeb1e216990bbba16f Binary files /dev/null and b/src/main/resources/ui/util/elndevsink.gif differ diff --git a/src/main/resources/ui/util/elndevsource.gif b/src/main/resources/ui/util/elndevsource.gif new file mode 100644 index 0000000000000000000000000000000000000000..884a7be95b5eb07d03fc9cbca8155e838c1337a0 Binary files /dev/null and b/src/main/resources/ui/util/elndevsource.gif differ diff --git a/src/main/resources/ui/util/elnground.gif b/src/main/resources/ui/util/elnground.gif index 0c8df1962468c06409e45128b3ca5d3d3fb6222c..df54674a767e66fc16701de8c583c54a44806bfb 100644 Binary files a/src/main/resources/ui/util/elnground.gif and b/src/main/resources/ui/util/elnground.gif differ diff --git a/src/main/resources/ui/util/elnidealtransformer.gif b/src/main/resources/ui/util/elnidealtransformer.gif index b5c551d05e3c502ee30bd514b5d3b94918498606..61b578dff9160cb0f8187e107f586f76a5bf42b1 100644 Binary files a/src/main/resources/ui/util/elnidealtransformer.gif and b/src/main/resources/ui/util/elnidealtransformer.gif differ diff --git a/src/main/resources/ui/util/elninductor.gif b/src/main/resources/ui/util/elninductor.gif index 9baf5d1151cfa7d05fef0b4b2e1ddb2bfce47270..7503272afe90204b6f2a536597534471356f9a09 100644 Binary files a/src/main/resources/ui/util/elninductor.gif and b/src/main/resources/ui/util/elninductor.gif differ diff --git a/src/main/resources/ui/util/elnisource.gif b/src/main/resources/ui/util/elnisource.gif index 346c6222e6c9ae7c6ddf202eca15efc874c5749c..30258464bf0b700a068f2ad62fbfcf542ba1a8bc 100644 Binary files a/src/main/resources/ui/util/elnisource.gif and b/src/main/resources/ui/util/elnisource.gif differ diff --git a/src/main/resources/ui/util/elnmodule.gif b/src/main/resources/ui/util/elnmodule.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4aa4be82365b76611a066722e7d32ce377f3f3f Binary files /dev/null and b/src/main/resources/ui/util/elnmodule.gif differ diff --git a/src/main/resources/ui/util/elnportterminal.gif b/src/main/resources/ui/util/elnportterminal.gif deleted file mode 100644 index cd4918e69c88c620c53e794faf778768493a2417..0000000000000000000000000000000000000000 Binary files a/src/main/resources/ui/util/elnportterminal.gif and /dev/null differ diff --git a/src/main/resources/ui/util/elnresistor.gif b/src/main/resources/ui/util/elnresistor.gif index 13085d4edd56241c3c450aed095e9eb37812e9bd..53f363826df2d301d1b5f2cc3991aed036e76088 100644 Binary files a/src/main/resources/ui/util/elnresistor.gif and b/src/main/resources/ui/util/elnresistor.gif differ diff --git a/src/main/resources/ui/util/elntdfisink.gif b/src/main/resources/ui/util/elntdfisink.gif index 52215961d6fd3cd031d62073fe0e70d163b3bae2..e5c72cde613554eb351c39f8907a5dfbd3abf41d 100644 Binary files a/src/main/resources/ui/util/elntdfisink.gif and b/src/main/resources/ui/util/elntdfisink.gif differ diff --git a/src/main/resources/ui/util/elntdfisource.gif b/src/main/resources/ui/util/elntdfisource.gif index a21f0ec320d9004845b7dce508cf43f15835dbae..cc5c8d8526f1a9c87dc0fb037e1b6b029bc2c6b5 100644 Binary files a/src/main/resources/ui/util/elntdfisource.gif and b/src/main/resources/ui/util/elntdfisource.gif differ diff --git a/src/main/resources/ui/util/elntdfvsink.gif b/src/main/resources/ui/util/elntdfvsink.gif index b6e05f57a8764f47f822444bbe397ead434cb89c..c5f6d2b27d129773fc9fdae0c524c56e6a4938cb 100644 Binary files a/src/main/resources/ui/util/elntdfvsink.gif and b/src/main/resources/ui/util/elntdfvsink.gif differ diff --git a/src/main/resources/ui/util/elntdfvsource.gif b/src/main/resources/ui/util/elntdfvsource.gif index 3d24958f33002f9c6e847c9e2064be07da2d2a0d..98110d7d7a94b03a657abf700ab5e59e64a23af1 100644 Binary files a/src/main/resources/ui/util/elntdfvsource.gif and b/src/main/resources/ui/util/elntdfvsource.gif differ diff --git a/src/main/resources/ui/util/elnterminal.gif b/src/main/resources/ui/util/elnterminal.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed74497b99141fa2a1c74c29afd796991793c257 Binary files /dev/null and b/src/main/resources/ui/util/elnterminal.gif differ diff --git a/src/main/resources/ui/util/elntransmissionline.gif b/src/main/resources/ui/util/elntransmissionline.gif index 6a076290bfa37fbf383b542be83c8af6a5a48d2b..d6b75a07bee993934b0fcbf47cd874379069ce57 100644 Binary files a/src/main/resources/ui/util/elntransmissionline.gif and b/src/main/resources/ui/util/elntransmissionline.gif differ diff --git a/src/main/resources/ui/util/elnvccs.gif b/src/main/resources/ui/util/elnvccs.gif index 4b5e82b7e67f5e57f931f0ff035c8c8537101a88..df5be06b8b4eb0a8af9f2c7f60953569dc76d8e6 100644 Binary files a/src/main/resources/ui/util/elnvccs.gif and b/src/main/resources/ui/util/elnvccs.gif differ diff --git a/src/main/resources/ui/util/elnvcvs.gif b/src/main/resources/ui/util/elnvcvs.gif index 18c0b47797d1d303e8ecfb444815775ef3a802e6..cce3464f6b46104de26ee8acab1b36d1cc7f4787 100644 Binary files a/src/main/resources/ui/util/elnvcvs.gif and b/src/main/resources/ui/util/elnvcvs.gif differ diff --git a/src/main/resources/ui/util/elnvsource.gif b/src/main/resources/ui/util/elnvsource.gif index 6df65765bdd7acc9556b5dff4668c6e62600e50b..3b93c4658126de0a23fc6e99a0cf025836d04141 100644 Binary files a/src/main/resources/ui/util/elnvsource.gif and b/src/main/resources/ui/util/elnvsource.gif differ diff --git a/ttool/launch_configurations/test/TestAvatarADComponentsDisabling.launch b/ttool/launch_configurations/test/TestAvatarADComponentsDisabling.launch new file mode 100644 index 0000000000000000000000000000000000000000..a8b6b650fa26aec1f71de85314f81d202f2de616 --- /dev/null +++ b/ttool/launch_configurations/test/TestAvatarADComponentsDisabling.launch @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.avatarad.TestAvatarADComponentsDisabling"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/> +</launchConfiguration> diff --git a/ttool/launch_configurations/test/TestAvatarDesignPanelTranslator.launch b/ttool/launch_configurations/test/TestAvatarDesignPanelTranslator.launch new file mode 100644 index 0000000000000000000000000000000000000000..c5f4c28dcadbf986ddc9bdbbf95c13a06ea9ef27 --- /dev/null +++ b/ttool/launch_configurations/test/TestAvatarDesignPanelTranslator.launch @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.TestAvatarDesignPanelTranslator"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dresources_dir="src/test/resources/""/> +</launchConfiguration> diff --git a/ttool/launch_configurations/test/TestAvatarSMDComponentsDisabling.launch b/ttool/launch_configurations/test/TestAvatarSMDComponentsDisabling.launch new file mode 100644 index 0000000000000000000000000000000000000000..05a1e746555eb72d8bd721491abc6479d83ebd53 --- /dev/null +++ b/ttool/launch_configurations/test/TestAvatarSMDComponentsDisabling.launch @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.avatarsmd.TestAvatarSMDComponentsDisabling"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/> +</launchConfiguration> diff --git a/ttool/launch_configurations/test/TestGTMLModeling.launch b/ttool/launch_configurations/test/TestGTMLModeling.launch new file mode 100644 index 0000000000000000000000000000000000000000..b6904cd2013430aac80890ddcb9134870f43afae --- /dev/null +++ b/ttool/launch_configurations/test/TestGTMLModeling.launch @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/ttool/src/test/java/ui/TestGTMLModeling.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.TestGTMLModeling"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dresources_dir="src/test/resources/""/> +</launchConfiguration> diff --git a/ttool/launch_configurations/test/TestTDiagramPanel.launch b/ttool/launch_configurations/test/TestTDiagramPanel.launch index 6f00f9fc6bc7bc897dcaed3f548f715c03fd9d76..658c682e2f6940564ece29726adb335359bdd2b7 100644 --- a/ttool/launch_configurations/test/TestTDiagramPanel.launch +++ b/ttool/launch_configurations/test/TestTDiagramPanel.launch @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> -<listEntry value="/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java"/> +<listEntry value="/ttool/src/test/java/ui/TestTDiagramPanel.java"/> </listAttribute> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> <listEntry value="1"/> @@ -10,6 +10,6 @@ <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> -<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.tmldd.TestTDiagramPanel"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.TestTDiagramPanel"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> </launchConfiguration> diff --git a/ttool/launch_configurations/test/TestTMLADComponentsDisabling.launch b/ttool/launch_configurations/test/TestTMLADComponentsDisabling.launch new file mode 100644 index 0000000000000000000000000000000000000000..db2d3b773a244a71d9073cb346c999a488571d41 --- /dev/null +++ b/ttool/launch_configurations/test/TestTMLADComponentsDisabling.launch @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.tmlad.TestTMLADComponentsDisabling"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> +</launchConfiguration> diff --git a/ttool/launch_configurations/test/TestTMLCPComponentsDisabling.launch b/ttool/launch_configurations/test/TestTMLCPComponentsDisabling.launch new file mode 100644 index 0000000000000000000000000000000000000000..2eff4393502d39e7be70cd65da41e23d25fcb881 --- /dev/null +++ b/ttool/launch_configurations/test/TestTMLCPComponentsDisabling.launch @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ui.tmlcp.TestTMLCPComponentsDisabling"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ttool"/> +</launchConfiguration> diff --git a/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java b/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java index b9b7c0e8e3d05ea225d585f9dfdb4160c31dfc2d..3e47f9cfbf079a214f74529451b26fea1e369f34 100644 --- a/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java +++ b/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java @@ -45,47 +45,30 @@ package avatartranslator; -import org.junit.Test; -import org.junit.*; - -import static org.junit.Assert.*; -import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; - -import java.util.LinkedList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; +import org.junit.Before; +import org.junit.Test; import ui.TAttribute; -import ui.avatarbd.AvatarBDPragma; import ui.avatarbd.AvatarBDPanel; - -import avatartranslator.ErrorAccumulator; -import avatartranslator.AvatarStateMachine; -import avatartranslator.AvatarState; -import avatartranslator.AvatarAttribute; -import avatartranslator.AvatarType; -import avatartranslator.AvatarBlock; -import avatartranslator.AvatarPragma; -import avatartranslator.AvatarPragmaSecret; -import avatartranslator.AvatarPragmaSecrecyAssumption; -import avatartranslator.AvatarPragmaInitialKnowledge; -import avatartranslator.AvatarPragmaPrivatePublicKey; -import avatartranslator.AvatarPragmaPublic; -import avatartranslator.AvatarPragmaAuthenticity; -import avatartranslator.AvatarPragmaConstant; +import ui.avatarbd.AvatarBDPragma; public class AvatarPragmaTests { List<AvatarPragma> res; ErrorAccumulator errorAcc; - HashMap<String, List<TAttribute>> typeAttributesMap = new HashMap<>(); - HashMap<String, String> nameTypeMap = new HashMap<String, String>(); - LinkedList<AvatarBlock> blocks; + Map<String, List<TAttribute>> typeAttributesMap = new HashMap<>(); + Map<String, String> nameTypeMap = new HashMap<String, String>(); + List<AvatarBlock> blocks; AvatarBDPragma bdpragma; - public AvatarPragmaTests () { + + public AvatarPragmaTests() { // } @@ -127,8 +110,8 @@ public class AvatarPragmaTests { this.nameTypeMap.put("C.m", "T1"); this.nameTypeMap.put("B.m", "T1"); this.nameTypeMap.put("C.d", "T2"); - LinkedList<TAttribute> t1s = new LinkedList<TAttribute>(); - LinkedList<TAttribute> t2s = new LinkedList<TAttribute>(); + List<TAttribute> t1s = new LinkedList<TAttribute>(); + List<TAttribute> t2s = new LinkedList<TAttribute>(); t1s.add(attr_a); t1s.add(attr_b); t2s.add(attr_c); @@ -142,9 +125,6 @@ public class AvatarPragmaTests { } //protected void test () { - - - @Test public void testBadKeywordNoPragmaCreated(){ //Test Bad keyword diff --git a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java index 57848483234a02f60e4e75fd75a678c07d1f77db..1a7af105021ece6d3a50606ea9465b6c9bf0e31e 100644 --- a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java +++ b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java @@ -48,7 +48,7 @@ package avatartranslator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.util.LinkedList; +import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; @@ -92,7 +92,7 @@ public class AvatarSecurityTranslationTests { mgui.dtree = new JDiagramTree(mgui); mgui.dtree.setCellRenderer(new DiagramTreeRenderer()); ToolTipManager.sharedInstance().registerComponent(mgui.dtree); - JScrollPane scrollPane = new JScrollPane(mgui.dtree); + /*JScrollPane scrollPane =*/ new JScrollPane(mgui.dtree); mgui.newTurtleModeling(); // mgui.tabs = new Vector<TURTLEPanel>(); TMLComponentDesignPanel tmlcdp = new TMLComponentDesignPanel(mgui); @@ -151,7 +151,7 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); //First state is start state assertTrue(elems.get(0) instanceof AvatarStartState); //state is avatartransition @@ -186,7 +186,7 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); AvatarTransition at = (AvatarTransition) elems.get(3); //Check that action is encryption @@ -212,7 +212,7 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); AvatarTransition at = (AvatarTransition) elems.get(3); //Check that action is empty @@ -242,15 +242,13 @@ public class AvatarSecurityTranslationTests { assertTrue(avspec!=null); AvatarBlock block1 = avspec.getBlockWithName("task1"); AvatarStateMachine sm = block1.getStateMachine(); - LinkedList<AvatarStateMachineElement> elems= sm.getListOfElements(); + List<AvatarStateMachineElement> elems= sm.getListOfElements(); AvatarTransition at = (AvatarTransition) elems.get(3); //Check that action is encryption assertEquals(at.getActions().get(0).getName().replaceAll(" ",""),"mac_mac=MAC(mac,key_mac)"); } - - public static void main(String[] args){ AvatarSecurityTranslationTests apt = new AvatarSecurityTranslationTests (); //apt.runTest (); diff --git a/ttool/src/test/java/launcher/TestRshClient.java b/ttool/src/test/java/launcher/TestRshClient.java index 0ac94f9481f6e54f999187a416d464264e54daf2..c2ba833c4d86e73614d29acda93ad4fa92abef98 100644 --- a/ttool/src/test/java/launcher/TestRshClient.java +++ b/ttool/src/test/java/launcher/TestRshClient.java @@ -2,7 +2,6 @@ package launcher; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.io.File; import java.io.StringWriter; @@ -14,9 +13,6 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import launcher.LauncherException; -import launcher.RshClient; -import launcher.RshServer; import myutil.FileException; import myutil.FileUtils; import test.AbstractTest; @@ -74,11 +70,11 @@ public class TestRshClient extends AbstractTest { throws Exception { SERVER_THREAD.interrupt(); } - - private void handleException( final Throwable th ) { - th.printStackTrace(); - fail( th.getLocalizedMessage() ); - } +// +// private void handleException( final Throwable th ) { +// th.printStackTrace(); +// fail( th.getLocalizedMessage() ); +// } @Test public void testStopCommand() { diff --git a/ttool/src/test/java/test/AbstractTest.java b/ttool/src/test/java/test/AbstractTest.java index 394ca6ac61e026109222e80135003b7e1e9f8e54..9d650f92d8efd3340e7c32cb18aa35259673cf1d 100644 --- a/ttool/src/test/java/test/AbstractTest.java +++ b/ttool/src/test/java/test/AbstractTest.java @@ -1,8 +1,29 @@ package test; +import static org.junit.Assert.fail; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.w3c.dom.Document; +import org.xml.sax.SAXException; + +import myutil.FileException; +import myutil.FileUtils; + public abstract class AbstractTest { protected static String RESOURCES_DIR = ""; + protected static String INPUT_DIR; + protected static String EXPECTED_CODE_DIR; + protected static String ACTUAL_CODE_DIR; + protected static final String TXT_EXT = ".txt"; + protected static final String XML_EXT = ".xml"; protected static String getBaseResourcesDir() { final String systemPropResDir = System.getProperty( "resources_dir" ); @@ -13,4 +34,75 @@ public abstract class AbstractTest { return systemPropResDir; } + + protected void checkResult( final String actualCode, + final String fileName ) { + try { + final String expectedCode = FileUtils.loadFile( EXPECTED_CODE_DIR + fileName + TXT_EXT ); + + if ( !expectedCode.equals( actualCode ) ) { + saveActualResults( fileName + TXT_EXT, actualCode ); + } + } + catch ( FileException ex ) { + handleException( ex ); + } + } + + protected void checkResultXml( final String actualCode, + final String fileName ) { + try { + final String expectedCode = FileUtils.loadFile( EXPECTED_CODE_DIR + fileName + XML_EXT ); + + if ( !compareXml( actualCode, expectedCode ) ) { + saveActualResults( fileName + XML_EXT, actualCode ); + } + } + catch ( ParserConfigurationException | SAXException | IOException | FileException ex ) { + handleException( ex ); + } + } + + private void saveActualResults( final String fileName, + final String actualCode ) { + final String filePath = ACTUAL_CODE_DIR + fileName; + final File fileToSave = new File( filePath ); + final File dir = fileToSave.getParentFile(); + + if (!dir.exists() ) { + dir.mkdirs(); + } + + try { + FileUtils.saveFile( filePath, actualCode ); + fail( "Differences were found between actual and expected code!!" ); + } + catch( final FileException ex ) { + handleException( ex ); + } + } + + protected boolean compareXml( final String result, + final String expected ) + throws ParserConfigurationException, SAXException, IOException { + DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance(); + documentFactory.setNamespaceAware( true ); + documentFactory.setCoalescing( true ); + documentFactory.setIgnoringElementContentWhitespace( true ); + documentFactory.setIgnoringComments( true ); + DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder(); + + final Document doc1 = documentBuilder.parse( new ByteArrayInputStream( result.getBytes() ) ); + doc1.normalizeDocument(); + + final Document doc2 = documentBuilder.parse( new ByteArrayInputStream( expected.getBytes() ) ); + doc2.normalizeDocument(); + + return doc1.isEqualNode( doc2 ); + } + + protected void handleException( final Throwable th ) { + th.printStackTrace(); + fail( th.getLocalizedMessage() ); + } } diff --git a/ttool/src/test/java/ui/AbstractUITest.java b/ttool/src/test/java/ui/AbstractUITest.java index 1d2a1c6ba9a781097d0923a1691141a0a40eb1eb..a18e2dcf87ba97f23f0154a072a6993b7cb9d768 100644 --- a/ttool/src/test/java/ui/AbstractUITest.java +++ b/ttool/src/test/java/ui/AbstractUITest.java @@ -1,24 +1,70 @@ package ui; -import static org.junit.Assert.fail; +import java.io.File; +import java.util.Arrays; +import java.util.Collection; import myutil.PluginManager; import test.AbstractTest; -import ui.util.IconManager; public abstract class AbstractUITest extends AbstractTest { - protected final MainGUI mainGui; + protected final MainGUI mainGUI; protected AbstractUITest() { - IconManager.loadImg(); - mainGui = new MainGUI(false,false, false, false, false, false, false, false, false, false, true, false, false); - mainGui.build(); + + // DB: Not needed for tests (causes NPE) + //IconManager.loadImg(); + mainGUI = new MainGUI(false,false, false, false, false, false, false, false, false, false, true, false, false); + mainGUI.build(); PluginManager.pluginManager = new PluginManager(); } - protected void handleException( final Throwable th ) { - th.printStackTrace(); - fail( th.getLocalizedMessage() ); + protected void openModel( final String fileName ) { + final String fullFileName = fileName + XML_EXT; + mainGUI.openProjectFromFile( new File( INPUT_DIR + fullFileName ) ); + } + + protected TMLArchiPanel findArchiPanel( final String name ) { + for ( final TMLArchiPanel panel : mainGUI.getTMLArchiDiagramPanels() ) { + if ( name.equals( mainGUI.getTitleAt( panel ) ) ) { + return panel; + } + } + + return null; } + + protected TDiagramPanel findDiagramPanel( final TDiagramPanel parentPanel, + final String diagramName ) { + for ( final TDiagramPanel subPanel : parentPanel.tp.getPanels() ) { + if ( diagramName.equals( subPanel.getName() ) ) { + return subPanel; + } + } + + return null; + } + + protected TGComponent findDiagComponent( final int compoId, + final TDiagramPanel diagPanel ) { + return findDiagComponent( compoId, diagPanel.componentList ); + } + + protected TGComponent findDiagComponent( final int compoId, + final Collection<TGComponent> components ) { + for ( final TGComponent compo : components ) { + if ( compoId == compo.getId() ) { + return compo; + } + + final TGComponent subCompo = findDiagComponent( compoId, Arrays.asList( compo.tgcomponent ) ); + + if ( subCompo != null ) { + return subCompo; + } + } + + return null; + } } diff --git a/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java b/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java new file mode 100644 index 0000000000000000000000000000000000000000..782b3814a9e00b7a3594f8d3d411a7d65a2934ed --- /dev/null +++ b/ttool/src/test/java/ui/TestAvatarDesignPanelTranslator.java @@ -0,0 +1,256 @@ +package ui; + +import java.io.File; + +import org.junit.BeforeClass; +import org.junit.Test; + +import avatartranslator.AvatarBlock; +import avatartranslator.AvatarConstant; +import avatartranslator.AvatarElement; +import avatartranslator.AvatarSpecification; + +public class TestAvatarDesignPanelTranslator extends AbstractUITest { + + private static final String TAB_MAIN_DESIGN = "MainDesign"; + + private static final String DIAG_WALLET = "Wallet"; + private static final String DIAG_COFFEE_MACHINE = "CoffeeMachine"; + private static final String DIAG_TEA_BUTTON = "TeaButton"; + private static final String DIAG_COFFEE_BUTTON = "CoffeeButton"; + + private static final String TAB_AVATAR_DESIGN = "AVATAR Design"; + + private static final String DIAG_PAGE_LOADER = "PageLoader"; + + private static final String TAB_DESIGN_LOSSY = "Design_lossy"; + + private static final String DIAG_ON_BOARD_COMMUNICATION = "OnBoardCommunication"; + + private static final String TAB_DESIGN = "Design"; + + private static final String DIAG_ALICE= "Alice"; + + @BeforeClass + public static void setUpBeforeClass() + throws Exception { + RESOURCES_DIR = getBaseResourcesDir() + "ui/diagram2avatar/"; + INPUT_DIR = RESOURCES_DIR + "input/"; + EXPECTED_CODE_DIR = RESOURCES_DIR + "expected/"; + ACTUAL_CODE_DIR = RESOURCES_DIR + "actual/"; + } + + public TestAvatarDesignPanelTranslator() { + super(); + } + + private AvatarSpecification translateDiagramToAvatar( final String diagramName ) + throws MalformedModelingException { + final AvatarDesignPanel panel = (AvatarDesignPanel) mainGUI.getTURTLEPanel( diagramName ); + + // Ensure the two static boolean constants are always instantiated before resetting the static ID counter + final Object dummy = AvatarConstant.TRUE; + + // Reset the ID to ensure IDs are the same as those of the expected specifications + AvatarElement.resetID(); + + final AvatarDesignPanelTranslator translator = new AvatarDesignPanelTranslator( panel ); + + final AvatarSpecification spec = translator.generateAvatarSpecification( panel.getAvatarBDPanel().getFullStateMachineOwnerList() ); + + if ( !translator.getErrors().isEmpty() ) { + throw new MalformedModelingException(); + } + + return spec; + } + + private void checkResult( final AvatarElement avatarElement, + final String fileName ) { + checkResult( avatarElement.toString(), fileName ); + } + + private void testTranslateStateMachineDiagramToAvatarDisable( final String modelName, + final String tabName, + final String blockName, + final String testName, + final int... composToDisable ) + throws MalformedModelingException { + openModel( modelName ); + + final AvatarDesignPanel panel = (AvatarDesignPanel) mainGUI.getTURTLEPanel( tabName ); + + final TDiagramPanel stateMachineDiagramPanel = findDiagramPanel( panel.getAvatarBDPanel(), blockName ); + + for ( final int compoId : composToDisable ) { + final TGComponent compoToDisable = findDiagComponent( compoId, stateMachineDiagramPanel ); + compoToDisable.setEnabled( false ); + } + + final AvatarSpecification spec = translateDiagramToAvatar( tabName ); + final AvatarBlock block = spec.getBlockWithName( blockName ); + + final String expectedSubDirName = composToDisable.length == 0 ? "" : "components_disabling"; + + final String fileNameSuffix = composToDisable.length == 0 ? "" : "_Disable_"; + + checkResult( block.getStateMachine(), expectedSubDirName + File.separatorChar + blockName + fileNameSuffix + testName ); + } + + private void testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( final String tabName, + final String blockName, + final String testName, + final int... composToDisable ) + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarDisable( "CoffeeMachine_Avatar", tabName, blockName, testName, composToDisable ); + } + + private void testTranslateStateMachineDiagramToAvatarCoffeeMachine( final String tabName, + final String blockName ) + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( tabName, blockName, "", new int[ 0 ] ); + } + + private void testTranslateStateMachineDiagramToAvatarEbookReaderDisable( final String tabName, + final String blockName, + final String testName, + final int... composToDisable ) + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarDisable( "ebook_reader_01", tabName, blockName, testName, composToDisable ); + } + + private void testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( final String tabName, + final String blockName, + final String testName, + final int... composToDisable ) + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarDisable( "FutureAirNavigationSystem", tabName, blockName, testName, composToDisable ); + } + + private void testTranslateStateMachineDiagramToAvatarExampleFunctionCall( final String tabName, + final String blockName, + final String testName, + final int... composToDisable ) + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarDisable( "exampleFunctionCall", tabName, blockName, testName, composToDisable ); + } + + // Translation from diagram to Avatar + @Test + public void testTranslateStateMachineDiagramToAvatarCoffeeMachineWallet() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_WALLET ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarCoffeeMachineCoffeeMachine() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarCoffeeMachineTeaButton() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_TEA_BUTTON ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarCoffeeMachineCoffeeButton() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachine( TAB_MAIN_DESIGN, DIAG_COFFEE_BUTTON ); + } + + // Components disabling tests + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableExpireTimer() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( TAB_DESIGN_LOSSY, DIAG_ON_BOARD_COMMUNICATION, "ExpireTimer", 3802 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableLibraryFunctionCall() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarExampleFunctionCall( TAB_DESIGN, DIAG_ALICE, "LibraryFunctionCall", 218 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableRandom() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarEbookReaderDisable( TAB_AVATAR_DESIGN, DIAG_PAGE_LOADER, "Random", 794 ); + } + + @Test + public void testTranslateToAvatarCoffeeMachineDisableReceiveSignal() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "ReceiveSignal", 820 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableResetTimer() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( TAB_DESIGN_LOSSY, DIAG_ON_BOARD_COMMUNICATION, "ResetTimer", 3780 ); + } + + @Test + public void testTranslateToAvatarCoffeeMachineDisableSendSignal() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "SendSignal", 809 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableSetTimer() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarFutureAirNavigationSystemDisable( TAB_DESIGN_LOSSY, DIAG_ON_BOARD_COMMUNICATION, "SetTimer", 3791 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableState() + throws MalformedModelingException { + + // Testing disabling of states with the same name + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "State", 943 ); + + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "State", 902 ); + + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "State", 861 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableCompositeState() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "CompositeState", 1407 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableTransitionInfoGuard() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "TransitionInfoGuard", 789 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableTransitionInfoAfterActions() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_WALLET, "TransitionInfoAfterActions", 782 ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableTransitionInfoComputeFor() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "TransitionInfoComputeFor", 985 ); + } + + // Tests for disabling several elements + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableCompoInOutTransitions() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "CompoInOutTransitions", new int[]{ 1366, 964, 957 } ); + } + + @Test + public void testTranslateStateMachineDiagramToAvatarDisableComponentBranch() + throws MalformedModelingException { + testTranslateStateMachineDiagramToAvatarCoffeeMachineDisable( TAB_MAIN_DESIGN, DIAG_COFFEE_MACHINE, "ComponentBranch", new int[]{ 1072, 1124, 1165, 1061 } ); + } +} diff --git a/ttool/src/test/java/ui/TestGTMLModeling.java b/ttool/src/test/java/ui/TestGTMLModeling.java new file mode 100644 index 0000000000000000000000000000000000000000..523cc1817f886857761813d965ddf0e1e7eb7566 --- /dev/null +++ b/ttool/src/test/java/ui/TestGTMLModeling.java @@ -0,0 +1,257 @@ +package ui; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.BeforeClass; +import org.junit.Test; + +import tmltranslator.TMLMapping; +import tmltranslator.TMLModeling; +import tmltranslator.TMLTask; + +public class TestGTMLModeling extends AbstractUITest { + + private static final String MODEL_ZIGBEE_TUTORIAL = "ZigBeeTutorial"; + private static final String DIAG_ZIGBEE_TX = "Zigbee_TX"; + private static final String DIAG_F_SOURCE = "F_Source"; + private static final String DIAG_X_SOURCE = "X_Source"; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + RESOURCES_DIR = getBaseResourcesDir() + "ui/diagram2tml/"; + INPUT_DIR = RESOURCES_DIR + "input/"; + EXPECTED_CODE_DIR = RESOURCES_DIR + "expected/"; + ACTUAL_CODE_DIR = RESOURCES_DIR + "actual/"; + } + + public TestGTMLModeling() { + super(); + } + + private TMLModeling<TGComponent> translateToTMLModeling( final String tabName ) + throws MalformedTMLDesignException { + final TMLComponentDesignPanel panel = (TMLComponentDesignPanel) mainGUI.getTURTLEPanel( tabName ); + final GTMLModeling gtmlm = new GTMLModeling( panel, true ); + gtmlm.putPrefixName( true ); + + final TMLModeling<TGComponent> model = gtmlm.translateToTMLModeling( false ); + + if ( !gtmlm.getCheckingErrors().isEmpty() ) { + throw new MalformedTMLDesignException( "Errors were found when generating TML model.", gtmlm.getCheckingErrors() ); + } + + return model; + } + + private String translateToTMLModelingXMLZigBeeTutorial( final String diagramName ) + throws MalformedTMLDesignException { + openModel( MODEL_ZIGBEE_TUTORIAL ); + + return translateToTMLModeling( diagramName ).toXML(); + } + + private TMLMapping<TGComponent> translateToTMLMapping( final String diagramName ) + throws MalformedTMLDesignException { + final TMLArchiPanel panel = findArchiPanel( diagramName ); + final GTMLModeling gtmlm = new GTMLModeling( panel, true); + gtmlm.putPrefixName( true ); + + final TMLMapping<TGComponent> model = gtmlm.translateToTMLMapping(); + + if ( !gtmlm.getCheckingErrors().isEmpty() ) { + throw new MalformedTMLDesignException( "Errors were found when generating TML model.", gtmlm.getCheckingErrors() ); + } + + return model; + } + + private String translateToTMLMappingXMLZigBeeTutorial( final String diagramName ) + throws MalformedTMLDesignException { + openModel( MODEL_ZIGBEE_TUTORIAL ); + + return translateToTMLMapping( diagramName ).toXML(); + } + + @Test + public void testTranslateToTMLModelingZigbeeTX() + throws MalformedTMLDesignException { + final String actualCode = translateToTMLModelingXMLZigBeeTutorial( DIAG_ZIGBEE_TX ); + + checkResultXml( actualCode, DIAG_ZIGBEE_TX ); + } + + @Test + public void testTranslateToTMLMappingMapping0() + throws MalformedTMLDesignException { + final String diagramName = "Mapping_0"; + final String actualCode = translateToTMLMappingXMLZigBeeTutorial( diagramName ); + + checkResultXml( actualCode, diagramName ); + } + + protected void testTranslateToTMLModelingDisable( final String modelName, + final String tabName, + final String taskName, + final String testName, + final int... compoIds ) + throws MalformedTMLDesignException { + openModel( modelName ); + + final TURTLEPanel panel = mainGUI.getTURTLEPanel( tabName ); + final TDiagramPanel parentPanel = panel.tdp; + + final TDiagramPanel activityDiagramPanel = findDiagramPanel( parentPanel, taskName ); + + for ( final int compoId : compoIds ) { + final TGComponent compoToDisable = findDiagComponent( compoId, activityDiagramPanel ); + compoToDisable.setEnabled( false ); + } + + final TMLModeling<TGComponent> tmlModel = translateToTMLModeling( tabName ); + final String prefixedTaskName = tabName + "__" + taskName; + final TMLTask task = tmlModel.getTMLTaskByName( prefixedTaskName ); + + checkResultXml( task.getActivityDiagram().toXML(), "components_disabling/" + taskName + "_Disable_" + testName ); + } + + protected void testTranslateToTMLModelingDisableZigBeeTutorial( final String taskName, + final String testName, + final int... compoIds ) + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisable( MODEL_ZIGBEE_TUTORIAL, DIAG_ZIGBEE_TX, taskName, testName, compoIds ); + } + + protected void testTranslateToTMLModelingDisableSmartCardProtocol( final String taskName, + final String testName, + final int... compoIds ) + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisable( "SmartCardProtocol", "AppC", taskName, testName, compoIds ); + } + + // Tests for disabling every element type + + @Test + public void testTranslateToTMLModelingDisableActionState() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionState", 925 ); + } + + @Test + public void testTranslateToTMLModelingDisableSendRequest() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "SendRequest", 922 ); + } + + @Test + public void testTranslateToTMLModelingSendEvent() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "SendEvent", 919 ); + } + + @Test + public void testTranslateToTMLModelingDisableExecC() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( "X_Chip2Octet", "ExecC", 1009 ); + } + + @Test + public void testTranslateToTMLModelingDisableExecI() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_X_SOURCE, "ExecI", 935 ); + } + + @Test + public void testTranslateToTMLModelingDisableReadRequestArg() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_X_SOURCE, "ReadRequestArg", 943 ); + } + + @Test + public void testTranslateToTMLModelingDisableWriteChannel() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_X_SOURCE, "WriteChannel", 940 ); + } + + @Test + public void testTranslateToTMLModelingDisableWaitEvent() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( "F_Symbol2ChipSeq", "WaitEvent", 952 ); + } + + @Test + public void testTranslateToTMLModelingDisableReadChannel() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( "X_Symbol2ChipSeq", "ReadChannel", 973 ); + } + + @Test + public void testTranslateToTMLModelingDisableActionStateSendRequest() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionStateSendRequest", new int[]{ 925, 922 } ); + } + + @Test + public void testTranslateToTMLModelingDisableForLoop() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableSmartCardProtocol( "InterfaceDevice", "ForLoop", 302 ); + } + + @Test + public void testTranslateToTMLModelingDisableForLoopAfterStart() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableSmartCardProtocol( "TCPIP", "ForLoopAfterStart", 610 ); + } + + @Test + public void testTranslateToTMLModelingDisableChoiceLeft() { + try { + testTranslateToTMLModelingDisableSmartCardProtocol( "InterfaceDevice", "ChoiceLeft", 236 ); + } + catch ( final MalformedTMLDesignException ex ) { + assertTrue( "TML modeling translation did not generate the expected '" + UICheckingError.MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC + "' error!", ex.getErrors().size() == 1 ); + + assertEquals( UICheckingError.MESSAGE_CHOICE_BOTH_STOCHASTIC_DETERMINISTIC, ex.getErrors().get( 0 ).toString() ); + } + } + + @Test + public void testTranslateToTMLModelingDisableChoiceLeftBottom() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableSmartCardProtocol( "TCPIP", "ChoiceLeftBottom", new int[]{ 564, 566 } ); + } + + @Test + public void testTranslateToTMLModelingDisableChoiceLeftBottomRight() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableSmartCardProtocol( "TCPIP", "ChoiceLeftBottomRight", new int[]{ 572, 573, 574 } ); + } + + // Tests for disabling connectors + + @Test + public void testTranslateToTMLModelingDisableConnector() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableSmartCardProtocol( "InterfaceDevice", "ConnectorChoice", 319 ); + } + + // Tests for disabling several elements + + @Test + public void testTranslateToTMLModelingDisableActionStateSendEvent() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionStateSendEvent", new int[]{ 925, 919 } ); + } + + @Test + public void testTranslateToTMLModelingDisableSendRequestSendEvent() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "SendRequestSendEvent", new int[]{ 922, 919 } ); + } + + @Test + public void testTranslateToTMLModelingDisableActionStateSendRequestSendEvent() + throws MalformedTMLDesignException { + testTranslateToTMLModelingDisableZigBeeTutorial( DIAG_F_SOURCE, "ActionStateSendRequestSendEvent", new int[]{ 925, 922, 919 } ); + } +} diff --git a/ttool/src/test/java/ui/TestGTURTLEModeling.java b/ttool/src/test/java/ui/TestGTURTLEModeling.java index 47814a365f8af99213762259dcab72d11aa8dd2d..1b2c2d8b0450c46b6dfdbc6359cc6de16f724b0e 100644 --- a/ttool/src/test/java/ui/TestGTURTLEModeling.java +++ b/ttool/src/test/java/ui/TestGTURTLEModeling.java @@ -17,7 +17,6 @@ import myutil.FileUtils; public class TestGTURTLEModeling extends AbstractUITest { - //private static final String RESOURCES_DIR = "resources/ui/generateccode/"; private String[] codeGenOptions = { "", "-mas" }; @BeforeClass @@ -30,17 +29,17 @@ public class TestGTURTLEModeling extends AbstractUITest { public TestGTURTLEModeling() { super(); - mainGui.openProjectFromFile( new File( RESOURCES_DIR + "models/ZigBeeTutorial.xml") ); + mainGUI.openProjectFromFile( new File( RESOURCES_DIR + "input/ZigBeeTutorial.xml") ); // FIXME: Temporarily ignoring the debug text file due to bug in comparator tool textComparator = new TextComparator( Collections.singletonList( "txt" ) ); } private void testGenerateCCode( final String mappingDiagName ) { - final TMLArchiPanel panel = findPanel( mappingDiagName ); + final TMLArchiPanel panel = findArchiPanel( mappingDiagName ); final Vector<TGComponent> compos = new Vector<TGComponent>( panel.tmlap.getComponentList() ); - assertTrue( mainGui.gtm.checkSyntaxTMLMapping( compos, panel, true ) ); + assertTrue( mainGUI.gtm.checkSyntaxTMLMapping( compos, panel, true ) ); final String codeDir = RESOURCES_DIR + mappingDiagName + File.separator + "actual" + File.separator; FileUtils.deleteFiles( codeDir ); @@ -48,7 +47,7 @@ public class TestGTURTLEModeling extends AbstractUITest { final String codeDirExpected = RESOURCES_DIR + mappingDiagName + File.separator + "expected" + File.separator; for( String compilerOption: codeGenOptions ) { - mainGui.gtm.generateCCode( codeDir, compilerOption ); + mainGUI.gtm.generateCCode( codeDir, compilerOption ); /*try { Thread.sleep(5000); } catch (Exception ignored) { @@ -71,16 +70,6 @@ public class TestGTURTLEModeling extends AbstractUITest { } } - private TMLArchiPanel findPanel( final String name ) { - for ( final TMLArchiPanel panel : mainGui.getTMLArchiDiagramPanels() ) { - if ( name.equals( mainGui.getTitleAt( panel ) ) ) { - return panel; - } - } - - return null; - } - @Test public void testGenerateCCodeMapping0() { testGenerateCCode( "Mapping_0" ); diff --git a/ttool/src/test/java/ui/TestTDiagramPanel.java b/ttool/src/test/java/ui/TestTDiagramPanel.java new file mode 100644 index 0000000000000000000000000000000000000000..3e30042828645589fd07b831930313ba3d2b2d2c --- /dev/null +++ b/ttool/src/test/java/ui/TestTDiagramPanel.java @@ -0,0 +1,66 @@ +package ui; + +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +import ui.tmldd.TMLArchiBUSNode; +import ui.tmldd.TMLArchiDiagramPanel; +import ui.tmldd.TMLArchiDiagramToolBar; + +public class TestTDiagramPanel extends AbstractUITest { + static TDiagramPanel diagramPanel; + static TGCWithInternalComponent component; + + public TestTDiagramPanel() { + super(); + } + + @Before + public void setUp() throws Exception { +// mgui = new MainGUI(false, false, false, false, false, false, false, false, false, false, false, true); +// mgui.build(); + //PluginManager.pluginManager = new PluginManager(); + final TToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI ); + diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar ); + component = new TMLArchiBUSNode( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.setComponentPointed(null); + } + + @Test + public void testMoveUp() { + diagramPanel.upComponent(); + diagramPanel.setComponentPointed(component); + diagramPanel.upComponent(); + assertTrue(component.getY() == 499); + assertTrue(component.getX() == 500); + } + + @Test + public void testMoveDown() { + diagramPanel.downComponent(); + diagramPanel.setComponentPointed(component); + diagramPanel.downComponent(); + assertTrue(component.getY() == 501); + assertTrue(component.getX() == 500); + } + + @Test + public void testMoveRight() { + diagramPanel.rightComponent(); + diagramPanel.setComponentPointed(component); + diagramPanel.rightComponent(); + assertTrue(component.getX() == 501); + assertTrue(component.getY() == 500); + } + + @Test + public void testMoveLeft() { + diagramPanel.leftComponent(); + diagramPanel.setComponentPointed(component); + diagramPanel.leftComponent(); + assertTrue(component.getX() == 499); + assertTrue(component.getY() == 500); + } +} diff --git a/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java b/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java new file mode 100644 index 0000000000000000000000000000000000000000..62a6e6406178a4b03bb7eb205ba7497dbfdc1be0 --- /dev/null +++ b/ttool/src/test/java/ui/avatarad/TestAvatarADComponentsDisabling.java @@ -0,0 +1,595 @@ +package ui.avatarad; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.awt.Point; +import java.util.Vector; + +import org.junit.Before; +import org.junit.Test; + +import ui.AbstractUITest; +import ui.CDElement; +import ui.TGComponent; +import ui.tmldd.TMLArchiDiagramPanel; +import ui.tmldd.TMLArchiDiagramToolBar; + +public class TestAvatarADComponentsDisabling extends AbstractUITest { + + private TMLArchiDiagramPanel diagramPanel; + + public TestAvatarADComponentsDisabling() { + super(); + } + + @Before + public void setUp() { + final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI ); + diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar ); + } + + @Test + public void testDisableAvatarADAcceptEventAction() { + final CDElement element = new AvatarADAcceptEventAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarADAction() { + final CDElement element = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarADActivity() { + final CDElement element = new AvatarADActivity( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarADAssociationConnector() { + final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TGComponent requestElement = new AvatarADSendSignalAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true ); + + final TGComponent con1 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + requestElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent actionElement = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true ); + + final TGComponent con2 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestElement.getTGConnectingPointAtIndex( 1 ), + actionElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElement = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final TGComponent con3 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + actionElement.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + assertTrue( con1.canBeDisabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( con3.canBeDisabled() ); + + con1.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con1.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + + con2.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con2.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADAssociationConnectorWithChoice() { + final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TGComponent requestElement = new AvatarADSendSignalAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true ); + + final TGComponent con1 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + requestElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent actionElement = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true ); + + final TGComponent con2 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestElement.getTGConnectingPointAtIndex( 1 ), + actionElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElement = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final TGComponent con3 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + actionElement.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + assertTrue( con1.canBeDisabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( con3.canBeDisabled() ); + + con1.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( requestElement.isEnabled() ); + assertTrue( con2.isEnabled() ); + assertFalse( actionElement.isEnabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + + con1.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( actionElement.isEnabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + + con2.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( con2.isEnabled() ); + assertFalse( actionElement.isEnabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + + con2.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( actionElement.isEnabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + } + + @Test + public void testDisableAvatarADChoice() { + final AvatarADChoice element = new AvatarADChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + + element.setGuard( Boolean.TRUE.toString(), 0 ); + TGComponent guard = element.getInternalTGComponent( 0 ); + assertTrue( guard.canBeDisabled() ); + + guard.setEnabled( false ); + assertFalse( guard.isEnabled() ); + + guard.setEnabled( true ); + assertTrue( guard.isEnabled() ); + + element.setGuard( null, 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + + element.setGuard( "", 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + + element.setGuard( AvatarADChoice.EMPTY_GUARD_TEXT, 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADConnectingPoint() { + final CDElement element = new AvatarADConnectingPoint( null, 0, -5, true, false, 0.5, 0.0 ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADJunction() { + final CDElement element = new AvatarADJunction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.isEnabled() ); + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADParallel() { + final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final AvatarADParallel parallel = new AvatarADParallel( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( parallel, parallel.getX(), parallel.getY(), false, true ); + + final TGComponent con1 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + parallel.getEnterConnectingPoints().get( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent actionBranch1 = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( actionBranch1, actionBranch1.getX(),actionBranch1.getY(), false, true ); + + final TGComponent con2 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + parallel.getExitConnectingPoints().get( 0 ), + actionBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementBranch1 = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true ); + + final TGComponent con3 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + actionBranch1.getTGConnectingPointAtIndex( 1 ), + stopElementBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + + final TGComponent actionBranch2 = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( actionBranch2, actionBranch2.getX(), actionBranch2.getY(), false, true ); + + final TGComponent con4 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + parallel.getExitConnectingPoints().get( 1 ), + actionBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent stopElementBranch2 = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch2, stopElementBranch2.getX(), stopElementBranch2.getY(), false, true ); + + final TGComponent con5 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + actionBranch2.getTGConnectingPointAtIndex( 1 ), + stopElementBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + final TGComponent actionBranch3 = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( actionBranch3, actionBranch3.getX(),actionBranch3.getY(), false, true ); + + final TGComponent con6 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + parallel.getExitConnectingPoints().get( 2 ), + actionBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true ); + + final TGComponent stopElementBranch3 = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch3.getX(), stopElementBranch3.getY(), false, true ); + + final TGComponent con7 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + actionBranch3.getTGConnectingPointAtIndex( 1 ), + stopElementBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true ); + + assertTrue( parallel.canBeDisabled() ); + + parallel.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( parallel.isEnabled() ); + assertTrue( parallel.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( actionBranch1.isEnabled() ); + assertTrue( actionBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertFalse( actionBranch2.isEnabled() ); + assertTrue( actionBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementBranch2.isEnabled() ); + assertFalse( stopElementBranch2.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + assertFalse( actionBranch3.isEnabled() ); + assertTrue( actionBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( stopElementBranch3.isEnabled() ); + assertFalse( stopElementBranch3.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertFalse( con7.canBeDisabled() ); + + parallel.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( parallel.isEnabled() ); + assertTrue( parallel.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( actionBranch1.isEnabled() ); + assertTrue( actionBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( actionBranch2.isEnabled() ); + assertTrue( actionBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementBranch2.isEnabled() ); + assertFalse( stopElementBranch2.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + assertTrue( actionBranch3.isEnabled() ); + assertTrue( actionBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( stopElementBranch3.isEnabled() ); + assertFalse( stopElementBranch3.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertFalse( con7.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADSendSignalAction() { + final CDElement element = new AvatarADSendSignalAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarADStartState() { + final CDElement element = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADStopFlow() { + final TGComponent startElement = new AvatarADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + final TGComponent action = new AvatarADAction( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( action, action.getX(), action.getY(), false, true ); + + final TGComponent con1 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + action.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent stopFlow = new AvatarADStopFlow( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopFlow, stopFlow.getX(), stopFlow.getY(), false, true ); + + final TGComponent con2 = new AvatarADAssociationConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + action.getTGConnectingPointAtIndex( 1 ), + stopFlow.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + assertFalse( stopFlow.canBeDisabled() ); + assertFalse( con2.canBeDisabled() ); + } + + @Test + public void testDisableAvatarADStopState() { + final CDElement element = new AvatarADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } +} diff --git a/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java b/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java new file mode 100644 index 0000000000000000000000000000000000000000..ce50b88c248c819fa9e8e14f32d5114ef986c00f --- /dev/null +++ b/ttool/src/test/java/ui/avatarsmd/TestAvatarSMDComponentsDisabling.java @@ -0,0 +1,1104 @@ +package ui.avatarsmd; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.awt.Point; +import java.util.Vector; + +import org.junit.Before; +import org.junit.Test; + +import ui.AbstractUITest; +import ui.CDElement; +import ui.TGComponent; +import ui.tmldd.TMLArchiDiagramPanel; +import ui.tmldd.TMLArchiDiagramToolBar; + +public class TestAvatarSMDComponentsDisabling extends AbstractUITest { + + private TMLArchiDiagramPanel diagramPanel; + + public TestAvatarSMDComponentsDisabling() { + super(); + } + + @Before + public void setUp() { + final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI ); + diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar ); + } + + @Test + public void testDisableAvatarSMDChoice() { + final AvatarSMDChoice element = new AvatarSMDChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + + // TODO +// element.setGuard( Boolean.TRUE.toString(), 0 ); +// TGComponent guard = element.getInternalTGComponent( 0 ); +// assertTrue( guard.canBeDisabled() ); +// +// guard.setEnabled( false ); +// assertFalse( guard.isEnabled() ); +// +// guard.setEnabled( true ); +// assertTrue( guard.isEnabled() ); +// +// element.setGuard( null, 0 ); +// guard = element.getInternalTGComponent( 0 ); +// assertFalse( guard.canBeDisabled() ); +// +// element.setGuard( "", 0 ); +// guard = element.getInternalTGComponent( 0 ); +// assertFalse( guard.canBeDisabled() ); +// +// element.setGuard( AvatarADChoice.EMPTY_GUARD_TEXT, 0 ); +// guard = element.getInternalTGComponent( 0 ); +// assertFalse( guard.canBeDisabled() ); + } + + @Test + public void testDisableAvatarSMDConnectingPoint() { + final CDElement element = new AvatarSMDConnectingPoint( null, 0, -5, true, false, 0.5, 0.0 ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableAvatarSMDConnector() { + final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TGComponent sendSignalElement = new AvatarSMDSendSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( sendSignalElement, sendSignalElement.getX(), sendSignalElement.getY(), false, true ); + + final AvatarSMDConnector con1 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + sendSignalElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent randomElement = new AvatarSMDRandom( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( randomElement, randomElement.getX(), randomElement.getY(), false, true ); + + final AvatarSMDConnector con2 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sendSignalElement.getTGConnectingPointAtIndex( 1 ), + randomElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final AvatarSMDConnector con3 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + randomElement.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + assertTrue( con1.canBeDisabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( con3.canBeDisabled() ); + + con1.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertFalse( sendSignalElement.isEnabled() ); + assertTrue( sendSignalElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( con2.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( con2.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertFalse( randomElement.isEnabled() ); + assertTrue( randomElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertFalse( con3.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( con3.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con1.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( sendSignalElement.isEnabled() ); + assertTrue( sendSignalElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( randomElement.isEnabled() ); + assertTrue( randomElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + + con2.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( sendSignalElement.isEnabled() ); + assertTrue( sendSignalElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( randomElement.isEnabled() ); + assertTrue( randomElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con2.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( sendSignalElement.isEnabled() ); + assertTrue( sendSignalElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( randomElement.isEnabled() ); + assertTrue( randomElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + } + + @Test + public void testDisableAvatarSMDExpireTimer() { + final CDElement element = new AvatarSMDExpireTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDLibraryFunctionCall() { + final CDElement element = new AvatarSMDLibraryFunctionCall( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDRandom() { + final CDElement element = new AvatarSMDRandom( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDReceiveSignal() { + final CDElement element = new AvatarSMDReceiveSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDResetTimer() { + final CDElement element = new AvatarSMDResetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDSendSignal() { + final CDElement element = new AvatarSMDSendSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDSetTimer() { + final CDElement element = new AvatarSMDSetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDStartState() { + final CDElement element = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableAvatarSMDState() { + final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + final AvatarSMDState compositeState1 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + compositeState1.setValue( "compositeState" ); + int indexState1 = 0; + diagramPanel.addComponent( compositeState1, compositeState1.getX(), compositeState1.getY(), false, true ); + final String testName = "test"; + + final TGComponent con1 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + compositeState1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent startElementState1 = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel ); + compositeState1.addInternalComponent( startElementState1, indexState1++ ); + + final TGComponent timerState11 = new AvatarSMDResetTimer( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel ); + compositeState1.addInternalComponent( timerState11, indexState1++ ); + + final AvatarSMDConnector conState11 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElementState1.getTGConnectingPointAtIndex( 0 ), + timerState11.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + conState11.setTransitionInfo( "false", "a = b" ); + conState11.setTransitionTime( "0", "2", "0", "10" ); + diagramPanel.addComponent( conState11, conState11.getX(), conState11.getY(), false, true ); + final AvatarSMDState compositeState2 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel ); + compositeState2.setValue( testName ); + int indexState2 = 0; + compositeState1.addInternalComponent( compositeState2, indexState1++ ); + + final TGComponent conState12 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + timerState11.getTGConnectingPointAtIndex( 1 ), + compositeState2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conState12, conState12.getX(), conState12.getY(), false, true ); + + final TGComponent startElementState2 = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, compositeState2, diagramPanel ); + compositeState2.addInternalComponent( startElementState2, indexState2++ ); + final TGComponent receiveSignalState2 = new AvatarSMDReceiveSignal( 500, 500, 0, 1400, 0, 1900, true, compositeState2, diagramPanel ); + compositeState2.addInternalComponent( receiveSignalState2, indexState2++ ); + + final TGComponent conState21 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElementState2.getTGConnectingPointAtIndex( 0 ), + receiveSignalState2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conState21, conState21.getX(), conState21.getY(), false, true ); + + final TGComponent timerState12 = new AvatarSMDResetTimer( 500, 500, 0, 1400, 0, 1900, true, compositeState1, diagramPanel ); + compositeState1.addInternalComponent( timerState12, indexState1++ ); + + final TGComponent conState13 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + receiveSignalState2.getTGConnectingPointAtIndex( 1 ), + timerState12.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conState13, conState13.getX(), conState13.getY(), false, true ); + + final TGComponent stateTest = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + stateTest.setValue( testName ); + diagramPanel.addComponent( stateTest, stateTest.getX(), stateTest.getY(), false, true ); + + final TGComponent conStateTest = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + timerState12.getTGConnectingPointAtIndex( 1 ), + stateTest.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conStateTest, conStateTest.getX(), conStateTest.getY(), false, true ); + + final TGComponent receiveSignal = new AvatarSMDReceiveSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + receiveSignal.setValue( testName ); + diagramPanel.addComponent( receiveSignal, receiveSignal.getX(), receiveSignal.getY(), false, true ); + + final TGComponent conReceiveSignal = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + stateTest.getTGConnectingPointAtIndex( 1 ), + receiveSignal.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conReceiveSignal, conReceiveSignal.getX(), conReceiveSignal.getY(), false, true ); + + final TGComponent stateTest2 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + stateTest2.setValue( "test2" ); + diagramPanel.addComponent( stateTest2, stateTest2.getX(), stateTest2.getY(), false, true ); + + final TGComponent conStateTest2 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + receiveSignal.getTGConnectingPointAtIndex( 1 ), + stateTest2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conStateTest2, conStateTest2.getX(), conStateTest2.getY(), false, true ); + + final TGComponent sendSignal = new AvatarSMDSendSignal( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + sendSignal.setValue( testName ); + diagramPanel.addComponent( sendSignal, sendSignal.getX(), sendSignal.getY(), false, true ); + + final TGComponent conSendSignal = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + stateTest2.getTGConnectingPointAtIndex( 1 ), + sendSignal.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conSendSignal, conSendSignal.getX(), conSendSignal.getY(), false, true ); + + final TGComponent stateTest3 = new AvatarSMDState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + stateTest3.setValue( testName ); + diagramPanel.addComponent( stateTest3, stateTest3.getX(), stateTest3.getY(), false, true ); + + final TGComponent conStateTest3 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sendSignal.getTGConnectingPointAtIndex( 1 ), + stateTest3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conStateTest3, conStateTest3.getX(), conStateTest3.getY(), false, true ); + + final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final TGComponent conStop = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + stateTest3.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( conStop, conStop.getX(), conStop.getY(), false, true ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( conState12.canBeDisabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( stateTest.canBeDisabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertFalse( stopElement.canBeDisabled() ); + assertFalse( conStop.canBeDisabled() ); + + compositeState1.setEnabled( false ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertFalse( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertFalse( timerState11.canBeDisabled() ); + assertFalse( timerState11.isEnabled() ); + assertFalse( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertFalse( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertFalse( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertFalse( compositeState2.canBeDisabled() ); + assertFalse( compositeState2.isEnabled() ); + assertFalse( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertFalse( receiveSignalState2.canBeDisabled() ); + assertFalse( receiveSignalState2.isEnabled() ); + assertFalse( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertFalse( timerState12.canBeDisabled() ); + assertFalse( timerState12.isEnabled() ); + assertFalse( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertTrue( stateTest.isEnabled() ); + assertFalse( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + compositeState1.setEnabled( true ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( receiveSignalState2.isEnabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertTrue( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + compositeState2.setEnabled( false ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertFalse( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertFalse( receiveSignalState2.canBeDisabled() ); + assertFalse( receiveSignalState2.isEnabled() ); + assertFalse( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertFalse( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertTrue( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + compositeState2.setEnabled( true ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( receiveSignalState2.isEnabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertTrue( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + stateTest.setEnabled( false ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( receiveSignalState2.isEnabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertFalse( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertFalse( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + stateTest.setEnabled( true ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( receiveSignalState2.isEnabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertTrue( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + + stateTest3.setEnabled( false ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( receiveSignalState2.isEnabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertFalse( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertFalse( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + + stateTest.setEnabled( true ); + + assertFalse( startElement.canBeDisabled() ); + assertTrue( startElement.isEnabled() ); + assertTrue( compositeState1.canBeDisabled() ); + assertTrue( compositeState1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertFalse( startElementState1.canBeDisabled() ); + assertTrue( startElementState1.isEnabled() ); + assertTrue( timerState11.canBeDisabled() ); + assertTrue( timerState11.isEnabled() ); + assertTrue( conState11.canBeDisabled() ); + assertTrue( conState11.isEnabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( conState11.getAvatarSMDTransitionInfo().isEnabled() ); + assertTrue( compositeState2.canBeDisabled() ); + assertTrue( compositeState2.isEnabled() ); + assertTrue( conState12.canBeDisabled() ); + assertTrue( conState12.isEnabled() ); + assertFalse( startElementState2.canBeDisabled() ); + assertTrue( startElementState2.isEnabled() ); + assertTrue( receiveSignalState2.canBeDisabled() ); + assertTrue( receiveSignalState2.isEnabled() ); + assertTrue( conState21.canBeDisabled() ); + assertTrue( conState21.isEnabled() ); + assertTrue( timerState12.canBeDisabled() ); + assertTrue( timerState12.isEnabled() ); + assertTrue( conState13.canBeDisabled() ); + assertTrue( conState13.isEnabled() ); + + assertTrue( stateTest.canBeDisabled() ); + assertTrue( stateTest.isEnabled() ); + assertTrue( conStateTest.canBeDisabled() ); + assertTrue( conStateTest.isEnabled() ); + assertTrue( receiveSignal.canBeDisabled() ); + assertTrue( receiveSignal.isEnabled() ); + assertTrue( conReceiveSignal.canBeDisabled() ); + assertTrue( conReceiveSignal.isEnabled() ); + assertTrue( stateTest2.canBeDisabled() ); + assertTrue( stateTest2.isEnabled() ); + assertTrue( conStateTest2.canBeDisabled() ); + assertTrue( conStateTest2.isEnabled() ); + assertTrue( sendSignal.canBeDisabled() ); + assertTrue( sendSignal.isEnabled() ); + assertTrue( conSendSignal.canBeDisabled() ); + assertTrue( conSendSignal.isEnabled() ); + assertTrue( stateTest3.canBeDisabled() ); + assertTrue( stateTest3.isEnabled() ); + assertTrue( conStateTest3.canBeDisabled() ); + assertTrue( conStateTest3.isEnabled() ); + + assertFalse( stopElement.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( conStop.canBeDisabled() ); + assertTrue( conStop.isEnabled() ); + } + + @Test + public void testDisableAvatarSMDStopState() { + final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + final TGComponent action = new AvatarSMDSetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( action, action.getX(), action.getY(), false, true ); + + final TGComponent con1 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + action.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final TGComponent con2 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + action.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + assertFalse( stopElement.canBeDisabled() ); + assertFalse( con2.canBeDisabled() ); + } + + @Test + public void testDisableAvatarSMDTransitionInfo() { + final TGComponent startElement = new AvatarSMDStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + final TGComponent setTimer = new AvatarSMDSetTimer( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( setTimer, setTimer.getX(), setTimer.getY(), false, true ); + + final AvatarSMDConnector con1 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + setTimer.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + final String guard = "false"; + final String action = "a = b"; + con1.setTransitionInfo( guard, action ); + final String minAfter = "0"; + final String maxAfter = "2"; + final String minCompute = "1"; + final String maxCompute = "10"; + con1.setTransitionTime( minAfter, maxAfter, minCompute, maxCompute ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent stopElement = new AvatarSMDStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final AvatarSMDConnector con2 = new AvatarSMDConnector( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + setTimer.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( con2.getAvatarSMDTransitionInfo().canBeDisabled() ); + + con1.setEnabled( false ); + assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertTrue( con1.getAvatarSMDTransitionInfo().isEnabled() ); + assertEquals( guard, con1.getEffectiveGuard() ); + assertEquals( action, con1.getEffectiveActions().get( 0 ) ); + assertEquals( minAfter, con1.getEffectiveAfterMinDelay() ); + assertEquals( maxAfter, con1.getEffectiveAfterMaxDelay() ); + assertEquals( minCompute, con1.getEffectiveComputeMinDelay() ); + assertEquals( maxCompute, con1.getEffectiveComputeMaxDelay() ); + + con1.getAvatarSMDTransitionInfo().setEnabled( false ); + assertTrue( con1.getAvatarSMDTransitionInfo().canBeDisabled() ); + assertFalse( con1.getAvatarSMDTransitionInfo().isEnabled() ); + assertEquals( AvatarSMDTransitionInfo.DISABLED_GUARD_EXPR, con1.getEffectiveGuard() ); + + for ( final String expr : con1.getEffectiveActions() ) { + assertEquals( AvatarSMDTransitionInfo.DISABLED_ACTION_EXPR, expr ); + } + + assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveAfterMinDelay() ); + assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveAfterMaxDelay() ); + assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveComputeMinDelay() ); + assertEquals( AvatarSMDTransitionInfo.DISABLED_DELAY_EXPR, con1.getEffectiveComputeMaxDelay() ); + } +} diff --git a/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java b/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java new file mode 100644 index 0000000000000000000000000000000000000000..69f7e84ff54d3690958c59ed98f0e907286cb15e --- /dev/null +++ b/ttool/src/test/java/ui/tmlad/TestTMLADComponentsDisabling.java @@ -0,0 +1,1287 @@ +package ui.tmlad; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.awt.Point; +import java.util.Vector; + +import org.junit.Before; +import org.junit.Test; + +import ui.AbstractUITest; +import ui.CDElement; +import ui.TGComponent; +import ui.ad.TADForLoop; +import ui.tmldd.TMLArchiDiagramPanel; +import ui.tmldd.TMLArchiDiagramToolBar; + +public class TestTMLADComponentsDisabling extends AbstractUITest { + + private TMLArchiDiagramPanel diagramPanel; + + public TestTMLADComponentsDisabling() { + super(); + } + + @Before + public void setUp() { + final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI ); + diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar ); + } + + @Test + public void testDisableTGConnectingPointTMLAD() { + final CDElement element = new TGConnectingPointTMLAD( null, 0, -5, true, false, 0.5, 0.0 ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableTGConnectorTMLAD() { + final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TGComponent requestElement = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + requestElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent actionElement = new TMLADActionState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestElement.getTGConnectingPointAtIndex( 1 ), + actionElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElement = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + actionElement.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + assertTrue( con1.canBeDisabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( con3.canBeDisabled() ); + + con1.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con1.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + + con2.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con2.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestElement.isEnabled() ); + assertTrue( requestElement.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( actionElement.isEnabled() ); + assertTrue( actionElement.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + } + +// @Test +// public void testDisableTGConnectorTMLADWithChoice() { +// final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); +// diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); +// +// final TGComponent requestElement = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); +// diagramPanel.addComponent( requestElement, requestElement.getX(), requestElement.getY(), false, true ); +// +// final TGComponent con1 = new TGConnectorTMLAD( 0, +// 0, +// diagramPanel.getMinX(), +// diagramPanel.getMaxX(), +// diagramPanel.getMinY(), +// diagramPanel.getMaxY(), +// false, +// null, +// diagramPanel, +// startElement.getTGConnectingPointAtIndex( 0 ), +// requestElement.getTGConnectingPointAtIndex( 0 ), +// new Vector<Point>() ); +// diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); +// +// final TGComponent actionElement = new TMLADActionState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); +// diagramPanel.addComponent( actionElement, actionElement.getX(), actionElement.getY(), false, true ); +// +// final TGComponent con2 = new TGConnectorTMLAD( 0, +// 0, +// diagramPanel.getMinX(), +// diagramPanel.getMaxX(), +// diagramPanel.getMinY(), +// diagramPanel.getMaxY(), +// false, +// null, +// diagramPanel, +// requestElement.getTGConnectingPointAtIndex( 1 ), +// actionElement.getTGConnectingPointAtIndex( 0 ), +// new Vector<Point>() ); +// diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); +// +// final TGComponent stopElement = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); +// diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); +// +// final TGComponent con3 = new TGConnectorTMLAD( 0, +// 0, +// diagramPanel.getMinX(), +// diagramPanel.getMaxX(), +// diagramPanel.getMinY(), +// diagramPanel.getMaxY(), +// false, +// null, +// diagramPanel, +// actionElement.getTGConnectingPointAtIndex( 1 ), +// stopElement.getTGConnectingPointAtIndex( 0 ), +// new Vector<Point>() ); +// diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); +// +// assertTrue( con1.canBeDisabled() ); +// assertTrue( con2.canBeDisabled() ); +// assertFalse( con3.canBeDisabled() ); +// +// con1.setEnabled( false ); +// assertTrue( startElement.isEnabled() ); +// assertTrue( con1.isEnabled() ); +// assertFalse( requestElement.isEnabled() ); +// assertTrue( con2.isEnabled() ); +// assertFalse( actionElement.isEnabled() ); +// assertTrue( con3.isEnabled() ); +// assertTrue( stopElement.isEnabled() ); +// +// con1.setEnabled( true ); +// assertTrue( startElement.isEnabled() ); +// assertTrue( con1.isEnabled() ); +// assertTrue( requestElement.isEnabled() ); +// assertTrue( con2.isEnabled() ); +// assertTrue( actionElement.isEnabled() ); +// assertTrue( con3.isEnabled() ); +// assertTrue( stopElement.isEnabled() ); +// +// con2.setEnabled( false ); +// assertTrue( startElement.isEnabled() ); +// assertTrue( con1.isEnabled() ); +// assertTrue( requestElement.isEnabled() ); +// assertTrue( con2.isEnabled() ); +// assertFalse( actionElement.isEnabled() ); +// assertTrue( con3.isEnabled() ); +// assertTrue( stopElement.isEnabled() ); +// +// con2.setEnabled( true ); +// assertTrue( startElement.isEnabled() ); +// assertTrue( con1.isEnabled() ); +// assertTrue( requestElement.isEnabled() ); +// assertTrue( con2.isEnabled() ); +// assertTrue( actionElement.isEnabled() ); +// assertTrue( con3.isEnabled() ); +// assertTrue( stopElement.isEnabled() ); +// } + + @Test + public void testDisableTMLADActionState() { + final CDElement element = new TMLADActionState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADChoice() { + final TMLADChoice element = new TMLADChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + + element.setGuard( Boolean.TRUE.toString(), 0 ); + TGComponent guard = element.getInternalTGComponent( 0 ); + assertTrue( guard.canBeDisabled() ); + + guard.setEnabled( false ); + assertFalse( guard.isEnabled() ); + + guard.setEnabled( true ); + assertTrue( guard.isEnabled() ); + + element.setGuard( null, 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + + element.setGuard( "", 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + + element.setGuard( TMLADChoice.EMPTY_GUARD_TEXT, 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + } + + @Test + public void testDisableTMLADDecrypt() { + final CDElement element = new TMLADDecrypt( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADDelay() { + final CDElement element = new TMLADDelay( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADDelayInterval() { + final CDElement element = new TMLADDelayInterval( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADEncrypt() { + final CDElement element = new TMLADEncrypt( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADExecC() { + final CDElement element = new TMLADExecC( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADExecCInterval() { + final CDElement element = new TMLADExecCInterval( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADExecI() { + final CDElement element = new TMLADExecI( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADExecIInterval() { + final CDElement element = new TMLADExecIInterval( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADForEverLoop() { + final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TADForLoop forLoop = new TMLADForEverLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + forLoop.getEnterLoopConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent requestInLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestInLoop, requestInLoop.getX(),requestInLoop.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getInsideLoopConnectingPoint(), + requestInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementInLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestInLoop.getTGConnectingPointAtIndex( 1 ), + stopElementInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + assertTrue( forLoop.canBeDisabled() ); + + forLoop.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestInLoop.isEnabled() ); + assertFalse( requestInLoop.canBeDisabled() ); + assertFalse( con2.isEnabled() ); + assertFalse( con2.canBeDisabled() ); + assertFalse( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertFalse( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + + forLoop.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestInLoop.isEnabled() ); + assertTrue( requestInLoop.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + } + + @Test + public void testDisableTMLADForLoop() { + final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TADForLoop forLoop = new TMLADForLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + forLoop.getEnterLoopConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent requestInLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestInLoop, requestInLoop.getX(),requestInLoop.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getInsideLoopConnectingPoint(), + requestInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementInLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestInLoop.getTGConnectingPointAtIndex( 1 ), + stopElementInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + final TGComponent requestExitLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestExitLoop, requestExitLoop.getX(),requestExitLoop.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getExitLoopConnectingPoint(), + requestExitLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent stopElementExitLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementExitLoop, stopElementExitLoop.getX(), stopElementExitLoop.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestExitLoop.getTGConnectingPointAtIndex( 1 ), + stopElementExitLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + assertTrue( forLoop.canBeDisabled() ); + + forLoop.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestInLoop.isEnabled() ); + assertFalse( requestInLoop.canBeDisabled() ); + assertFalse( con2.isEnabled() ); + assertFalse( con2.canBeDisabled() ); + assertFalse( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertFalse( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( requestExitLoop.isEnabled() ); + assertTrue( requestExitLoop.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementExitLoop.isEnabled() ); + assertFalse( stopElementExitLoop.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + + forLoop.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestInLoop.isEnabled() ); + assertTrue( requestInLoop.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( requestExitLoop.isEnabled() ); + assertTrue( requestExitLoop.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementExitLoop.isEnabled() ); + assertFalse( stopElementExitLoop.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + } + + @Test + public void testDisableTMLADForStaticLoop() { + final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TADForLoop forLoop = new TMLADForStaticLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + forLoop.getEnterLoopConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent requestInLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestInLoop, requestInLoop.getX(),requestInLoop.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getInsideLoopConnectingPoint(), + requestInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementInLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestInLoop.getTGConnectingPointAtIndex( 1 ), + stopElementInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + final TGComponent requestExitLoop = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestExitLoop, requestExitLoop.getX(),requestExitLoop.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getExitLoopConnectingPoint(), + requestExitLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent stopElementExitLoop = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementExitLoop, stopElementExitLoop.getX(), stopElementExitLoop.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestExitLoop.getTGConnectingPointAtIndex( 1 ), + stopElementExitLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + assertTrue( forLoop.canBeDisabled() ); + + forLoop.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestInLoop.isEnabled() ); + assertFalse( requestInLoop.canBeDisabled() ); + assertFalse( con2.isEnabled() ); + assertFalse( con2.canBeDisabled() ); + assertFalse( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertFalse( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( requestExitLoop.isEnabled() ); + assertTrue( requestExitLoop.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementExitLoop.isEnabled() ); + assertFalse( stopElementExitLoop.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + + forLoop.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestInLoop.isEnabled() ); + assertTrue( requestInLoop.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( requestExitLoop.isEnabled() ); + assertTrue( requestExitLoop.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementExitLoop.isEnabled() ); + assertFalse( stopElementExitLoop.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + } + + @Test + public void testDisableTMLADNotifiedEvent() { + final CDElement element = new TMLADNotifiedEvent( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADRandom() { + final CDElement element = new TMLADRandom( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADReadChannel() { + final CDElement element = new TMLADReadChannel( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADReadRequestArg() { + final CDElement element = new TMLADReadRequestArg( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADSelectEvt() { + final CDElement element = new TMLADSelectEvt( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableTMLADSendEvent() { + final CDElement element = new TMLADSendEvent( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADSendRequest() { + final CDElement element = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADSequence() { + final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TMLADSequence sequence = new TMLADSequence( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( sequence, sequence.getX(), sequence.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + sequence.getEnterConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent requestBranch1 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestBranch1, requestBranch1.getX(),requestBranch1.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sequence.getExitConnectingPoints().get( 0 ), + requestBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementBranch1 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestBranch1.getTGConnectingPointAtIndex( 1 ), + stopElementBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + + final TGComponent requestBranch2 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestBranch2, requestBranch2.getX(),requestBranch2.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sequence.getExitConnectingPoints().get( 1 ), + requestBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent stopElementBranch2 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch2, stopElementBranch2.getX(), stopElementBranch2.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestBranch2.getTGConnectingPointAtIndex( 1 ), + stopElementBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + final TGComponent requestBranch3 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestBranch3, requestBranch3.getX(),requestBranch3.getY(), false, true ); + + final TGComponent con6 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sequence.getExitConnectingPoints().get( 2 ), + requestBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true ); + + final TGComponent stopElementBranch3 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch3.getX(), stopElementBranch3.getY(), false, true ); + + final TGComponent con7 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestBranch3.getTGConnectingPointAtIndex( 1 ), + stopElementBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true ); + + assertTrue( sequence.canBeDisabled() ); + + sequence.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( sequence.isEnabled() ); + assertTrue( sequence.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestBranch1.isEnabled() ); + assertTrue( requestBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertFalse( requestBranch2.isEnabled() ); + assertTrue( requestBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementBranch2.isEnabled() ); + assertFalse( stopElementBranch2.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + assertFalse( requestBranch3.isEnabled() ); + assertTrue( requestBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( stopElementBranch3.isEnabled() ); + assertFalse( stopElementBranch3.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertFalse( con7.canBeDisabled() ); + + sequence.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( sequence.isEnabled() ); + assertTrue( sequence.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestBranch1.isEnabled() ); + assertTrue( requestBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( requestBranch2.isEnabled() ); + assertTrue( requestBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementBranch2.isEnabled() ); + assertFalse( stopElementBranch2.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + assertTrue( requestBranch3.isEnabled() ); + assertTrue( requestBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( stopElementBranch3.isEnabled() ); + assertFalse( stopElementBranch3.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertFalse( con7.canBeDisabled() ); + } + + @Test + public void testDisableTMLADStartState() { + final CDElement element = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableTMLADStopState() { + final CDElement element = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableTMLADUnorderedSequence() { + final TGComponent startElement = new TMLADStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TMLADUnorderedSequence sequence = new TMLADUnorderedSequence( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( sequence, sequence.getX(), sequence.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + sequence.getEnterConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent requestBranch1 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestBranch1, requestBranch1.getX(),requestBranch1.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sequence.getExitConnectingPoints().get( 0 ), + requestBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementBranch1 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestBranch1.getTGConnectingPointAtIndex( 1 ), + stopElementBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + + final TGComponent requestBranch2 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestBranch2, requestBranch2.getX(),requestBranch2.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sequence.getExitConnectingPoints().get( 1 ), + requestBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent stopElementBranch2 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch2, stopElementBranch2.getX(), stopElementBranch2.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestBranch2.getTGConnectingPointAtIndex( 1 ), + stopElementBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + final TGComponent requestBranch3 = new TMLADSendRequest( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( requestBranch3, requestBranch3.getX(),requestBranch3.getY(), false, true ); + + final TGComponent con6 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + sequence.getExitConnectingPoints().get( 2 ), + requestBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true ); + + final TGComponent stopElementBranch3 = new TMLADStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch3.getX(), stopElementBranch3.getY(), false, true ); + + final TGComponent con7 = new TGConnectorTMLAD( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + requestBranch3.getTGConnectingPointAtIndex( 1 ), + stopElementBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true ); + + assertTrue( sequence.canBeDisabled() ); + + sequence.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( sequence.isEnabled() ); + assertTrue( sequence.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( requestBranch1.isEnabled() ); + assertTrue( requestBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertFalse( requestBranch2.isEnabled() ); + assertTrue( requestBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementBranch2.isEnabled() ); + assertFalse( stopElementBranch2.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + assertFalse( requestBranch3.isEnabled() ); + assertTrue( requestBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( stopElementBranch3.isEnabled() ); + assertFalse( stopElementBranch3.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertFalse( con7.canBeDisabled() ); + + sequence.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( sequence.isEnabled() ); + assertTrue( sequence.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( requestBranch1.isEnabled() ); + assertTrue( requestBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( requestBranch2.isEnabled() ); + assertTrue( requestBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementBranch2.isEnabled() ); + assertFalse( stopElementBranch2.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + assertTrue( requestBranch3.isEnabled() ); + assertTrue( requestBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( stopElementBranch3.isEnabled() ); + assertFalse( stopElementBranch3.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertFalse( con7.canBeDisabled() ); + } + + @Test + public void testDisableTMLADWaitEvent() { + final CDElement element = new TMLADWaitEvent( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } + + @Test + public void testDisableTMLADWriteChannel() { + final CDElement element = new TMLADWriteChannel( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + assertFalse( element.isEnabled() ); + + element.setEnabled( true ); + assertTrue( element.isEnabled() ); + } +} diff --git a/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java b/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java new file mode 100644 index 0000000000000000000000000000000000000000..99b3aa7684450b84fd637d2e3c0c0da7cb8abc9e --- /dev/null +++ b/ttool/src/test/java/ui/tmlcp/TestTMLCPComponentsDisabling.java @@ -0,0 +1,737 @@ +package ui.tmlcp; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.awt.Point; +import java.util.Vector; + +import org.junit.Before; +import org.junit.Test; + +import ui.AbstractUITest; +import ui.CDElement; +import ui.TGComponent; +import ui.ad.TADForLoop; +import ui.tmldd.TMLArchiDiagramPanel; +import ui.tmldd.TMLArchiDiagramToolBar; + +public class TestTMLCPComponentsDisabling extends AbstractUITest { + + private TMLArchiDiagramPanel diagramPanel; + + public TestTMLCPComponentsDisabling() { + super(); + } + + @Before + public void setUp() { + final TMLArchiDiagramToolBar toolBar = new TMLArchiDiagramToolBar( mainGUI ); + diagramPanel = new TMLArchiDiagramPanel( mainGUI, toolBar ); + } + + @Test + public void testDisableTGConnectingPointTMLCP() { + final CDElement element = new TGConnectingPointTMLCP( null, 0, -5, true, false, 0.5, 0.0 ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableTGConnectorTMLCP() { + final TGComponent startElement = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TGComponent refElement1 = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( refElement1, refElement1.getX(), refElement1.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + refElement1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent refElement2 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( refElement2, refElement2.getX(), refElement2.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + refElement1.getTGConnectingPointAtIndex( 1 ), + refElement2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElement = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElement, stopElement.getX(), stopElement.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + refElement2.getTGConnectingPointAtIndex( 1 ), + stopElement.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + assertTrue( con1.canBeDisabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( con3.canBeDisabled() ); + + con1.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( refElement1.isEnabled() ); + assertTrue( refElement1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( refElement2.isEnabled() ); + assertTrue( refElement2.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con1.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( refElement1.isEnabled() ); + assertTrue( refElement1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( refElement2.isEnabled() ); + assertTrue( refElement2.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + + con2.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( refElement1.isEnabled() ); + assertTrue( refElement1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertFalse( refElement2.isEnabled() ); + assertTrue( refElement2.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + + con2.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( refElement1.isEnabled() ); + assertTrue( refElement1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( refElement2.isEnabled() ); + assertTrue( refElement2.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( stopElement.isEnabled() ); + assertFalse( stopElement.canBeDisabled() ); + } + + @Test + public void testDisableTMLADChoice() { + final TMLCPChoice element = new TMLCPChoice( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + + element.setGuard( Boolean.TRUE.toString(), 0 ); + TGComponent guard = element.getInternalTGComponent( 0 ); + assertTrue( guard.canBeDisabled() ); + + guard.setEnabled( false ); + assertFalse( guard.isEnabled() ); + + guard.setEnabled( true ); + assertTrue( guard.isEnabled() ); + + element.setGuard( null, 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + + element.setGuard( "", 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + + element.setGuard( TMLCPChoice.EMPTY_GUARD_TEXT, 0 ); + guard = element.getInternalTGComponent( 0 ); + assertFalse( guard.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPFork() { + final TGComponent startElement = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TMLCPFork fork = new TMLCPFork( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( fork, fork.getX(), fork.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + fork.getEnterConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent elementBranch1 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranch1, elementBranch1.getX(),elementBranch1.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + fork.getExitConnectingPoints().get( 0 ), + elementBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementBranch1 = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranch1, stopElementBranch1.getX(), stopElementBranch1.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch1.getTGConnectingPointAtIndex( 1 ), + stopElementBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + + final TGComponent elementBranch2 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranch2, elementBranch2.getX(), elementBranch2.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + fork.getExitConnectingPoints().get( 1 ), + elementBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TMLCPJoin elementJoinBranch23 = new TMLCPJoin( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementJoinBranch23, elementJoinBranch23.getX(), elementJoinBranch23.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch2.getTGConnectingPointAtIndex( 1 ), + elementJoinBranch23.getEnterConnectingPoints().get( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + final TGComponent elementBranch3 = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranch3, elementBranch3.getX(),elementBranch3.getY(), false, true ); + + final TGComponent con6 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + fork.getExitConnectingPoints().get( 2 ), + elementBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true ); + + final TGComponent con7 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch3.getTGConnectingPointAtIndex( 1 ), + elementJoinBranch23.getEnterConnectingPoints().get( 1 ), + new Vector<Point>() ); + diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true ); + + final TGComponent stopElementJoin = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementJoin, stopElementJoin.getX(), stopElementJoin.getY(), false, true ); + + final TGComponent con8 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementJoinBranch23.getExitConnectingPoint(), + stopElementJoin.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con8, con8.getX(), con8.getY(), false, true ); + + assertTrue( fork.canBeDisabled() ); + + fork.setEnabled( false ); + + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( fork.isEnabled() ); + assertTrue( fork.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( elementBranch1.isEnabled() ); + assertTrue( elementBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertFalse( elementBranch2.isEnabled() ); + assertTrue( elementBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( elementJoinBranch23.isEnabled() ); + assertFalse( elementJoinBranch23.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertTrue( con5.canBeDisabled() ); + assertFalse( elementBranch3.isEnabled() ); + assertTrue( elementBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertTrue( con7.canBeDisabled() ); + assertTrue( stopElementJoin.isEnabled() ); + assertFalse( stopElementJoin.canBeDisabled() ); + assertTrue( con8.isEnabled() ); + assertFalse( con8.canBeDisabled() ); + + fork.setEnabled( true ); + + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( fork.isEnabled() ); + assertTrue( fork.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( elementBranch1.isEnabled() ); + assertTrue( elementBranch1.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementBranch1.isEnabled() ); + assertFalse( stopElementBranch1.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( elementBranch2.isEnabled() ); + assertTrue( elementBranch2.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( elementJoinBranch23.isEnabled() ); + assertFalse( elementJoinBranch23.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertTrue( con5.canBeDisabled() ); + assertTrue( elementBranch3.isEnabled() ); + assertTrue( elementBranch3.canBeDisabled() ); + assertTrue( con6.isEnabled() ); + assertTrue( con6.canBeDisabled() ); + assertTrue( con7.isEnabled() ); + assertTrue( con7.canBeDisabled() ); + assertTrue( stopElementJoin.isEnabled() ); + assertFalse( stopElementJoin.canBeDisabled() ); + assertTrue( con8.isEnabled() ); + assertFalse( con8.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPForLoop() { + final TGComponent startElement = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElement, startElement.getX(), startElement.getY(), false, true ); + + final TADForLoop forLoop = new TMLCPForLoop( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( forLoop, forLoop.getX(), forLoop.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElement.getTGConnectingPointAtIndex( 0 ), + forLoop.getEnterLoopConnectingPoint(), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TGComponent elementInLoop = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementInLoop, elementInLoop.getX(),elementInLoop.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getInsideLoopConnectingPoint(), + elementInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent stopElementInLoop = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementInLoop, stopElementInLoop.getX(), stopElementInLoop.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementInLoop.getTGConnectingPointAtIndex( 1 ), + stopElementInLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + final TGComponent elementExitLoop = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementExitLoop, elementExitLoop.getX(),elementExitLoop.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + forLoop.getExitLoopConnectingPoint(), + elementExitLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent stopElementExitLoop = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementExitLoop, stopElementExitLoop.getX(), stopElementExitLoop.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementExitLoop.getTGConnectingPointAtIndex( 1 ), + stopElementExitLoop.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + assertTrue( forLoop.canBeDisabled() ); + + forLoop.setEnabled( false ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertFalse( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertFalse( elementInLoop.isEnabled() ); + assertFalse( elementInLoop.canBeDisabled() ); + assertFalse( con2.isEnabled() ); + assertFalse( con2.canBeDisabled() ); + assertFalse( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertFalse( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( elementExitLoop.isEnabled() ); + assertTrue( elementExitLoop.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementExitLoop.isEnabled() ); + assertFalse( stopElementExitLoop.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + + forLoop.setEnabled( true ); + assertTrue( startElement.isEnabled() ); + assertFalse( startElement.canBeDisabled() ); + assertTrue( forLoop.isEnabled() ); + assertTrue( forLoop.canBeDisabled() ); + assertTrue( con1.isEnabled() ); + assertTrue( con1.canBeDisabled() ); + assertTrue( elementInLoop.isEnabled() ); + assertTrue( elementInLoop.canBeDisabled() ); + assertTrue( con2.isEnabled() ); + assertTrue( con2.canBeDisabled() ); + assertTrue( stopElementInLoop.isEnabled() ); + assertFalse( stopElementInLoop.canBeDisabled() ); + assertTrue( con3.isEnabled() ); + assertFalse( con3.canBeDisabled() ); + assertTrue( elementExitLoop.isEnabled() ); + assertTrue( elementExitLoop.canBeDisabled() ); + assertTrue( con4.isEnabled() ); + assertTrue( con4.canBeDisabled() ); + assertTrue( stopElementExitLoop.isEnabled() ); + assertFalse( stopElementExitLoop.canBeDisabled() ); + assertTrue( con5.isEnabled() ); + assertFalse( con5.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPJoin() { + final TGComponent startElementBranch1 = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElementBranch1, startElementBranch1.getX(), startElementBranch1.getY(), false, true ); + + final TGComponent elementBranch1 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranch1, elementBranch1.getX(), elementBranch1.getY(), false, true ); + + final TGComponent con1 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElementBranch1.getTGConnectingPointAtIndex( 0 ), + elementBranch1.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con1, con1.getX(), con1.getY(), false, true ); + + final TMLCPJoin join = new TMLCPJoin( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( join, join.getX(), join.getY(), false, true ); + + final TGComponent con2 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch1.getTGConnectingPointAtIndex( 1 ), + join.getEnterConnectingPoints().get( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con2, con2.getX(), con2.getY(), false, true ); + + final TGComponent startElementBranch2 = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElementBranch2, startElementBranch2.getX(), startElementBranch2.getY(), false, true ); + + final TGComponent elementBranch2 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranch2, elementBranch2.getX(), elementBranch2.getY(), false, true ); + + final TGComponent con3 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElementBranch2.getTGConnectingPointAtIndex( 0 ), + elementBranch2.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con3, con3.getX(), con3.getY(), false, true ); + + final TGComponent con4 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch2.getTGConnectingPointAtIndex( 1 ), + join.getEnterConnectingPoints().get( 1 ), + new Vector<Point>() ); + diagramPanel.addComponent( con4, con4.getX(), con4.getY(), false, true ); + + final TGComponent startElementBranch3 = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( startElementBranch3, startElementBranch3.getX(), startElementBranch3.getY(), false, true ); + + final TGComponent elementBranch3 = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranch3, elementBranch3.getX(), elementBranch3.getY(), false, true ); + + final TGComponent con5 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + startElementBranch3.getTGConnectingPointAtIndex( 0 ), + elementBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con5, con5.getX(), con5.getY(), false, true ); + + final TGComponent con6 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch3.getTGConnectingPointAtIndex( 1 ), + join.getEnterConnectingPoints().get( 2 ), + new Vector<Point>() ); + diagramPanel.addComponent( con6, con6.getX(), con6.getY(), false, true ); + + final TGComponent elementBranchExit = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( elementBranchExit, elementBranchExit.getX(),elementBranchExit.getY(), false, true ); + + final TGComponent con7 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + join.getExitConnectingPoint(), + elementBranch3.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con7, con7.getX(), con7.getY(), false, true ); + + final TGComponent stopElementBranchExit = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + diagramPanel.addComponent( stopElementBranchExit, stopElementBranchExit.getX(), stopElementBranchExit.getY(), false, true ); + + final TGComponent con8 = new TGConnectorTMLCP( 0, + 0, + diagramPanel.getMinX(), + diagramPanel.getMaxX(), + diagramPanel.getMinY(), + diagramPanel.getMaxY(), + false, + null, + diagramPanel, + elementBranch3.getTGConnectingPointAtIndex( 1 ), + stopElementBranchExit.getTGConnectingPointAtIndex( 0 ), + new Vector<Point>() ); + diagramPanel.addComponent( con8, con8.getX(), con8.getY(), false, true ); + + assertTrue( join.isEnabled() ); + assertFalse( join.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPRefAD() { + final CDElement element = new TMLCPRefAD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + + assertFalse( element.isEnabled() ); + assertTrue( element.canBeDisabled() ); + + element.setEnabled( true ); + + assertTrue( element.isEnabled() ); + assertTrue( element.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPRefSD() { + final CDElement element = new TMLCPRefSD( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertTrue( element.canBeDisabled() ); + + element.setEnabled( false ); + + assertFalse( element.isEnabled() ); + assertTrue( element.canBeDisabled() ); + + element.setEnabled( true ); + + assertTrue( element.isEnabled() ); + assertTrue( element.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPStartState() { + final CDElement element = new TMLCPStartState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } + + @Test + public void testDisableTMLCPStopState() { + final CDElement element = new TMLCPStopState( 500, 500, 0, 1400, 0, 1900, true, null, diagramPanel ); + + assertFalse( element.canBeDisabled() ); + } +} diff --git a/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java b/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java deleted file mode 100644 index b30d3df2da78d23ca66077a839a2740db42f8f58..0000000000000000000000000000000000000000 --- a/ttool/src/test/java/ui/tmldd/TestTDiagramPanel.java +++ /dev/null @@ -1,67 +0,0 @@ -package ui.tmldd; - -import static org.junit.Assert.assertTrue; - -import org.junit.Before; -import org.junit.Test; - -import ui.AbstractUITest; - -public class TestTDiagramPanel extends AbstractUITest { -// static MainGUI mgui; - static TMLArchiDiagramToolBar tb; - static TMLArchiDiagramPanel tdp; - static TMLArchiBUSNode tgc; - - public TestTDiagramPanel() { - super(); - } - - @Before - public void setUp() throws Exception { -// mgui = new MainGUI(false, false, false, false, false, false, false, false, false, false, false, true); -// mgui.build(); - //PluginManager.pluginManager = new PluginManager(); - tb = new TMLArchiDiagramToolBar( mainGui ); - tdp = new TMLArchiDiagramPanel( mainGui, tb); - tgc = new TMLArchiBUSNode(500, 500, 0, 1400, 0, 1900, true, null, tdp); - tdp.setComponentPointed(null); - } - - @Test - public void testMoveUp() { - tdp.upComponent(); - tdp.setComponentPointed(tgc); - tdp.upComponent(); - assertTrue(tgc.getY() == 499); - assertTrue(tgc.getX() == 500); - } - - @Test - public void testMoveDown() { - tdp.downComponent(); - tdp.setComponentPointed(tgc); - tdp.downComponent(); - assertTrue(tgc.getY() == 501); - assertTrue(tgc.getX() == 500); - } - - @Test - public void testMoveRight() { - tdp.rightComponent(); - tdp.setComponentPointed(tgc); - tdp.rightComponent(); - assertTrue(tgc.getX() == 501); - assertTrue(tgc.getY() == 500); - } - - @Test - public void testMoveLeft() { - tdp.leftComponent(); - tdp.setComponentPointed(tgc); - tdp.leftComponent(); - assertTrue(tgc.getX() == 499); - assertTrue(tgc.getY() == 500); - } - -} diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeButton.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeButton.txt new file mode 100644 index 0000000000000000000000000000000000000000..440a15456e31c53a6e0bb533fbdc5c894acff523 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeButton.txt @@ -0,0 +1,32 @@ +State machine Id=31 +start ID=117 / top level operator + nexts= 0:avatar transition/ ID=123 +main ID=118 / top level operator + nexts= 0:avatar transition/ ID=124 +state0 ID=119 / top level operator + nexts= +start ID=120 / in state state0 ID=119 + nexts= 0:avatar transition/ ID=122 +action_on_signal:push ID=121 / in state state0 ID=119 + nexts= 0:avatar transition/ ID=125 +avatar transition ID=122 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=121 +weight=1.0 + +avatar transition ID=123 / top level operator + value:Empty transition weight:1.0 + nexts= 0:main/ ID=118 +weight=1.0 + +avatar transition ID=124 / top level operator + value:Empty transition weight:1.0 + nexts= 0:state0/ ID=119 +weight=1.0 + +avatar transition ID=125 / top level operator + value:Transition (delay=(mechanicalDelay, ), ...) weight:1.0 + nexts= 0:main/ ID=118 +minDelay=mechanicalDelay maxDelay=mechanicalDelay +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeMachine.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeMachine.txt new file mode 100644 index 0000000000000000000000000000000000000000..0343a9d3830258fbb599497faf42a27c0e917a7b --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/CoffeeMachine.txt @@ -0,0 +1,106 @@ +State machine Id=15 +start ID=71 / top level operator + nexts= 0:avatar transition/ ID=116 +WaitingForFirstCoin ID=72 / top level operator + nexts= 0:avatar transition/ ID=115 +action_on_signal:getCoin ID=73 / top level operator + nexts= 0:avatar transition/ ID=109 +WaitingForSecondCoin ID=74 / top level operator + nexts= 0:avatar transition/ ID=106 1:avatar transition/ ID=108 +ejectState ID=75 / top level operator + nexts= 0:avatar transition/ ID=84 +action_on_signal:ejectCoin ID=76 / top level operator + nexts= 0:avatar transition/ ID=103 +action_on_signal:getCoin ID=77 / top level operator + nexts= 0:avatar transition/ ID=107 +Beverage ID=78 / top level operator + nexts= +start ID=79 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=102 +WaitingForSelection ID=80 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=89 1:avatar transition/ ID=95 2:avatar transition/ ID=101 +action_on_signal:ejectCoin ID=81 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=85 +action_on_signal:pushCoffeeButton ID=82 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=96 +action_on_signal:pushTeaButton ID=83 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=90 +avatar transition ID=84 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=76 +weight=1.0 + +avatar transition ID=85 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=89 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:action_on_signal/ ID=81 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=90 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=teaMinDelay maxcompute=teaMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=95 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=83 +weight=1.0 + +avatar transition ID=96 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=coffeeMinDelay maxcompute=coffeeMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=101 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=82 +weight=1.0 + +avatar transition ID=102 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForSelection/ ID=80 +weight=1.0 + +avatar transition ID=103 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=106 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:ejectState/ ID=75 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=107 / top level operator + value:Empty transition weight:1.0 + nexts= 0:Beverage/ ID=78 +weight=1.0 + +avatar transition ID=108 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=77 +weight=1.0 + +avatar transition ID=109 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:WaitingForSecondCoin/ ID=74 +weight=1.0 +nbOfCoins = nbOfCoins+x / +avatar transition ID=115 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=73 +weight=1.0 + +avatar transition ID=116 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/TeaButton.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/TeaButton.txt new file mode 100644 index 0000000000000000000000000000000000000000..b3b4cc674ff5961c08138c4853cdf8217b475794 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/TeaButton.txt @@ -0,0 +1,23 @@ +State machine Id=35 +start ID=126 / top level operator + nexts= 0:avatar transition/ ID=131 +main ID=127 / top level operator + nexts= 0:avatar transition/ ID=130 +action_on_signal:push ID=128 / top level operator + nexts= 0:avatar transition/ ID=129 +avatar transition ID=129 / top level operator + value:Transition (delay=(mechanicalDelay, ), ...) weight:1.0 + nexts= 0:main/ ID=127 +minDelay=mechanicalDelay maxDelay=mechanicalDelay +weight=1.0 + +avatar transition ID=130 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=128 +weight=1.0 + +avatar transition ID=131 / top level operator + value:Empty transition weight:1.0 + nexts= 0:main/ ID=127 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/Wallet.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/Wallet.txt new file mode 100644 index 0000000000000000000000000000000000000000..71869bf80797d07a9da4bcddff5493282be9d120 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/Wallet.txt @@ -0,0 +1,35 @@ +State machine Id=3 +start ID=41 / top level operator + nexts= 0:avatar transition/ ID=67 +main ID=42 / top level operator + nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=64 +action_on_signal:putCoin ID=43 / top level operator + nexts= 0:avatar transition/ ID=55 +action_on_signal:getCoin ID=44 / top level operator + nexts= 0:avatar transition/ ID=45 +avatar transition ID=45 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0 + nexts= 0:main/ ID=42 +minDelay=minUserDelay maxDelay=maxUserDelay +weight=1.0 +nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / +avatar transition ID=64 / top level operator + value:Transition (guard=nbOfCoins>0, ...) weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 +guard nbOfCoins>0 / +avatar transition ID=67 / top level operator + value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +contentOfWallet (nbOfCoins) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Alice_Disable_LibraryFunctionCall.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Alice_Disable_LibraryFunctionCall.txt new file mode 100644 index 0000000000000000000000000000000000000000..139fb02882526f707c9ffeb45921c8bbaadc36de --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Alice_Disable_LibraryFunctionCall.txt @@ -0,0 +1,17 @@ +State machine Id=22 +start ID=42 / top level operator + nexts= 0:avatar transition/ ID=45 +state0 ID=43 / top level operator + nexts= 0:avatar transition/ ID=48 +stop ID=44 / top level operator + nexts= +avatar transition ID=45 / top level operator + value:Transition (send__data = secretData, ...) weight:1.0 + nexts= 0:state0/ ID=43 +weight=1.0 +send__data = secretData / +avatar transition ID=48 / top level operator + value:Empty transition weight:1.0 + nexts= 0:stop/ ID=44 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompoInOutTransitions.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompoInOutTransitions.txt new file mode 100644 index 0000000000000000000000000000000000000000..7f5731ab06e2a59c246c89da19e970ffbdde7e2d --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompoInOutTransitions.txt @@ -0,0 +1,98 @@ +State machine Id=15 +start ID=71 / top level operator + nexts= 0:avatar transition/ ID=112 +WaitingForFirstCoin ID=72 / top level operator + nexts= 0:avatar transition/ ID=111 +action_on_signal:getCoin ID=73 / top level operator + nexts= 0:avatar transition/ ID=105 +WaitingForSecondCoin ID=74 / top level operator + nexts= 0:avatar transition/ ID=102 1:avatar transition/ ID=104 +ejectState ID=75 / top level operator + nexts= 0:avatar transition/ ID=83 +action_on_signal:ejectCoin ID=76 / top level operator + nexts= 0:avatar transition/ ID=99 +action_on_signal:getCoin ID=77 / top level operator + nexts= 0:avatar transition/ ID=103 +Beverage ID=78 / top level operator + nexts= +start ID=79 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=98 +WaitingForSelection ID=80 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=84 1:avatar transition/ ID=91 2:avatar transition/ ID=97 +action_on_signal:pushCoffeeButton ID=81 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=92 +action_on_signal:pushTeaButton ID=82 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=85 +avatar transition ID=83 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=76 +weight=1.0 + +avatar transition ID=84 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + +avatar transition ID=85 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=teaMinDelay maxcompute=teaMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=91 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=82 +weight=1.0 + +avatar transition ID=92 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=coffeeMinDelay maxcompute=coffeeMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=97 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=81 +weight=1.0 + +avatar transition ID=98 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForSelection/ ID=80 +weight=1.0 + +avatar transition ID=99 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=102 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:ejectState/ ID=75 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=103 / top level operator + value:Empty transition weight:1.0 + nexts= 0:Beverage/ ID=78 +weight=1.0 + +avatar transition ID=104 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=77 +weight=1.0 + +avatar transition ID=105 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:WaitingForSecondCoin/ ID=74 +weight=1.0 +nbOfCoins = nbOfCoins+x / +avatar transition ID=111 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=73 +weight=1.0 + +avatar transition ID=112 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_ComponentBranch.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_ComponentBranch.txt new file mode 100644 index 0000000000000000000000000000000000000000..027c26caae351a2879f48134b0c22911c35d452e --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_ComponentBranch.txt @@ -0,0 +1,92 @@ +State machine Id=15 +start ID=71 / top level operator + nexts= 0:avatar transition/ ID=112 +WaitingForFirstCoin ID=72 / top level operator + nexts= 0:avatar transition/ ID=106 +WaitingForSecondCoin_converted_to_dummy_state ID=73 / top level operator + nexts= 0:avatar transition/ ID=103 1:avatar transition/ ID=105 +action_on_signal:ejectCoin_converted_to_dummy_state ID=74 / top level operator + nexts= 0:avatar transition/ ID=100 +action_on_signal:getCoin ID=75 / top level operator + nexts= 0:avatar transition/ ID=104 +Beverage ID=76 / top level operator + nexts= +start ID=77 / in state Beverage ID=76 + nexts= 0:avatar transition/ ID=99 +WaitingForSelection ID=78 / in state Beverage ID=76 + nexts= 0:avatar transition/ ID=86 1:avatar transition/ ID=92 2:avatar transition/ ID=98 +action_on_signal:ejectCoin ID=79 / in state Beverage ID=76 + nexts= 0:avatar transition/ ID=82 +action_on_signal:pushCoffeeButton ID=80 / in state Beverage ID=76 + nexts= 0:avatar transition/ ID=93 +action_on_signal:pushTeaButton ID=81 / in state Beverage ID=76 + nexts= 0:avatar transition/ ID=87 +avatar transition ID=82 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=86 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:action_on_signal/ ID=79 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=87 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=teaMinDelay maxcompute=teaMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=92 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=81 +weight=1.0 + +avatar transition ID=93 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=coffeeMinDelay maxcompute=coffeeMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=98 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=80 +weight=1.0 + +avatar transition ID=99 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForSelection/ ID=78 +weight=1.0 + +avatar transition ID=100 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=103 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:action_on_signal:ejectCoin_converted_to_dummy_state/ ID=74 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=104 / top level operator + value:Empty transition weight:1.0 + nexts= 0:Beverage/ ID=76 +weight=1.0 + +avatar transition ID=105 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=75 +weight=1.0 + +avatar transition ID=106 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:WaitingForSecondCoin_converted_to_dummy_state/ ID=73 +weight=1.0 +nbOfCoins = nbOfCoins+x / +avatar transition ID=112 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompositeState.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompositeState.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc34247a55fb7451821ee62a37ff9bf525307348 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_CompositeState.txt @@ -0,0 +1,56 @@ +State machine Id=15 +start ID=71 / top level operator + nexts= 0:avatar transition/ ID=93 +WaitingForFirstCoin ID=72 / top level operator + nexts= 0:avatar transition/ ID=92 +action_on_signal:getCoin ID=73 / top level operator + nexts= 0:avatar transition/ ID=86 +WaitingForSecondCoin ID=74 / top level operator + nexts= 0:avatar transition/ ID=84 1:avatar transition/ ID=85 +ejectState ID=75 / top level operator + nexts= 0:avatar transition/ ID=78 +action_on_signal:ejectCoin ID=76 / top level operator + nexts= 0:avatar transition/ ID=80 +action_on_signal:getCoin ID=77 / top level operator + nexts= 0:avatar transition/ ID=79 +avatar transition ID=78 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=76 +weight=1.0 + +avatar transition ID=79 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + +avatar transition ID=80 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=84 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:ejectState/ ID=75 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=85 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=77 +weight=1.0 + +avatar transition ID=86 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:WaitingForSecondCoin/ ID=74 +weight=1.0 +nbOfCoins = nbOfCoins+x / +avatar transition ID=92 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=73 +weight=1.0 + +avatar transition ID=93 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_TransitionInfoComputeFor.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_TransitionInfoComputeFor.txt new file mode 100644 index 0000000000000000000000000000000000000000..4d3373cbe1e252a15a894dada437ba7c919b262a --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/CoffeeMachine_Disable_TransitionInfoComputeFor.txt @@ -0,0 +1,105 @@ +State machine Id=15 +start ID=71 / top level operator + nexts= 0:avatar transition/ ID=112 +WaitingForFirstCoin ID=72 / top level operator + nexts= 0:avatar transition/ ID=111 +action_on_signal:getCoin ID=73 / top level operator + nexts= 0:avatar transition/ ID=105 +WaitingForSecondCoin ID=74 / top level operator + nexts= 0:avatar transition/ ID=102 1:avatar transition/ ID=104 +ejectState ID=75 / top level operator + nexts= 0:avatar transition/ ID=84 +action_on_signal:ejectCoin ID=76 / top level operator + nexts= 0:avatar transition/ ID=99 +action_on_signal:getCoin ID=77 / top level operator + nexts= 0:avatar transition/ ID=103 +Beverage ID=78 / top level operator + nexts= +start ID=79 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=98 +WaitingForSelection ID=80 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=89 1:avatar transition/ ID=95 2:avatar transition/ ID=97 +action_on_signal:ejectCoin ID=81 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=85 +action_on_signal:pushCoffeeButton ID=82 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=96 +action_on_signal:pushTeaButton ID=83 / in state Beverage ID=78 + nexts= 0:avatar transition/ ID=90 +avatar transition ID=84 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=76 +weight=1.0 + +avatar transition ID=85 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=89 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:action_on_signal/ ID=81 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=90 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +minCompute=teaMinDelay maxcompute=teaMaxDelay +weight=1.0 +nbOfCoins = 0 / beverageReady () / +avatar transition ID=95 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=83 +weight=1.0 + +avatar transition ID=96 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + +avatar transition ID=97 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=82 +weight=1.0 + +avatar transition ID=98 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForSelection/ ID=80 +weight=1.0 + +avatar transition ID=99 / top level operator + value:Transition (nbOfCoins = 0, ...) weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 +nbOfCoins = 0 / +avatar transition ID=102 / top level operator + value:Transition (delay=(coinDelay, ), ...) weight:1.0 + nexts= 0:ejectState/ ID=75 +minDelay=coinDelay maxDelay=coinDelay +weight=1.0 + +avatar transition ID=103 / top level operator + value:Empty transition weight:1.0 + nexts= 0:Beverage/ ID=78 +weight=1.0 + +avatar transition ID=104 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=77 +weight=1.0 + +avatar transition ID=105 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:WaitingForSecondCoin/ ID=74 +weight=1.0 +nbOfCoins = nbOfCoins+x / +avatar transition ID=111 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=73 +weight=1.0 + +avatar transition ID=112 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForFirstCoin/ ID=72 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ExpireTimer.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ExpireTimer.txt new file mode 100644 index 0000000000000000000000000000000000000000..8dbb0391aaf11f8b18070144fdc40d2a95fe5a27 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ExpireTimer.txt @@ -0,0 +1,108 @@ +State machine Id=3 +start ID=35 / top level operator + nexts= 0:avatar transition/ ID=63 +IDLE ID=36 / top level operator + nexts= 0:avatar transition/ ID=62 +action_on_signal:INconreq ID=37 / top level operator + nexts= 0:avatar transition/ ID=56 +SEND ID=38 / top level operator + nexts= 0:avatar transition/ ID=55 +settimer__ATST1 ID=39 / top level operator + nexts= 0:avatar transition/ ID=54 + timer: ATST1 +action_on_signal:CR ID=40 / top level operator + nexts= 0:avatar transition/ ID=61 +WAIT_FOR_CONF ID=41 / top level operator + nexts= 0:avatar transition/ ID=51 1:avatar transition/ ID=60 +choice__0 ID=42 / top level operator + nexts= 0:avatar transition/ ID=50 1:avatar transition/ ID=65 +action_on_signal:INerror ID=43 / top level operator + nexts= 0:avatar transition/ ID=74 +action_on_signal:DR ID=44 / top level operator + nexts= 0:avatar transition/ ID=75 +ERROR ID=45 / top level operator + nexts= +action_on_signal:CC ID=46 / top level operator + nexts= 0:avatar transition/ ID=53 +resettimer__ATST1 ID=47 / top level operator + nexts= 0:avatar transition/ ID=52 + timer: ATST1 +action_on_signal:INconconf ID=48 / top level operator + nexts= 0:avatar transition/ ID=64 +CONNECTED ID=49 / top level operator + nexts= +avatar transition ID=50 / top level operator + value:Transition (guard=not(retransmissionCounter<maxRetransmissions), ...) weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 +guard not(retransmissionCounter<maxRetransmissions) / +avatar transition ID=51 / top level operator + value:Empty transition weight:1.0 + nexts= 0:choice__0/ ID=42 +weight=1.0 + +avatar transition ID=52 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=48 +weight=1.0 + +avatar transition ID=53 / top level operator + value:Empty transition weight:1.0 + nexts= 0:resettimer__ATST1/ ID=47 +weight=1.0 + +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=40 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Empty transition weight:1.0 + nexts= 0:settimer__ATST1/ ID=39 +weight=1.0 + +avatar transition ID=56 / top level operator + value:Transition (retransmissionCounter = 0, ...) weight:1.0 + nexts= 0:SEND/ ID=38 +weight=1.0 +retransmissionCounter = 0 / +avatar transition ID=60 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=46 +weight=1.0 + +avatar transition ID=61 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WAIT_FOR_CONF/ ID=41 +weight=1.0 + +avatar transition ID=62 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=37 +weight=1.0 + +avatar transition ID=63 / top level operator + value:Empty transition weight:1.0 + nexts= 0:IDLE/ ID=36 +weight=1.0 + +avatar transition ID=64 / top level operator + value:Empty transition weight:1.0 + nexts= 0:CONNECTED/ ID=49 +weight=1.0 + +avatar transition ID=65 / top level operator + value:Transition (guard=retransmissionCounter<maxRetransmissions, ...) weight:1.0 + nexts= 0:SEND/ ID=38 +weight=1.0 +retransmissionCounter = retransmissionCounter+1 / guard retransmissionCounter<maxRetransmissions / +avatar transition ID=74 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 + +avatar transition ID=75 / top level operator + value:Empty transition weight:1.0 + nexts= 0:ERROR/ ID=45 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ResetTimer.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ResetTimer.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e83968444daaa252bc4247ae1316380da8f6ce1 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_ResetTimer.txt @@ -0,0 +1,108 @@ +State machine Id=3 +start ID=35 / top level operator + nexts= 0:avatar transition/ ID=63 +IDLE ID=36 / top level operator + nexts= 0:avatar transition/ ID=62 +action_on_signal:INconreq ID=37 / top level operator + nexts= 0:avatar transition/ ID=56 +SEND ID=38 / top level operator + nexts= 0:avatar transition/ ID=54 +settimer__ATST1 ID=39 / top level operator + nexts= 0:avatar transition/ ID=53 + timer: ATST1 +action_on_signal:CR ID=40 / top level operator + nexts= 0:avatar transition/ ID=61 +WAIT_FOR_CONF ID=41 / top level operator + nexts= 0:avatar transition/ ID=55 1:avatar transition/ ID=60 +expiretimer__ATST1 ID=42 / top level operator + nexts= 0:avatar transition/ ID=51 + timer: ATST1 +choice__0 ID=43 / top level operator + nexts= 0:avatar transition/ ID=50 1:avatar transition/ ID=65 +action_on_signal:INerror ID=44 / top level operator + nexts= 0:avatar transition/ ID=74 +action_on_signal:DR ID=45 / top level operator + nexts= 0:avatar transition/ ID=75 +ERROR ID=46 / top level operator + nexts= +action_on_signal:CC ID=47 / top level operator + nexts= 0:avatar transition/ ID=52 +action_on_signal:INconconf ID=48 / top level operator + nexts= 0:avatar transition/ ID=64 +CONNECTED ID=49 / top level operator + nexts= +avatar transition ID=50 / top level operator + value:Transition (guard=not(retransmissionCounter<maxRetransmissions), ...) weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 +guard not(retransmissionCounter<maxRetransmissions) / +avatar transition ID=51 / top level operator + value:Empty transition weight:1.0 + nexts= 0:choice__0/ ID=43 +weight=1.0 + +avatar transition ID=52 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=48 +weight=1.0 + +avatar transition ID=53 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=40 +weight=1.0 + +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:settimer__ATST1/ ID=39 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Empty transition weight:1.0 + nexts= 0:expiretimer__ATST1/ ID=42 +weight=1.0 + +avatar transition ID=56 / top level operator + value:Transition (retransmissionCounter = 0, ...) weight:1.0 + nexts= 0:SEND/ ID=38 +weight=1.0 +retransmissionCounter = 0 / +avatar transition ID=60 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=47 +weight=1.0 + +avatar transition ID=61 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WAIT_FOR_CONF/ ID=41 +weight=1.0 + +avatar transition ID=62 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=37 +weight=1.0 + +avatar transition ID=63 / top level operator + value:Empty transition weight:1.0 + nexts= 0:IDLE/ ID=36 +weight=1.0 + +avatar transition ID=64 / top level operator + value:Empty transition weight:1.0 + nexts= 0:CONNECTED/ ID=49 +weight=1.0 + +avatar transition ID=65 / top level operator + value:Transition (guard=retransmissionCounter<maxRetransmissions, ...) weight:1.0 + nexts= 0:SEND/ ID=38 +weight=1.0 +retransmissionCounter = retransmissionCounter+1 / guard retransmissionCounter<maxRetransmissions / +avatar transition ID=74 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=45 +weight=1.0 + +avatar transition ID=75 / top level operator + value:Empty transition weight:1.0 + nexts= 0:ERROR/ ID=46 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_SetTimer.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_SetTimer.txt new file mode 100644 index 0000000000000000000000000000000000000000..28e8d7fc16738e4ce19c864fff3172dc1094402a --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/OnBoardCommunication_Disable_SetTimer.txt @@ -0,0 +1,108 @@ +State machine Id=3 +start ID=35 / top level operator + nexts= 0:avatar transition/ ID=63 +IDLE ID=36 / top level operator + nexts= 0:avatar transition/ ID=62 +action_on_signal:INconreq ID=37 / top level operator + nexts= 0:avatar transition/ ID=56 +SEND ID=38 / top level operator + nexts= 0:avatar transition/ ID=54 +action_on_signal:CR ID=39 / top level operator + nexts= 0:avatar transition/ ID=61 +WAIT_FOR_CONF ID=40 / top level operator + nexts= 0:avatar transition/ ID=55 1:avatar transition/ ID=60 +expiretimer__ATST1 ID=41 / top level operator + nexts= 0:avatar transition/ ID=51 + timer: ATST1 +choice__0 ID=42 / top level operator + nexts= 0:avatar transition/ ID=50 1:avatar transition/ ID=65 +action_on_signal:INerror ID=43 / top level operator + nexts= 0:avatar transition/ ID=74 +action_on_signal:DR ID=44 / top level operator + nexts= 0:avatar transition/ ID=75 +ERROR ID=45 / top level operator + nexts= +action_on_signal:CC ID=46 / top level operator + nexts= 0:avatar transition/ ID=53 +resettimer__ATST1 ID=47 / top level operator + nexts= 0:avatar transition/ ID=52 + timer: ATST1 +action_on_signal:INconconf ID=48 / top level operator + nexts= 0:avatar transition/ ID=64 +CONNECTED ID=49 / top level operator + nexts= +avatar transition ID=50 / top level operator + value:Transition (guard=not(retransmissionCounter<maxRetransmissions), ...) weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 +guard not(retransmissionCounter<maxRetransmissions) / +avatar transition ID=51 / top level operator + value:Empty transition weight:1.0 + nexts= 0:choice__0/ ID=42 +weight=1.0 + +avatar transition ID=52 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=48 +weight=1.0 + +avatar transition ID=53 / top level operator + value:Empty transition weight:1.0 + nexts= 0:resettimer__ATST1/ ID=47 +weight=1.0 + +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=39 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Empty transition weight:1.0 + nexts= 0:expiretimer__ATST1/ ID=41 +weight=1.0 + +avatar transition ID=56 / top level operator + value:Transition (retransmissionCounter = 0, ...) weight:1.0 + nexts= 0:SEND/ ID=38 +weight=1.0 +retransmissionCounter = 0 / +avatar transition ID=60 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=46 +weight=1.0 + +avatar transition ID=61 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WAIT_FOR_CONF/ ID=40 +weight=1.0 + +avatar transition ID=62 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=37 +weight=1.0 + +avatar transition ID=63 / top level operator + value:Empty transition weight:1.0 + nexts= 0:IDLE/ ID=36 +weight=1.0 + +avatar transition ID=64 / top level operator + value:Empty transition weight:1.0 + nexts= 0:CONNECTED/ ID=49 +weight=1.0 + +avatar transition ID=65 / top level operator + value:Transition (guard=retransmissionCounter<maxRetransmissions, ...) weight:1.0 + nexts= 0:SEND/ ID=38 +weight=1.0 +retransmissionCounter = retransmissionCounter+1 / guard retransmissionCounter<maxRetransmissions / +avatar transition ID=74 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 + +avatar transition ID=75 / top level operator + value:Empty transition weight:1.0 + nexts= 0:ERROR/ ID=45 +weight=1.0 + diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/PageLoader_Disable_Random.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/PageLoader_Disable_Random.txt new file mode 100644 index 0000000000000000000000000000000000000000..6c8a09190bacd96634bcd5db3478e22607af4342 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/PageLoader_Disable_Random.txt @@ -0,0 +1,192 @@ +State machine Id=3 +start ID=80 / top level operator + nexts= 0:avatar transition/ ID=146 +WaitingForPageToLoad ID=81 / top level operator + nexts= 0:avatar transition/ ID=147 +action_on_signal:loadPage ID=82 / top level operator + nexts= 0:avatar transition/ ID=148 +getFromMemory ID=83 / top level operator + nexts= 0:avatar transition/ ID=166 +choice__0 ID=84 / top level operator + nexts= 0:avatar transition/ ID=132 1:avatar transition/ ID=133 2:avatar transition/ ID=138 3:avatar transition/ ID=167 +gotItFromMemory ID=85 / top level operator + nexts= 0:avatar transition/ ID=172 +PageReady ID=86 / top level operator + nexts= 0:avatar transition/ ID=173 +action_on_signal:pageReady ID=87 / top level operator + nexts= 0:avatar transition/ ID=122 +choice__1 ID=88 / top level operator + nexts= 0:avatar transition/ ID=104 1:avatar transition/ ID=175 +Prefetching ID=89 / top level operator + nexts= 0:avatar transition/ ID=129 +start ID=90 / in state Prefetching ID=89 + nexts= 0:avatar transition/ ID=106 +random ID=91 / in state Prefetching ID=89 + nexts= 0:avatar transition/ ID=121 +PagePrefetched ID=92 / in state Prefetching ID=89 + nexts= 0:avatar transition/ ID=107 +PutPrefetchInMemory ID=93 / top level operator + nexts= 0:avatar transition/ ID=108 +PutPrefetchInMemoryDone ID=94 / top level operator + nexts= 0:avatar transition/ ID=105 +action_on_signal:loadPage ID=95 / top level operator + nexts= 0:avatar transition/ ID=174 +LoadingPage ID=96 / top level operator + nexts= 0:avatar transition/ ID=144 +start ID=97 / in state LoadingPage ID=96 + nexts= 0:avatar transition/ ID=149 +random_converted_to_dummy_state ID=98 / in state LoadingPage ID=96 + nexts= 0:avatar transition/ ID=150 +PageLoaded ID=99 / top level operator + nexts= 0:avatar transition/ ID=143 +PutPageInMemory ID=100 / top level operator + nexts= 0:avatar transition/ ID=153 +PutPageInMemoryDone ID=101 / top level operator + nexts= 0:avatar transition/ ID=131 +action_on_signal:loadPage ID=102 / top level operator + nexts= 0:avatar transition/ ID=145 +Interrupted ID=103 / top level operator + nexts= 0:avatar transition/ ID=130 +avatar transition ID=104 / top level operator + value:Transition (guard=not((pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid))), ...) weight:1.0 + nexts= 0:WaitingForPageToLoad/ ID=81 +weight=1.0 +guard not((pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid))) / +avatar transition ID=105 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForPageToLoad/ ID=81 +weight=1.0 + +avatar transition ID=106 / top level operator + value:Transition (delay=(minPageLoadingTime, maxPageLoadingTime), ...) weight:1.0 + nexts= 0:random/ ID=91 +minDelay=minPageLoadingTime maxDelay=maxPageLoadingTime +weight=1.0 + +avatar transition ID=107 / top level operator + value:Empty transition weight:1.0 + nexts= 0:PutPrefetchInMemory/ ID=93 +weight=1.0 + +avatar transition ID=108 / top level operator + value:Transition (memory__index1 = memory__index2, ...) weight:1.0 + nexts= 0:PutPrefetchInMemoryDone/ ID=94 +weight=1.0 +memory__index1 = memory__index2 / memory__data1 = memory__data2 / memory__index2 = memory__index3 / memory__data2 = memory__data3 / memory__index3 = pageid / memory__data3 = x / +avatar transition ID=121 / top level operator + value:Empty transition weight:1.0 + nexts= 0:PagePrefetched/ ID=92 +weight=1.0 + +avatar transition ID=122 / top level operator + value:Transition (pageid = pageid+1, ...) weight:1.0 + nexts= 0:choice__1/ ID=88 +weight=1.0 +pageid = pageid+1 / +avatar transition ID=129 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=95 +weight=1.0 + +avatar transition ID=130 / top level operator + value:Empty transition weight:1.0 + nexts= 0:getFromMemory/ ID=83 +weight=1.0 + +avatar transition ID=131 / top level operator + value:Empty transition weight:1.0 + nexts= 0:PageReady/ ID=86 +weight=1.0 + +avatar transition ID=132 / top level operator + value:Transition (guard=((not(pageid == memory__index3))and(not(pageid == memory__index1)))and(not(pageid == memory__index2)), ...) weight:1.0 + nexts= 0:LoadingPage/ ID=96 +weight=1.0 +guard ((not(pageid == memory__index3))and(not(pageid == memory__index1)))and(not(pageid == memory__index2)) / +avatar transition ID=133 / top level operator + value:Transition (guard=pageid == memory__index3, ...) weight:1.0 + nexts= 0:gotItFromMemory/ ID=85 +weight=1.0 +page__data = memory__data3 / guard pageid == memory__index3 / +avatar transition ID=138 / top level operator + value:Transition (guard=pageid == memory__index1, ...) weight:1.0 + nexts= 0:gotItFromMemory/ ID=85 +weight=1.0 +page__data = memory__data1 / guard pageid == memory__index1 / +avatar transition ID=143 / top level operator + value:Empty transition weight:1.0 + nexts= 0:PutPageInMemory/ ID=100 +weight=1.0 + +avatar transition ID=144 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=102 +weight=1.0 + +avatar transition ID=145 / top level operator + value:Empty transition weight:1.0 + nexts= 0:Interrupted/ ID=103 +weight=1.0 + +avatar transition ID=146 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForPageToLoad/ ID=81 +weight=1.0 + +avatar transition ID=147 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=82 +weight=1.0 + +avatar transition ID=148 / top level operator + value:Empty transition weight:1.0 + nexts= 0:getFromMemory/ ID=83 +weight=1.0 + +avatar transition ID=149 / top level operator + value:Transition (delay=(minPageLoadingTime, maxPageLoadingTime), ...) weight:1.0 + nexts= 0:random_converted_to_dummy_state/ ID=98 +minDelay=minPageLoadingTime maxDelay=maxPageLoadingTime +weight=1.0 + +avatar transition ID=150 / top level operator + value:Transition (page__data = x, ...) weight:1.0 + nexts= 0:PageLoaded/ ID=99 +weight=1.0 +page__data = x / +avatar transition ID=153 / top level operator + value:Transition (memory__index1 = memory__index2, ...) weight:1.0 + nexts= 0:PutPageInMemoryDone/ ID=101 +weight=1.0 +memory__index1 = memory__index2 / memory__data1 = memory__data2 / memory__index2 = memory__index3 / memory__data2 = memory__data3 / memory__index3 = pageid / memory__data3 = page__data / +avatar transition ID=166 / top level operator + value:Empty transition weight:1.0 + nexts= 0:choice__0/ ID=84 +weight=1.0 + +avatar transition ID=167 / top level operator + value:Transition (guard=pageid == memory__index2, ...) weight:1.0 + nexts= 0:gotItFromMemory/ ID=85 +weight=1.0 +page__data = memory__data2 / guard pageid == memory__index2 / +avatar transition ID=172 / top level operator + value:Transition (delay=(memoryPageAccessTime, memoryPageAccessTime), ...) weight:1.0 + nexts= 0:PageReady/ ID=86 +minDelay=memoryPageAccessTime maxDelay=memoryPageAccessTime +weight=1.0 + +avatar transition ID=173 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=87 +weight=1.0 + +avatar transition ID=174 / top level operator + value:Empty transition weight:1.0 + nexts= 0:WaitingForPageToLoad/ ID=81 +weight=1.0 + +avatar transition ID=175 / top level operator + value:Transition (guard=(pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid)), ...) weight:1.0 + nexts= 0:Prefetching/ ID=89 +weight=1.0 +guard (pageid<doc__nbOfPages)and(not(memory__index1 == pageid))and(not(memory__index2 == pageid))and(not(memory__index3 == pageid)) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_ReceiveSignal.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_ReceiveSignal.txt new file mode 100644 index 0000000000000000000000000000000000000000..31fcddea18bc70ad1640e43b8217bed020cdc2b0 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_ReceiveSignal.txt @@ -0,0 +1,28 @@ +State machine Id=3 +start ID=41 / top level operator + nexts= 0:avatar transition/ ID=65 +main ID=42 / top level operator + nexts= 0:avatar transition/ ID=44 1:avatar transition/ ID=62 +action_on_signal:putCoin ID=43 / top level operator + nexts= 0:avatar transition/ ID=53 +avatar transition ID=44 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / +avatar transition ID=53 / top level operator + value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0 + nexts= 0:main/ ID=42 +minDelay=minUserDelay maxDelay=maxUserDelay +weight=1.0 +nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / +avatar transition ID=62 / top level operator + value:Transition (guard=nbOfCoins>0, ...) weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 +guard nbOfCoins>0 / +avatar transition ID=65 / top level operator + value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +contentOfWallet (nbOfCoins) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_SendSignal.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_SendSignal.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc9ca86c0c51397dbfe8134fb1479d2252eb0945 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_SendSignal.txt @@ -0,0 +1,35 @@ +State machine Id=3 +start ID=41 / top level operator + nexts= 0:avatar transition/ ID=67 +main ID=42 / top level operator + nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=64 +action_on_signal:putCoin_converted_to_dummy_state ID=43 / top level operator + nexts= 0:avatar transition/ ID=55 +action_on_signal:getCoin ID=44 / top level operator + nexts= 0:avatar transition/ ID=45 +avatar transition ID=45 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0 + nexts= 0:main/ ID=42 +minDelay=minUserDelay maxDelay=maxUserDelay +weight=1.0 +nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / +avatar transition ID=64 / top level operator + value:Transition (guard=nbOfCoins>0, ...) weight:1.0 + nexts= 0:action_on_signal:putCoin_converted_to_dummy_state/ ID=43 +weight=1.0 +guard nbOfCoins>0 / +avatar transition ID=67 / top level operator + value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +contentOfWallet (nbOfCoins) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_State.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_State.txt new file mode 100644 index 0000000000000000000000000000000000000000..43c9e450f96ffc68e0c22c3ce72c37298a325492 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_State.txt @@ -0,0 +1,39 @@ +State machine Id=3 +start ID=41 / top level operator + nexts= 0:avatar transition/ ID=69 +main_converted_to_dummy_state ID=42 / top level operator + nexts= 0:avatar transition/ ID=56 1:avatar transition/ ID=66 +action_on_signal:putCoin ID=43 / top level operator + nexts= 0:avatar transition/ ID=57 +main_state_converted_to_stop ID=44 / top level operator + nexts= +main_state_converted_to_stop ID=45 / top level operator + nexts= +action_on_signal:getCoin ID=46 / top level operator + nexts= 0:avatar transition/ ID=47 +avatar transition ID=47 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:main_state_converted_to_stop/ ID=45 +weight=1.0 +nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / +avatar transition ID=56 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=46 +weight=1.0 + +avatar transition ID=57 / top level operator + value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0 + nexts= 0:main_state_converted_to_stop/ ID=44 +minDelay=minUserDelay maxDelay=maxUserDelay +weight=1.0 +nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / +avatar transition ID=66 / top level operator + value:Transition (guard=nbOfCoins>0, ...) weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 +guard nbOfCoins>0 / +avatar transition ID=69 / top level operator + value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0 + nexts= 0:main_converted_to_dummy_state/ ID=42 +weight=1.0 +contentOfWallet (nbOfCoins) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoAfterActions.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoAfterActions.txt new file mode 100644 index 0000000000000000000000000000000000000000..92880c5e8cbff7174d832eb36c0052106ff32265 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoAfterActions.txt @@ -0,0 +1,34 @@ +State machine Id=3 +start ID=41 / top level operator + nexts= 0:avatar transition/ ID=59 +main ID=42 / top level operator + nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=56 +action_on_signal:putCoin ID=43 / top level operator + nexts= 0:avatar transition/ ID=55 +action_on_signal:getCoin ID=44 / top level operator + nexts= 0:avatar transition/ ID=45 +avatar transition ID=45 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Empty transition weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 + +avatar transition ID=56 / top level operator + value:Transition (guard=nbOfCoins>0, ...) weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 +guard nbOfCoins>0 / +avatar transition ID=59 / top level operator + value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +contentOfWallet (nbOfCoins) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoGuard.txt b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoGuard.txt new file mode 100644 index 0000000000000000000000000000000000000000..86b20254ba1de2c832084bfefac3d90976788007 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/expected/components_disabling/Wallet_Disable_TransitionInfoGuard.txt @@ -0,0 +1,35 @@ +State machine Id=3 +start ID=41 / top level operator + nexts= 0:avatar transition/ ID=65 +main ID=42 / top level operator + nexts= 0:avatar transition/ ID=54 1:avatar transition/ ID=64 +action_on_signal:putCoin ID=43 / top level operator + nexts= 0:avatar transition/ ID=55 +action_on_signal:getCoin ID=44 / top level operator + nexts= 0:avatar transition/ ID=45 +avatar transition ID=45 / top level operator + value:Transition (nbOfCoins = nbOfCoins+x, ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +nbOfCoins = nbOfCoins+x / contentOfWallet (nbOfCoins) / +avatar transition ID=54 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=44 +weight=1.0 + +avatar transition ID=55 / top level operator + value:Transition (delay=(minUserDelay, maxUserDelay), ...) weight:1.0 + nexts= 0:main/ ID=42 +minDelay=minUserDelay maxDelay=maxUserDelay +weight=1.0 +nbOfCoins = nbOfCoins-x / contentOfWallet (nbOfCoins) / +avatar transition ID=64 / top level operator + value:Empty transition weight:1.0 + nexts= 0:action_on_signal/ ID=43 +weight=1.0 + +avatar transition ID=65 / top level operator + value:Transition (contentOfWallet (nbOfCoins), ...) weight:1.0 + nexts= 0:main/ ID=42 +weight=1.0 +contentOfWallet (nbOfCoins) / diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/CoffeeMachine_Avatar.xml b/ttool/src/test/resources/ui/diagram2avatar/input/CoffeeMachine_Avatar.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b806f16364b010281c0cdd8ea4121daef1f4501 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/input/CoffeeMachine_Avatar.xml @@ -0,0 +1,5062 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="Avatar Requirement" nameTab="AVATAR Requirements" > +<AvatarRDPanel name="AVATAR RD" minX="10" maxX="1900" minY="10" maxY="900" zoom="1.0" > +<COMPONENT type="5200" id="44" > +<cdparam x="661" y="17" /> +<sizeparam width="278" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="59" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Requirement" value="req00" /> +<TGConnectingPoint num="0" id="1" /> +<TGConnectingPoint num="1" id="2" /> +<TGConnectingPoint num="2" id="3" /> +<TGConnectingPoint num="3" id="4" /> +<TGConnectingPoint num="4" id="5" /> +<TGConnectingPoint num="5" id="6" /> +<TGConnectingPoint num="6" id="7" /> +<TGConnectingPoint num="7" id="8" /> +<TGConnectingPoint num="8" id="9" /> +<TGConnectingPoint num="9" id="10" /> +<TGConnectingPoint num="10" id="11" /> +<TGConnectingPoint num="11" id="12" /> +<TGConnectingPoint num="12" id="13" /> +<TGConnectingPoint num="13" id="14" /> +<TGConnectingPoint num="14" id="15" /> +<TGConnectingPoint num="15" id="16" /> +<TGConnectingPoint num="16" id="17" /> +<TGConnectingPoint num="17" id="18" /> +<TGConnectingPoint num="18" id="19" /> +<TGConnectingPoint num="19" id="20" /> +<TGConnectingPoint num="20" id="21" /> +<TGConnectingPoint num="21" id="22" /> +<TGConnectingPoint num="22" id="23" /> +<TGConnectingPoint num="23" id="24" /> +<TGConnectingPoint num="24" id="25" /> +<TGConnectingPoint num="25" id="26" /> +<TGConnectingPoint num="26" id="27" /> +<TGConnectingPoint num="27" id="28" /> +<TGConnectingPoint num="28" id="29" /> +<TGConnectingPoint num="29" id="30" /> +<TGConnectingPoint num="30" id="31" /> +<TGConnectingPoint num="31" id="32" /> +<TGConnectingPoint num="32" id="33" /> +<TGConnectingPoint num="33" id="34" /> +<TGConnectingPoint num="34" id="35" /> +<TGConnectingPoint num="35" id="36" /> +<TGConnectingPoint num="36" id="37" /> +<TGConnectingPoint num="37" id="38" /> +<TGConnectingPoint num="38" id="39" /> +<TGConnectingPoint num="39" id="40" /> +<TGConnectingPoint num="40" id="41" /> +<TGConnectingPoint num="41" id="42" /> +<TGConnectingPoint num="42" id="43" /> +<extraparam> +<textline data="A coin not used within 50 seconds " /> +<textline data="must be ejected" /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="0" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5200" id="88" > +<cdparam x="47" y="457" /> +<sizeparam width="301" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="113" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Requirement" value="Req_Availability" /> +<TGConnectingPoint num="0" id="45" /> +<TGConnectingPoint num="1" id="46" /> +<TGConnectingPoint num="2" id="47" /> +<TGConnectingPoint num="3" id="48" /> +<TGConnectingPoint num="4" id="49" /> +<TGConnectingPoint num="5" id="50" /> +<TGConnectingPoint num="6" id="51" /> +<TGConnectingPoint num="7" id="52" /> +<TGConnectingPoint num="8" id="53" /> +<TGConnectingPoint num="9" id="54" /> +<TGConnectingPoint num="10" id="55" /> +<TGConnectingPoint num="11" id="56" /> +<TGConnectingPoint num="12" id="57" /> +<TGConnectingPoint num="13" id="58" /> +<TGConnectingPoint num="14" id="59" /> +<TGConnectingPoint num="15" id="60" /> +<TGConnectingPoint num="16" id="61" /> +<TGConnectingPoint num="17" id="62" /> +<TGConnectingPoint num="18" id="63" /> +<TGConnectingPoint num="19" id="64" /> +<TGConnectingPoint num="20" id="65" /> +<TGConnectingPoint num="21" id="66" /> +<TGConnectingPoint num="22" id="67" /> +<TGConnectingPoint num="23" id="68" /> +<TGConnectingPoint num="24" id="69" /> +<TGConnectingPoint num="25" id="70" /> +<TGConnectingPoint num="26" id="71" /> +<TGConnectingPoint num="27" id="72" /> +<TGConnectingPoint num="28" id="73" /> +<TGConnectingPoint num="29" id="74" /> +<TGConnectingPoint num="30" id="75" /> +<TGConnectingPoint num="31" id="76" /> +<TGConnectingPoint num="32" id="77" /> +<TGConnectingPoint num="33" id="78" /> +<TGConnectingPoint num="34" id="79" /> +<TGConnectingPoint num="35" id="80" /> +<TGConnectingPoint num="36" id="81" /> +<TGConnectingPoint num="37" id="82" /> +<TGConnectingPoint num="38" id="83" /> +<TGConnectingPoint num="39" id="84" /> +<TGConnectingPoint num="40" id="85" /> +<TGConnectingPoint num="41" id="86" /> +<TGConnectingPoint num="42" id="87" /> +<extraparam> +<textline data="The availability of the machine shall be" /> +<textline data="no less than 99.99%" /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="0" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5200" id="132" > +<cdparam x="10" y="182" /> +<sizeparam width="150" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="136" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Requirement" value="Req_CoffeeMachine" /> +<TGConnectingPoint num="0" id="89" /> +<TGConnectingPoint num="1" id="90" /> +<TGConnectingPoint num="2" id="91" /> +<TGConnectingPoint num="3" id="92" /> +<TGConnectingPoint num="4" id="93" /> +<TGConnectingPoint num="5" id="94" /> +<TGConnectingPoint num="6" id="95" /> +<TGConnectingPoint num="7" id="96" /> +<TGConnectingPoint num="8" id="97" /> +<TGConnectingPoint num="9" id="98" /> +<TGConnectingPoint num="10" id="99" /> +<TGConnectingPoint num="11" id="100" /> +<TGConnectingPoint num="12" id="101" /> +<TGConnectingPoint num="13" id="102" /> +<TGConnectingPoint num="14" id="103" /> +<TGConnectingPoint num="15" id="104" /> +<TGConnectingPoint num="16" id="105" /> +<TGConnectingPoint num="17" id="106" /> +<TGConnectingPoint num="18" id="107" /> +<TGConnectingPoint num="19" id="108" /> +<TGConnectingPoint num="20" id="109" /> +<TGConnectingPoint num="21" id="110" /> +<TGConnectingPoint num="22" id="111" /> +<TGConnectingPoint num="23" id="112" /> +<TGConnectingPoint num="24" id="113" /> +<TGConnectingPoint num="25" id="114" /> +<TGConnectingPoint num="26" id="115" /> +<TGConnectingPoint num="27" id="116" /> +<TGConnectingPoint num="28" id="117" /> +<TGConnectingPoint num="29" id="118" /> +<TGConnectingPoint num="30" id="119" /> +<TGConnectingPoint num="31" id="120" /> +<TGConnectingPoint num="32" id="121" /> +<TGConnectingPoint num="33" id="122" /> +<TGConnectingPoint num="34" id="123" /> +<TGConnectingPoint num="35" id="124" /> +<TGConnectingPoint num="36" id="125" /> +<TGConnectingPoint num="37" id="126" /> +<TGConnectingPoint num="38" id="127" /> +<TGConnectingPoint num="39" id="128" /> +<TGConnectingPoint num="40" id="129" /> +<TGConnectingPoint num="41" id="130" /> +<TGConnectingPoint num="42" id="131" /> +<extraparam> +<textline data="Requirements of the coffee machine" /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="0" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5201" id="148" > +<cdparam x="627" y="376" /> +<sizeparam width="171" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="158" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarProperty" value="BeverageDeliverProperty" /> +<TGConnectingPoint num="0" id="133" /> +<TGConnectingPoint num="1" id="134" /> +<TGConnectingPoint num="2" id="135" /> +<TGConnectingPoint num="3" id="136" /> +<TGConnectingPoint num="4" id="137" /> +<TGConnectingPoint num="5" id="138" /> +<TGConnectingPoint num="6" id="139" /> +<TGConnectingPoint num="7" id="140" /> +<TGConnectingPoint num="8" id="141" /> +<TGConnectingPoint num="9" id="142" /> +<TGConnectingPoint num="10" id="143" /> +<TGConnectingPoint num="11" id="144" /> +<TGConnectingPoint num="12" id="145" /> +<TGConnectingPoint num="13" id="146" /> +<TGConnectingPoint num="14" id="147" /> +</COMPONENT> + +<COMPONENT type="5201" id="164" > +<cdparam x="580" y="246" /> +<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="128" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarProperty" value="WalletCoinProperty" /> +<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" /> +<TGConnectingPoint num="8" id="157" /> +<TGConnectingPoint num="9" id="158" /> +<TGConnectingPoint num="10" id="159" /> +<TGConnectingPoint num="11" id="160" /> +<TGConnectingPoint num="12" id="161" /> +<TGConnectingPoint num="13" id="162" /> +<TGConnectingPoint num="14" id="163" /> +</COMPONENT> + +<COMPONENT type="5200" id="208" > +<cdparam x="234" y="147" /> +<sizeparam width="271" height="104" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Requirement" value="req1" /> +<TGConnectingPoint num="0" id="165" /> +<TGConnectingPoint num="1" id="166" /> +<TGConnectingPoint num="2" id="167" /> +<TGConnectingPoint num="3" id="168" /> +<TGConnectingPoint num="4" id="169" /> +<TGConnectingPoint num="5" id="170" /> +<TGConnectingPoint num="6" id="171" /> +<TGConnectingPoint num="7" id="172" /> +<TGConnectingPoint num="8" id="173" /> +<TGConnectingPoint num="9" id="174" /> +<TGConnectingPoint num="10" id="175" /> +<TGConnectingPoint num="11" id="176" /> +<TGConnectingPoint num="12" id="177" /> +<TGConnectingPoint num="13" id="178" /> +<TGConnectingPoint num="14" id="179" /> +<TGConnectingPoint num="15" id="180" /> +<TGConnectingPoint num="16" id="181" /> +<TGConnectingPoint num="17" id="182" /> +<TGConnectingPoint num="18" id="183" /> +<TGConnectingPoint num="19" id="184" /> +<TGConnectingPoint num="20" id="185" /> +<TGConnectingPoint num="21" id="186" /> +<TGConnectingPoint num="22" id="187" /> +<TGConnectingPoint num="23" id="188" /> +<TGConnectingPoint num="24" id="189" /> +<TGConnectingPoint num="25" id="190" /> +<TGConnectingPoint num="26" id="191" /> +<TGConnectingPoint num="27" id="192" /> +<TGConnectingPoint num="28" id="193" /> +<TGConnectingPoint num="29" id="194" /> +<TGConnectingPoint num="30" id="195" /> +<TGConnectingPoint num="31" id="196" /> +<TGConnectingPoint num="32" id="197" /> +<TGConnectingPoint num="33" id="198" /> +<TGConnectingPoint num="34" id="199" /> +<TGConnectingPoint num="35" id="200" /> +<TGConnectingPoint num="36" id="201" /> +<TGConnectingPoint num="37" id="202" /> +<TGConnectingPoint num="38" id="203" /> +<TGConnectingPoint num="39" id="204" /> +<TGConnectingPoint num="40" id="205" /> +<TGConnectingPoint num="41" id="206" /> +<TGConnectingPoint num="42" id="207" /> +<extraparam> +<textline data="A wallet must never contain a " /> +<textline data="negative number of coins" /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="0" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5201" id="224" > +<cdparam x="582" y="155" /> +<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="117" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarProperty" value="OneCoinProperty" /> +<TGConnectingPoint num="0" id="209" /> +<TGConnectingPoint num="1" id="210" /> +<TGConnectingPoint num="2" id="211" /> +<TGConnectingPoint num="3" id="212" /> +<TGConnectingPoint num="4" id="213" /> +<TGConnectingPoint num="5" id="214" /> +<TGConnectingPoint num="6" id="215" /> +<TGConnectingPoint num="7" id="216" /> +<TGConnectingPoint num="8" id="217" /> +<TGConnectingPoint num="9" id="218" /> +<TGConnectingPoint num="10" id="219" /> +<TGConnectingPoint num="11" id="220" /> +<TGConnectingPoint num="12" id="221" /> +<TGConnectingPoint num="13" id="222" /> +<TGConnectingPoint num="14" id="223" /> +</COMPONENT> + +<COMPONENT type="5200" id="268" > +<cdparam x="192" y="16" /> +<sizeparam width="304" height="110" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Requirement" value="req0" /> +<TGConnectingPoint num="0" id="225" /> +<TGConnectingPoint num="1" id="226" /> +<TGConnectingPoint num="2" id="227" /> +<TGConnectingPoint num="3" id="228" /> +<TGConnectingPoint num="4" id="229" /> +<TGConnectingPoint num="5" id="230" /> +<TGConnectingPoint num="6" id="231" /> +<TGConnectingPoint num="7" id="232" /> +<TGConnectingPoint num="8" id="233" /> +<TGConnectingPoint num="9" id="234" /> +<TGConnectingPoint num="10" id="235" /> +<TGConnectingPoint num="11" id="236" /> +<TGConnectingPoint num="12" id="237" /> +<TGConnectingPoint num="13" id="238" /> +<TGConnectingPoint num="14" id="239" /> +<TGConnectingPoint num="15" id="240" /> +<TGConnectingPoint num="16" id="241" /> +<TGConnectingPoint num="17" id="242" /> +<TGConnectingPoint num="18" id="243" /> +<TGConnectingPoint num="19" id="244" /> +<TGConnectingPoint num="20" id="245" /> +<TGConnectingPoint num="21" id="246" /> +<TGConnectingPoint num="22" id="247" /> +<TGConnectingPoint num="23" id="248" /> +<TGConnectingPoint num="24" id="249" /> +<TGConnectingPoint num="25" id="250" /> +<TGConnectingPoint num="26" id="251" /> +<TGConnectingPoint num="27" id="252" /> +<TGConnectingPoint num="28" id="253" /> +<TGConnectingPoint num="29" id="254" /> +<TGConnectingPoint num="30" id="255" /> +<TGConnectingPoint num="31" id="256" /> +<TGConnectingPoint num="32" id="257" /> +<TGConnectingPoint num="33" id="258" /> +<TGConnectingPoint num="34" id="259" /> +<TGConnectingPoint num="35" id="260" /> +<TGConnectingPoint num="36" id="261" /> +<TGConnectingPoint num="37" id="262" /> +<TGConnectingPoint num="38" id="263" /> +<TGConnectingPoint num="39" id="264" /> +<TGConnectingPoint num="40" id="265" /> +<TGConnectingPoint num="41" id="266" /> +<TGConnectingPoint num="42" id="267" /> +<extraparam> +<textline data="The coffee machine never has one coin " /> +<textline data=" inserted more than 50 units of time" /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="123" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5200" id="312" > +<cdparam x="206" y="294" /> +<sizeparam width="357" height="135" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Requirement" value="req2" /> +<TGConnectingPoint num="0" id="269" /> +<TGConnectingPoint num="1" id="270" /> +<TGConnectingPoint num="2" id="271" /> +<TGConnectingPoint num="3" id="272" /> +<TGConnectingPoint num="4" id="273" /> +<TGConnectingPoint num="5" id="274" /> +<TGConnectingPoint num="6" id="275" /> +<TGConnectingPoint num="7" id="276" /> +<TGConnectingPoint num="8" id="277" /> +<TGConnectingPoint num="9" id="278" /> +<TGConnectingPoint num="10" id="279" /> +<TGConnectingPoint num="11" id="280" /> +<TGConnectingPoint num="12" id="281" /> +<TGConnectingPoint num="13" id="282" /> +<TGConnectingPoint num="14" id="283" /> +<TGConnectingPoint num="15" id="284" /> +<TGConnectingPoint num="16" id="285" /> +<TGConnectingPoint num="17" id="286" /> +<TGConnectingPoint num="18" id="287" /> +<TGConnectingPoint num="19" id="288" /> +<TGConnectingPoint num="20" id="289" /> +<TGConnectingPoint num="21" id="290" /> +<TGConnectingPoint num="22" id="291" /> +<TGConnectingPoint num="23" id="292" /> +<TGConnectingPoint num="24" id="293" /> +<TGConnectingPoint num="25" id="294" /> +<TGConnectingPoint num="26" id="295" /> +<TGConnectingPoint num="27" id="296" /> +<TGConnectingPoint num="28" id="297" /> +<TGConnectingPoint num="29" id="298" /> +<TGConnectingPoint num="30" id="299" /> +<TGConnectingPoint num="31" id="300" /> +<TGConnectingPoint num="32" id="301" /> +<TGConnectingPoint num="33" id="302" /> +<TGConnectingPoint num="34" id="303" /> +<TGConnectingPoint num="35" id="304" /> +<TGConnectingPoint num="36" id="305" /> +<TGConnectingPoint num="37" id="306" /> +<TGConnectingPoint num="38" id="307" /> +<TGConnectingPoint num="39" id="308" /> +<TGConnectingPoint num="40" id="309" /> +<TGConnectingPoint num="41" id="310" /> +<TGConnectingPoint num="42" id="311" /> +<extraparam> +<textline data="When the application starts, if the wallet contains " /> +<textline data="at least 2 coins, then a beverage may be delivered. " /> +<textline data="On the contrary, if the wallet contains less than 2" /> +<textline data="coins, no beverage will be delivered by the" /> +<textline data="machine." /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="0" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="5202" id="314" > +<cdparam x="659" y="79" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Requirement to Requirement" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="313" /> +<P1 x="661" y="47" id="1" /> +<P2 x="496" y="43" id="228" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5205" id="316" > +<cdparam x="124" y="457" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Requirement to Requirement" value="<<composition>>" /> +<TGConnectingPoint num="0" id="315" /> +<P1 x="122" y="457" id="51" /> +<P2 x="122" y="302" id="100" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5205" id="318" > +<cdparam x="244" y="315" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Requirement to Requirement" value="<<composition>>" /> +<TGConnectingPoint num="0" id="317" /> +<P1 x="206" y="327" id="269" /> +<P2 x="160" y="272" id="94" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5205" id="320" > +<cdparam x="249" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Requirement to Requirement" value="<<composition>>" /> +<TGConnectingPoint num="0" id="319" /> +<P1 x="234" y="199" id="166" /> +<P2 x="160" y="212" id="92" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5205" id="322" > +<cdparam x="237" y="98" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Requirement to Requirement" value="<<composition>>" /> +<TGConnectingPoint num="0" id="321" /> +<P1 x="192" y="98" id="227" /> +<P2 x="122" y="182" id="97" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5203" id="324" > +<cdparam x="538" y="537" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from AvatarProperty to Requirement" value="<<verify>>" /> +<TGConnectingPoint num="0" id="323" /> +<P1 x="627" y="391" id="134" /> +<P2 x="563" y="361" id="285" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5203" id="326" > +<cdparam x="545" y="329" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from AvatarProperty to Requirement" value="<<verify>>" /> +<TGConnectingPoint num="0" id="325" /> +<P1 x="580" y="261" id="150" /> +<P2 x="505" y="199" id="181" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5203" id="328" > +<cdparam x="563" y="148" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from AvatarProperty to Requirement" value="<<verify>>" /> +<TGConnectingPoint num="0" id="327" /> +<P1 x="582" y="170" id="210" /> +<P2 x="496" y="98" id="242" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</AvatarRDPanel> + +<AvatarPDPanel name="AVATAR PD" minX="10" maxX="1402" minY="10" maxY="902" zoom="1.0000000000000004" > +<CONNECTOR type="5312" id="330" > +<cdparam x="582" y="248" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="329" /> +<P1 x="502" y="258" id="455" /> +<P2 x="502" y="334" id="343" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5310" id="336" > +<cdparam x="247" y="616" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="333" /> +<TGConnectingPoint num="1" id="334" /> +<TGConnectingPoint num="2" id="335" /> +<P1 x="492" y="126" id="418" /> +<P2 x="492" y="209" id="459" /> +<Point x="467" y="147" /> +<Point x="467" y="192" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="331" > +<father id="336" num="0" /> +<cdparam x="467" y="147" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="332" > +<father id="336" num="1" /> +<cdparam x="467" y="192" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5311" id="338" > +<cdparam x="280" y="200" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="337" /> +<P1 x="313" y="261" id="381" /> +<P2 x="361" y="261" id="356" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5312" id="340" > +<cdparam x="473" y="190" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="339" /> +<P1 x="390" y="286" id="354" /> +<P2 x="390" y="331" id="348" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="342" > +<cdparam x="276" y="190" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="341" /> +<P1 x="309" y="211" id="368" /> +<P2 x="361" y="211" id="355" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="5308" id="347" > +<cdparam x="446" y="334" /> +<sizeparam width="112" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<infoparam name="TGComponent" value="WalletCoinProperty" /> +<TGConnectingPoint num="0" id="343" /> +<TGConnectingPoint num="1" id="344" /> +<TGConnectingPoint num="2" id="345" /> +<TGConnectingPoint num="3" id="346" /> +<extraparam> +<liveness data="0" /> +<not data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5308" id="352" > +<cdparam x="340" y="331" /> +<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<infoparam name="TGComponent" value="oneCoinProperty" /> +<TGConnectingPoint num="0" id="348" /> +<TGConnectingPoint num="1" id="349" /> +<TGConnectingPoint num="2" id="350" /> +<TGConnectingPoint num="3" id="351" /> +<extraparam> +<liveness data="1" /> +<not data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5302" id="365" > +<cdparam x="361" y="187" /> +<sizeparam width="59" height="99" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<infoparam name="TGComponent" value=">50" /> +<TGConnectingPoint num="0" id="353" /> +<TGConnectingPoint num="1" id="354" /> +<TGConnectingPoint num="2" id="355" /> +<TGConnectingPoint num="3" id="356" /> +<TGConnectingPoint num="4" id="357" /> +<TGConnectingPoint num="5" id="358" /> +<TGConnectingPoint num="6" id="359" /> +<TGConnectingPoint num="7" id="360" /> +<TGConnectingPoint num="8" id="361" /> +<TGConnectingPoint num="9" id="362" /> +<TGConnectingPoint num="10" id="363" /> +<TGConnectingPoint num="11" id="364" /> +</COMPONENT> + +<COMPONENT type="5300" id="416" > +<cdparam x="150" y="142" /> +<sizeparam width="168" height="154" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<infoparam name="Block0" value="CoffeeMachine" /> +<TGConnectingPoint num="0" id="392" /> +<TGConnectingPoint num="1" id="393" /> +<TGConnectingPoint num="2" id="394" /> +<TGConnectingPoint num="3" id="395" /> +<TGConnectingPoint num="4" id="396" /> +<TGConnectingPoint num="5" id="397" /> +<TGConnectingPoint num="6" id="398" /> +<TGConnectingPoint num="7" id="399" /> +<TGConnectingPoint num="8" id="400" /> +<TGConnectingPoint num="9" id="401" /> +<TGConnectingPoint num="10" id="402" /> +<TGConnectingPoint num="11" id="403" /> +<TGConnectingPoint num="12" id="404" /> +<TGConnectingPoint num="13" id="405" /> +<TGConnectingPoint num="14" id="406" /> +<TGConnectingPoint num="15" id="407" /> +<TGConnectingPoint num="16" id="408" /> +<TGConnectingPoint num="17" id="409" /> +<TGConnectingPoint num="18" id="410" /> +<TGConnectingPoint num="19" id="411" /> +<TGConnectingPoint num="20" id="412" /> +<TGConnectingPoint num="21" id="413" /> +<TGConnectingPoint num="22" id="414" /> +<TGConnectingPoint num="23" id="415" /> +</COMPONENT> +<SUBCOMPONENT type="5304" id="378" > +<father id="416" num="0" /> +<cdparam x="170" y="191" /> +<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> +<TGConnectingPoint num="0" id="366" /> +<TGConnectingPoint num="1" id="367" /> +<TGConnectingPoint num="2" id="368" /> +<TGConnectingPoint num="3" id="369" /> +<TGConnectingPoint num="4" id="370" /> +<TGConnectingPoint num="5" id="371" /> +<TGConnectingPoint num="6" id="372" /> +<TGConnectingPoint num="7" id="373" /> +<TGConnectingPoint num="8" id="374" /> +<TGConnectingPoint num="9" id="375" /> +<TGConnectingPoint num="10" id="376" /> +<TGConnectingPoint num="11" id="377" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5304" id="391" > +<father id="416" num="1" /> +<cdparam x="165" y="241" /> +<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> +<TGConnectingPoint num="0" id="379" /> +<TGConnectingPoint num="1" id="380" /> +<TGConnectingPoint num="2" id="381" /> +<TGConnectingPoint num="3" id="382" /> +<TGConnectingPoint num="4" id="383" /> +<TGConnectingPoint num="5" id="384" /> +<TGConnectingPoint num="6" id="385" /> +<TGConnectingPoint num="7" id="386" /> +<TGConnectingPoint num="8" id="387" /> +<TGConnectingPoint num="9" id="388" /> +<TGConnectingPoint num="10" id="389" /> +<TGConnectingPoint num="11" id="390" /> +</SUBCOMPONENT> + +<COMPONENT type="5300" id="454" > +<cdparam x="459" y="61" /> +<sizeparam width="150" height="116" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<infoparam name="Block0" value="Wallet" /> +<TGConnectingPoint num="0" id="430" /> +<TGConnectingPoint num="1" id="431" /> +<TGConnectingPoint num="2" id="432" /> +<TGConnectingPoint num="3" id="433" /> +<TGConnectingPoint num="4" id="434" /> +<TGConnectingPoint num="5" id="435" /> +<TGConnectingPoint num="6" id="436" /> +<TGConnectingPoint num="7" id="437" /> +<TGConnectingPoint num="8" id="438" /> +<TGConnectingPoint num="9" id="439" /> +<TGConnectingPoint num="10" id="440" /> +<TGConnectingPoint num="11" id="441" /> +<TGConnectingPoint num="12" id="442" /> +<TGConnectingPoint num="13" id="443" /> +<TGConnectingPoint num="14" id="444" /> +<TGConnectingPoint num="15" id="445" /> +<TGConnectingPoint num="16" id="446" /> +<TGConnectingPoint num="17" id="447" /> +<TGConnectingPoint num="18" id="448" /> +<TGConnectingPoint num="19" id="449" /> +<TGConnectingPoint num="20" id="450" /> +<TGConnectingPoint num="21" id="451" /> +<TGConnectingPoint num="22" id="452" /> +<TGConnectingPoint num="23" id="453" /> +</COMPONENT> +<SUBCOMPONENT type="5303" id="429" > +<father id="454" num="0" /> +<cdparam x="492" y="102" /> +<sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="50" minY="0" maxY="67" /> +<infoparam name="TGComponent" value="nbOfCoins" /> +<TGConnectingPoint num="0" id="417" /> +<TGConnectingPoint num="1" id="418" /> +<TGConnectingPoint num="2" id="419" /> +<TGConnectingPoint num="3" id="420" /> +<TGConnectingPoint num="4" id="421" /> +<TGConnectingPoint num="5" id="422" /> +<TGConnectingPoint num="6" id="423" /> +<TGConnectingPoint num="7" id="424" /> +<TGConnectingPoint num="8" id="425" /> +<TGConnectingPoint num="9" id="426" /> +<TGConnectingPoint num="10" id="427" /> +<TGConnectingPoint num="11" id="428" /> +<extraparam> +<Toggle value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5306" id="466" > +<cdparam x="467" y="209" /> +<sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<infoparam name="TGComponent" value="nbOfCoins >= 0" /> +<TGConnectingPoint num="0" id="455" /> +<TGConnectingPoint num="1" id="456" /> +<TGConnectingPoint num="2" id="457" /> +<TGConnectingPoint num="3" id="458" /> +<TGConnectingPoint num="4" id="459" /> +<TGConnectingPoint num="5" id="460" /> +<TGConnectingPoint num="6" id="461" /> +<TGConnectingPoint num="7" id="462" /> +<TGConnectingPoint num="8" id="463" /> +<TGConnectingPoint num="9" id="464" /> +<TGConnectingPoint num="10" id="465" /> +<extraparam> +<Toggle value="" /> +</extraparam> +</COMPONENT> + + +</AvatarPDPanel> + +<AvatarPDPanel name="AVATAR PD" minX="10" maxX="1400" minY="10" maxY="1400" zoom="1.0" > +<CONNECTOR type="5312" id="468" > +<cdparam x="580" y="547" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="467" /> +<P1 x="634" y="495" id="643" /> +<P2 x="635" y="562" id="500" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5312" id="470" > +<cdparam x="506" y="493" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="469" /> +<P1 x="577" y="471" id="654" /> +<P2 x="654" y="495" id="644" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5312" id="472" > +<cdparam x="694" y="460" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="471" /> +<P1 x="694" y="472" id="496" /> +<P2 x="674" y="505" id="645" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="478" > +<cdparam x="581" y="133" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="475" /> +<TGConnectingPoint num="1" id="476" /> +<TGConnectingPoint num="2" id="477" /> +<P1 x="581" y="154" id="551" /> +<P2 x="546" y="305" id="621" /> +<Point x="518" y="154" /> +<Point x="518" y="305" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="473" > +<father id="478" num="0" /> +<cdparam x="518" y="154" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="474" > +<father id="478" num="1" /> +<cdparam x="518" y="305" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5311" id="482" > +<cdparam x="631" y="143" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="480" /> +<TGConnectingPoint num="1" id="481" /> +<P1 x="631" y="164" id="546" /> +<P2 x="667" y="310" id="608" /> +<Point x="631" y="310" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="479" > +<father id="482" num="0" /> +<cdparam x="631" y="310" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5312" id="484" > +<cdparam x="695" y="396" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="483" /> +<P1 x="696" y="385" id="607" /> +<P2 x="694" y="417" id="495" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5310" id="488" > +<cdparam x="877" y="168" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="486" /> +<TGConnectingPoint num="1" id="487" /> +<P1 x="721" y="158" id="557" /> +<P2 x="700" y="204" id="598" /> +<Point x="700" y="158" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="485" > +<father id="488" num="0" /> +<cdparam x="700" y="158" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5312" id="490" > +<cdparam x="915" y="307" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="489" /> +<P1 x="710" y="254" id="594" /> +<P2 x="711" y="285" id="606" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5312" id="492" > +<cdparam x="993" y="581" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="reg" /> +<TGConnectingPoint num="0" id="491" /> +<P1 x="576" y="385" id="620" /> +<P2 x="577" y="416" id="653" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="494" > +<cdparam x="426" y="264" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="" /> +<TGConnectingPoint num="0" id="493" /> +<P1 x="491" y="345" id="507" /> +<P2 x="546" y="345" id="625" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="5308" id="499" > +<cdparam x="644" y="417" /> +<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="prop01" /> +<TGConnectingPoint num="0" id="495" /> +<TGConnectingPoint num="1" id="496" /> +<TGConnectingPoint num="2" id="497" /> +<TGConnectingPoint num="3" id="498" /> +<extraparam> +<liveness data="1" /> +<not data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5308" id="504" > +<cdparam x="562" y="562" /> +<sizeparam width="146" height="54" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="BeverageDeliverProperty" /> +<TGConnectingPoint num="0" id="500" /> +<TGConnectingPoint num="1" id="501" /> +<TGConnectingPoint num="2" id="502" /> +<TGConnectingPoint num="3" id="503" /> +<extraparam> +<liveness data="0" /> +<not data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5300" id="542" > +<cdparam x="372" y="227" /> +<sizeparam width="132" height="153" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Block0" value="CoffeeMachine" /> +<TGConnectingPoint num="0" id="518" /> +<TGConnectingPoint num="1" id="519" /> +<TGConnectingPoint num="2" id="520" /> +<TGConnectingPoint num="3" id="521" /> +<TGConnectingPoint num="4" id="522" /> +<TGConnectingPoint num="5" id="523" /> +<TGConnectingPoint num="6" id="524" /> +<TGConnectingPoint num="7" id="525" /> +<TGConnectingPoint num="8" id="526" /> +<TGConnectingPoint num="9" id="527" /> +<TGConnectingPoint num="10" id="528" /> +<TGConnectingPoint num="11" id="529" /> +<TGConnectingPoint num="12" id="530" /> +<TGConnectingPoint num="13" id="531" /> +<TGConnectingPoint num="14" id="532" /> +<TGConnectingPoint num="15" id="533" /> +<TGConnectingPoint num="16" id="534" /> +<TGConnectingPoint num="17" id="535" /> +<TGConnectingPoint num="18" id="536" /> +<TGConnectingPoint num="19" id="537" /> +<TGConnectingPoint num="20" id="538" /> +<TGConnectingPoint num="21" id="539" /> +<TGConnectingPoint num="22" id="540" /> +<TGConnectingPoint num="23" id="541" /> +</COMPONENT> +<SUBCOMPONENT type="5304" id="517" > +<father id="542" num="0" /> +<cdparam x="391" y="326" /> +<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="32" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="beverageReady" /> +<TGConnectingPoint num="0" id="505" /> +<TGConnectingPoint num="1" id="506" /> +<TGConnectingPoint num="2" id="507" /> +<TGConnectingPoint num="3" id="508" /> +<TGConnectingPoint num="4" id="509" /> +<TGConnectingPoint num="5" id="510" /> +<TGConnectingPoint num="6" id="511" /> +<TGConnectingPoint num="7" id="512" /> +<TGConnectingPoint num="8" id="513" /> +<TGConnectingPoint num="9" id="514" /> +<TGConnectingPoint num="10" id="515" /> +<TGConnectingPoint num="11" id="516" /> +</SUBCOMPONENT> + +<COMPONENT type="5300" id="593" > +<cdparam x="563" y="78" /> +<sizeparam width="268" height="115" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Block0" value="Wallet" /> +<TGConnectingPoint num="0" id="569" /> +<TGConnectingPoint num="1" id="570" /> +<TGConnectingPoint num="2" id="571" /> +<TGConnectingPoint num="3" id="572" /> +<TGConnectingPoint num="4" id="573" /> +<TGConnectingPoint num="5" id="574" /> +<TGConnectingPoint num="6" id="575" /> +<TGConnectingPoint num="7" id="576" /> +<TGConnectingPoint num="8" id="577" /> +<TGConnectingPoint num="9" id="578" /> +<TGConnectingPoint num="10" id="579" /> +<TGConnectingPoint num="11" id="580" /> +<TGConnectingPoint num="12" id="581" /> +<TGConnectingPoint num="13" id="582" /> +<TGConnectingPoint num="14" id="583" /> +<TGConnectingPoint num="15" id="584" /> +<TGConnectingPoint num="16" id="585" /> +<TGConnectingPoint num="17" id="586" /> +<TGConnectingPoint num="18" id="587" /> +<TGConnectingPoint num="19" id="588" /> +<TGConnectingPoint num="20" id="589" /> +<TGConnectingPoint num="21" id="590" /> +<TGConnectingPoint num="22" id="591" /> +<TGConnectingPoint num="23" id="592" /> +</COMPONENT> +<SUBCOMPONENT type="5304" id="555" > +<father id="593" num="0" /> +<cdparam x="581" y="125" /> +<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> +<infoparam name="TGComponent" value="Start" /> +<TGConnectingPoint num="0" id="543" /> +<TGConnectingPoint num="1" id="544" /> +<TGConnectingPoint num="2" id="545" /> +<TGConnectingPoint num="3" id="546" /> +<TGConnectingPoint num="4" id="547" /> +<TGConnectingPoint num="5" id="548" /> +<TGConnectingPoint num="6" id="549" /> +<TGConnectingPoint num="7" id="550" /> +<TGConnectingPoint num="8" id="551" /> +<TGConnectingPoint num="9" id="552" /> +<TGConnectingPoint num="10" id="553" /> +<TGConnectingPoint num="11" id="554" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5303" id="568" > +<father id="593" num="1" /> +<cdparam x="721" y="133" /> +<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> +<infoparam name="TGComponent" value="nbOfCoins" /> +<TGConnectingPoint num="0" id="556" /> +<TGConnectingPoint num="1" id="557" /> +<TGConnectingPoint num="2" id="558" /> +<TGConnectingPoint num="3" id="559" /> +<TGConnectingPoint num="4" id="560" /> +<TGConnectingPoint num="5" id="561" /> +<TGConnectingPoint num="6" id="562" /> +<TGConnectingPoint num="7" id="563" /> +<TGConnectingPoint num="8" id="564" /> +<TGConnectingPoint num="9" id="565" /> +<TGConnectingPoint num="10" id="566" /> +<TGConnectingPoint num="11" id="567" /> +<extraparam> +<Toggle value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5306" id="605" > +<cdparam x="675" y="204" /> +<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="nbOfCoins > 1" /> +<TGConnectingPoint num="0" id="594" /> +<TGConnectingPoint num="1" id="595" /> +<TGConnectingPoint num="2" id="596" /> +<TGConnectingPoint num="3" id="597" /> +<TGConnectingPoint num="4" id="598" /> +<TGConnectingPoint num="5" id="599" /> +<TGConnectingPoint num="6" id="600" /> +<TGConnectingPoint num="7" id="601" /> +<TGConnectingPoint num="8" id="602" /> +<TGConnectingPoint num="9" id="603" /> +<TGConnectingPoint num="10" id="604" /> +<extraparam> +<Toggle value="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5302" id="618" > +<cdparam x="667" y="285" /> +<sizeparam width="59" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="=0" /> +<TGConnectingPoint num="0" id="606" /> +<TGConnectingPoint num="1" id="607" /> +<TGConnectingPoint num="2" id="608" /> +<TGConnectingPoint num="3" id="609" /> +<TGConnectingPoint num="4" id="610" /> +<TGConnectingPoint num="5" id="611" /> +<TGConnectingPoint num="6" id="612" /> +<TGConnectingPoint num="7" id="613" /> +<TGConnectingPoint num="8" id="614" /> +<TGConnectingPoint num="9" id="615" /> +<TGConnectingPoint num="10" id="616" /> +<TGConnectingPoint num="11" id="617" /> +</COMPONENT> + +<COMPONENT type="5301" id="639" > +<cdparam x="546" y="285" /> +<sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="<<LS>>" /> +<TGConnectingPoint num="0" id="619" /> +<TGConnectingPoint num="1" id="620" /> +<TGConnectingPoint num="2" id="621" /> +<TGConnectingPoint num="3" id="622" /> +<TGConnectingPoint num="4" id="623" /> +<TGConnectingPoint num="5" id="624" /> +<TGConnectingPoint num="6" id="625" /> +<TGConnectingPoint num="7" id="626" /> +<TGConnectingPoint num="8" id="627" /> +<TGConnectingPoint num="9" id="628" /> +<TGConnectingPoint num="10" id="629" /> +<TGConnectingPoint num="11" id="630" /> +<TGConnectingPoint num="12" id="631" /> +<TGConnectingPoint num="13" id="632" /> +<TGConnectingPoint num="14" id="633" /> +<TGConnectingPoint num="15" id="634" /> +<TGConnectingPoint num="16" id="635" /> +<TGConnectingPoint num="17" id="636" /> +<TGConnectingPoint num="18" id="637" /> +<TGConnectingPoint num="19" id="638" /> +</COMPONENT> + +<COMPONENT type="5309" id="652" > +<cdparam x="594" y="495" /> +<sizeparam width="80" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="<=>" /> +<TGConnectingPoint num="0" id="640" /> +<TGConnectingPoint num="1" id="641" /> +<TGConnectingPoint num="2" id="642" /> +<TGConnectingPoint num="3" id="643" /> +<TGConnectingPoint num="4" id="644" /> +<TGConnectingPoint num="5" id="645" /> +<TGConnectingPoint num="6" id="646" /> +<TGConnectingPoint num="7" id="647" /> +<TGConnectingPoint num="8" id="648" /> +<TGConnectingPoint num="9" id="649" /> +<TGConnectingPoint num="10" id="650" /> +<TGConnectingPoint num="11" id="651" /> +</COMPONENT> + +<COMPONENT type="5308" id="657" > +<cdparam x="527" y="416" /> +<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="TGComponent" value="prop02" /> +<TGConnectingPoint num="0" id="653" /> +<TGConnectingPoint num="1" id="654" /> +<TGConnectingPoint num="2" id="655" /> +<TGConnectingPoint num="3" id="656" /> +<extraparam> +<liveness data="1" /> +<not data="false" /> +</extraparam> +</COMPONENT> + + +</AvatarPDPanel> + +</Modeling> + + + + +<Modeling type="AVATAR Design" nameTab="MainDesign" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="659" > +<cdparam x="321" y="567" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block1 to Block0" value="" /> +<TGConnectingPoint num="0" id="658" /> +<P1 x="559" y="330" id="720" /> +<P2 x="560" y="377" id="753" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in pushCoffeeButton()" /> +<oso value="out push()" /> +<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="661" > +<cdparam x="275" y="114" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="660" /> +<P1 x="306" y="109" id="675" /> +<P2 x="445" y="108" id="749" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in getCoin(int nbOfCoins)" /> +<osd value="out ejectCoin(int nbOfCoins)" /> +<isd value="in getCoin(int nbOfCoins)" /> +<oso value="out putCoin(int nbOfCoins)" /> +<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="663" > +<cdparam x="623" y="565" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block1 to Block0" value="" /> +<TGConnectingPoint num="0" id="662" /> +<P1 x="789" y="326" id="695" /> +<P2 x="790" y="377" id="754" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in pushTeaButton()" /> +<oso value="out push()" /> +<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="5000" id="688" > +<cdparam x="106" y="55" /> +<sizeparam width="200" height="218" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="Wallet" /> +<TGConnectingPoint num="0" id="664" /> +<TGConnectingPoint num="1" id="665" /> +<TGConnectingPoint num="2" id="666" /> +<TGConnectingPoint num="3" id="667" /> +<TGConnectingPoint num="4" id="668" /> +<TGConnectingPoint num="5" id="669" /> +<TGConnectingPoint num="6" id="670" /> +<TGConnectingPoint num="7" id="671" /> +<TGConnectingPoint num="8" id="672" /> +<TGConnectingPoint num="9" id="673" /> +<TGConnectingPoint num="10" id="674" /> +<TGConnectingPoint num="11" id="675" /> +<TGConnectingPoint num="12" id="676" /> +<TGConnectingPoint num="13" id="677" /> +<TGConnectingPoint num="14" id="678" /> +<TGConnectingPoint num="15" id="679" /> +<TGConnectingPoint num="16" id="680" /> +<TGConnectingPoint num="17" id="681" /> +<TGConnectingPoint num="18" id="682" /> +<TGConnectingPoint num="19" id="683" /> +<TGConnectingPoint num="20" id="684" /> +<TGConnectingPoint num="21" id="685" /> +<TGConnectingPoint num="22" id="686" /> +<TGConnectingPoint num="23" id="687" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="nbOfCoins" value="2" type="8" typeOther="" /> +<Attribute access="0" id="x" value="1" type="8" typeOther="" /> +<Attribute access="0" id="minUserDelay" value="50" type="8" typeOther="" /> +<Attribute access="0" id="maxUserDelay" value="70" type="8" typeOther="" /> +<Method value="contentOfWallet(int nbOfCoins)" /> +<Signal value="in getCoin(int nbOfCoins)" attached="false" /> +<Signal value="out putCoin(int nbOfCoins)" attached="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="763" > +<cdparam x="445" y="19" /> +<sizeparam width="461" height="358" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="CoffeeMachine" /> +<TGConnectingPoint num="0" id="739" /> +<TGConnectingPoint num="1" id="740" /> +<TGConnectingPoint num="2" id="741" /> +<TGConnectingPoint num="3" id="742" /> +<TGConnectingPoint num="4" id="743" /> +<TGConnectingPoint num="5" id="744" /> +<TGConnectingPoint num="6" id="745" /> +<TGConnectingPoint num="7" id="746" /> +<TGConnectingPoint num="8" id="747" /> +<TGConnectingPoint num="9" id="748" /> +<TGConnectingPoint num="10" id="749" /> +<TGConnectingPoint num="11" id="750" /> +<TGConnectingPoint num="12" id="751" /> +<TGConnectingPoint num="13" id="752" /> +<TGConnectingPoint num="14" id="753" /> +<TGConnectingPoint num="15" id="754" /> +<TGConnectingPoint num="16" id="755" /> +<TGConnectingPoint num="17" id="756" /> +<TGConnectingPoint num="18" id="757" /> +<TGConnectingPoint num="19" id="758" /> +<TGConnectingPoint num="20" id="759" /> +<TGConnectingPoint num="21" id="760" /> +<TGConnectingPoint num="22" id="761" /> +<TGConnectingPoint num="23" id="762" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="teaMinDelay" value="3" type="8" typeOther="" /> +<Attribute access="0" id="teaMaxDelay" value="8" type="8" typeOther="" /> +<Attribute access="0" id="coffeeMinDelay" value="5" type="8" typeOther="" /> +<Attribute access="0" id="coffeeMaxDelay" value="10" type="8" typeOther="" /> +<Attribute access="0" id="coinDelay" value="50" type="8" typeOther="" /> +<Attribute access="0" id="x" value="0" type="8" typeOther="" /> +<Attribute access="0" id="nbOfCoins" value="0" type="8" typeOther="" /> +<Method value="beverageReady()" /> +<Signal value="in pushCoffeeButton()" attached="false" /> +<Signal value="in pushTeaButton()" attached="false" /> +<Signal value="in getCoin(int nbOfCoins)" attached="false" /> +<Signal value="out ejectCoin(int nbOfCoins)" attached="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="713" > +<father id="763" num="0" /> +<cdparam x="695" y="224" /> +<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> +<infoparam name="Block1" value="TeaButton" /> +<TGConnectingPoint num="0" id="689" /> +<TGConnectingPoint num="1" id="690" /> +<TGConnectingPoint num="2" id="691" /> +<TGConnectingPoint num="3" id="692" /> +<TGConnectingPoint num="4" id="693" /> +<TGConnectingPoint num="5" id="694" /> +<TGConnectingPoint num="6" id="695" /> +<TGConnectingPoint num="7" id="696" /> +<TGConnectingPoint num="8" id="697" /> +<TGConnectingPoint num="9" id="698" /> +<TGConnectingPoint num="10" id="699" /> +<TGConnectingPoint num="11" id="700" /> +<TGConnectingPoint num="12" id="701" /> +<TGConnectingPoint num="13" id="702" /> +<TGConnectingPoint num="14" id="703" /> +<TGConnectingPoint num="15" id="704" /> +<TGConnectingPoint num="16" id="705" /> +<TGConnectingPoint num="17" id="706" /> +<TGConnectingPoint num="18" id="707" /> +<TGConnectingPoint num="19" id="708" /> +<TGConnectingPoint num="20" id="709" /> +<TGConnectingPoint num="21" id="710" /> +<TGConnectingPoint num="22" id="711" /> +<TGConnectingPoint num="23" id="712" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" /> +<Signal value="out push()" attached="false" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="738" > +<father id="763" num="1" /> +<cdparam x="464" y="228" /> +<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> +<infoparam name="Block1" value="CoffeeButton" /> +<TGConnectingPoint num="0" id="714" /> +<TGConnectingPoint num="1" id="715" /> +<TGConnectingPoint num="2" id="716" /> +<TGConnectingPoint num="3" id="717" /> +<TGConnectingPoint num="4" id="718" /> +<TGConnectingPoint num="5" id="719" /> +<TGConnectingPoint num="6" id="720" /> +<TGConnectingPoint num="7" id="721" /> +<TGConnectingPoint num="8" id="722" /> +<TGConnectingPoint num="9" id="723" /> +<TGConnectingPoint num="10" id="724" /> +<TGConnectingPoint num="11" id="725" /> +<TGConnectingPoint num="12" id="726" /> +<TGConnectingPoint num="13" id="727" /> +<TGConnectingPoint num="14" id="728" /> +<TGConnectingPoint num="15" id="729" /> +<TGConnectingPoint num="16" id="730" /> +<TGConnectingPoint num="17" id="731" /> +<TGConnectingPoint num="18" id="732" /> +<TGConnectingPoint num="19" id="733" /> +<TGConnectingPoint num="20" id="734" /> +<TGConnectingPoint num="21" id="735" /> +<TGConnectingPoint num="22" id="736" /> +<TGConnectingPoint num="23" id="737" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="mechanicalDelay" value="80" type="8" typeOther="" /> +<Signal value="out push()" attached="false" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="770" > +<cdparam x="516" y="264" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="769" /> +<P1 x="485" y="219" id="811" /> +<P2 x="485" y="274" id="822" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="768" > +<father id="770" num="0" /> +<cdparam x="493" y="251" /> +<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="764" /> +<TGConnectingPoint num="1" id="765" /> +<TGConnectingPoint num="2" id="766" /> +<TGConnectingPoint num="3" id="767" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = nbOfCoins + x" /> +<actions value="contentOfWallet(nbOfCoins)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="777" > +<cdparam x="382" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="776" /> +<P1 x="382" y="165" id="918" /> +<P2 x="485" y="189" id="810" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="775" > +<father id="777" num="0" /> +<cdparam x="382" y="205" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="771" /> +<TGConnectingPoint num="1" id="772" /> +<TGConnectingPoint num="2" id="773" /> +<TGConnectingPoint num="3" id="774" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="784" > +<cdparam x="223" y="260" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="783" /> +<P1 x="251" y="231" id="800" /> +<P2 x="252" y="300" id="863" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="782" > +<father id="784" num="0" /> +<cdparam x="163" y="252" /> +<sizeparam width="221" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="778" /> +<TGConnectingPoint num="1" id="779" /> +<TGConnectingPoint num="2" id="780" /> +<TGConnectingPoint num="3" id="781" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="minUserDelay" /> +<afterMax value="maxUserDelay" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = nbOfCoins - x" /> +<actions value="contentOfWallet(nbOfCoins)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="791" > +<cdparam x="357" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="790" /> +<P1 x="357" y="165" id="917" /> +<P2 x="251" y="201" id="799" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="789" > +<father id="791" num="0" /> +<cdparam x="220" y="174" /> +<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="785" /> +<TGConnectingPoint num="1" id="786" /> +<TGConnectingPoint num="2" id="787" /> +<TGConnectingPoint num="3" id="788" /> +<extraparam> +<guard value="[nbOfCoins > 0]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="798" > +<cdparam x="369" y="115" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="797" /> +<P1 x="370" y="64" id="944" /> +<P2 x="370" y="135" id="904" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="796" > +<father id="798" num="0" /> +<cdparam x="376" y="105" /> +<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="792" /> +<TGConnectingPoint num="1" id="793" /> +<TGConnectingPoint num="2" id="794" /> +<TGConnectingPoint num="3" id="795" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="contentOfWallet(nbOfCoins)" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="809" > +<cdparam x="214" y="206" /> +<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="putCoin(x)" /> +<TGConnectingPoint num="0" id="799" /> +<TGConnectingPoint num="1" id="800" /> +<TGConnectingPoint num="2" id="801" /> +<TGConnectingPoint num="3" id="802" /> +<TGConnectingPoint num="4" id="803" /> +<TGConnectingPoint num="5" id="804" /> +<TGConnectingPoint num="6" id="805" /> +<TGConnectingPoint num="7" id="806" /> +<TGConnectingPoint num="8" id="807" /> +<TGConnectingPoint num="9" id="808" /> +</COMPONENT> + +<COMPONENT type="5104" id="820" > +<cdparam x="444" y="194" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="getCoin(x)" /> +<TGConnectingPoint num="0" id="810" /> +<TGConnectingPoint num="1" id="811" /> +<TGConnectingPoint num="2" id="812" /> +<TGConnectingPoint num="3" id="813" /> +<TGConnectingPoint num="4" id="814" /> +<TGConnectingPoint num="5" id="815" /> +<TGConnectingPoint num="6" id="816" /> +<TGConnectingPoint num="7" id="817" /> +<TGConnectingPoint num="8" id="818" /> +<TGConnectingPoint num="9" id="819" /> +</COMPONENT> + +<COMPONENT type="5106" id="861" > +<cdparam x="460" y="274" /> +<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="821" /> +<TGConnectingPoint num="1" id="822" /> +<TGConnectingPoint num="2" id="823" /> +<TGConnectingPoint num="3" id="824" /> +<TGConnectingPoint num="4" id="825" /> +<TGConnectingPoint num="5" id="826" /> +<TGConnectingPoint num="6" id="827" /> +<TGConnectingPoint num="7" id="828" /> +<TGConnectingPoint num="8" id="829" /> +<TGConnectingPoint num="9" id="830" /> +<TGConnectingPoint num="10" id="831" /> +<TGConnectingPoint num="11" id="832" /> +<TGConnectingPoint num="12" id="833" /> +<TGConnectingPoint num="13" id="834" /> +<TGConnectingPoint num="14" id="835" /> +<TGConnectingPoint num="15" id="836" /> +<TGConnectingPoint num="16" id="837" /> +<TGConnectingPoint num="17" id="838" /> +<TGConnectingPoint num="18" id="839" /> +<TGConnectingPoint num="19" id="840" /> +<TGConnectingPoint num="20" id="841" /> +<TGConnectingPoint num="21" id="842" /> +<TGConnectingPoint num="22" id="843" /> +<TGConnectingPoint num="23" id="844" /> +<TGConnectingPoint num="24" id="845" /> +<TGConnectingPoint num="25" id="846" /> +<TGConnectingPoint num="26" id="847" /> +<TGConnectingPoint num="27" id="848" /> +<TGConnectingPoint num="28" id="849" /> +<TGConnectingPoint num="29" id="850" /> +<TGConnectingPoint num="30" id="851" /> +<TGConnectingPoint num="31" id="852" /> +<TGConnectingPoint num="32" id="853" /> +<TGConnectingPoint num="33" id="854" /> +<TGConnectingPoint num="34" id="855" /> +<TGConnectingPoint num="35" id="856" /> +<TGConnectingPoint num="36" id="857" /> +<TGConnectingPoint num="37" id="858" /> +<TGConnectingPoint num="38" id="859" /> +<TGConnectingPoint num="39" id="860" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="902" > +<cdparam x="227" y="300" /> +<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="862" /> +<TGConnectingPoint num="1" id="863" /> +<TGConnectingPoint num="2" id="864" /> +<TGConnectingPoint num="3" id="865" /> +<TGConnectingPoint num="4" id="866" /> +<TGConnectingPoint num="5" id="867" /> +<TGConnectingPoint num="6" id="868" /> +<TGConnectingPoint num="7" id="869" /> +<TGConnectingPoint num="8" id="870" /> +<TGConnectingPoint num="9" id="871" /> +<TGConnectingPoint num="10" id="872" /> +<TGConnectingPoint num="11" id="873" /> +<TGConnectingPoint num="12" id="874" /> +<TGConnectingPoint num="13" id="875" /> +<TGConnectingPoint num="14" id="876" /> +<TGConnectingPoint num="15" id="877" /> +<TGConnectingPoint num="16" id="878" /> +<TGConnectingPoint num="17" id="879" /> +<TGConnectingPoint num="18" id="880" /> +<TGConnectingPoint num="19" id="881" /> +<TGConnectingPoint num="20" id="882" /> +<TGConnectingPoint num="21" id="883" /> +<TGConnectingPoint num="22" id="884" /> +<TGConnectingPoint num="23" id="885" /> +<TGConnectingPoint num="24" id="886" /> +<TGConnectingPoint num="25" id="887" /> +<TGConnectingPoint num="26" id="888" /> +<TGConnectingPoint num="27" id="889" /> +<TGConnectingPoint num="28" id="890" /> +<TGConnectingPoint num="29" id="891" /> +<TGConnectingPoint num="30" id="892" /> +<TGConnectingPoint num="31" id="893" /> +<TGConnectingPoint num="32" id="894" /> +<TGConnectingPoint num="33" id="895" /> +<TGConnectingPoint num="34" id="896" /> +<TGConnectingPoint num="35" id="897" /> +<TGConnectingPoint num="36" id="898" /> +<TGConnectingPoint num="37" id="899" /> +<TGConnectingPoint num="38" id="900" /> +<TGConnectingPoint num="39" id="901" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="943" > +<cdparam x="345" y="135" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="903" /> +<TGConnectingPoint num="1" id="904" /> +<TGConnectingPoint num="2" id="905" /> +<TGConnectingPoint num="3" id="906" /> +<TGConnectingPoint num="4" id="907" /> +<TGConnectingPoint num="5" id="908" /> +<TGConnectingPoint num="6" id="909" /> +<TGConnectingPoint num="7" id="910" /> +<TGConnectingPoint num="8" id="911" /> +<TGConnectingPoint num="9" id="912" /> +<TGConnectingPoint num="10" id="913" /> +<TGConnectingPoint num="11" id="914" /> +<TGConnectingPoint num="12" id="915" /> +<TGConnectingPoint num="13" id="916" /> +<TGConnectingPoint num="14" id="917" /> +<TGConnectingPoint num="15" id="918" /> +<TGConnectingPoint num="16" id="919" /> +<TGConnectingPoint num="17" id="920" /> +<TGConnectingPoint num="18" id="921" /> +<TGConnectingPoint num="19" id="922" /> +<TGConnectingPoint num="20" id="923" /> +<TGConnectingPoint num="21" id="924" /> +<TGConnectingPoint num="22" id="925" /> +<TGConnectingPoint num="23" id="926" /> +<TGConnectingPoint num="24" id="927" /> +<TGConnectingPoint num="25" id="928" /> +<TGConnectingPoint num="26" id="929" /> +<TGConnectingPoint num="27" id="930" /> +<TGConnectingPoint num="28" id="931" /> +<TGConnectingPoint num="29" id="932" /> +<TGConnectingPoint num="30" id="933" /> +<TGConnectingPoint num="31" id="934" /> +<TGConnectingPoint num="32" id="935" /> +<TGConnectingPoint num="33" id="936" /> +<TGConnectingPoint num="34" id="937" /> +<TGConnectingPoint num="35" id="938" /> +<TGConnectingPoint num="36" id="939" /> +<TGConnectingPoint num="37" id="940" /> +<TGConnectingPoint num="38" id="941" /> +<TGConnectingPoint num="39" id="942" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="945" > +<cdparam x="363" y="44" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="944" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="1400" minY="10" maxY="1400" > +<CONNECTOR type="5102" id="952" > +<cdparam x="691" y="288" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="951" /> +<P1 x="699" y="289" id="1090" /> +<P2 x="699" y="316" id="1062" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="950" > +<father id="952" num="0" /> +<cdparam x="691" y="328" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="946" /> +<TGConnectingPoint num="1" id="947" /> +<TGConnectingPoint num="2" id="948" /> +<TGConnectingPoint num="3" id="949" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="959" > +<cdparam x="481" y="501" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="958" /> +<P1 x="437" y="525" id="1292" /> +<P2 x="323" y="748" id="1218" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="957" > +<father id="959" num="0" /> +<cdparam x="420" y="552" /> +<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="953" /> +<TGConnectingPoint num="1" id="954" /> +<TGConnectingPoint num="2" id="955" /> +<TGConnectingPoint num="3" id="956" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = 0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="966" > +<cdparam x="555" y="559" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="965" /> +<P1 x="321" y="455" id="1319" /> +<P2 x="437" y="495" id="1291" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="964" > +<father id="966" num="0" /> +<cdparam x="395" y="448" /> +<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="960" /> +<TGConnectingPoint num="1" id="961" /> +<TGConnectingPoint num="2" id="962" /> +<TGConnectingPoint num="3" id="963" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="coinDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="973" > +<cdparam x="355" y="545" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="972" /> +<P1 x="293" y="552" id="1357" /> +<P2 x="289" y="748" id="1210" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="971" > +<father id="973" num="0" /> +<cdparam x="284" y="594" /> +<sizeparam width="248" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="967" /> +<TGConnectingPoint num="1" id="968" /> +<TGConnectingPoint num="2" id="969" /> +<TGConnectingPoint num="3" id="970" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="teaMinDelay" /> +<computeMax value="teaMaxDelay" /> +<actions value="nbOfCoins = 0" /> +<actions value="beverageReady()" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="980" > +<cdparam x="295" y="465" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="979" /> +<P1 x="288" y="475" id="1330" /> +<P2 x="293" y="522" id="1356" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="978" > +<father id="980" num="0" /> +<cdparam x="295" y="505" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="974" /> +<TGConnectingPoint num="1" id="975" /> +<TGConnectingPoint num="2" id="976" /> +<TGConnectingPoint num="3" id="977" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="987" > +<cdparam x="148" y="549" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="986" /> +<P1 x="121" y="552" id="1303" /> +<P2 x="255" y="748" id="1217" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="985" > +<father id="987" num="0" /> +<cdparam x="32" y="587" /> +<sizeparam width="284" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="981" /> +<TGConnectingPoint num="1" id="982" /> +<TGConnectingPoint num="2" id="983" /> +<TGConnectingPoint num="3" id="984" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="coffeeMinDelay" /> +<computeMax value="coffeeMaxDelay" /> +<actions value="nbOfCoins = 0" /> +<actions value="beverageReady()" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="994" > +<cdparam x="229" y="465" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="993" /> +<P1 x="222" y="475" id="1329" /> +<P2 x="121" y="522" id="1302" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="992" > +<father id="994" num="0" /> +<cdparam x="229" y="505" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="988" /> +<TGConnectingPoint num="1" id="989" /> +<TGConnectingPoint num="2" id="990" /> +<TGConnectingPoint num="3" id="991" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1001" > +<cdparam x="280" y="420" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1000" /> +<P1 x="256" y="419" id="1313" /> +<P2 x="255" y="435" id="1316" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="999" > +<father id="1001" num="0" /> +<cdparam x="280" y="460" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="995" /> +<TGConnectingPoint num="1" id="996" /> +<TGConnectingPoint num="2" id="997" /> +<TGConnectingPoint num="3" id="998" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1008" > +<cdparam x="667" y="346" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1007" /> +<P1 x="699" y="346" id="1063" /> +<P2 x="699" y="381" id="1251" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1006" > +<father id="1008" num="0" /> +<cdparam x="707" y="368" /> +<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1002" /> +<TGConnectingPoint num="1" id="1003" /> +<TGConnectingPoint num="2" id="1004" /> +<TGConnectingPoint num="3" id="1005" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = 0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1015" > +<cdparam x="348" y="228" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1014" /> +<P1 x="388" y="208" id="1129" /> +<P2 x="649" y="264" id="1087" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1013" > +<father id="1015" num="0" /> +<cdparam x="411" y="206" /> +<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1009" /> +<TGConnectingPoint num="1" id="1010" /> +<TGConnectingPoint num="2" id="1011" /> +<TGConnectingPoint num="3" id="1012" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="coinDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1022" > +<cdparam x="243" y="319" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1021" /> +<P1 x="277" y="305" id="1074" /> +<P2 x="306" y="370" id="1368" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1020" > +<father id="1022" num="0" /> +<cdparam x="243" y="359" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1016" /> +<TGConnectingPoint num="1" id="1017" /> +<TGConnectingPoint num="2" id="1018" /> +<TGConnectingPoint num="3" id="1019" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1029" > +<cdparam x="270" y="224" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1028" /> +<P1 x="270" y="228" id="1139" /> +<P2 x="277" y="275" id="1073" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1027" > +<father id="1029" num="0" /> +<cdparam x="270" y="264" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1023" /> +<TGConnectingPoint num="1" id="1024" /> +<TGConnectingPoint num="2" id="1025" /> +<TGConnectingPoint num="3" id="1026" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1036" > +<cdparam x="309" y="160" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1035" /> +<P1 x="306" y="166" id="1052" /> +<P2 x="309" y="188" id="1126" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1034" > +<father id="1036" num="0" /> +<cdparam x="328" y="178" /> +<sizeparam width="168" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1030" /> +<TGConnectingPoint num="1" id="1031" /> +<TGConnectingPoint num="2" id="1032" /> +<TGConnectingPoint num="3" id="1033" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = nbOfCoins + x" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1043" > +<cdparam x="303" y="103" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1042" /> +<P1 x="303" y="103" id="1174" /> +<P2 x="306" y="136" id="1051" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1041" > +<father id="1043" num="0" /> +<cdparam x="303" y="143" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1037" /> +<TGConnectingPoint num="1" id="1038" /> +<TGConnectingPoint num="2" id="1039" /> +<TGConnectingPoint num="3" id="1040" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1050" > +<cdparam x="303" y="40" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1049" /> +<P1 x="303" y="40" id="1166" /> +<P2 x="303" y="63" id="1169" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1048" > +<father id="1050" num="0" /> +<cdparam x="303" y="80" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1044" /> +<TGConnectingPoint num="1" id="1045" /> +<TGConnectingPoint num="2" id="1046" /> +<TGConnectingPoint num="3" id="1047" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="1061" > +<cdparam x="265" y="141" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="getCoin(x)" /> +<TGConnectingPoint num="0" id="1051" /> +<TGConnectingPoint num="1" id="1052" /> +<TGConnectingPoint num="2" id="1053" /> +<TGConnectingPoint num="3" id="1054" /> +<TGConnectingPoint num="4" id="1055" /> +<TGConnectingPoint num="5" id="1056" /> +<TGConnectingPoint num="6" id="1057" /> +<TGConnectingPoint num="7" id="1058" /> +<TGConnectingPoint num="8" id="1059" /> +<TGConnectingPoint num="9" id="1060" /> +</COMPONENT> + +<COMPONENT type="5103" id="1072" > +<cdparam x="629" y="321" /> +<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<TGConnectingPoint num="0" id="1062" /> +<TGConnectingPoint num="1" id="1063" /> +<TGConnectingPoint num="2" id="1064" /> +<TGConnectingPoint num="3" id="1065" /> +<TGConnectingPoint num="4" id="1066" /> +<TGConnectingPoint num="5" id="1067" /> +<TGConnectingPoint num="6" id="1068" /> +<TGConnectingPoint num="7" id="1069" /> +<TGConnectingPoint num="8" id="1070" /> +<TGConnectingPoint num="9" id="1071" /> +</COMPONENT> + +<COMPONENT type="5104" id="1083" > +<cdparam x="236" y="280" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="getCoin(x)" /> +<TGConnectingPoint num="0" id="1073" /> +<TGConnectingPoint num="1" id="1074" /> +<TGConnectingPoint num="2" id="1075" /> +<TGConnectingPoint num="3" id="1076" /> +<TGConnectingPoint num="4" id="1077" /> +<TGConnectingPoint num="5" id="1078" /> +<TGConnectingPoint num="6" id="1079" /> +<TGConnectingPoint num="7" id="1080" /> +<TGConnectingPoint num="8" id="1081" /> +<TGConnectingPoint num="9" id="1082" /> +<accessibility /> +</COMPONENT> + +<COMPONENT type="5106" id="1124" > +<cdparam x="649" y="239" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="ejectState" /> +<TGConnectingPoint num="0" id="1084" /> +<TGConnectingPoint num="1" id="1085" /> +<TGConnectingPoint num="2" id="1086" /> +<TGConnectingPoint num="3" id="1087" /> +<TGConnectingPoint num="4" id="1088" /> +<TGConnectingPoint num="5" id="1089" /> +<TGConnectingPoint num="6" id="1090" /> +<TGConnectingPoint num="7" id="1091" /> +<TGConnectingPoint num="8" id="1092" /> +<TGConnectingPoint num="9" id="1093" /> +<TGConnectingPoint num="10" id="1094" /> +<TGConnectingPoint num="11" id="1095" /> +<TGConnectingPoint num="12" id="1096" /> +<TGConnectingPoint num="13" id="1097" /> +<TGConnectingPoint num="14" id="1098" /> +<TGConnectingPoint num="15" id="1099" /> +<TGConnectingPoint num="16" id="1100" /> +<TGConnectingPoint num="17" id="1101" /> +<TGConnectingPoint num="18" id="1102" /> +<TGConnectingPoint num="19" id="1103" /> +<TGConnectingPoint num="20" id="1104" /> +<TGConnectingPoint num="21" id="1105" /> +<TGConnectingPoint num="22" id="1106" /> +<TGConnectingPoint num="23" id="1107" /> +<TGConnectingPoint num="24" id="1108" /> +<TGConnectingPoint num="25" id="1109" /> +<TGConnectingPoint num="26" id="1110" /> +<TGConnectingPoint num="27" id="1111" /> +<TGConnectingPoint num="28" id="1112" /> +<TGConnectingPoint num="29" id="1113" /> +<TGConnectingPoint num="30" id="1114" /> +<TGConnectingPoint num="31" id="1115" /> +<TGConnectingPoint num="32" id="1116" /> +<TGConnectingPoint num="33" id="1117" /> +<TGConnectingPoint num="34" id="1118" /> +<TGConnectingPoint num="35" id="1119" /> +<TGConnectingPoint num="36" id="1120" /> +<TGConnectingPoint num="37" id="1121" /> +<TGConnectingPoint num="38" id="1122" /> +<TGConnectingPoint num="39" id="1123" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1165" > +<cdparam x="231" y="188" /> +<sizeparam width="157" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForSecondCoin" /> +<TGConnectingPoint num="0" id="1125" /> +<TGConnectingPoint num="1" id="1126" /> +<TGConnectingPoint num="2" id="1127" /> +<TGConnectingPoint num="3" id="1128" /> +<TGConnectingPoint num="4" id="1129" /> +<TGConnectingPoint num="5" id="1130" /> +<TGConnectingPoint num="6" id="1131" /> +<TGConnectingPoint num="7" id="1132" /> +<TGConnectingPoint num="8" id="1133" /> +<TGConnectingPoint num="9" id="1134" /> +<TGConnectingPoint num="10" id="1135" /> +<TGConnectingPoint num="11" id="1136" /> +<TGConnectingPoint num="12" id="1137" /> +<TGConnectingPoint num="13" id="1138" /> +<TGConnectingPoint num="14" id="1139" /> +<TGConnectingPoint num="15" id="1140" /> +<TGConnectingPoint num="16" id="1141" /> +<TGConnectingPoint num="17" id="1142" /> +<TGConnectingPoint num="18" id="1143" /> +<TGConnectingPoint num="19" id="1144" /> +<TGConnectingPoint num="20" id="1145" /> +<TGConnectingPoint num="21" id="1146" /> +<TGConnectingPoint num="22" id="1147" /> +<TGConnectingPoint num="23" id="1148" /> +<TGConnectingPoint num="24" id="1149" /> +<TGConnectingPoint num="25" id="1150" /> +<TGConnectingPoint num="26" id="1151" /> +<TGConnectingPoint num="27" id="1152" /> +<TGConnectingPoint num="28" id="1153" /> +<TGConnectingPoint num="29" id="1154" /> +<TGConnectingPoint num="30" id="1155" /> +<TGConnectingPoint num="31" id="1156" /> +<TGConnectingPoint num="32" id="1157" /> +<TGConnectingPoint num="33" id="1158" /> +<TGConnectingPoint num="34" id="1159" /> +<TGConnectingPoint num="35" id="1160" /> +<TGConnectingPoint num="36" id="1161" /> +<TGConnectingPoint num="37" id="1162" /> +<TGConnectingPoint num="38" id="1163" /> +<TGConnectingPoint num="39" id="1164" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1167" > +<cdparam x="296" y="20" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1166" /> +</COMPONENT> + +<COMPONENT type="5106" id="1208" > +<cdparam x="235" y="63" /> +<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForFirstCoin" /> +<TGConnectingPoint num="0" id="1168" /> +<TGConnectingPoint num="1" id="1169" /> +<TGConnectingPoint num="2" id="1170" /> +<TGConnectingPoint num="3" id="1171" /> +<TGConnectingPoint num="4" id="1172" /> +<TGConnectingPoint num="5" id="1173" /> +<TGConnectingPoint num="6" id="1174" /> +<TGConnectingPoint num="7" id="1175" /> +<TGConnectingPoint num="8" id="1176" /> +<TGConnectingPoint num="9" id="1177" /> +<TGConnectingPoint num="10" id="1178" /> +<TGConnectingPoint num="11" id="1179" /> +<TGConnectingPoint num="12" id="1180" /> +<TGConnectingPoint num="13" id="1181" /> +<TGConnectingPoint num="14" id="1182" /> +<TGConnectingPoint num="15" id="1183" /> +<TGConnectingPoint num="16" id="1184" /> +<TGConnectingPoint num="17" id="1185" /> +<TGConnectingPoint num="18" id="1186" /> +<TGConnectingPoint num="19" id="1187" /> +<TGConnectingPoint num="20" id="1188" /> +<TGConnectingPoint num="21" id="1189" /> +<TGConnectingPoint num="22" id="1190" /> +<TGConnectingPoint num="23" id="1191" /> +<TGConnectingPoint num="24" id="1192" /> +<TGConnectingPoint num="25" id="1193" /> +<TGConnectingPoint num="26" id="1194" /> +<TGConnectingPoint num="27" id="1195" /> +<TGConnectingPoint num="28" id="1196" /> +<TGConnectingPoint num="29" id="1197" /> +<TGConnectingPoint num="30" id="1198" /> +<TGConnectingPoint num="31" id="1199" /> +<TGConnectingPoint num="32" id="1200" /> +<TGConnectingPoint num="33" id="1201" /> +<TGConnectingPoint num="34" id="1202" /> +<TGConnectingPoint num="35" id="1203" /> +<TGConnectingPoint num="36" id="1204" /> +<TGConnectingPoint num="37" id="1205" /> +<TGConnectingPoint num="38" id="1206" /> +<TGConnectingPoint num="39" id="1207" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1249" > +<cdparam x="221" y="748" /> +<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForFirstCoin" /> +<TGConnectingPoint num="0" id="1209" /> +<TGConnectingPoint num="1" id="1210" /> +<TGConnectingPoint num="2" id="1211" /> +<TGConnectingPoint num="3" id="1212" /> +<TGConnectingPoint num="4" id="1213" /> +<TGConnectingPoint num="5" id="1214" /> +<TGConnectingPoint num="6" id="1215" /> +<TGConnectingPoint num="7" id="1216" /> +<TGConnectingPoint num="8" id="1217" /> +<TGConnectingPoint num="9" id="1218" /> +<TGConnectingPoint num="10" id="1219" /> +<TGConnectingPoint num="11" id="1220" /> +<TGConnectingPoint num="12" id="1221" /> +<TGConnectingPoint num="13" id="1222" /> +<TGConnectingPoint num="14" id="1223" /> +<TGConnectingPoint num="15" id="1224" /> +<TGConnectingPoint num="16" id="1225" /> +<TGConnectingPoint num="17" id="1226" /> +<TGConnectingPoint num="18" id="1227" /> +<TGConnectingPoint num="19" id="1228" /> +<TGConnectingPoint num="20" id="1229" /> +<TGConnectingPoint num="21" id="1230" /> +<TGConnectingPoint num="22" id="1231" /> +<TGConnectingPoint num="23" id="1232" /> +<TGConnectingPoint num="24" id="1233" /> +<TGConnectingPoint num="25" id="1234" /> +<TGConnectingPoint num="26" id="1235" /> +<TGConnectingPoint num="27" id="1236" /> +<TGConnectingPoint num="28" id="1237" /> +<TGConnectingPoint num="29" id="1238" /> +<TGConnectingPoint num="30" id="1239" /> +<TGConnectingPoint num="31" id="1240" /> +<TGConnectingPoint num="32" id="1241" /> +<TGConnectingPoint num="33" id="1242" /> +<TGConnectingPoint num="34" id="1243" /> +<TGConnectingPoint num="35" id="1244" /> +<TGConnectingPoint num="36" id="1245" /> +<TGConnectingPoint num="37" id="1246" /> +<TGConnectingPoint num="38" id="1247" /> +<TGConnectingPoint num="39" id="1248" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1290" > +<cdparam x="631" y="381" /> +<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForFirstCoin" /> +<TGConnectingPoint num="0" id="1250" /> +<TGConnectingPoint num="1" id="1251" /> +<TGConnectingPoint num="2" id="1252" /> +<TGConnectingPoint num="3" id="1253" /> +<TGConnectingPoint num="4" id="1254" /> +<TGConnectingPoint num="5" id="1255" /> +<TGConnectingPoint num="6" id="1256" /> +<TGConnectingPoint num="7" id="1257" /> +<TGConnectingPoint num="8" id="1258" /> +<TGConnectingPoint num="9" id="1259" /> +<TGConnectingPoint num="10" id="1260" /> +<TGConnectingPoint num="11" id="1261" /> +<TGConnectingPoint num="12" id="1262" /> +<TGConnectingPoint num="13" id="1263" /> +<TGConnectingPoint num="14" id="1264" /> +<TGConnectingPoint num="15" id="1265" /> +<TGConnectingPoint num="16" id="1266" /> +<TGConnectingPoint num="17" id="1267" /> +<TGConnectingPoint num="18" id="1268" /> +<TGConnectingPoint num="19" id="1269" /> +<TGConnectingPoint num="20" id="1270" /> +<TGConnectingPoint num="21" id="1271" /> +<TGConnectingPoint num="22" id="1272" /> +<TGConnectingPoint num="23" id="1273" /> +<TGConnectingPoint num="24" id="1274" /> +<TGConnectingPoint num="25" id="1275" /> +<TGConnectingPoint num="26" id="1276" /> +<TGConnectingPoint num="27" id="1277" /> +<TGConnectingPoint num="28" id="1278" /> +<TGConnectingPoint num="29" id="1279" /> +<TGConnectingPoint num="30" id="1280" /> +<TGConnectingPoint num="31" id="1281" /> +<TGConnectingPoint num="32" id="1282" /> +<TGConnectingPoint num="33" id="1283" /> +<TGConnectingPoint num="34" id="1284" /> +<TGConnectingPoint num="35" id="1285" /> +<TGConnectingPoint num="36" id="1286" /> +<TGConnectingPoint num="37" id="1287" /> +<TGConnectingPoint num="38" id="1288" /> +<TGConnectingPoint num="39" id="1289" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1407" > +<cdparam x="18" y="370" /> +<sizeparam width="577" height="354" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="Beverage" /> +<TGConnectingPoint num="0" id="1367" /> +<TGConnectingPoint num="1" id="1368" /> +<TGConnectingPoint num="2" id="1369" /> +<TGConnectingPoint num="3" id="1370" /> +<TGConnectingPoint num="4" id="1371" /> +<TGConnectingPoint num="5" id="1372" /> +<TGConnectingPoint num="6" id="1373" /> +<TGConnectingPoint num="7" id="1374" /> +<TGConnectingPoint num="8" id="1375" /> +<TGConnectingPoint num="9" id="1376" /> +<TGConnectingPoint num="10" id="1377" /> +<TGConnectingPoint num="11" id="1378" /> +<TGConnectingPoint num="12" id="1379" /> +<TGConnectingPoint num="13" id="1380" /> +<TGConnectingPoint num="14" id="1381" /> +<TGConnectingPoint num="15" id="1382" /> +<TGConnectingPoint num="16" id="1383" /> +<TGConnectingPoint num="17" id="1384" /> +<TGConnectingPoint num="18" id="1385" /> +<TGConnectingPoint num="19" id="1386" /> +<TGConnectingPoint num="20" id="1387" /> +<TGConnectingPoint num="21" id="1388" /> +<TGConnectingPoint num="22" id="1389" /> +<TGConnectingPoint num="23" id="1390" /> +<TGConnectingPoint num="24" id="1391" /> +<TGConnectingPoint num="25" id="1392" /> +<TGConnectingPoint num="26" id="1393" /> +<TGConnectingPoint num="27" id="1394" /> +<TGConnectingPoint num="28" id="1395" /> +<TGConnectingPoint num="29" id="1396" /> +<TGConnectingPoint num="30" id="1397" /> +<TGConnectingPoint num="31" id="1398" /> +<TGConnectingPoint num="32" id="1399" /> +<TGConnectingPoint num="33" id="1400" /> +<TGConnectingPoint num="34" id="1401" /> +<TGConnectingPoint num="35" id="1402" /> +<TGConnectingPoint num="36" id="1403" /> +<TGConnectingPoint num="37" id="1404" /> +<TGConnectingPoint num="38" id="1405" /> +<TGConnectingPoint num="39" id="1406" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5103" id="1301" > +<father id="1407" num="0" /> +<cdparam x="367" y="500" /> +<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<TGConnectingPoint num="0" id="1291" /> +<TGConnectingPoint num="1" id="1292" /> +<TGConnectingPoint num="2" id="1293" /> +<TGConnectingPoint num="3" id="1294" /> +<TGConnectingPoint num="4" id="1295" /> +<TGConnectingPoint num="5" id="1296" /> +<TGConnectingPoint num="6" id="1297" /> +<TGConnectingPoint num="7" id="1298" /> +<TGConnectingPoint num="8" id="1299" /> +<TGConnectingPoint num="9" id="1300" /> +<accessibility /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5104" id="1312" > +<father id="1407" num="1" /> +<cdparam x="51" y="527" /> +<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushCoffeeButton()" /> +<TGConnectingPoint num="0" id="1302" /> +<TGConnectingPoint num="1" id="1303" /> +<TGConnectingPoint num="2" id="1304" /> +<TGConnectingPoint num="3" id="1305" /> +<TGConnectingPoint num="4" id="1306" /> +<TGConnectingPoint num="5" id="1307" /> +<TGConnectingPoint num="6" id="1308" /> +<TGConnectingPoint num="7" id="1309" /> +<TGConnectingPoint num="8" id="1310" /> +<TGConnectingPoint num="9" id="1311" /> +<accessibility /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5100" id="1314" > +<father id="1407" num="2" /> +<cdparam x="249" y="399" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1313" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5106" id="1355" > +<father id="1407" num="3" /> +<cdparam x="189" y="435" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> +<infoparam name="state0" value="WaitingForSelection" /> +<TGConnectingPoint num="0" id="1315" /> +<TGConnectingPoint num="1" id="1316" /> +<TGConnectingPoint num="2" id="1317" /> +<TGConnectingPoint num="3" id="1318" /> +<TGConnectingPoint num="4" id="1319" /> +<TGConnectingPoint num="5" id="1320" /> +<TGConnectingPoint num="6" id="1321" /> +<TGConnectingPoint num="7" id="1322" /> +<TGConnectingPoint num="8" id="1323" /> +<TGConnectingPoint num="9" id="1324" /> +<TGConnectingPoint num="10" id="1325" /> +<TGConnectingPoint num="11" id="1326" /> +<TGConnectingPoint num="12" id="1327" /> +<TGConnectingPoint num="13" id="1328" /> +<TGConnectingPoint num="14" id="1329" /> +<TGConnectingPoint num="15" id="1330" /> +<TGConnectingPoint num="16" id="1331" /> +<TGConnectingPoint num="17" id="1332" /> +<TGConnectingPoint num="18" id="1333" /> +<TGConnectingPoint num="19" id="1334" /> +<TGConnectingPoint num="20" id="1335" /> +<TGConnectingPoint num="21" id="1336" /> +<TGConnectingPoint num="22" id="1337" /> +<TGConnectingPoint num="23" id="1338" /> +<TGConnectingPoint num="24" id="1339" /> +<TGConnectingPoint num="25" id="1340" /> +<TGConnectingPoint num="26" id="1341" /> +<TGConnectingPoint num="27" id="1342" /> +<TGConnectingPoint num="28" id="1343" /> +<TGConnectingPoint num="29" id="1344" /> +<TGConnectingPoint num="30" id="1345" /> +<TGConnectingPoint num="31" id="1346" /> +<TGConnectingPoint num="32" id="1347" /> +<TGConnectingPoint num="33" id="1348" /> +<TGConnectingPoint num="34" id="1349" /> +<TGConnectingPoint num="35" id="1350" /> +<TGConnectingPoint num="36" id="1351" /> +<TGConnectingPoint num="37" id="1352" /> +<TGConnectingPoint num="38" id="1353" /> +<TGConnectingPoint num="39" id="1354" /> +<extraparam> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5104" id="1366" > +<father id="1407" num="4" /> +<cdparam x="231" y="527" /> +<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushTeaButton()" /> +<TGConnectingPoint num="0" id="1356" /> +<TGConnectingPoint num="1" id="1357" /> +<TGConnectingPoint num="2" id="1358" /> +<TGConnectingPoint num="3" id="1359" /> +<TGConnectingPoint num="4" id="1360" /> +<TGConnectingPoint num="5" id="1361" /> +<TGConnectingPoint num="6" id="1362" /> +<TGConnectingPoint num="7" id="1363" /> +<TGConnectingPoint num="8" id="1364" /> +<TGConnectingPoint num="9" id="1365" /> +<accessibility /> +</SUBCOMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1414" > +<cdparam x="177" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1413" /> +<P1 x="340" y="233" id="1520" /> +<P2 x="353" y="252" id="1522" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1412" > +<father id="1414" num="0" /> +<cdparam x="177" y="239" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1408" /> +<TGConnectingPoint num="1" id="1409" /> +<TGConnectingPoint num="2" id="1410" /> +<TGConnectingPoint num="3" id="1411" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1421" > +<cdparam x="322" y="69" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1420" /> +<P1 x="322" y="69" id="1518" /> +<P2 x="323" y="88" id="1478" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1419" > +<father id="1421" num="0" /> +<cdparam x="322" y="109" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1415" /> +<TGConnectingPoint num="1" id="1416" /> +<TGConnectingPoint num="2" id="1417" /> +<TGConnectingPoint num="3" id="1418" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1428" > +<cdparam x="377" y="144" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1427" /> +<P1 x="323" y="118" id="1483" /> +<P2 x="356" y="174" id="1534" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1426" > +<father id="1428" num="0" /> +<cdparam x="377" y="184" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1422" /> +<TGConnectingPoint num="1" id="1423" /> +<TGConnectingPoint num="2" id="1424" /> +<TGConnectingPoint num="3" id="1425" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1435" > +<cdparam x="377" y="187" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1434" /> +<P1 x="353" y="282" id="1523" /> +<P2 x="399" y="352" id="1437" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1433" > +<father id="1435" num="0" /> +<cdparam x="417" y="335" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1429" /> +<TGConnectingPoint num="1" id="1430" /> +<TGConnectingPoint num="2" id="1431" /> +<TGConnectingPoint num="3" id="1432" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="1476" > +<cdparam x="374" y="352" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1436" /> +<TGConnectingPoint num="1" id="1437" /> +<TGConnectingPoint num="2" id="1438" /> +<TGConnectingPoint num="3" id="1439" /> +<TGConnectingPoint num="4" id="1440" /> +<TGConnectingPoint num="5" id="1441" /> +<TGConnectingPoint num="6" id="1442" /> +<TGConnectingPoint num="7" id="1443" /> +<TGConnectingPoint num="8" id="1444" /> +<TGConnectingPoint num="9" id="1445" /> +<TGConnectingPoint num="10" id="1446" /> +<TGConnectingPoint num="11" id="1447" /> +<TGConnectingPoint num="12" id="1448" /> +<TGConnectingPoint num="13" id="1449" /> +<TGConnectingPoint num="14" id="1450" /> +<TGConnectingPoint num="15" id="1451" /> +<TGConnectingPoint num="16" id="1452" /> +<TGConnectingPoint num="17" id="1453" /> +<TGConnectingPoint num="18" id="1454" /> +<TGConnectingPoint num="19" id="1455" /> +<TGConnectingPoint num="20" id="1456" /> +<TGConnectingPoint num="21" id="1457" /> +<TGConnectingPoint num="22" id="1458" /> +<TGConnectingPoint num="23" id="1459" /> +<TGConnectingPoint num="24" id="1460" /> +<TGConnectingPoint num="25" id="1461" /> +<TGConnectingPoint num="26" id="1462" /> +<TGConnectingPoint num="27" id="1463" /> +<TGConnectingPoint num="28" id="1464" /> +<TGConnectingPoint num="29" id="1465" /> +<TGConnectingPoint num="30" id="1466" /> +<TGConnectingPoint num="31" id="1467" /> +<TGConnectingPoint num="32" id="1468" /> +<TGConnectingPoint num="33" id="1469" /> +<TGConnectingPoint num="34" id="1470" /> +<TGConnectingPoint num="35" id="1471" /> +<TGConnectingPoint num="36" id="1472" /> +<TGConnectingPoint num="37" id="1473" /> +<TGConnectingPoint num="38" id="1474" /> +<TGConnectingPoint num="39" id="1475" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1517" > +<cdparam x="298" y="88" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1477" /> +<TGConnectingPoint num="1" id="1478" /> +<TGConnectingPoint num="2" id="1479" /> +<TGConnectingPoint num="3" id="1480" /> +<TGConnectingPoint num="4" id="1481" /> +<TGConnectingPoint num="5" id="1482" /> +<TGConnectingPoint num="6" id="1483" /> +<TGConnectingPoint num="7" id="1484" /> +<TGConnectingPoint num="8" id="1485" /> +<TGConnectingPoint num="9" id="1486" /> +<TGConnectingPoint num="10" id="1487" /> +<TGConnectingPoint num="11" id="1488" /> +<TGConnectingPoint num="12" id="1489" /> +<TGConnectingPoint num="13" id="1490" /> +<TGConnectingPoint num="14" id="1491" /> +<TGConnectingPoint num="15" id="1492" /> +<TGConnectingPoint num="16" id="1493" /> +<TGConnectingPoint num="17" id="1494" /> +<TGConnectingPoint num="18" id="1495" /> +<TGConnectingPoint num="19" id="1496" /> +<TGConnectingPoint num="20" id="1497" /> +<TGConnectingPoint num="21" id="1498" /> +<TGConnectingPoint num="22" id="1499" /> +<TGConnectingPoint num="23" id="1500" /> +<TGConnectingPoint num="24" id="1501" /> +<TGConnectingPoint num="25" id="1502" /> +<TGConnectingPoint num="26" id="1503" /> +<TGConnectingPoint num="27" id="1504" /> +<TGConnectingPoint num="28" id="1505" /> +<TGConnectingPoint num="29" id="1506" /> +<TGConnectingPoint num="30" id="1507" /> +<TGConnectingPoint num="31" id="1508" /> +<TGConnectingPoint num="32" id="1509" /> +<TGConnectingPoint num="33" id="1510" /> +<TGConnectingPoint num="34" id="1511" /> +<TGConnectingPoint num="35" id="1512" /> +<TGConnectingPoint num="36" id="1513" /> +<TGConnectingPoint num="37" id="1514" /> +<TGConnectingPoint num="38" id="1515" /> +<TGConnectingPoint num="39" id="1516" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1519" > +<cdparam x="315" y="49" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1518" /> +</COMPONENT> + +<COMPONENT type="5106" id="1573" > +<cdparam x="264" y="174" /> +<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="state0" /> +<TGConnectingPoint num="0" id="1533" /> +<TGConnectingPoint num="1" id="1534" /> +<TGConnectingPoint num="2" id="1535" /> +<TGConnectingPoint num="3" id="1536" /> +<TGConnectingPoint num="4" id="1537" /> +<TGConnectingPoint num="5" id="1538" /> +<TGConnectingPoint num="6" id="1539" /> +<TGConnectingPoint num="7" id="1540" /> +<TGConnectingPoint num="8" id="1541" /> +<TGConnectingPoint num="9" id="1542" /> +<TGConnectingPoint num="10" id="1543" /> +<TGConnectingPoint num="11" id="1544" /> +<TGConnectingPoint num="12" id="1545" /> +<TGConnectingPoint num="13" id="1546" /> +<TGConnectingPoint num="14" id="1547" /> +<TGConnectingPoint num="15" id="1548" /> +<TGConnectingPoint num="16" id="1549" /> +<TGConnectingPoint num="17" id="1550" /> +<TGConnectingPoint num="18" id="1551" /> +<TGConnectingPoint num="19" id="1552" /> +<TGConnectingPoint num="20" id="1553" /> +<TGConnectingPoint num="21" id="1554" /> +<TGConnectingPoint num="22" id="1555" /> +<TGConnectingPoint num="23" id="1556" /> +<TGConnectingPoint num="24" id="1557" /> +<TGConnectingPoint num="25" id="1558" /> +<TGConnectingPoint num="26" id="1559" /> +<TGConnectingPoint num="27" id="1560" /> +<TGConnectingPoint num="28" id="1561" /> +<TGConnectingPoint num="29" id="1562" /> +<TGConnectingPoint num="30" id="1563" /> +<TGConnectingPoint num="31" id="1564" /> +<TGConnectingPoint num="32" id="1565" /> +<TGConnectingPoint num="33" id="1566" /> +<TGConnectingPoint num="34" id="1567" /> +<TGConnectingPoint num="35" id="1568" /> +<TGConnectingPoint num="36" id="1569" /> +<TGConnectingPoint num="37" id="1570" /> +<TGConnectingPoint num="38" id="1571" /> +<TGConnectingPoint num="39" id="1572" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5100" id="1521" > +<father id="1573" num="0" /> +<cdparam x="333" y="213" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1520" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5103" id="1532" > +<father id="1573" num="1" /> +<cdparam x="328" y="257" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="1522" /> +<TGConnectingPoint num="1" id="1523" /> +<TGConnectingPoint num="2" id="1524" /> +<TGConnectingPoint num="3" id="1525" /> +<TGConnectingPoint num="4" id="1526" /> +<TGConnectingPoint num="5" id="1527" /> +<TGConnectingPoint num="6" id="1528" /> +<TGConnectingPoint num="7" id="1529" /> +<TGConnectingPoint num="8" id="1530" /> +<TGConnectingPoint num="9" id="1531" /> +</SUBCOMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1580" > +<cdparam x="363" y="193" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1579" /> +<P1 x="363" y="204" id="1596" /> +<P2 x="362" y="257" id="1607" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1578" > +<father id="1580" num="0" /> +<cdparam x="380" y="228" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1574" /> +<TGConnectingPoint num="1" id="1575" /> +<TGConnectingPoint num="2" id="1576" /> +<TGConnectingPoint num="3" id="1577" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1587" > +<cdparam x="363" y="150" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1586" /> +<P1 x="363" y="150" id="1653" /> +<P2 x="363" y="174" id="1595" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1585" > +<father id="1587" num="0" /> +<cdparam x="363" y="190" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1581" /> +<TGConnectingPoint num="1" id="1582" /> +<TGConnectingPoint num="2" id="1583" /> +<TGConnectingPoint num="3" id="1584" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1594" > +<cdparam x="362" y="101" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1593" /> +<P1 x="362" y="101" id="1688" /> +<P2 x="363" y="120" id="1648" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1592" > +<father id="1594" num="0" /> +<cdparam x="362" y="141" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1588" /> +<TGConnectingPoint num="1" id="1589" /> +<TGConnectingPoint num="2" id="1590" /> +<TGConnectingPoint num="3" id="1591" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="1605" > +<cdparam x="338" y="179" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="1595" /> +<TGConnectingPoint num="1" id="1596" /> +<TGConnectingPoint num="2" id="1597" /> +<TGConnectingPoint num="3" id="1598" /> +<TGConnectingPoint num="4" id="1599" /> +<TGConnectingPoint num="5" id="1600" /> +<TGConnectingPoint num="6" id="1601" /> +<TGConnectingPoint num="7" id="1602" /> +<TGConnectingPoint num="8" id="1603" /> +<TGConnectingPoint num="9" id="1604" /> +</COMPONENT> + +<COMPONENT type="5106" id="1646" > +<cdparam x="337" y="257" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1606" /> +<TGConnectingPoint num="1" id="1607" /> +<TGConnectingPoint num="2" id="1608" /> +<TGConnectingPoint num="3" id="1609" /> +<TGConnectingPoint num="4" id="1610" /> +<TGConnectingPoint num="5" id="1611" /> +<TGConnectingPoint num="6" id="1612" /> +<TGConnectingPoint num="7" id="1613" /> +<TGConnectingPoint num="8" id="1614" /> +<TGConnectingPoint num="9" id="1615" /> +<TGConnectingPoint num="10" id="1616" /> +<TGConnectingPoint num="11" id="1617" /> +<TGConnectingPoint num="12" id="1618" /> +<TGConnectingPoint num="13" id="1619" /> +<TGConnectingPoint num="14" id="1620" /> +<TGConnectingPoint num="15" id="1621" /> +<TGConnectingPoint num="16" id="1622" /> +<TGConnectingPoint num="17" id="1623" /> +<TGConnectingPoint num="18" id="1624" /> +<TGConnectingPoint num="19" id="1625" /> +<TGConnectingPoint num="20" id="1626" /> +<TGConnectingPoint num="21" id="1627" /> +<TGConnectingPoint num="22" id="1628" /> +<TGConnectingPoint num="23" id="1629" /> +<TGConnectingPoint num="24" id="1630" /> +<TGConnectingPoint num="25" id="1631" /> +<TGConnectingPoint num="26" id="1632" /> +<TGConnectingPoint num="27" id="1633" /> +<TGConnectingPoint num="28" id="1634" /> +<TGConnectingPoint num="29" id="1635" /> +<TGConnectingPoint num="30" id="1636" /> +<TGConnectingPoint num="31" id="1637" /> +<TGConnectingPoint num="32" id="1638" /> +<TGConnectingPoint num="33" id="1639" /> +<TGConnectingPoint num="34" id="1640" /> +<TGConnectingPoint num="35" id="1641" /> +<TGConnectingPoint num="36" id="1642" /> +<TGConnectingPoint num="37" id="1643" /> +<TGConnectingPoint num="38" id="1644" /> +<TGConnectingPoint num="39" id="1645" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1687" > +<cdparam x="338" y="120" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1647" /> +<TGConnectingPoint num="1" id="1648" /> +<TGConnectingPoint num="2" id="1649" /> +<TGConnectingPoint num="3" id="1650" /> +<TGConnectingPoint num="4" id="1651" /> +<TGConnectingPoint num="5" id="1652" /> +<TGConnectingPoint num="6" id="1653" /> +<TGConnectingPoint num="7" id="1654" /> +<TGConnectingPoint num="8" id="1655" /> +<TGConnectingPoint num="9" id="1656" /> +<TGConnectingPoint num="10" id="1657" /> +<TGConnectingPoint num="11" id="1658" /> +<TGConnectingPoint num="12" id="1659" /> +<TGConnectingPoint num="13" id="1660" /> +<TGConnectingPoint num="14" id="1661" /> +<TGConnectingPoint num="15" id="1662" /> +<TGConnectingPoint num="16" id="1663" /> +<TGConnectingPoint num="17" id="1664" /> +<TGConnectingPoint num="18" id="1665" /> +<TGConnectingPoint num="19" id="1666" /> +<TGConnectingPoint num="20" id="1667" /> +<TGConnectingPoint num="21" id="1668" /> +<TGConnectingPoint num="22" id="1669" /> +<TGConnectingPoint num="23" id="1670" /> +<TGConnectingPoint num="24" id="1671" /> +<TGConnectingPoint num="25" id="1672" /> +<TGConnectingPoint num="26" id="1673" /> +<TGConnectingPoint num="27" id="1674" /> +<TGConnectingPoint num="28" id="1675" /> +<TGConnectingPoint num="29" id="1676" /> +<TGConnectingPoint num="30" id="1677" /> +<TGConnectingPoint num="31" id="1678" /> +<TGConnectingPoint num="32" id="1679" /> +<TGConnectingPoint num="33" id="1680" /> +<TGConnectingPoint num="34" id="1681" /> +<TGConnectingPoint num="35" id="1682" /> +<TGConnectingPoint num="36" id="1683" /> +<TGConnectingPoint num="37" id="1684" /> +<TGConnectingPoint num="38" id="1685" /> +<TGConnectingPoint num="39" id="1686" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1689" > +<cdparam x="355" y="81" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1688" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +<Modeling type="AVATAR Design" nameTab="DesignWithNoCompositeState" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="Wallet;CoffeeMachine;TeaButton;CoffeeButton;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="1691" > +<cdparam x="321" y="567" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block1 to Block0" value="" /> +<TGConnectingPoint num="0" id="1690" /> +<P1 x="559" y="330" id="1778" /> +<P2 x="560" y="377" id="1836" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in pushCoffeeButton()" /> +<oso value="out push()" /> +<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="1693" > +<cdparam x="275" y="114" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="1692" /> +<P1 x="306" y="109" id="1758" /> +<P2 x="445" y="108" id="1832" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in getCoin(int nbOfCoins)" /> +<osd value="out ejectCoin(int nbOfCoins)" /> +<isd value="in getCoin(int nbOfCoins)" /> +<oso value="out putCoin(int nbOfCoins)" /> +<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="1695" > +<cdparam x="623" y="565" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block1 to Block0" value="" /> +<TGConnectingPoint num="0" id="1694" /> +<P1 x="789" y="326" id="1803" /> +<P2 x="790" y="377" id="1837" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in pushTeaButton()" /> +<oso value="out push()" /> +<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="303" id="1746" > +<cdparam x="92" y="385" /> +<sizeparam width="334" height="84" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UPPAAL Pragma" value="A[] Wallet.nbOfCoins<3 +A[] CoffeeButton.main +A<> CoffeeMachine.WaitingForSelection +E<> CoffeeMachine.WaitingForSelection + +" /> +<TGConnectingPoint num="0" id="1730" /> +<TGConnectingPoint num="1" id="1731" /> +<TGConnectingPoint num="2" id="1732" /> +<TGConnectingPoint num="3" id="1733" /> +<TGConnectingPoint num="4" id="1734" /> +<TGConnectingPoint num="5" id="1735" /> +<TGConnectingPoint num="6" id="1736" /> +<TGConnectingPoint num="7" id="1737" /> +<TGConnectingPoint num="8" id="1738" /> +<TGConnectingPoint num="9" id="1739" /> +<TGConnectingPoint num="10" id="1740" /> +<TGConnectingPoint num="11" id="1741" /> +<TGConnectingPoint num="12" id="1742" /> +<TGConnectingPoint num="13" id="1743" /> +<TGConnectingPoint num="14" id="1744" /> +<TGConnectingPoint num="15" id="1745" /> +<extraparam> +<Line value="A[] Wallet.nbOfCoins<3" /> +<Line value="A[] CoffeeButton.main" /> +<Line value="A<> CoffeeMachine.WaitingForSelection" /> +<Line value="E<> CoffeeMachine.WaitingForSelection" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="1771" > +<cdparam x="106" y="55" /> +<sizeparam width="200" height="218" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="Wallet" /> +<TGConnectingPoint num="0" id="1747" /> +<TGConnectingPoint num="1" id="1748" /> +<TGConnectingPoint num="2" id="1749" /> +<TGConnectingPoint num="3" id="1750" /> +<TGConnectingPoint num="4" id="1751" /> +<TGConnectingPoint num="5" id="1752" /> +<TGConnectingPoint num="6" id="1753" /> +<TGConnectingPoint num="7" id="1754" /> +<TGConnectingPoint num="8" id="1755" /> +<TGConnectingPoint num="9" id="1756" /> +<TGConnectingPoint num="10" id="1757" /> +<TGConnectingPoint num="11" id="1758" /> +<TGConnectingPoint num="12" id="1759" /> +<TGConnectingPoint num="13" id="1760" /> +<TGConnectingPoint num="14" id="1761" /> +<TGConnectingPoint num="15" id="1762" /> +<TGConnectingPoint num="16" id="1763" /> +<TGConnectingPoint num="17" id="1764" /> +<TGConnectingPoint num="18" id="1765" /> +<TGConnectingPoint num="19" id="1766" /> +<TGConnectingPoint num="20" id="1767" /> +<TGConnectingPoint num="21" id="1768" /> +<TGConnectingPoint num="22" id="1769" /> +<TGConnectingPoint num="23" id="1770" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="nbOfCoins" value="2" type="8" typeOther="" /> +<Attribute access="0" id="x" value="1" type="8" typeOther="" /> +<Attribute access="0" id="minUserDelay" value="50" type="8" typeOther="" /> +<Attribute access="0" id="maxUserDelay" value="70" type="8" typeOther="" /> +<Method value="contentOfWallet(int nbOfCoins)" /> +<Signal value="in getCoin(int nbOfCoins)" attached="true" /> +<Signal value="out putCoin(int nbOfCoins)" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="1846" > +<cdparam x="445" y="19" /> +<sizeparam width="461" height="358" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="CoffeeMachine" /> +<TGConnectingPoint num="0" id="1822" /> +<TGConnectingPoint num="1" id="1823" /> +<TGConnectingPoint num="2" id="1824" /> +<TGConnectingPoint num="3" id="1825" /> +<TGConnectingPoint num="4" id="1826" /> +<TGConnectingPoint num="5" id="1827" /> +<TGConnectingPoint num="6" id="1828" /> +<TGConnectingPoint num="7" id="1829" /> +<TGConnectingPoint num="8" id="1830" /> +<TGConnectingPoint num="9" id="1831" /> +<TGConnectingPoint num="10" id="1832" /> +<TGConnectingPoint num="11" id="1833" /> +<TGConnectingPoint num="12" id="1834" /> +<TGConnectingPoint num="13" id="1835" /> +<TGConnectingPoint num="14" id="1836" /> +<TGConnectingPoint num="15" id="1837" /> +<TGConnectingPoint num="16" id="1838" /> +<TGConnectingPoint num="17" id="1839" /> +<TGConnectingPoint num="18" id="1840" /> +<TGConnectingPoint num="19" id="1841" /> +<TGConnectingPoint num="20" id="1842" /> +<TGConnectingPoint num="21" id="1843" /> +<TGConnectingPoint num="22" id="1844" /> +<TGConnectingPoint num="23" id="1845" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="teaMinDelay" value="3" type="8" typeOther="" /> +<Attribute access="0" id="teaMaxDelay" value="8" type="8" typeOther="" /> +<Attribute access="0" id="coffeeMinDelay" value="5" type="8" typeOther="" /> +<Attribute access="0" id="coffeeMaxDelay" value="10" type="8" typeOther="" /> +<Attribute access="0" id="coinDelay" value="50" type="8" typeOther="" /> +<Attribute access="0" id="x" value="0" type="8" typeOther="" /> +<Attribute access="0" id="nbOfCoins" value="0" type="8" typeOther="" /> +<Method value="beverageReady()" /> +<Signal value="in pushCoffeeButton()" attached="true" /> +<Signal value="in pushTeaButton()" attached="true" /> +<Signal value="in getCoin(int nbOfCoins)" attached="true" /> +<Signal value="out ejectCoin(int nbOfCoins)" attached="true" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="1796" > +<father id="1846" num="0" /> +<cdparam x="464" y="228" /> +<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> +<infoparam name="Block1" value="CoffeeButton" /> +<TGConnectingPoint num="0" id="1772" /> +<TGConnectingPoint num="1" id="1773" /> +<TGConnectingPoint num="2" id="1774" /> +<TGConnectingPoint num="3" id="1775" /> +<TGConnectingPoint num="4" id="1776" /> +<TGConnectingPoint num="5" id="1777" /> +<TGConnectingPoint num="6" id="1778" /> +<TGConnectingPoint num="7" id="1779" /> +<TGConnectingPoint num="8" id="1780" /> +<TGConnectingPoint num="9" id="1781" /> +<TGConnectingPoint num="10" id="1782" /> +<TGConnectingPoint num="11" id="1783" /> +<TGConnectingPoint num="12" id="1784" /> +<TGConnectingPoint num="13" id="1785" /> +<TGConnectingPoint num="14" id="1786" /> +<TGConnectingPoint num="15" id="1787" /> +<TGConnectingPoint num="16" id="1788" /> +<TGConnectingPoint num="17" id="1789" /> +<TGConnectingPoint num="18" id="1790" /> +<TGConnectingPoint num="19" id="1791" /> +<TGConnectingPoint num="20" id="1792" /> +<TGConnectingPoint num="21" id="1793" /> +<TGConnectingPoint num="22" id="1794" /> +<TGConnectingPoint num="23" id="1795" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="mechanicalDelay" value="80" type="8" typeOther="" /> +<Signal value="out push()" attached="true" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="1821" > +<father id="1846" num="1" /> +<cdparam x="695" y="224" /> +<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> +<infoparam name="Block1" value="TeaButton" /> +<TGConnectingPoint num="0" id="1797" /> +<TGConnectingPoint num="1" id="1798" /> +<TGConnectingPoint num="2" id="1799" /> +<TGConnectingPoint num="3" id="1800" /> +<TGConnectingPoint num="4" id="1801" /> +<TGConnectingPoint num="5" id="1802" /> +<TGConnectingPoint num="6" id="1803" /> +<TGConnectingPoint num="7" id="1804" /> +<TGConnectingPoint num="8" id="1805" /> +<TGConnectingPoint num="9" id="1806" /> +<TGConnectingPoint num="10" id="1807" /> +<TGConnectingPoint num="11" id="1808" /> +<TGConnectingPoint num="12" id="1809" /> +<TGConnectingPoint num="13" id="1810" /> +<TGConnectingPoint num="14" id="1811" /> +<TGConnectingPoint num="15" id="1812" /> +<TGConnectingPoint num="16" id="1813" /> +<TGConnectingPoint num="17" id="1814" /> +<TGConnectingPoint num="18" id="1815" /> +<TGConnectingPoint num="19" id="1816" /> +<TGConnectingPoint num="20" id="1817" /> +<TGConnectingPoint num="21" id="1818" /> +<TGConnectingPoint num="22" id="1819" /> +<TGConnectingPoint num="23" id="1820" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" /> +<Signal value="out push()" attached="true" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1853" > +<cdparam x="516" y="264" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1852" /> +<P1 x="485" y="219" id="1894" /> +<P2 x="485" y="274" id="1905" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1851" > +<father id="1853" num="0" /> +<cdparam x="493" y="251" /> +<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1847" /> +<TGConnectingPoint num="1" id="1848" /> +<TGConnectingPoint num="2" id="1849" /> +<TGConnectingPoint num="3" id="1850" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = nbOfCoins + x" /> +<actions value="contentOfWallet(nbOfCoins)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1860" > +<cdparam x="382" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1859" /> +<P1 x="382" y="165" id="2001" /> +<P2 x="485" y="189" id="1893" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1858" > +<father id="1860" num="0" /> +<cdparam x="382" y="205" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1854" /> +<TGConnectingPoint num="1" id="1855" /> +<TGConnectingPoint num="2" id="1856" /> +<TGConnectingPoint num="3" id="1857" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1867" > +<cdparam x="223" y="260" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1866" /> +<P1 x="251" y="231" id="1883" /> +<P2 x="252" y="300" id="1946" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1865" > +<father id="1867" num="0" /> +<cdparam x="163" y="252" /> +<sizeparam width="221" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1861" /> +<TGConnectingPoint num="1" id="1862" /> +<TGConnectingPoint num="2" id="1863" /> +<TGConnectingPoint num="3" id="1864" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="minUserDelay" /> +<afterMax value="maxUserDelay" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = nbOfCoins - x" /> +<actions value="contentOfWallet(nbOfCoins)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1874" > +<cdparam x="357" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1873" /> +<P1 x="357" y="165" id="2000" /> +<P2 x="251" y="201" id="1882" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1872" > +<father id="1874" num="0" /> +<cdparam x="220" y="174" /> +<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1868" /> +<TGConnectingPoint num="1" id="1869" /> +<TGConnectingPoint num="2" id="1870" /> +<TGConnectingPoint num="3" id="1871" /> +<extraparam> +<guard value="[nbOfCoins > 0]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1881" > +<cdparam x="369" y="115" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1880" /> +<P1 x="370" y="64" id="2027" /> +<P2 x="370" y="135" id="1987" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1879" > +<father id="1881" num="0" /> +<cdparam x="376" y="105" /> +<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1875" /> +<TGConnectingPoint num="1" id="1876" /> +<TGConnectingPoint num="2" id="1877" /> +<TGConnectingPoint num="3" id="1878" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="contentOfWallet(nbOfCoins)" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="1892" > +<cdparam x="214" y="206" /> +<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="putCoin(x)" /> +<TGConnectingPoint num="0" id="1882" /> +<TGConnectingPoint num="1" id="1883" /> +<TGConnectingPoint num="2" id="1884" /> +<TGConnectingPoint num="3" id="1885" /> +<TGConnectingPoint num="4" id="1886" /> +<TGConnectingPoint num="5" id="1887" /> +<TGConnectingPoint num="6" id="1888" /> +<TGConnectingPoint num="7" id="1889" /> +<TGConnectingPoint num="8" id="1890" /> +<TGConnectingPoint num="9" id="1891" /> +</COMPONENT> + +<COMPONENT type="5104" id="1903" > +<cdparam x="444" y="194" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="getCoin(x)" /> +<TGConnectingPoint num="0" id="1893" /> +<TGConnectingPoint num="1" id="1894" /> +<TGConnectingPoint num="2" id="1895" /> +<TGConnectingPoint num="3" id="1896" /> +<TGConnectingPoint num="4" id="1897" /> +<TGConnectingPoint num="5" id="1898" /> +<TGConnectingPoint num="6" id="1899" /> +<TGConnectingPoint num="7" id="1900" /> +<TGConnectingPoint num="8" id="1901" /> +<TGConnectingPoint num="9" id="1902" /> +</COMPONENT> + +<COMPONENT type="5106" id="1944" > +<cdparam x="460" y="274" /> +<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1904" /> +<TGConnectingPoint num="1" id="1905" /> +<TGConnectingPoint num="2" id="1906" /> +<TGConnectingPoint num="3" id="1907" /> +<TGConnectingPoint num="4" id="1908" /> +<TGConnectingPoint num="5" id="1909" /> +<TGConnectingPoint num="6" id="1910" /> +<TGConnectingPoint num="7" id="1911" /> +<TGConnectingPoint num="8" id="1912" /> +<TGConnectingPoint num="9" id="1913" /> +<TGConnectingPoint num="10" id="1914" /> +<TGConnectingPoint num="11" id="1915" /> +<TGConnectingPoint num="12" id="1916" /> +<TGConnectingPoint num="13" id="1917" /> +<TGConnectingPoint num="14" id="1918" /> +<TGConnectingPoint num="15" id="1919" /> +<TGConnectingPoint num="16" id="1920" /> +<TGConnectingPoint num="17" id="1921" /> +<TGConnectingPoint num="18" id="1922" /> +<TGConnectingPoint num="19" id="1923" /> +<TGConnectingPoint num="20" id="1924" /> +<TGConnectingPoint num="21" id="1925" /> +<TGConnectingPoint num="22" id="1926" /> +<TGConnectingPoint num="23" id="1927" /> +<TGConnectingPoint num="24" id="1928" /> +<TGConnectingPoint num="25" id="1929" /> +<TGConnectingPoint num="26" id="1930" /> +<TGConnectingPoint num="27" id="1931" /> +<TGConnectingPoint num="28" id="1932" /> +<TGConnectingPoint num="29" id="1933" /> +<TGConnectingPoint num="30" id="1934" /> +<TGConnectingPoint num="31" id="1935" /> +<TGConnectingPoint num="32" id="1936" /> +<TGConnectingPoint num="33" id="1937" /> +<TGConnectingPoint num="34" id="1938" /> +<TGConnectingPoint num="35" id="1939" /> +<TGConnectingPoint num="36" id="1940" /> +<TGConnectingPoint num="37" id="1941" /> +<TGConnectingPoint num="38" id="1942" /> +<TGConnectingPoint num="39" id="1943" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1985" > +<cdparam x="227" y="300" /> +<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1945" /> +<TGConnectingPoint num="1" id="1946" /> +<TGConnectingPoint num="2" id="1947" /> +<TGConnectingPoint num="3" id="1948" /> +<TGConnectingPoint num="4" id="1949" /> +<TGConnectingPoint num="5" id="1950" /> +<TGConnectingPoint num="6" id="1951" /> +<TGConnectingPoint num="7" id="1952" /> +<TGConnectingPoint num="8" id="1953" /> +<TGConnectingPoint num="9" id="1954" /> +<TGConnectingPoint num="10" id="1955" /> +<TGConnectingPoint num="11" id="1956" /> +<TGConnectingPoint num="12" id="1957" /> +<TGConnectingPoint num="13" id="1958" /> +<TGConnectingPoint num="14" id="1959" /> +<TGConnectingPoint num="15" id="1960" /> +<TGConnectingPoint num="16" id="1961" /> +<TGConnectingPoint num="17" id="1962" /> +<TGConnectingPoint num="18" id="1963" /> +<TGConnectingPoint num="19" id="1964" /> +<TGConnectingPoint num="20" id="1965" /> +<TGConnectingPoint num="21" id="1966" /> +<TGConnectingPoint num="22" id="1967" /> +<TGConnectingPoint num="23" id="1968" /> +<TGConnectingPoint num="24" id="1969" /> +<TGConnectingPoint num="25" id="1970" /> +<TGConnectingPoint num="26" id="1971" /> +<TGConnectingPoint num="27" id="1972" /> +<TGConnectingPoint num="28" id="1973" /> +<TGConnectingPoint num="29" id="1974" /> +<TGConnectingPoint num="30" id="1975" /> +<TGConnectingPoint num="31" id="1976" /> +<TGConnectingPoint num="32" id="1977" /> +<TGConnectingPoint num="33" id="1978" /> +<TGConnectingPoint num="34" id="1979" /> +<TGConnectingPoint num="35" id="1980" /> +<TGConnectingPoint num="36" id="1981" /> +<TGConnectingPoint num="37" id="1982" /> +<TGConnectingPoint num="38" id="1983" /> +<TGConnectingPoint num="39" id="1984" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2026" > +<cdparam x="345" y="135" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="1986" /> +<TGConnectingPoint num="1" id="1987" /> +<TGConnectingPoint num="2" id="1988" /> +<TGConnectingPoint num="3" id="1989" /> +<TGConnectingPoint num="4" id="1990" /> +<TGConnectingPoint num="5" id="1991" /> +<TGConnectingPoint num="6" id="1992" /> +<TGConnectingPoint num="7" id="1993" /> +<TGConnectingPoint num="8" id="1994" /> +<TGConnectingPoint num="9" id="1995" /> +<TGConnectingPoint num="10" id="1996" /> +<TGConnectingPoint num="11" id="1997" /> +<TGConnectingPoint num="12" id="1998" /> +<TGConnectingPoint num="13" id="1999" /> +<TGConnectingPoint num="14" id="2000" /> +<TGConnectingPoint num="15" id="2001" /> +<TGConnectingPoint num="16" id="2002" /> +<TGConnectingPoint num="17" id="2003" /> +<TGConnectingPoint num="18" id="2004" /> +<TGConnectingPoint num="19" id="2005" /> +<TGConnectingPoint num="20" id="2006" /> +<TGConnectingPoint num="21" id="2007" /> +<TGConnectingPoint num="22" id="2008" /> +<TGConnectingPoint num="23" id="2009" /> +<TGConnectingPoint num="24" id="2010" /> +<TGConnectingPoint num="25" id="2011" /> +<TGConnectingPoint num="26" id="2012" /> +<TGConnectingPoint num="27" id="2013" /> +<TGConnectingPoint num="28" id="2014" /> +<TGConnectingPoint num="29" id="2015" /> +<TGConnectingPoint num="30" id="2016" /> +<TGConnectingPoint num="31" id="2017" /> +<TGConnectingPoint num="32" id="2018" /> +<TGConnectingPoint num="33" id="2019" /> +<TGConnectingPoint num="34" id="2020" /> +<TGConnectingPoint num="35" id="2021" /> +<TGConnectingPoint num="36" id="2022" /> +<TGConnectingPoint num="37" id="2023" /> +<TGConnectingPoint num="38" id="2024" /> +<TGConnectingPoint num="39" id="2025" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2028" > +<cdparam x="363" y="44" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2027" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="1400" minY="10" maxY="1400" > +<CONNECTOR type="5102" id="2035" > +<cdparam x="691" y="288" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2034" /> +<P1 x="699" y="289" id="2240" /> +<P2 x="699" y="316" id="2212" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2033" > +<father id="2035" num="0" /> +<cdparam x="691" y="328" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2029" /> +<TGConnectingPoint num="1" id="2030" /> +<TGConnectingPoint num="2" id="2031" /> +<TGConnectingPoint num="3" id="2032" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2042" > +<cdparam x="481" y="501" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="2041" /> +<P1 x="433" y="526" id="2139" /> +<P2 x="323" y="748" id="2368" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2040" > +<father id="2042" num="0" /> +<cdparam x="420" y="552" /> +<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2036" /> +<TGConnectingPoint num="1" id="2037" /> +<TGConnectingPoint num="2" id="2038" /> +<TGConnectingPoint num="3" id="2039" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = 0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2049" > +<cdparam x="555" y="559" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2048" /> +<P1 x="317" y="456" id="2164" /> +<P2 x="433" y="496" id="2138" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2047" > +<father id="2049" num="0" /> +<cdparam x="395" y="448" /> +<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2043" /> +<TGConnectingPoint num="1" id="2044" /> +<TGConnectingPoint num="2" id="2045" /> +<TGConnectingPoint num="3" id="2046" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="coinDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2056" > +<cdparam x="355" y="545" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="2055" /> +<P1 x="289" y="553" id="2150" /> +<P2 x="289" y="748" id="2360" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2054" > +<father id="2056" num="0" /> +<cdparam x="284" y="594" /> +<sizeparam width="248" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2050" /> +<TGConnectingPoint num="1" id="2051" /> +<TGConnectingPoint num="2" id="2052" /> +<TGConnectingPoint num="3" id="2053" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="teaMinDelay" /> +<computeMax value="teaMaxDelay" /> +<actions value="nbOfCoins = 0" /> +<actions value="beverageReady()" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2063" > +<cdparam x="295" y="465" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2062" /> +<P1 x="284" y="476" id="2175" /> +<P2 x="289" y="523" id="2149" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2061" > +<father id="2063" num="0" /> +<cdparam x="295" y="505" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2057" /> +<TGConnectingPoint num="1" id="2058" /> +<TGConnectingPoint num="2" id="2059" /> +<TGConnectingPoint num="3" id="2060" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2070" > +<cdparam x="148" y="549" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="2069" /> +<P1 x="117" y="553" id="2128" /> +<P2 x="255" y="748" id="2367" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2068" > +<father id="2070" num="0" /> +<cdparam x="32" y="587" /> +<sizeparam width="284" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2064" /> +<TGConnectingPoint num="1" id="2065" /> +<TGConnectingPoint num="2" id="2066" /> +<TGConnectingPoint num="3" id="2067" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="coffeeMinDelay" /> +<computeMax value="coffeeMaxDelay" /> +<actions value="nbOfCoins = 0" /> +<actions value="beverageReady()" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2077" > +<cdparam x="229" y="465" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2076" /> +<P1 x="218" y="476" id="2174" /> +<P2 x="117" y="523" id="2127" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2075" > +<father id="2077" num="0" /> +<cdparam x="229" y="505" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2071" /> +<TGConnectingPoint num="1" id="2072" /> +<TGConnectingPoint num="2" id="2073" /> +<TGConnectingPoint num="3" id="2074" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2084" > +<cdparam x="667" y="346" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2083" /> +<P1 x="699" y="346" id="2213" /> +<P2 x="699" y="381" id="2401" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2082" > +<father id="2084" num="0" /> +<cdparam x="707" y="368" /> +<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2078" /> +<TGConnectingPoint num="1" id="2079" /> +<TGConnectingPoint num="2" id="2080" /> +<TGConnectingPoint num="3" id="2081" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = 0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2091" > +<cdparam x="348" y="228" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2090" /> +<P1 x="388" y="208" id="2279" /> +<P2 x="649" y="264" id="2237" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2089" > +<father id="2091" num="0" /> +<cdparam x="411" y="206" /> +<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2085" /> +<TGConnectingPoint num="1" id="2086" /> +<TGConnectingPoint num="2" id="2087" /> +<TGConnectingPoint num="3" id="2088" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="coinDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2098" > +<cdparam x="243" y="319" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2097" /> +<P1 x="277" y="305" id="2224" /> +<P2 x="251" y="436" id="2161" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2096" > +<father id="2098" num="0" /> +<cdparam x="243" y="359" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2092" /> +<TGConnectingPoint num="1" id="2093" /> +<TGConnectingPoint num="2" id="2094" /> +<TGConnectingPoint num="3" id="2095" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2105" > +<cdparam x="270" y="224" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2104" /> +<P1 x="270" y="228" id="2289" /> +<P2 x="277" y="275" id="2223" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2103" > +<father id="2105" num="0" /> +<cdparam x="270" y="264" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2099" /> +<TGConnectingPoint num="1" id="2100" /> +<TGConnectingPoint num="2" id="2101" /> +<TGConnectingPoint num="3" id="2102" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2112" > +<cdparam x="309" y="160" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2111" /> +<P1 x="306" y="166" id="2202" /> +<P2 x="309" y="188" id="2276" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2110" > +<father id="2112" num="0" /> +<cdparam x="328" y="178" /> +<sizeparam width="168" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2106" /> +<TGConnectingPoint num="1" id="2107" /> +<TGConnectingPoint num="2" id="2108" /> +<TGConnectingPoint num="3" id="2109" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="nbOfCoins = nbOfCoins + x" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2119" > +<cdparam x="303" y="103" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2118" /> +<P1 x="303" y="103" id="2324" /> +<P2 x="306" y="136" id="2201" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2117" > +<father id="2119" num="0" /> +<cdparam x="303" y="143" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2113" /> +<TGConnectingPoint num="1" id="2114" /> +<TGConnectingPoint num="2" id="2115" /> +<TGConnectingPoint num="3" id="2116" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2126" > +<cdparam x="303" y="40" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="2125" /> +<P1 x="303" y="40" id="2316" /> +<P2 x="303" y="63" id="2319" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2124" > +<father id="2126" num="0" /> +<cdparam x="303" y="80" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2120" /> +<TGConnectingPoint num="1" id="2121" /> +<TGConnectingPoint num="2" id="2122" /> +<TGConnectingPoint num="3" id="2123" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="2137" > +<cdparam x="47" y="528" /> +<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="pushCoffeeButton()" /> +<TGConnectingPoint num="0" id="2127" /> +<TGConnectingPoint num="1" id="2128" /> +<TGConnectingPoint num="2" id="2129" /> +<TGConnectingPoint num="3" id="2130" /> +<TGConnectingPoint num="4" id="2131" /> +<TGConnectingPoint num="5" id="2132" /> +<TGConnectingPoint num="6" id="2133" /> +<TGConnectingPoint num="7" id="2134" /> +<TGConnectingPoint num="8" id="2135" /> +<TGConnectingPoint num="9" id="2136" /> +<accessibility /> +</COMPONENT> + +<COMPONENT type="5103" id="2148" > +<cdparam x="363" y="501" /> +<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<TGConnectingPoint num="0" id="2138" /> +<TGConnectingPoint num="1" id="2139" /> +<TGConnectingPoint num="2" id="2140" /> +<TGConnectingPoint num="3" id="2141" /> +<TGConnectingPoint num="4" id="2142" /> +<TGConnectingPoint num="5" id="2143" /> +<TGConnectingPoint num="6" id="2144" /> +<TGConnectingPoint num="7" id="2145" /> +<TGConnectingPoint num="8" id="2146" /> +<TGConnectingPoint num="9" id="2147" /> +<accessibility /> +</COMPONENT> + +<COMPONENT type="5104" id="2159" > +<cdparam x="227" y="528" /> +<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="pushTeaButton()" /> +<TGConnectingPoint num="0" id="2149" /> +<TGConnectingPoint num="1" id="2150" /> +<TGConnectingPoint num="2" id="2151" /> +<TGConnectingPoint num="3" id="2152" /> +<TGConnectingPoint num="4" id="2153" /> +<TGConnectingPoint num="5" id="2154" /> +<TGConnectingPoint num="6" id="2155" /> +<TGConnectingPoint num="7" id="2156" /> +<TGConnectingPoint num="8" id="2157" /> +<TGConnectingPoint num="9" id="2158" /> +<accessibility /> +</COMPONENT> + +<COMPONENT type="5106" id="2200" > +<cdparam x="185" y="436" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForSelection" /> +<TGConnectingPoint num="0" id="2160" /> +<TGConnectingPoint num="1" id="2161" /> +<TGConnectingPoint num="2" id="2162" /> +<TGConnectingPoint num="3" id="2163" /> +<TGConnectingPoint num="4" id="2164" /> +<TGConnectingPoint num="5" id="2165" /> +<TGConnectingPoint num="6" id="2166" /> +<TGConnectingPoint num="7" id="2167" /> +<TGConnectingPoint num="8" id="2168" /> +<TGConnectingPoint num="9" id="2169" /> +<TGConnectingPoint num="10" id="2170" /> +<TGConnectingPoint num="11" id="2171" /> +<TGConnectingPoint num="12" id="2172" /> +<TGConnectingPoint num="13" id="2173" /> +<TGConnectingPoint num="14" id="2174" /> +<TGConnectingPoint num="15" id="2175" /> +<TGConnectingPoint num="16" id="2176" /> +<TGConnectingPoint num="17" id="2177" /> +<TGConnectingPoint num="18" id="2178" /> +<TGConnectingPoint num="19" id="2179" /> +<TGConnectingPoint num="20" id="2180" /> +<TGConnectingPoint num="21" id="2181" /> +<TGConnectingPoint num="22" id="2182" /> +<TGConnectingPoint num="23" id="2183" /> +<TGConnectingPoint num="24" id="2184" /> +<TGConnectingPoint num="25" id="2185" /> +<TGConnectingPoint num="26" id="2186" /> +<TGConnectingPoint num="27" id="2187" /> +<TGConnectingPoint num="28" id="2188" /> +<TGConnectingPoint num="29" id="2189" /> +<TGConnectingPoint num="30" id="2190" /> +<TGConnectingPoint num="31" id="2191" /> +<TGConnectingPoint num="32" id="2192" /> +<TGConnectingPoint num="33" id="2193" /> +<TGConnectingPoint num="34" id="2194" /> +<TGConnectingPoint num="35" id="2195" /> +<TGConnectingPoint num="36" id="2196" /> +<TGConnectingPoint num="37" id="2197" /> +<TGConnectingPoint num="38" id="2198" /> +<TGConnectingPoint num="39" id="2199" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="2211" > +<cdparam x="265" y="141" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="getCoin(x)" /> +<TGConnectingPoint num="0" id="2201" /> +<TGConnectingPoint num="1" id="2202" /> +<TGConnectingPoint num="2" id="2203" /> +<TGConnectingPoint num="3" id="2204" /> +<TGConnectingPoint num="4" id="2205" /> +<TGConnectingPoint num="5" id="2206" /> +<TGConnectingPoint num="6" id="2207" /> +<TGConnectingPoint num="7" id="2208" /> +<TGConnectingPoint num="8" id="2209" /> +<TGConnectingPoint num="9" id="2210" /> +</COMPONENT> + +<COMPONENT type="5103" id="2222" > +<cdparam x="629" y="321" /> +<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<TGConnectingPoint num="0" id="2212" /> +<TGConnectingPoint num="1" id="2213" /> +<TGConnectingPoint num="2" id="2214" /> +<TGConnectingPoint num="3" id="2215" /> +<TGConnectingPoint num="4" id="2216" /> +<TGConnectingPoint num="5" id="2217" /> +<TGConnectingPoint num="6" id="2218" /> +<TGConnectingPoint num="7" id="2219" /> +<TGConnectingPoint num="8" id="2220" /> +<TGConnectingPoint num="9" id="2221" /> +</COMPONENT> + +<COMPONENT type="5104" id="2233" > +<cdparam x="236" y="280" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="getCoin(x)" /> +<TGConnectingPoint num="0" id="2223" /> +<TGConnectingPoint num="1" id="2224" /> +<TGConnectingPoint num="2" id="2225" /> +<TGConnectingPoint num="3" id="2226" /> +<TGConnectingPoint num="4" id="2227" /> +<TGConnectingPoint num="5" id="2228" /> +<TGConnectingPoint num="6" id="2229" /> +<TGConnectingPoint num="7" id="2230" /> +<TGConnectingPoint num="8" id="2231" /> +<TGConnectingPoint num="9" id="2232" /> +<accessibility /> +</COMPONENT> + +<COMPONENT type="5106" id="2274" > +<cdparam x="649" y="239" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="ejectState" /> +<TGConnectingPoint num="0" id="2234" /> +<TGConnectingPoint num="1" id="2235" /> +<TGConnectingPoint num="2" id="2236" /> +<TGConnectingPoint num="3" id="2237" /> +<TGConnectingPoint num="4" id="2238" /> +<TGConnectingPoint num="5" id="2239" /> +<TGConnectingPoint num="6" id="2240" /> +<TGConnectingPoint num="7" id="2241" /> +<TGConnectingPoint num="8" id="2242" /> +<TGConnectingPoint num="9" id="2243" /> +<TGConnectingPoint num="10" id="2244" /> +<TGConnectingPoint num="11" id="2245" /> +<TGConnectingPoint num="12" id="2246" /> +<TGConnectingPoint num="13" id="2247" /> +<TGConnectingPoint num="14" id="2248" /> +<TGConnectingPoint num="15" id="2249" /> +<TGConnectingPoint num="16" id="2250" /> +<TGConnectingPoint num="17" id="2251" /> +<TGConnectingPoint num="18" id="2252" /> +<TGConnectingPoint num="19" id="2253" /> +<TGConnectingPoint num="20" id="2254" /> +<TGConnectingPoint num="21" id="2255" /> +<TGConnectingPoint num="22" id="2256" /> +<TGConnectingPoint num="23" id="2257" /> +<TGConnectingPoint num="24" id="2258" /> +<TGConnectingPoint num="25" id="2259" /> +<TGConnectingPoint num="26" id="2260" /> +<TGConnectingPoint num="27" id="2261" /> +<TGConnectingPoint num="28" id="2262" /> +<TGConnectingPoint num="29" id="2263" /> +<TGConnectingPoint num="30" id="2264" /> +<TGConnectingPoint num="31" id="2265" /> +<TGConnectingPoint num="32" id="2266" /> +<TGConnectingPoint num="33" id="2267" /> +<TGConnectingPoint num="34" id="2268" /> +<TGConnectingPoint num="35" id="2269" /> +<TGConnectingPoint num="36" id="2270" /> +<TGConnectingPoint num="37" id="2271" /> +<TGConnectingPoint num="38" id="2272" /> +<TGConnectingPoint num="39" id="2273" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2315" > +<cdparam x="231" y="188" /> +<sizeparam width="157" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForSecondCoin" /> +<TGConnectingPoint num="0" id="2275" /> +<TGConnectingPoint num="1" id="2276" /> +<TGConnectingPoint num="2" id="2277" /> +<TGConnectingPoint num="3" id="2278" /> +<TGConnectingPoint num="4" id="2279" /> +<TGConnectingPoint num="5" id="2280" /> +<TGConnectingPoint num="6" id="2281" /> +<TGConnectingPoint num="7" id="2282" /> +<TGConnectingPoint num="8" id="2283" /> +<TGConnectingPoint num="9" id="2284" /> +<TGConnectingPoint num="10" id="2285" /> +<TGConnectingPoint num="11" id="2286" /> +<TGConnectingPoint num="12" id="2287" /> +<TGConnectingPoint num="13" id="2288" /> +<TGConnectingPoint num="14" id="2289" /> +<TGConnectingPoint num="15" id="2290" /> +<TGConnectingPoint num="16" id="2291" /> +<TGConnectingPoint num="17" id="2292" /> +<TGConnectingPoint num="18" id="2293" /> +<TGConnectingPoint num="19" id="2294" /> +<TGConnectingPoint num="20" id="2295" /> +<TGConnectingPoint num="21" id="2296" /> +<TGConnectingPoint num="22" id="2297" /> +<TGConnectingPoint num="23" id="2298" /> +<TGConnectingPoint num="24" id="2299" /> +<TGConnectingPoint num="25" id="2300" /> +<TGConnectingPoint num="26" id="2301" /> +<TGConnectingPoint num="27" id="2302" /> +<TGConnectingPoint num="28" id="2303" /> +<TGConnectingPoint num="29" id="2304" /> +<TGConnectingPoint num="30" id="2305" /> +<TGConnectingPoint num="31" id="2306" /> +<TGConnectingPoint num="32" id="2307" /> +<TGConnectingPoint num="33" id="2308" /> +<TGConnectingPoint num="34" id="2309" /> +<TGConnectingPoint num="35" id="2310" /> +<TGConnectingPoint num="36" id="2311" /> +<TGConnectingPoint num="37" id="2312" /> +<TGConnectingPoint num="38" id="2313" /> +<TGConnectingPoint num="39" id="2314" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2317" > +<cdparam x="296" y="20" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2316" /> +</COMPONENT> + +<COMPONENT type="5106" id="2358" > +<cdparam x="235" y="63" /> +<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForFirstCoin" /> +<TGConnectingPoint num="0" id="2318" /> +<TGConnectingPoint num="1" id="2319" /> +<TGConnectingPoint num="2" id="2320" /> +<TGConnectingPoint num="3" id="2321" /> +<TGConnectingPoint num="4" id="2322" /> +<TGConnectingPoint num="5" id="2323" /> +<TGConnectingPoint num="6" id="2324" /> +<TGConnectingPoint num="7" id="2325" /> +<TGConnectingPoint num="8" id="2326" /> +<TGConnectingPoint num="9" id="2327" /> +<TGConnectingPoint num="10" id="2328" /> +<TGConnectingPoint num="11" id="2329" /> +<TGConnectingPoint num="12" id="2330" /> +<TGConnectingPoint num="13" id="2331" /> +<TGConnectingPoint num="14" id="2332" /> +<TGConnectingPoint num="15" id="2333" /> +<TGConnectingPoint num="16" id="2334" /> +<TGConnectingPoint num="17" id="2335" /> +<TGConnectingPoint num="18" id="2336" /> +<TGConnectingPoint num="19" id="2337" /> +<TGConnectingPoint num="20" id="2338" /> +<TGConnectingPoint num="21" id="2339" /> +<TGConnectingPoint num="22" id="2340" /> +<TGConnectingPoint num="23" id="2341" /> +<TGConnectingPoint num="24" id="2342" /> +<TGConnectingPoint num="25" id="2343" /> +<TGConnectingPoint num="26" id="2344" /> +<TGConnectingPoint num="27" id="2345" /> +<TGConnectingPoint num="28" id="2346" /> +<TGConnectingPoint num="29" id="2347" /> +<TGConnectingPoint num="30" id="2348" /> +<TGConnectingPoint num="31" id="2349" /> +<TGConnectingPoint num="32" id="2350" /> +<TGConnectingPoint num="33" id="2351" /> +<TGConnectingPoint num="34" id="2352" /> +<TGConnectingPoint num="35" id="2353" /> +<TGConnectingPoint num="36" id="2354" /> +<TGConnectingPoint num="37" id="2355" /> +<TGConnectingPoint num="38" id="2356" /> +<TGConnectingPoint num="39" id="2357" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2399" > +<cdparam x="221" y="748" /> +<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForFirstCoin" /> +<TGConnectingPoint num="0" id="2359" /> +<TGConnectingPoint num="1" id="2360" /> +<TGConnectingPoint num="2" id="2361" /> +<TGConnectingPoint num="3" id="2362" /> +<TGConnectingPoint num="4" id="2363" /> +<TGConnectingPoint num="5" id="2364" /> +<TGConnectingPoint num="6" id="2365" /> +<TGConnectingPoint num="7" id="2366" /> +<TGConnectingPoint num="8" id="2367" /> +<TGConnectingPoint num="9" id="2368" /> +<TGConnectingPoint num="10" id="2369" /> +<TGConnectingPoint num="11" id="2370" /> +<TGConnectingPoint num="12" id="2371" /> +<TGConnectingPoint num="13" id="2372" /> +<TGConnectingPoint num="14" id="2373" /> +<TGConnectingPoint num="15" id="2374" /> +<TGConnectingPoint num="16" id="2375" /> +<TGConnectingPoint num="17" id="2376" /> +<TGConnectingPoint num="18" id="2377" /> +<TGConnectingPoint num="19" id="2378" /> +<TGConnectingPoint num="20" id="2379" /> +<TGConnectingPoint num="21" id="2380" /> +<TGConnectingPoint num="22" id="2381" /> +<TGConnectingPoint num="23" id="2382" /> +<TGConnectingPoint num="24" id="2383" /> +<TGConnectingPoint num="25" id="2384" /> +<TGConnectingPoint num="26" id="2385" /> +<TGConnectingPoint num="27" id="2386" /> +<TGConnectingPoint num="28" id="2387" /> +<TGConnectingPoint num="29" id="2388" /> +<TGConnectingPoint num="30" id="2389" /> +<TGConnectingPoint num="31" id="2390" /> +<TGConnectingPoint num="32" id="2391" /> +<TGConnectingPoint num="33" id="2392" /> +<TGConnectingPoint num="34" id="2393" /> +<TGConnectingPoint num="35" id="2394" /> +<TGConnectingPoint num="36" id="2395" /> +<TGConnectingPoint num="37" id="2396" /> +<TGConnectingPoint num="38" id="2397" /> +<TGConnectingPoint num="39" id="2398" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2440" > +<cdparam x="631" y="381" /> +<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForFirstCoin" /> +<TGConnectingPoint num="0" id="2400" /> +<TGConnectingPoint num="1" id="2401" /> +<TGConnectingPoint num="2" id="2402" /> +<TGConnectingPoint num="3" id="2403" /> +<TGConnectingPoint num="4" id="2404" /> +<TGConnectingPoint num="5" id="2405" /> +<TGConnectingPoint num="6" id="2406" /> +<TGConnectingPoint num="7" id="2407" /> +<TGConnectingPoint num="8" id="2408" /> +<TGConnectingPoint num="9" id="2409" /> +<TGConnectingPoint num="10" id="2410" /> +<TGConnectingPoint num="11" id="2411" /> +<TGConnectingPoint num="12" id="2412" /> +<TGConnectingPoint num="13" id="2413" /> +<TGConnectingPoint num="14" id="2414" /> +<TGConnectingPoint num="15" id="2415" /> +<TGConnectingPoint num="16" id="2416" /> +<TGConnectingPoint num="17" id="2417" /> +<TGConnectingPoint num="18" id="2418" /> +<TGConnectingPoint num="19" id="2419" /> +<TGConnectingPoint num="20" id="2420" /> +<TGConnectingPoint num="21" id="2421" /> +<TGConnectingPoint num="22" id="2422" /> +<TGConnectingPoint num="23" id="2423" /> +<TGConnectingPoint num="24" id="2424" /> +<TGConnectingPoint num="25" id="2425" /> +<TGConnectingPoint num="26" id="2426" /> +<TGConnectingPoint num="27" id="2427" /> +<TGConnectingPoint num="28" id="2428" /> +<TGConnectingPoint num="29" id="2429" /> +<TGConnectingPoint num="30" id="2430" /> +<TGConnectingPoint num="31" id="2431" /> +<TGConnectingPoint num="32" id="2432" /> +<TGConnectingPoint num="33" id="2433" /> +<TGConnectingPoint num="34" id="2434" /> +<TGConnectingPoint num="35" id="2435" /> +<TGConnectingPoint num="36" id="2436" /> +<TGConnectingPoint num="37" id="2437" /> +<TGConnectingPoint num="38" id="2438" /> +<TGConnectingPoint num="39" id="2439" /> +<extraparam> +</extraparam> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="2447" > +<cdparam x="363" y="193" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2446" /> +<P1 x="363" y="204" id="2463" /> +<P2 x="362" y="257" id="2474" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2445" > +<father id="2447" num="0" /> +<cdparam x="380" y="228" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2441" /> +<TGConnectingPoint num="1" id="2442" /> +<TGConnectingPoint num="2" id="2443" /> +<TGConnectingPoint num="3" id="2444" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2454" > +<cdparam x="363" y="150" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2453" /> +<P1 x="363" y="150" id="2520" /> +<P2 x="363" y="174" id="2462" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2452" > +<father id="2454" num="0" /> +<cdparam x="363" y="190" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2448" /> +<TGConnectingPoint num="1" id="2449" /> +<TGConnectingPoint num="2" id="2450" /> +<TGConnectingPoint num="3" id="2451" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2461" > +<cdparam x="362" y="101" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="2460" /> +<P1 x="362" y="101" id="2555" /> +<P2 x="363" y="120" id="2515" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2459" > +<father id="2461" num="0" /> +<cdparam x="362" y="141" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2455" /> +<TGConnectingPoint num="1" id="2456" /> +<TGConnectingPoint num="2" id="2457" /> +<TGConnectingPoint num="3" id="2458" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="2472" > +<cdparam x="338" y="179" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="2462" /> +<TGConnectingPoint num="1" id="2463" /> +<TGConnectingPoint num="2" id="2464" /> +<TGConnectingPoint num="3" id="2465" /> +<TGConnectingPoint num="4" id="2466" /> +<TGConnectingPoint num="5" id="2467" /> +<TGConnectingPoint num="6" id="2468" /> +<TGConnectingPoint num="7" id="2469" /> +<TGConnectingPoint num="8" id="2470" /> +<TGConnectingPoint num="9" id="2471" /> +</COMPONENT> + +<COMPONENT type="5106" id="2513" > +<cdparam x="337" y="257" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="2473" /> +<TGConnectingPoint num="1" id="2474" /> +<TGConnectingPoint num="2" id="2475" /> +<TGConnectingPoint num="3" id="2476" /> +<TGConnectingPoint num="4" id="2477" /> +<TGConnectingPoint num="5" id="2478" /> +<TGConnectingPoint num="6" id="2479" /> +<TGConnectingPoint num="7" id="2480" /> +<TGConnectingPoint num="8" id="2481" /> +<TGConnectingPoint num="9" id="2482" /> +<TGConnectingPoint num="10" id="2483" /> +<TGConnectingPoint num="11" id="2484" /> +<TGConnectingPoint num="12" id="2485" /> +<TGConnectingPoint num="13" id="2486" /> +<TGConnectingPoint num="14" id="2487" /> +<TGConnectingPoint num="15" id="2488" /> +<TGConnectingPoint num="16" id="2489" /> +<TGConnectingPoint num="17" id="2490" /> +<TGConnectingPoint num="18" id="2491" /> +<TGConnectingPoint num="19" id="2492" /> +<TGConnectingPoint num="20" id="2493" /> +<TGConnectingPoint num="21" id="2494" /> +<TGConnectingPoint num="22" id="2495" /> +<TGConnectingPoint num="23" id="2496" /> +<TGConnectingPoint num="24" id="2497" /> +<TGConnectingPoint num="25" id="2498" /> +<TGConnectingPoint num="26" id="2499" /> +<TGConnectingPoint num="27" id="2500" /> +<TGConnectingPoint num="28" id="2501" /> +<TGConnectingPoint num="29" id="2502" /> +<TGConnectingPoint num="30" id="2503" /> +<TGConnectingPoint num="31" id="2504" /> +<TGConnectingPoint num="32" id="2505" /> +<TGConnectingPoint num="33" id="2506" /> +<TGConnectingPoint num="34" id="2507" /> +<TGConnectingPoint num="35" id="2508" /> +<TGConnectingPoint num="36" id="2509" /> +<TGConnectingPoint num="37" id="2510" /> +<TGConnectingPoint num="38" id="2511" /> +<TGConnectingPoint num="39" id="2512" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2554" > +<cdparam x="338" y="120" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="2514" /> +<TGConnectingPoint num="1" id="2515" /> +<TGConnectingPoint num="2" id="2516" /> +<TGConnectingPoint num="3" id="2517" /> +<TGConnectingPoint num="4" id="2518" /> +<TGConnectingPoint num="5" id="2519" /> +<TGConnectingPoint num="6" id="2520" /> +<TGConnectingPoint num="7" id="2521" /> +<TGConnectingPoint num="8" id="2522" /> +<TGConnectingPoint num="9" id="2523" /> +<TGConnectingPoint num="10" id="2524" /> +<TGConnectingPoint num="11" id="2525" /> +<TGConnectingPoint num="12" id="2526" /> +<TGConnectingPoint num="13" id="2527" /> +<TGConnectingPoint num="14" id="2528" /> +<TGConnectingPoint num="15" id="2529" /> +<TGConnectingPoint num="16" id="2530" /> +<TGConnectingPoint num="17" id="2531" /> +<TGConnectingPoint num="18" id="2532" /> +<TGConnectingPoint num="19" id="2533" /> +<TGConnectingPoint num="20" id="2534" /> +<TGConnectingPoint num="21" id="2535" /> +<TGConnectingPoint num="22" id="2536" /> +<TGConnectingPoint num="23" id="2537" /> +<TGConnectingPoint num="24" id="2538" /> +<TGConnectingPoint num="25" id="2539" /> +<TGConnectingPoint num="26" id="2540" /> +<TGConnectingPoint num="27" id="2541" /> +<TGConnectingPoint num="28" id="2542" /> +<TGConnectingPoint num="29" id="2543" /> +<TGConnectingPoint num="30" id="2544" /> +<TGConnectingPoint num="31" id="2545" /> +<TGConnectingPoint num="32" id="2546" /> +<TGConnectingPoint num="33" id="2547" /> +<TGConnectingPoint num="34" id="2548" /> +<TGConnectingPoint num="35" id="2549" /> +<TGConnectingPoint num="36" id="2550" /> +<TGConnectingPoint num="37" id="2551" /> +<TGConnectingPoint num="38" id="2552" /> +<TGConnectingPoint num="39" id="2553" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2556" > +<cdparam x="355" y="81" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2555" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="2563" > +<cdparam x="323" y="118" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2562" /> +<P1 x="323" y="118" id="2636" /> +<P2 x="341" y="200" id="2578" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2561" > +<father id="2563" num="0" /> +<cdparam x="323" y="158" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2557" /> +<TGConnectingPoint num="1" id="2558" /> +<TGConnectingPoint num="2" id="2559" /> +<TGConnectingPoint num="3" id="2560" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2570" > +<cdparam x="322" y="69" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="2569" /> +<P1 x="322" y="69" id="2671" /> +<P2 x="323" y="88" id="2631" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2568" > +<father id="2570" num="0" /> +<cdparam x="322" y="109" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2564" /> +<TGConnectingPoint num="1" id="2565" /> +<TGConnectingPoint num="2" id="2566" /> +<TGConnectingPoint num="3" id="2567" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2577" > +<cdparam x="365" y="135" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2576" /> +<P1 x="341" y="230" id="2579" /> +<P2 x="387" y="300" id="2590" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2575" > +<father id="2577" num="0" /> +<cdparam x="405" y="283" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2571" /> +<TGConnectingPoint num="1" id="2572" /> +<TGConnectingPoint num="2" id="2573" /> +<TGConnectingPoint num="3" id="2574" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="2588" > +<cdparam x="316" y="205" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="2578" /> +<TGConnectingPoint num="1" id="2579" /> +<TGConnectingPoint num="2" id="2580" /> +<TGConnectingPoint num="3" id="2581" /> +<TGConnectingPoint num="4" id="2582" /> +<TGConnectingPoint num="5" id="2583" /> +<TGConnectingPoint num="6" id="2584" /> +<TGConnectingPoint num="7" id="2585" /> +<TGConnectingPoint num="8" id="2586" /> +<TGConnectingPoint num="9" id="2587" /> +</COMPONENT> + +<COMPONENT type="5106" id="2629" > +<cdparam x="362" y="300" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="2589" /> +<TGConnectingPoint num="1" id="2590" /> +<TGConnectingPoint num="2" id="2591" /> +<TGConnectingPoint num="3" id="2592" /> +<TGConnectingPoint num="4" id="2593" /> +<TGConnectingPoint num="5" id="2594" /> +<TGConnectingPoint num="6" id="2595" /> +<TGConnectingPoint num="7" id="2596" /> +<TGConnectingPoint num="8" id="2597" /> +<TGConnectingPoint num="9" id="2598" /> +<TGConnectingPoint num="10" id="2599" /> +<TGConnectingPoint num="11" id="2600" /> +<TGConnectingPoint num="12" id="2601" /> +<TGConnectingPoint num="13" id="2602" /> +<TGConnectingPoint num="14" id="2603" /> +<TGConnectingPoint num="15" id="2604" /> +<TGConnectingPoint num="16" id="2605" /> +<TGConnectingPoint num="17" id="2606" /> +<TGConnectingPoint num="18" id="2607" /> +<TGConnectingPoint num="19" id="2608" /> +<TGConnectingPoint num="20" id="2609" /> +<TGConnectingPoint num="21" id="2610" /> +<TGConnectingPoint num="22" id="2611" /> +<TGConnectingPoint num="23" id="2612" /> +<TGConnectingPoint num="24" id="2613" /> +<TGConnectingPoint num="25" id="2614" /> +<TGConnectingPoint num="26" id="2615" /> +<TGConnectingPoint num="27" id="2616" /> +<TGConnectingPoint num="28" id="2617" /> +<TGConnectingPoint num="29" id="2618" /> +<TGConnectingPoint num="30" id="2619" /> +<TGConnectingPoint num="31" id="2620" /> +<TGConnectingPoint num="32" id="2621" /> +<TGConnectingPoint num="33" id="2622" /> +<TGConnectingPoint num="34" id="2623" /> +<TGConnectingPoint num="35" id="2624" /> +<TGConnectingPoint num="36" id="2625" /> +<TGConnectingPoint num="37" id="2626" /> +<TGConnectingPoint num="38" id="2627" /> +<TGConnectingPoint num="39" id="2628" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2670" > +<cdparam x="298" y="88" /> +<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="main" /> +<TGConnectingPoint num="0" id="2630" /> +<TGConnectingPoint num="1" id="2631" /> +<TGConnectingPoint num="2" id="2632" /> +<TGConnectingPoint num="3" id="2633" /> +<TGConnectingPoint num="4" id="2634" /> +<TGConnectingPoint num="5" id="2635" /> +<TGConnectingPoint num="6" id="2636" /> +<TGConnectingPoint num="7" id="2637" /> +<TGConnectingPoint num="8" id="2638" /> +<TGConnectingPoint num="9" id="2639" /> +<TGConnectingPoint num="10" id="2640" /> +<TGConnectingPoint num="11" id="2641" /> +<TGConnectingPoint num="12" id="2642" /> +<TGConnectingPoint num="13" id="2643" /> +<TGConnectingPoint num="14" id="2644" /> +<TGConnectingPoint num="15" id="2645" /> +<TGConnectingPoint num="16" id="2646" /> +<TGConnectingPoint num="17" id="2647" /> +<TGConnectingPoint num="18" id="2648" /> +<TGConnectingPoint num="19" id="2649" /> +<TGConnectingPoint num="20" id="2650" /> +<TGConnectingPoint num="21" id="2651" /> +<TGConnectingPoint num="22" id="2652" /> +<TGConnectingPoint num="23" id="2653" /> +<TGConnectingPoint num="24" id="2654" /> +<TGConnectingPoint num="25" id="2655" /> +<TGConnectingPoint num="26" id="2656" /> +<TGConnectingPoint num="27" id="2657" /> +<TGConnectingPoint num="28" id="2658" /> +<TGConnectingPoint num="29" id="2659" /> +<TGConnectingPoint num="30" id="2660" /> +<TGConnectingPoint num="31" id="2661" /> +<TGConnectingPoint num="32" id="2662" /> +<TGConnectingPoint num="33" id="2663" /> +<TGConnectingPoint num="34" id="2664" /> +<TGConnectingPoint num="35" id="2665" /> +<TGConnectingPoint num="36" id="2666" /> +<TGConnectingPoint num="37" id="2667" /> +<TGConnectingPoint num="38" id="2668" /> +<TGConnectingPoint num="39" id="2669" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2672" > +<cdparam x="315" y="49" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2671" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/FutureAirNavigationSystem.xml b/ttool/src/test/resources/ui/diagram2avatar/input/FutureAirNavigationSystem.xml new file mode 100644 index 0000000000000000000000000000000000000000..33432047e561ab6900695e06701e762832720702 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/input/FutureAirNavigationSystem.xml @@ -0,0 +1,9021 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="0.98-beta4"> + +<Modeling type="Avatar Methodology" nameTab="Methodology" > +<AvatarMethodologyDiagramPanel name="Methodology" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" > +<COMPONENT type="5606" id="5" > +<cdparam x="460" y="539" /> +<sizeparam width="300" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TGComponent" value="Prototyping" /> +<TGConnectingPoint num="0" id="1" /> +<TGConnectingPoint num="1" id="2" /> +<TGConnectingPoint num="2" id="3" /> +<TGConnectingPoint num="3" id="4" /> +</COMPONENT> + +<COMPONENT type="5604" id="13" > +<cdparam x="361" y="433" /> +<sizeparam width="305" height="82" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TGComponent" value="Design" /> +<TGConnectingPoint num="0" id="8" /> +<TGConnectingPoint num="1" id="9" /> +<TGConnectingPoint num="2" id="10" /> +<TGConnectingPoint num="3" id="11" /> +<TGConnectingPoint num="4" id="12" /> +</COMPONENT> +<SUBCOMPONENT type="5607" id="6" > +<father id="13" num="0" /> +<cdparam x="366" y="473" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="366" maxX="366" minY="473" maxY="473" /> +<infoparam name="value " value="Design_unlossy" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5607" id="7" > +<father id="13" num="1" /> +<cdparam x="366" y="488" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="366" maxX="366" minY="488" maxY="488" /> +<infoparam name="value " value="Design_lossy" /> +</SUBCOMPONENT> + +<COMPONENT type="5603" id="21" > +<cdparam x="259" y="340" /> +<sizeparam width="205" height="80" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TGComponent" value="Analysis" /> +<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" /> +</COMPONENT> +<SUBCOMPONENT type="5607" id="14" > +<father id="21" num="0" /> +<cdparam x="264" y="380" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="264" maxX="264" minY="380" maxY="380" /> +<infoparam name="value " value="Analysis_unlossy" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5607" id="15" > +<father id="21" num="1" /> +<cdparam x="264" y="395" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="264" maxX="264" minY="395" maxY="395" /> +<infoparam name="value " value="Analysis_lossy" /> +</SUBCOMPONENT> + +<COMPONENT type="5602" id="29" > +<cdparam x="160" y="239" /> +<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TGComponent" value="Requirements" /> +<TGConnectingPoint num="0" id="23" /> +<TGConnectingPoint num="1" id="24" /> +<TGConnectingPoint num="2" id="25" /> +<TGConnectingPoint num="3" id="26" /> +<TGConnectingPoint num="4" id="27" /> +<TGConnectingPoint num="5" id="28" /> +</COMPONENT> +<SUBCOMPONENT type="5607" id="22" > +<father id="29" num="0" /> +<cdparam x="165" y="279" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="165" maxX="165" minY="279" maxY="279" /> +<infoparam name="value " value="Requirements_Properties" /> +</SUBCOMPONENT> + +<COMPONENT type="5601" id="35" > +<cdparam x="50" y="136" /> +<sizeparam width="234" height="83" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TGComponent" value="Assumptions" /> +<TGConnectingPoint num="0" id="31" /> +<TGConnectingPoint num="1" id="32" /> +<TGConnectingPoint num="2" id="33" /> +<TGConnectingPoint num="3" id="34" /> +</COMPONENT> +<SUBCOMPONENT type="5607" id="30" > +<father id="35" num="0" /> +<cdparam x="55" y="176" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="55" maxX="55" minY="176" maxY="176" /> +<infoparam name="value " value="Assumptions" /> +</SUBCOMPONENT> + +<COMPONENT type="5605" id="41" > +<cdparam x="110" y="439" /> +<sizeparam width="180" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TGComponent" value="Properties" /> +<TGConnectingPoint num="0" id="37" /> +<TGConnectingPoint num="1" id="38" /> +<TGConnectingPoint num="2" id="39" /> +<TGConnectingPoint num="3" id="40" /> +</COMPONENT> +<SUBCOMPONENT type="5607" id="36" > +<father id="41" num="0" /> +<cdparam x="115" y="479" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="205" maxX="205" minY="440" maxY="440" /> +<infoparam name="value " value="Properties" /> +</SUBCOMPONENT> + +<COMPONENT type="301" id="58" > +<cdparam x="16" y="10" /> +<sizeparam width="357" height="87" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value=" + Author: Pierre de Saqui-Sannes (pdss@isae-supaero.fr) + + Last update: February 10, 2017 + + TTool: java ttool.jar -experimentatal -nocolor + +" /> +<TGConnectingPoint num="0" id="42" /> +<TGConnectingPoint num="1" id="43" /> +<TGConnectingPoint num="2" id="44" /> +<TGConnectingPoint num="3" id="45" /> +<TGConnectingPoint num="4" id="46" /> +<TGConnectingPoint num="5" id="47" /> +<TGConnectingPoint num="6" id="48" /> +<TGConnectingPoint num="7" id="49" /> +<TGConnectingPoint num="8" id="50" /> +<TGConnectingPoint num="9" id="51" /> +<TGConnectingPoint num="10" id="52" /> +<TGConnectingPoint num="11" id="53" /> +<TGConnectingPoint num="12" id="54" /> +<TGConnectingPoint num="13" id="55" /> +<TGConnectingPoint num="14" id="56" /> +<TGConnectingPoint num="15" id="57" /> +<extraparam> +<Line value=" " /> +<Line value=" Author: Pierre de Saqui-Sannes (pdss@isae-supaero.fr)" /> +<Line value=" " /> +<Line value=" Last update: February 10, 2017" /> +<Line value=" " /> +<Line value=" TTool: java ttool.jar -experimentatal -nocolor" /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="5608" id="60" > +<cdparam x="180" y="309" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="59" /> +<P1 x="180" y="309" id="25" /> +<P2 x="146" y="439" id="37" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5608" id="64" > +<cdparam x="420" y="509" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="62" /> +<TGConnectingPoint num="1" id="63" /> +<P1 x="422" y="515" id="9" /> +<P2 x="460" y="574" id="1" /> +<Point x="422" y="574" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="61" > +<father id="64" num="0" /> +<cdparam x="422" y="574" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5608" id="68" > +<cdparam x="320" y="409" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="66" /> +<TGConnectingPoint num="1" id="67" /> +<P1 x="320" y="420" id="17" /> +<P2 x="361" y="474" id="8" /> +<Point x="320" y="474" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="65" > +<father id="68" num="0" /> +<cdparam x="320" y="474" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5608" id="72" > +<cdparam x="220" y="309" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="70" /> +<TGConnectingPoint num="1" id="71" /> +<P1 x="220" y="309" id="24" /> +<P2 x="259" y="380" id="16" /> +<Point x="220" y="380" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="69" > +<father id="72" num="0" /> +<cdparam x="220" y="380" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5608" id="76" > +<cdparam x="120" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="74" /> +<TGConnectingPoint num="1" id="75" /> +<P1 x="120" y="219" id="31" /> +<P2 x="160" y="274" id="23" /> +<Point x="120" y="274" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="73" > +<father id="76" num="0" /> +<cdparam x="120" y="274" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + + +</AvatarMethodologyDiagramPanel> + +</Modeling> + + + + +<Modeling type="Avatar Requirement" nameTab="Requirements_Properties" > +<AvatarRDPanel name="Original Specification" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="301" id="93" > +<cdparam x="10" y="10" /> +<sizeparam width="663" height="255" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value=" +Original specification of the Initial Notification procedure + + +When initiated either by flight crew action or an automatic trigger, an ATS Facilities Notification Contact message + is sent and Avionics Timer ATST1 is set. The aircraft AFN application then awaits an AFN Acknowledgement +message from ground. + +Subject to prior agreement with the service provider, the supplementary address field of +the ATS Facilities Notification Contact Message may contain an abbreviation of the ATC center address + to which the message should be delivered (such as the corresponding IATA or ICAO code). + +If a successful AFN Acnowledgement message is received within the period of time of ATST1, +a positive indication is given to the flight crew and timer ATST1 is cancelled. +The AFN acknowledgement messsage will contain the full 7-character address of the ground AFN end-system. +This address should be used in all subsequent AFN messages. + +If the aircraft AFN receives an AFN acknowledgement message with a non-zero reason code +or timer ATST1 expires, an error indication is given to the the flight crew. + + +" /> +<TGConnectingPoint num="0" id="77" /> +<TGConnectingPoint num="1" id="78" /> +<TGConnectingPoint num="2" id="79" /> +<TGConnectingPoint num="3" id="80" /> +<TGConnectingPoint num="4" id="81" /> +<TGConnectingPoint num="5" id="82" /> +<TGConnectingPoint num="6" id="83" /> +<TGConnectingPoint num="7" id="84" /> +<TGConnectingPoint num="8" id="85" /> +<TGConnectingPoint num="9" id="86" /> +<TGConnectingPoint num="10" id="87" /> +<TGConnectingPoint num="11" id="88" /> +<TGConnectingPoint num="12" id="89" /> +<TGConnectingPoint num="13" id="90" /> +<TGConnectingPoint num="14" id="91" /> +<TGConnectingPoint num="15" id="92" /> +<extraparam> +<Line value="" /> +<Line value="Original specification of the Initial Notification procedure" /> +<Line value="" /> +<Line value="" /> +<Line value="When initiated either by flight crew action or an automatic trigger, an ATS Facilities Notification Contact message" /> +<Line value=" is sent and Avionics Timer ATST1 is set. The aircraft AFN application then awaits an AFN Acknowledgement " /> +<Line value="message from ground." /> +<Line value="" /> +<Line value="Subject to prior agreement with the service provider, the supplementary address field of " /> +<Line value="the ATS Facilities Notification Contact Message may contain an abbreviation of the ATC center address" /> +<Line value=" to which the message should be delivered (such as the corresponding IATA or ICAO code)." /> +<Line value="" /> +<Line value="If a successful AFN Acnowledgement message is received within the period of time of ATST1, " /> +<Line value="a positive indication is given to the flight crew and timer ATST1 is cancelled. " /> +<Line value="The AFN acknowledgement messsage will contain the full 7-character address of the ground AFN end-system. " /> +<Line value="This address should be used in all subsequent AFN messages." /> +<Line value="" /> +<Line value="If the aircraft AFN receives an AFN acknowledgement message with a non-zero reason code " /> +<Line value="or timer ATST1 expires, an error indication is given to the the flight crew." /> +<Line value="" /> +<Line value=" " /> +</extraparam> +</COMPONENT> + + +</AvatarRDPanel> + +<AvatarRDPanel name="RequirementDiagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" > +<COMPONENT type="5200" id="137" > +<cdparam x="411" y="121" /> +<sizeparam width="385" height="99" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="153" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Requirement" value="ProtocolCharacteristics" /> +<TGConnectingPoint num="0" id="94" /> +<TGConnectingPoint num="1" id="95" /> +<TGConnectingPoint num="2" id="96" /> +<TGConnectingPoint num="3" id="97" /> +<TGConnectingPoint num="4" id="98" /> +<TGConnectingPoint num="5" id="99" /> +<TGConnectingPoint num="6" id="100" /> +<TGConnectingPoint num="7" id="101" /> +<TGConnectingPoint num="8" id="102" /> +<TGConnectingPoint num="9" id="103" /> +<TGConnectingPoint num="10" id="104" /> +<TGConnectingPoint num="11" id="105" /> +<TGConnectingPoint num="12" id="106" /> +<TGConnectingPoint num="13" id="107" /> +<TGConnectingPoint num="14" id="108" /> +<TGConnectingPoint num="15" id="109" /> +<TGConnectingPoint num="16" id="110" /> +<TGConnectingPoint num="17" id="111" /> +<TGConnectingPoint num="18" id="112" /> +<TGConnectingPoint num="19" id="113" /> +<TGConnectingPoint num="20" id="114" /> +<TGConnectingPoint num="21" id="115" /> +<TGConnectingPoint num="22" id="116" /> +<TGConnectingPoint num="23" id="117" /> +<TGConnectingPoint num="24" id="118" /> +<TGConnectingPoint num="25" id="119" /> +<TGConnectingPoint num="26" id="120" /> +<TGConnectingPoint num="27" id="121" /> +<TGConnectingPoint num="28" id="122" /> +<TGConnectingPoint num="29" id="123" /> +<TGConnectingPoint num="30" id="124" /> +<TGConnectingPoint num="31" id="125" /> +<TGConnectingPoint num="32" id="126" /> +<TGConnectingPoint num="33" id="127" /> +<TGConnectingPoint num="34" id="128" /> +<TGConnectingPoint num="35" id="129" /> +<TGConnectingPoint num="36" id="130" /> +<TGConnectingPoint num="37" id="131" /> +<TGConnectingPoint num="38" id="132" /> +<TGConnectingPoint num="39" id="133" /> +<TGConnectingPoint num="40" id="134" /> +<TGConnectingPoint num="41" id="135" /> +<TGConnectingPoint num="42" id="136" /> +<extraparam> +<textline data="The IN procedure is a confirmed connection setup" /> +<textline data="procedure initiated by the pilot and developed on " /> +<textline data="top of a lossy network." /> +<kind data="Functional" /> +<criticality data="Low" /> +<reqType data="0" /> +<id data="PROTOCOL" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5200" id="181" > +<cdparam x="10" y="121" /> +<sizeparam width="310" height="97" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="223" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Requirement" value="FANS_Initial_Notification_Procedure" /> +<TGConnectingPoint num="0" id="138" /> +<TGConnectingPoint num="1" id="139" /> +<TGConnectingPoint num="2" id="140" /> +<TGConnectingPoint num="3" id="141" /> +<TGConnectingPoint num="4" id="142" /> +<TGConnectingPoint num="5" id="143" /> +<TGConnectingPoint num="6" id="144" /> +<TGConnectingPoint num="7" id="145" /> +<TGConnectingPoint num="8" id="146" /> +<TGConnectingPoint num="9" id="147" /> +<TGConnectingPoint num="10" id="148" /> +<TGConnectingPoint num="11" id="149" /> +<TGConnectingPoint num="12" id="150" /> +<TGConnectingPoint num="13" id="151" /> +<TGConnectingPoint num="14" id="152" /> +<TGConnectingPoint num="15" id="153" /> +<TGConnectingPoint num="16" id="154" /> +<TGConnectingPoint num="17" id="155" /> +<TGConnectingPoint num="18" id="156" /> +<TGConnectingPoint num="19" id="157" /> +<TGConnectingPoint num="20" id="158" /> +<TGConnectingPoint num="21" id="159" /> +<TGConnectingPoint num="22" id="160" /> +<TGConnectingPoint num="23" id="161" /> +<TGConnectingPoint num="24" id="162" /> +<TGConnectingPoint num="25" id="163" /> +<TGConnectingPoint num="26" id="164" /> +<TGConnectingPoint num="27" id="165" /> +<TGConnectingPoint num="28" id="166" /> +<TGConnectingPoint num="29" id="167" /> +<TGConnectingPoint num="30" id="168" /> +<TGConnectingPoint num="31" id="169" /> +<TGConnectingPoint num="32" id="170" /> +<TGConnectingPoint num="33" id="171" /> +<TGConnectingPoint num="34" id="172" /> +<TGConnectingPoint num="35" id="173" /> +<TGConnectingPoint num="36" id="174" /> +<TGConnectingPoint num="37" id="175" /> +<TGConnectingPoint num="38" id="176" /> +<TGConnectingPoint num="39" id="177" /> +<TGConnectingPoint num="40" id="178" /> +<TGConnectingPoint num="41" id="179" /> +<TGConnectingPoint num="42" id="180" /> +<extraparam> +<textline data="The connection set up procedure" /> +<textline data="shall implement the Initial Notification" /> +<textline data="procedure defined by the FANS specification." /> +<kind data="Functional" /> +<criticality data="High" /> +<reqType data="0" /> +<id data="IN" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5200" id="225" > +<cdparam x="10" y="10" /> +<sizeparam width="314" height="81" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="142" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Requirement" value="GeneralRequirement" /> +<TGConnectingPoint num="0" id="182" /> +<TGConnectingPoint num="1" id="183" /> +<TGConnectingPoint num="2" id="184" /> +<TGConnectingPoint num="3" id="185" /> +<TGConnectingPoint num="4" id="186" /> +<TGConnectingPoint num="5" id="187" /> +<TGConnectingPoint num="6" id="188" /> +<TGConnectingPoint num="7" id="189" /> +<TGConnectingPoint num="8" id="190" /> +<TGConnectingPoint num="9" id="191" /> +<TGConnectingPoint num="10" id="192" /> +<TGConnectingPoint num="11" id="193" /> +<TGConnectingPoint num="12" id="194" /> +<TGConnectingPoint num="13" id="195" /> +<TGConnectingPoint num="14" id="196" /> +<TGConnectingPoint num="15" id="197" /> +<TGConnectingPoint num="16" id="198" /> +<TGConnectingPoint num="17" id="199" /> +<TGConnectingPoint num="18" id="200" /> +<TGConnectingPoint num="19" id="201" /> +<TGConnectingPoint num="20" id="202" /> +<TGConnectingPoint num="21" id="203" /> +<TGConnectingPoint num="22" id="204" /> +<TGConnectingPoint num="23" id="205" /> +<TGConnectingPoint num="24" id="206" /> +<TGConnectingPoint num="25" id="207" /> +<TGConnectingPoint num="26" id="208" /> +<TGConnectingPoint num="27" id="209" /> +<TGConnectingPoint num="28" id="210" /> +<TGConnectingPoint num="29" id="211" /> +<TGConnectingPoint num="30" id="212" /> +<TGConnectingPoint num="31" id="213" /> +<TGConnectingPoint num="32" id="214" /> +<TGConnectingPoint num="33" id="215" /> +<TGConnectingPoint num="34" id="216" /> +<TGConnectingPoint num="35" id="217" /> +<TGConnectingPoint num="36" id="218" /> +<TGConnectingPoint num="37" id="219" /> +<TGConnectingPoint num="38" id="220" /> +<TGConnectingPoint num="39" id="221" /> +<TGConnectingPoint num="40" id="222" /> +<TGConnectingPoint num="41" id="223" /> +<TGConnectingPoint num="42" id="224" /> +<extraparam> +<textline data="The system shall enable an aircraft " /> +<textline data="to set up a connection with a control tower." /> +<kind data="Functional" /> +<criticality data="High" /> +<reqType data="0" /> +<id data="GR" /> +<satisfied data="false" /> +<verified data="false" /> +<attackTreeNode data="" /> +<violatedAction data="" /> +<referenceElements data="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5207" id="241" > +<cdparam x="610" y="271" /> +<sizeparam width="183" height="31" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="151" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="AvatarElementReference" value="Lossy_Analysis_Design" /> +<TGConnectingPoint num="0" id="226" /> +<TGConnectingPoint num="1" id="227" /> +<TGConnectingPoint num="2" id="228" /> +<TGConnectingPoint num="3" id="229" /> +<TGConnectingPoint num="4" id="230" /> +<TGConnectingPoint num="5" id="231" /> +<TGConnectingPoint num="6" id="232" /> +<TGConnectingPoint num="7" id="233" /> +<TGConnectingPoint num="8" id="234" /> +<TGConnectingPoint num="9" id="235" /> +<TGConnectingPoint num="10" id="236" /> +<TGConnectingPoint num="11" id="237" /> +<TGConnectingPoint num="12" id="238" /> +<TGConnectingPoint num="13" id="239" /> +<TGConnectingPoint num="14" id="240" /> +</COMPONENT> + +<COMPONENT type="5207" id="257" > +<cdparam x="416" y="271" /> +<sizeparam width="183" height="31" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="163" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="AvatarElementReference" value="Unlossy_Analysis_Design" /> +<TGConnectingPoint num="0" id="242" /> +<TGConnectingPoint num="1" id="243" /> +<TGConnectingPoint num="2" id="244" /> +<TGConnectingPoint num="3" id="245" /> +<TGConnectingPoint num="4" id="246" /> +<TGConnectingPoint num="5" id="247" /> +<TGConnectingPoint num="6" id="248" /> +<TGConnectingPoint num="7" id="249" /> +<TGConnectingPoint num="8" id="250" /> +<TGConnectingPoint num="9" id="251" /> +<TGConnectingPoint num="10" id="252" /> +<TGConnectingPoint num="11" id="253" /> +<TGConnectingPoint num="12" id="254" /> +<TGConnectingPoint num="13" id="255" /> +<TGConnectingPoint num="14" id="256" /> +</COMPONENT> + +<CONNECTOR type="5208" id="259" > +<cdparam x="708" y="271" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<satisfy>>" /> +<TGConnectingPoint num="0" id="258" /> +<P1 x="701" y="271" id="233" /> +<P2 x="699" y="220" id="133" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5208" id="261" > +<cdparam x="494" y="296" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<satisfy>>" /> +<TGConnectingPoint num="0" id="260" /> +<P1 x="507" y="271" id="249" /> +<P2 x="507" y="220" id="131" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5206" id="263" > +<cdparam x="396" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<refine>>" /> +<TGConnectingPoint num="0" id="262" /> +<P1 x="411" y="170" id="95" /> +<P2 x="320" y="169" id="142" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5206" id="265" > +<cdparam x="146" y="120" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<refine>>" /> +<TGConnectingPoint num="0" id="264" /> +<P1 x="165" y="121" id="145" /> +<P2 x="167" y="91" id="192" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</AvatarRDPanel> + +<AvatarPDPanel name="Property" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<CONNECTOR type="5312" id="267" > +<cdparam x="444" y="383" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="reg" /> +<TGConnectingPoint num="0" id="266" /> +<P1 x="444" y="383" id="306" /> +<P2 x="444" y="431" id="310" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5312" id="269" > +<cdparam x="475" y="306" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="reg" /> +<TGConnectingPoint num="0" id="268" /> +<P1 x="475" y="294" id="316" /> +<P2 x="464" y="343" id="301" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5312" id="271" > +<cdparam x="423" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="reg" /> +<TGConnectingPoint num="0" id="270" /> +<P1 x="424" y="175" id="349" /> +<P2 x="424" y="343" id="299" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="273" > +<cdparam x="179" y="234" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="272" /> +<P1 x="179" y="234" id="372" /> +<P2 x="445" y="234" id="319" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="275" > +<cdparam x="175" y="105" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="274" /> +<P1 x="175" y="105" id="392" /> +<P2 x="445" y="214" id="317" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="277" > +<cdparam x="175" y="158" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="276" /> +<P1 x="175" y="158" id="359" /> +<P2 x="379" y="125" id="341" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5311" id="279" > +<cdparam x="175" y="95" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="278" /> +<P1 x="175" y="95" id="385" /> +<P2 x="379" y="95" id="338" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="301" id="296" > +<cdparam x="72" y="433" /> +<sizeparam width="302" height="51" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value=" + Any connection request will eventually complete, + either successfully or unsuccessfully. + +" /> +<TGConnectingPoint num="0" id="280" /> +<TGConnectingPoint num="1" id="281" /> +<TGConnectingPoint num="2" id="282" /> +<TGConnectingPoint num="3" id="283" /> +<TGConnectingPoint num="4" id="284" /> +<TGConnectingPoint num="5" id="285" /> +<TGConnectingPoint num="6" id="286" /> +<TGConnectingPoint num="7" id="287" /> +<TGConnectingPoint num="8" id="288" /> +<TGConnectingPoint num="9" id="289" /> +<TGConnectingPoint num="10" id="290" /> +<TGConnectingPoint num="11" id="291" /> +<TGConnectingPoint num="12" id="292" /> +<TGConnectingPoint num="13" id="293" /> +<TGConnectingPoint num="14" id="294" /> +<TGConnectingPoint num="15" id="295" /> +<extraparam> +<Line value=" " /> +<Line value=" Any connection request will eventually complete," /> +<Line value=" either successfully or unsuccessfully." /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5309" id="309" > +<cdparam x="404" y="343" /> +<sizeparam width="80" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="OR" /> +<TGConnectingPoint num="0" id="297" /> +<TGConnectingPoint num="1" id="298" /> +<TGConnectingPoint num="2" id="299" /> +<TGConnectingPoint num="3" id="300" /> +<TGConnectingPoint num="4" id="301" /> +<TGConnectingPoint num="5" id="302" /> +<TGConnectingPoint num="6" id="303" /> +<TGConnectingPoint num="7" id="304" /> +<TGConnectingPoint num="8" id="305" /> +<TGConnectingPoint num="9" id="306" /> +<TGConnectingPoint num="10" id="307" /> +<TGConnectingPoint num="11" id="308" /> +</COMPONENT> + +<COMPONENT type="5308" id="314" > +<cdparam x="383" y="431" /> +<sizeparam width="122" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="TerminationProperty" /> +<TGConnectingPoint num="0" id="310" /> +<TGConnectingPoint num="1" id="311" /> +<TGConnectingPoint num="2" id="312" /> +<TGConnectingPoint num="3" id="313" /> +<extraparam> +<liveness data="0" /> +<not data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5301" id="335" > +<cdparam x="445" y="194" /> +<sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="<<LC>>" /> +<TGConnectingPoint num="0" id="315" /> +<TGConnectingPoint num="1" id="316" /> +<TGConnectingPoint num="2" id="317" /> +<TGConnectingPoint num="3" id="318" /> +<TGConnectingPoint num="4" id="319" /> +<TGConnectingPoint num="5" id="320" /> +<TGConnectingPoint num="6" id="321" /> +<TGConnectingPoint num="7" id="322" /> +<TGConnectingPoint num="8" id="323" /> +<TGConnectingPoint num="9" id="324" /> +<TGConnectingPoint num="10" id="325" /> +<TGConnectingPoint num="11" id="326" /> +<TGConnectingPoint num="12" id="327" /> +<TGConnectingPoint num="13" id="328" /> +<TGConnectingPoint num="14" id="329" /> +<TGConnectingPoint num="15" id="330" /> +<TGConnectingPoint num="16" id="331" /> +<TGConnectingPoint num="17" id="332" /> +<TGConnectingPoint num="18" id="333" /> +<TGConnectingPoint num="19" id="334" /> +</COMPONENT> + +<COMPONENT type="5301" id="356" > +<cdparam x="379" y="75" /> +<sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="<<LC>>" /> +<TGConnectingPoint num="0" id="336" /> +<TGConnectingPoint num="1" id="337" /> +<TGConnectingPoint num="2" id="338" /> +<TGConnectingPoint num="3" id="339" /> +<TGConnectingPoint num="4" id="340" /> +<TGConnectingPoint num="5" id="341" /> +<TGConnectingPoint num="6" id="342" /> +<TGConnectingPoint num="7" id="343" /> +<TGConnectingPoint num="8" id="344" /> +<TGConnectingPoint num="9" id="345" /> +<TGConnectingPoint num="10" id="346" /> +<TGConnectingPoint num="11" id="347" /> +<TGConnectingPoint num="12" id="348" /> +<TGConnectingPoint num="13" id="349" /> +<TGConnectingPoint num="14" id="350" /> +<TGConnectingPoint num="15" id="351" /> +<TGConnectingPoint num="16" id="352" /> +<TGConnectingPoint num="17" id="353" /> +<TGConnectingPoint num="18" id="354" /> +<TGConnectingPoint num="19" id="355" /> +</COMPONENT> + +<COMPONENT type="5300" id="420" > +<cdparam x="23" y="18" /> +<sizeparam width="214" height="280" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block0" value="Pilot" /> +<TGConnectingPoint num="0" id="396" /> +<TGConnectingPoint num="1" id="397" /> +<TGConnectingPoint num="2" id="398" /> +<TGConnectingPoint num="3" id="399" /> +<TGConnectingPoint num="4" id="400" /> +<TGConnectingPoint num="5" id="401" /> +<TGConnectingPoint num="6" id="402" /> +<TGConnectingPoint num="7" id="403" /> +<TGConnectingPoint num="8" id="404" /> +<TGConnectingPoint num="9" id="405" /> +<TGConnectingPoint num="10" id="406" /> +<TGConnectingPoint num="11" id="407" /> +<TGConnectingPoint num="12" id="408" /> +<TGConnectingPoint num="13" id="409" /> +<TGConnectingPoint num="14" id="410" /> +<TGConnectingPoint num="15" id="411" /> +<TGConnectingPoint num="16" id="412" /> +<TGConnectingPoint num="17" id="413" /> +<TGConnectingPoint num="18" id="414" /> +<TGConnectingPoint num="19" id="415" /> +<TGConnectingPoint num="20" id="416" /> +<TGConnectingPoint num="21" id="417" /> +<TGConnectingPoint num="22" id="418" /> +<TGConnectingPoint num="23" id="419" /> +</COMPONENT> +<SUBCOMPONENT type="5304" id="369" > +<father id="420" num="0" /> +<cdparam x="75" y="138" /> +<sizeparam width="100" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="114" minY="0" maxY="240" /> +<infoparam name="TGComponent" value="INconconf" /> +<TGConnectingPoint num="0" id="357" /> +<TGConnectingPoint num="1" id="358" /> +<TGConnectingPoint num="2" id="359" /> +<TGConnectingPoint num="3" id="360" /> +<TGConnectingPoint num="4" id="361" /> +<TGConnectingPoint num="5" id="362" /> +<TGConnectingPoint num="6" id="363" /> +<TGConnectingPoint num="7" id="364" /> +<TGConnectingPoint num="8" id="365" /> +<TGConnectingPoint num="9" id="366" /> +<TGConnectingPoint num="10" id="367" /> +<TGConnectingPoint num="11" id="368" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5304" id="382" > +<father id="420" num="1" /> +<cdparam x="79" y="214" /> +<sizeparam width="100" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="114" minY="0" maxY="240" /> +<infoparam name="TGComponent" value="INerror" /> +<TGConnectingPoint num="0" id="370" /> +<TGConnectingPoint num="1" id="371" /> +<TGConnectingPoint num="2" id="372" /> +<TGConnectingPoint num="3" id="373" /> +<TGConnectingPoint num="4" id="374" /> +<TGConnectingPoint num="5" id="375" /> +<TGConnectingPoint num="6" id="376" /> +<TGConnectingPoint num="7" id="377" /> +<TGConnectingPoint num="8" id="378" /> +<TGConnectingPoint num="9" id="379" /> +<TGConnectingPoint num="10" id="380" /> +<TGConnectingPoint num="11" id="381" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5304" id="395" > +<father id="420" num="2" /> +<cdparam x="75" y="75" /> +<sizeparam width="100" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="114" minY="0" maxY="240" /> +<infoparam name="TGComponent" value="INconreq" /> +<TGConnectingPoint num="0" id="383" /> +<TGConnectingPoint num="1" id="384" /> +<TGConnectingPoint num="2" id="385" /> +<TGConnectingPoint num="3" id="386" /> +<TGConnectingPoint num="4" id="387" /> +<TGConnectingPoint num="5" id="388" /> +<TGConnectingPoint num="6" id="389" /> +<TGConnectingPoint num="7" id="390" /> +<TGConnectingPoint num="8" id="391" /> +<TGConnectingPoint num="9" id="392" /> +<TGConnectingPoint num="10" id="393" /> +<TGConnectingPoint num="11" id="394" /> +</SUBCOMPONENT> + + +</AvatarPDPanel> + +</Modeling> + + + + +<Modeling type="Avatar MAD" nameTab="Assumptions" > +<AvatarMADPanel name="Assumptions_users" minX="10" maxX="1900" minY="10" maxY="900" zoom="1.0" > +<COMPONENT type="5250" id="452" > +<cdparam x="314" y="10" /> +<sizeparam width="312" height="174" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="164" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Assumption" value="Rendez_Vous_Acceptors" /> +<TGConnectingPoint num="0" id="421" /> +<TGConnectingPoint num="1" id="422" /> +<TGConnectingPoint num="2" id="423" /> +<TGConnectingPoint num="3" id="424" /> +<TGConnectingPoint num="4" id="425" /> +<TGConnectingPoint num="5" id="426" /> +<TGConnectingPoint num="6" id="427" /> +<TGConnectingPoint num="7" id="428" /> +<TGConnectingPoint num="8" id="429" /> +<TGConnectingPoint num="9" id="430" /> +<TGConnectingPoint num="10" id="431" /> +<TGConnectingPoint num="11" id="432" /> +<TGConnectingPoint num="12" id="433" /> +<TGConnectingPoint num="13" id="434" /> +<TGConnectingPoint num="14" id="435" /> +<TGConnectingPoint num="15" id="436" /> +<TGConnectingPoint num="16" id="437" /> +<TGConnectingPoint num="17" id="438" /> +<TGConnectingPoint num="18" id="439" /> +<TGConnectingPoint num="19" id="440" /> +<TGConnectingPoint num="20" id="441" /> +<TGConnectingPoint num="21" id="442" /> +<TGConnectingPoint num="22" id="443" /> +<TGConnectingPoint num="23" id="444" /> +<TGConnectingPoint num="24" id="445" /> +<TGConnectingPoint num="25" id="446" /> +<TGConnectingPoint num="26" id="447" /> +<TGConnectingPoint num="27" id="448" /> +<TGConnectingPoint num="28" id="449" /> +<TGConnectingPoint num="29" id="450" /> +<TGConnectingPoint num="30" id="451" /> +<extraparam> +<textline data="To keep the model of the user applications" /> +<textline data="as general as possible, the state machine" /> +<textline data="of the pilot (resp. of the controller) accepts all " /> +<textline data="the rendezvous offers from the board-level" /> +<textline data="protocol (resp. the ground-level protocol)." /> +<textline data="In other words, the user-level applications" /> +<textline data="are modeled as rendezvous acceptors." /> +<type data="1" /> +<durability data="1" /> +<source data="3" /> +<status data="1" /> +<limitation data="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5250" id="484" > +<cdparam x="57" y="82" /> +<sizeparam width="188" height="30" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="55" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="Assumption" value="Users" /> +<TGConnectingPoint num="0" id="453" /> +<TGConnectingPoint num="1" id="454" /> +<TGConnectingPoint num="2" id="455" /> +<TGConnectingPoint num="3" id="456" /> +<TGConnectingPoint num="4" id="457" /> +<TGConnectingPoint num="5" id="458" /> +<TGConnectingPoint num="6" id="459" /> +<TGConnectingPoint num="7" id="460" /> +<TGConnectingPoint num="8" id="461" /> +<TGConnectingPoint num="9" id="462" /> +<TGConnectingPoint num="10" id="463" /> +<TGConnectingPoint num="11" id="464" /> +<TGConnectingPoint num="12" id="465" /> +<TGConnectingPoint num="13" id="466" /> +<TGConnectingPoint num="14" id="467" /> +<TGConnectingPoint num="15" id="468" /> +<TGConnectingPoint num="16" id="469" /> +<TGConnectingPoint num="17" id="470" /> +<TGConnectingPoint num="18" id="471" /> +<TGConnectingPoint num="19" id="472" /> +<TGConnectingPoint num="20" id="473" /> +<TGConnectingPoint num="21" id="474" /> +<TGConnectingPoint num="22" id="475" /> +<TGConnectingPoint num="23" id="476" /> +<TGConnectingPoint num="24" id="477" /> +<TGConnectingPoint num="25" id="478" /> +<TGConnectingPoint num="26" id="479" /> +<TGConnectingPoint num="27" id="480" /> +<TGConnectingPoint num="28" id="481" /> +<TGConnectingPoint num="29" id="482" /> +<TGConnectingPoint num="30" id="483" /> +<extraparam> +<textline data="This assumption and its derived assumptions" /> +<textline data="address the users of the FANS protocol layer." /> +<type data="1" /> +<durability data="1" /> +<source data="3" /> +<status data="1" /> +<limitation data="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5252" id="512" > +<cdparam x="627" y="301" /> +<sizeparam width="101" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="47" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarElementReference" value="Pilot" /> +<TGConnectingPoint num="0" id="485" /> +<TGConnectingPoint num="1" id="486" /> +<TGConnectingPoint num="2" id="487" /> +<TGConnectingPoint num="3" id="488" /> +<TGConnectingPoint num="4" id="489" /> +<TGConnectingPoint num="5" id="490" /> +<TGConnectingPoint num="6" id="491" /> +<TGConnectingPoint num="7" id="492" /> +<TGConnectingPoint num="8" id="493" /> +<TGConnectingPoint num="9" id="494" /> +<TGConnectingPoint num="10" id="495" /> +<TGConnectingPoint num="11" id="496" /> +<TGConnectingPoint num="12" id="497" /> +<TGConnectingPoint num="13" id="498" /> +<TGConnectingPoint num="14" id="499" /> +<TGConnectingPoint num="15" id="500" /> +<TGConnectingPoint num="16" id="501" /> +<TGConnectingPoint num="17" id="502" /> +<TGConnectingPoint num="18" id="503" /> +<TGConnectingPoint num="19" id="504" /> +<TGConnectingPoint num="20" id="505" /> +<TGConnectingPoint num="21" id="506" /> +<TGConnectingPoint num="22" id="507" /> +<TGConnectingPoint num="23" id="508" /> +<TGConnectingPoint num="24" id="509" /> +<TGConnectingPoint num="25" id="510" /> +<TGConnectingPoint num="26" id="511" /> +</COMPONENT> + +<COMPONENT type="5252" id="540" > +<cdparam x="489" y="301" /> +<sizeparam width="122" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="79" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarElementReference" value="Controller" /> +<TGConnectingPoint num="0" id="513" /> +<TGConnectingPoint num="1" id="514" /> +<TGConnectingPoint num="2" id="515" /> +<TGConnectingPoint num="3" id="516" /> +<TGConnectingPoint num="4" id="517" /> +<TGConnectingPoint num="5" id="518" /> +<TGConnectingPoint num="6" id="519" /> +<TGConnectingPoint num="7" id="520" /> +<TGConnectingPoint num="8" id="521" /> +<TGConnectingPoint num="9" id="522" /> +<TGConnectingPoint num="10" id="523" /> +<TGConnectingPoint num="11" id="524" /> +<TGConnectingPoint num="12" id="525" /> +<TGConnectingPoint num="13" id="526" /> +<TGConnectingPoint num="14" id="527" /> +<TGConnectingPoint num="15" id="528" /> +<TGConnectingPoint num="16" id="529" /> +<TGConnectingPoint num="17" id="530" /> +<TGConnectingPoint num="18" id="531" /> +<TGConnectingPoint num="19" id="532" /> +<TGConnectingPoint num="20" id="533" /> +<TGConnectingPoint num="21" id="534" /> +<TGConnectingPoint num="22" id="535" /> +<TGConnectingPoint num="23" id="536" /> +<TGConnectingPoint num="24" id="537" /> +<TGConnectingPoint num="25" id="538" /> +<TGConnectingPoint num="26" id="539" /> +</COMPONENT> + +<COMPONENT type="5251" id="568" > +<cdparam x="300" y="234" /> +<sizeparam width="152" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarDiagramReference" value="Design_unlossy" /> +<TGConnectingPoint num="0" id="541" /> +<TGConnectingPoint num="1" id="542" /> +<TGConnectingPoint num="2" id="543" /> +<TGConnectingPoint num="3" id="544" /> +<TGConnectingPoint num="4" id="545" /> +<TGConnectingPoint num="5" id="546" /> +<TGConnectingPoint num="6" id="547" /> +<TGConnectingPoint num="7" id="548" /> +<TGConnectingPoint num="8" id="549" /> +<TGConnectingPoint num="9" id="550" /> +<TGConnectingPoint num="10" id="551" /> +<TGConnectingPoint num="11" id="552" /> +<TGConnectingPoint num="12" id="553" /> +<TGConnectingPoint num="13" id="554" /> +<TGConnectingPoint num="14" id="555" /> +<TGConnectingPoint num="15" id="556" /> +<TGConnectingPoint num="16" id="557" /> +<TGConnectingPoint num="17" id="558" /> +<TGConnectingPoint num="18" id="559" /> +<TGConnectingPoint num="19" id="560" /> +<TGConnectingPoint num="20" id="561" /> +<TGConnectingPoint num="21" id="562" /> +<TGConnectingPoint num="22" id="563" /> +<TGConnectingPoint num="23" id="564" /> +<TGConnectingPoint num="24" id="565" /> +<TGConnectingPoint num="25" id="566" /> +<TGConnectingPoint num="26" id="567" /> +</COMPONENT> + +<COMPONENT type="5251" id="596" > +<cdparam x="473" y="234" /> +<sizeparam width="152" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="96" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarDiagramReference" value="Design_lossy" /> +<TGConnectingPoint num="0" id="569" /> +<TGConnectingPoint num="1" id="570" /> +<TGConnectingPoint num="2" id="571" /> +<TGConnectingPoint num="3" id="572" /> +<TGConnectingPoint num="4" id="573" /> +<TGConnectingPoint num="5" id="574" /> +<TGConnectingPoint num="6" id="575" /> +<TGConnectingPoint num="7" id="576" /> +<TGConnectingPoint num="8" id="577" /> +<TGConnectingPoint num="9" id="578" /> +<TGConnectingPoint num="10" id="579" /> +<TGConnectingPoint num="11" id="580" /> +<TGConnectingPoint num="12" id="581" /> +<TGConnectingPoint num="13" id="582" /> +<TGConnectingPoint num="14" id="583" /> +<TGConnectingPoint num="15" id="584" /> +<TGConnectingPoint num="16" id="585" /> +<TGConnectingPoint num="17" id="586" /> +<TGConnectingPoint num="18" id="587" /> +<TGConnectingPoint num="19" id="588" /> +<TGConnectingPoint num="20" id="589" /> +<TGConnectingPoint num="21" id="590" /> +<TGConnectingPoint num="22" id="591" /> +<TGConnectingPoint num="23" id="592" /> +<TGConnectingPoint num="24" id="593" /> +<TGConnectingPoint num="25" id="594" /> +<TGConnectingPoint num="26" id="595" /> +</COMPONENT> + +<COMPONENT type="5252" id="624" > +<cdparam x="357" y="303" /> +<sizeparam width="101" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="47" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarElementReference" value="Pilot" /> +<TGConnectingPoint num="0" id="597" /> +<TGConnectingPoint num="1" id="598" /> +<TGConnectingPoint num="2" id="599" /> +<TGConnectingPoint num="3" id="600" /> +<TGConnectingPoint num="4" id="601" /> +<TGConnectingPoint num="5" id="602" /> +<TGConnectingPoint num="6" id="603" /> +<TGConnectingPoint num="7" id="604" /> +<TGConnectingPoint num="8" id="605" /> +<TGConnectingPoint num="9" id="606" /> +<TGConnectingPoint num="10" id="607" /> +<TGConnectingPoint num="11" id="608" /> +<TGConnectingPoint num="12" id="609" /> +<TGConnectingPoint num="13" id="610" /> +<TGConnectingPoint num="14" id="611" /> +<TGConnectingPoint num="15" id="612" /> +<TGConnectingPoint num="16" id="613" /> +<TGConnectingPoint num="17" id="614" /> +<TGConnectingPoint num="18" id="615" /> +<TGConnectingPoint num="19" id="616" /> +<TGConnectingPoint num="20" id="617" /> +<TGConnectingPoint num="21" id="618" /> +<TGConnectingPoint num="22" id="619" /> +<TGConnectingPoint num="23" id="620" /> +<TGConnectingPoint num="24" id="621" /> +<TGConnectingPoint num="25" id="622" /> +<TGConnectingPoint num="26" id="623" /> +</COMPONENT> + +<COMPONENT type="5252" id="652" > +<cdparam x="225" y="302" /> +<sizeparam width="122" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="79" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" /> +<infoparam name="AvatarElementReference" value="Controller" /> +<TGConnectingPoint num="0" id="625" /> +<TGConnectingPoint num="1" id="626" /> +<TGConnectingPoint num="2" id="627" /> +<TGConnectingPoint num="3" id="628" /> +<TGConnectingPoint num="4" id="629" /> +<TGConnectingPoint num="5" id="630" /> +<TGConnectingPoint num="6" id="631" /> +<TGConnectingPoint num="7" id="632" /> +<TGConnectingPoint num="8" id="633" /> +<TGConnectingPoint num="9" id="634" /> +<TGConnectingPoint num="10" id="635" /> +<TGConnectingPoint num="11" id="636" /> +<TGConnectingPoint num="12" id="637" /> +<TGConnectingPoint num="13" id="638" /> +<TGConnectingPoint num="14" id="639" /> +<TGConnectingPoint num="15" id="640" /> +<TGConnectingPoint num="16" id="641" /> +<TGConnectingPoint num="17" id="642" /> +<TGConnectingPoint num="18" id="643" /> +<TGConnectingPoint num="19" id="644" /> +<TGConnectingPoint num="20" id="645" /> +<TGConnectingPoint num="21" id="646" /> +<TGConnectingPoint num="22" id="647" /> +<TGConnectingPoint num="23" id="648" /> +<TGConnectingPoint num="24" id="649" /> +<TGConnectingPoint num="25" id="650" /> +<TGConnectingPoint num="26" id="651" /> +</COMPONENT> + +<CONNECTOR type="5255" id="654" > +<cdparam x="392" y="184" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<impact>>" /> +<TGConnectingPoint num="0" id="653" /> +<P1 x="392" y="184" id="442" /> +<P2 x="376" y="234" id="548" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="656" > +<cdparam x="286" y="302" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="655" /> +<P1 x="286" y="302" id="632" /> +<P2 x="338" y="264" id="550" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="658" > +<cdparam x="407" y="303" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="657" /> +<P1 x="407" y="303" id="604" /> +<P2 x="414" y="264" id="552" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5253" id="660" > +<cdparam x="212" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<composition>>" /> +<TGConnectingPoint num="0" id="659" /> +<P1 x="314" y="97" id="422" /> +<P2 x="245" y="97" id="457" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="662" > +<cdparam x="681" y="368" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="661" /> +<P1 x="550" y="301" id="520" /> +<P2 x="511" y="264" id="578" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="664" > +<cdparam x="681" y="321" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="663" /> +<P1 x="677" y="301" id="492" /> +<P2 x="587" y="264" id="580" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5255" id="666" > +<cdparam x="368" y="339" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<impact>>" /> +<TGConnectingPoint num="0" id="665" /> +<P1 x="548" y="184" id="444" /> +<P2 x="549" y="234" id="576" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</AvatarMADPanel> + +<AvatarMADPanel name="Assumptions_protocol_layer" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="5250" id="698" > +<cdparam x="253" y="192" /> +<sizeparam width="451" height="122" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="192" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="Message_Loss_Compensation" /> +<TGConnectingPoint num="0" id="667" /> +<TGConnectingPoint num="1" id="668" /> +<TGConnectingPoint num="2" id="669" /> +<TGConnectingPoint num="3" id="670" /> +<TGConnectingPoint num="4" id="671" /> +<TGConnectingPoint num="5" id="672" /> +<TGConnectingPoint num="6" id="673" /> +<TGConnectingPoint num="7" id="674" /> +<TGConnectingPoint num="8" id="675" /> +<TGConnectingPoint num="9" id="676" /> +<TGConnectingPoint num="10" id="677" /> +<TGConnectingPoint num="11" id="678" /> +<TGConnectingPoint num="12" id="679" /> +<TGConnectingPoint num="13" id="680" /> +<TGConnectingPoint num="14" id="681" /> +<TGConnectingPoint num="15" id="682" /> +<TGConnectingPoint num="16" id="683" /> +<TGConnectingPoint num="17" id="684" /> +<TGConnectingPoint num="18" id="685" /> +<TGConnectingPoint num="19" id="686" /> +<TGConnectingPoint num="20" id="687" /> +<TGConnectingPoint num="21" id="688" /> +<TGConnectingPoint num="22" id="689" /> +<TGConnectingPoint num="23" id="690" /> +<TGConnectingPoint num="24" id="691" /> +<TGConnectingPoint num="25" id="692" /> +<TGConnectingPoint num="26" id="693" /> +<TGConnectingPoint num="27" id="694" /> +<TGConnectingPoint num="28" id="695" /> +<TGConnectingPoint num="29" id="696" /> +<TGConnectingPoint num="30" id="697" /> +<extraparam> +<textline data="Only CCs may be lost." /> +<textline data="The protocol bounds retransmissions to 3." /> +<textline data="Would the procedure fail, the pilot and the controller will be informed." /> +<type data="0" /> +<durability data="2" /> +<source data="3" /> +<status data="1" /> +<limitation data="4" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5250" id="730" > +<cdparam x="19" y="67" /> +<sizeparam width="184" height="30" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="106" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="Protocol_Layer" /> +<TGConnectingPoint num="0" id="699" /> +<TGConnectingPoint num="1" id="700" /> +<TGConnectingPoint num="2" id="701" /> +<TGConnectingPoint num="3" id="702" /> +<TGConnectingPoint num="4" id="703" /> +<TGConnectingPoint num="5" id="704" /> +<TGConnectingPoint num="6" id="705" /> +<TGConnectingPoint num="7" id="706" /> +<TGConnectingPoint num="8" id="707" /> +<TGConnectingPoint num="9" id="708" /> +<TGConnectingPoint num="10" id="709" /> +<TGConnectingPoint num="11" id="710" /> +<TGConnectingPoint num="12" id="711" /> +<TGConnectingPoint num="13" id="712" /> +<TGConnectingPoint num="14" id="713" /> +<TGConnectingPoint num="15" id="714" /> +<TGConnectingPoint num="16" id="715" /> +<TGConnectingPoint num="17" id="716" /> +<TGConnectingPoint num="18" id="717" /> +<TGConnectingPoint num="19" id="718" /> +<TGConnectingPoint num="20" id="719" /> +<TGConnectingPoint num="21" id="720" /> +<TGConnectingPoint num="22" id="721" /> +<TGConnectingPoint num="23" id="722" /> +<TGConnectingPoint num="24" id="723" /> +<TGConnectingPoint num="25" id="724" /> +<TGConnectingPoint num="26" id="725" /> +<TGConnectingPoint num="27" id="726" /> +<TGConnectingPoint num="28" id="727" /> +<TGConnectingPoint num="29" id="728" /> +<TGConnectingPoint num="30" id="729" /> +<extraparam> +<textline data="Assumption description:" /> +<textline data="Double-click to edit" /> +<type data="0" /> +<durability data="0" /> +<source data="0" /> +<status data="0" /> +<limitation data="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5250" id="762" > +<cdparam x="250" y="22" /> +<sizeparam width="454" height="105" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="217" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="Temporal_Ordering_Of_Messages" /> +<TGConnectingPoint num="0" id="731" /> +<TGConnectingPoint num="1" id="732" /> +<TGConnectingPoint num="2" id="733" /> +<TGConnectingPoint num="3" id="734" /> +<TGConnectingPoint num="4" id="735" /> +<TGConnectingPoint num="5" id="736" /> +<TGConnectingPoint num="6" id="737" /> +<TGConnectingPoint num="7" id="738" /> +<TGConnectingPoint num="8" id="739" /> +<TGConnectingPoint num="9" id="740" /> +<TGConnectingPoint num="10" id="741" /> +<TGConnectingPoint num="11" id="742" /> +<TGConnectingPoint num="12" id="743" /> +<TGConnectingPoint num="13" id="744" /> +<TGConnectingPoint num="14" id="745" /> +<TGConnectingPoint num="15" id="746" /> +<TGConnectingPoint num="16" id="747" /> +<TGConnectingPoint num="17" id="748" /> +<TGConnectingPoint num="18" id="749" /> +<TGConnectingPoint num="19" id="750" /> +<TGConnectingPoint num="20" id="751" /> +<TGConnectingPoint num="21" id="752" /> +<TGConnectingPoint num="22" id="753" /> +<TGConnectingPoint num="23" id="754" /> +<TGConnectingPoint num="24" id="755" /> +<TGConnectingPoint num="25" id="756" /> +<TGConnectingPoint num="26" id="757" /> +<TGConnectingPoint num="27" id="758" /> +<TGConnectingPoint num="28" id="759" /> +<TGConnectingPoint num="29" id="760" /> +<TGConnectingPoint num="30" id="761" /> +<extraparam> +<textline data="Message parameters such as the tower's address are" /> +<textline data=" not represented. This contributes to make reachability" /> +<textline data="analysis converge." /> +<type data="0" /> +<durability data="1" /> +<source data="3" /> +<status data="1" /> +<limitation data="4" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5251" id="790" > +<cdparam x="386" y="358" /> +<sizeparam width="152" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarDiagramReference" value="Design_unlossy" /> +<TGConnectingPoint num="0" id="763" /> +<TGConnectingPoint num="1" id="764" /> +<TGConnectingPoint num="2" id="765" /> +<TGConnectingPoint num="3" id="766" /> +<TGConnectingPoint num="4" id="767" /> +<TGConnectingPoint num="5" id="768" /> +<TGConnectingPoint num="6" id="769" /> +<TGConnectingPoint num="7" id="770" /> +<TGConnectingPoint num="8" id="771" /> +<TGConnectingPoint num="9" id="772" /> +<TGConnectingPoint num="10" id="773" /> +<TGConnectingPoint num="11" id="774" /> +<TGConnectingPoint num="12" id="775" /> +<TGConnectingPoint num="13" id="776" /> +<TGConnectingPoint num="14" id="777" /> +<TGConnectingPoint num="15" id="778" /> +<TGConnectingPoint num="16" id="779" /> +<TGConnectingPoint num="17" id="780" /> +<TGConnectingPoint num="18" id="781" /> +<TGConnectingPoint num="19" id="782" /> +<TGConnectingPoint num="20" id="783" /> +<TGConnectingPoint num="21" id="784" /> +<TGConnectingPoint num="22" id="785" /> +<TGConnectingPoint num="23" id="786" /> +<TGConnectingPoint num="24" id="787" /> +<TGConnectingPoint num="25" id="788" /> +<TGConnectingPoint num="26" id="789" /> +</COMPONENT> + +<COMPONENT type="5252" id="818" > +<cdparam x="443" y="427" /> +<sizeparam width="101" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="47" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarElementReference" value="Pilot" /> +<TGConnectingPoint num="0" id="791" /> +<TGConnectingPoint num="1" id="792" /> +<TGConnectingPoint num="2" id="793" /> +<TGConnectingPoint num="3" id="794" /> +<TGConnectingPoint num="4" id="795" /> +<TGConnectingPoint num="5" id="796" /> +<TGConnectingPoint num="6" id="797" /> +<TGConnectingPoint num="7" id="798" /> +<TGConnectingPoint num="8" id="799" /> +<TGConnectingPoint num="9" id="800" /> +<TGConnectingPoint num="10" id="801" /> +<TGConnectingPoint num="11" id="802" /> +<TGConnectingPoint num="12" id="803" /> +<TGConnectingPoint num="13" id="804" /> +<TGConnectingPoint num="14" id="805" /> +<TGConnectingPoint num="15" id="806" /> +<TGConnectingPoint num="16" id="807" /> +<TGConnectingPoint num="17" id="808" /> +<TGConnectingPoint num="18" id="809" /> +<TGConnectingPoint num="19" id="810" /> +<TGConnectingPoint num="20" id="811" /> +<TGConnectingPoint num="21" id="812" /> +<TGConnectingPoint num="22" id="813" /> +<TGConnectingPoint num="23" id="814" /> +<TGConnectingPoint num="24" id="815" /> +<TGConnectingPoint num="25" id="816" /> +<TGConnectingPoint num="26" id="817" /> +</COMPONENT> + +<COMPONENT type="5252" id="846" > +<cdparam x="311" y="426" /> +<sizeparam width="122" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="79" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarElementReference" value="Controller" /> +<TGConnectingPoint num="0" id="819" /> +<TGConnectingPoint num="1" id="820" /> +<TGConnectingPoint num="2" id="821" /> +<TGConnectingPoint num="3" id="822" /> +<TGConnectingPoint num="4" id="823" /> +<TGConnectingPoint num="5" id="824" /> +<TGConnectingPoint num="6" id="825" /> +<TGConnectingPoint num="7" id="826" /> +<TGConnectingPoint num="8" id="827" /> +<TGConnectingPoint num="9" id="828" /> +<TGConnectingPoint num="10" id="829" /> +<TGConnectingPoint num="11" id="830" /> +<TGConnectingPoint num="12" id="831" /> +<TGConnectingPoint num="13" id="832" /> +<TGConnectingPoint num="14" id="833" /> +<TGConnectingPoint num="15" id="834" /> +<TGConnectingPoint num="16" id="835" /> +<TGConnectingPoint num="17" id="836" /> +<TGConnectingPoint num="18" id="837" /> +<TGConnectingPoint num="19" id="838" /> +<TGConnectingPoint num="20" id="839" /> +<TGConnectingPoint num="21" id="840" /> +<TGConnectingPoint num="22" id="841" /> +<TGConnectingPoint num="23" id="842" /> +<TGConnectingPoint num="24" id="843" /> +<TGConnectingPoint num="25" id="844" /> +<TGConnectingPoint num="26" id="845" /> +</COMPONENT> + +<CONNECTOR type="5255" id="848" > +<cdparam x="478" y="314" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<impact>>" /> +<TGConnectingPoint num="0" id="847" /> +<P1 x="478" y="314" id="689" /> +<P2 x="462" y="358" id="770" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5254" id="850" > +<cdparam x="474" y="127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<versioning>>" /> +<TGConnectingPoint num="0" id="849" /> +<P1 x="477" y="127" id="741" /> +<P2 x="478" y="192" id="674" /> +<AutomaticDrawing data="true" /> +<extraparam> +<oldVersion data="1" /> +<newVersion data="2" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5253" id="852" > +<cdparam x="250" y="73" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<composition>>" /> +<TGConnectingPoint num="0" id="851" /> +<P1 x="250" y="74" id="732" /> +<P2 x="203" y="74" id="702" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="854" > +<cdparam x="372" y="426" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="853" /> +<P1 x="372" y="426" id="826" /> +<P2 x="424" y="388" id="772" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="856" > +<cdparam x="493" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="855" /> +<P1 x="493" y="427" id="798" /> +<P2 x="500" y="388" id="774" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</AvatarMADPanel> + +<AvatarMADPanel name="Assumptions_underlying_network" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="5250" id="888" > +<cdparam x="249" y="11" /> +<sizeparam width="360" height="125" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="109" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="PerfectMedium" /> +<TGConnectingPoint num="0" id="857" /> +<TGConnectingPoint num="1" id="858" /> +<TGConnectingPoint num="2" id="859" /> +<TGConnectingPoint num="3" id="860" /> +<TGConnectingPoint num="4" id="861" /> +<TGConnectingPoint num="5" id="862" /> +<TGConnectingPoint num="6" id="863" /> +<TGConnectingPoint num="7" id="864" /> +<TGConnectingPoint num="8" id="865" /> +<TGConnectingPoint num="9" id="866" /> +<TGConnectingPoint num="10" id="867" /> +<TGConnectingPoint num="11" id="868" /> +<TGConnectingPoint num="12" id="869" /> +<TGConnectingPoint num="13" id="870" /> +<TGConnectingPoint num="14" id="871" /> +<TGConnectingPoint num="15" id="872" /> +<TGConnectingPoint num="16" id="873" /> +<TGConnectingPoint num="17" id="874" /> +<TGConnectingPoint num="18" id="875" /> +<TGConnectingPoint num="19" id="876" /> +<TGConnectingPoint num="20" id="877" /> +<TGConnectingPoint num="21" id="878" /> +<TGConnectingPoint num="22" id="879" /> +<TGConnectingPoint num="23" id="880" /> +<TGConnectingPoint num="24" id="881" /> +<TGConnectingPoint num="25" id="882" /> +<TGConnectingPoint num="26" id="883" /> +<TGConnectingPoint num="27" id="884" /> +<TGConnectingPoint num="28" id="885" /> +<TGConnectingPoint num="29" id="886" /> +<TGConnectingPoint num="30" id="887" /> +<extraparam> +<textline data="The network will never corrupt or duplicate messages. " /> +<textline data="Nor it will desequence messages." /> +<textline data="Transmission delay = 0 in both sense." /> +<type data="0" /> +<durability data="1" /> +<source data="3" /> +<status data="1" /> +<limitation data="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5250" id="920" > +<cdparam x="10" y="35" /> +<sizeparam width="172" height="30" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="71" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="Network" /> +<TGConnectingPoint num="0" id="889" /> +<TGConnectingPoint num="1" id="890" /> +<TGConnectingPoint num="2" id="891" /> +<TGConnectingPoint num="3" id="892" /> +<TGConnectingPoint num="4" id="893" /> +<TGConnectingPoint num="5" id="894" /> +<TGConnectingPoint num="6" id="895" /> +<TGConnectingPoint num="7" id="896" /> +<TGConnectingPoint num="8" id="897" /> +<TGConnectingPoint num="9" id="898" /> +<TGConnectingPoint num="10" id="899" /> +<TGConnectingPoint num="11" id="900" /> +<TGConnectingPoint num="12" id="901" /> +<TGConnectingPoint num="13" id="902" /> +<TGConnectingPoint num="14" id="903" /> +<TGConnectingPoint num="15" id="904" /> +<TGConnectingPoint num="16" id="905" /> +<TGConnectingPoint num="17" id="906" /> +<TGConnectingPoint num="18" id="907" /> +<TGConnectingPoint num="19" id="908" /> +<TGConnectingPoint num="20" id="909" /> +<TGConnectingPoint num="21" id="910" /> +<TGConnectingPoint num="22" id="911" /> +<TGConnectingPoint num="23" id="912" /> +<TGConnectingPoint num="24" id="913" /> +<TGConnectingPoint num="25" id="914" /> +<TGConnectingPoint num="26" id="915" /> +<TGConnectingPoint num="27" id="916" /> +<TGConnectingPoint num="28" id="917" /> +<TGConnectingPoint num="29" id="918" /> +<TGConnectingPoint num="30" id="919" /> +<extraparam> +<textline data="Assumption description:" /> +<textline data="Double-click to edit" /> +<type data="0" /> +<durability data="0" /> +<source data="0" /> +<status data="0" /> +<limitation data="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5251" id="948" > +<cdparam x="521" y="316" /> +<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarDiagramReference" value="Design_unlossy" /> +<TGConnectingPoint num="0" id="921" /> +<TGConnectingPoint num="1" id="922" /> +<TGConnectingPoint num="2" id="923" /> +<TGConnectingPoint num="3" id="924" /> +<TGConnectingPoint num="4" id="925" /> +<TGConnectingPoint num="5" id="926" /> +<TGConnectingPoint num="6" id="927" /> +<TGConnectingPoint num="7" id="928" /> +<TGConnectingPoint num="8" id="929" /> +<TGConnectingPoint num="9" id="930" /> +<TGConnectingPoint num="10" id="931" /> +<TGConnectingPoint num="11" id="932" /> +<TGConnectingPoint num="12" id="933" /> +<TGConnectingPoint num="13" id="934" /> +<TGConnectingPoint num="14" id="935" /> +<TGConnectingPoint num="15" id="936" /> +<TGConnectingPoint num="16" id="937" /> +<TGConnectingPoint num="17" id="938" /> +<TGConnectingPoint num="18" id="939" /> +<TGConnectingPoint num="19" id="940" /> +<TGConnectingPoint num="20" id="941" /> +<TGConnectingPoint num="21" id="942" /> +<TGConnectingPoint num="22" id="943" /> +<TGConnectingPoint num="23" id="944" /> +<TGConnectingPoint num="24" id="945" /> +<TGConnectingPoint num="25" id="946" /> +<TGConnectingPoint num="26" id="947" /> +</COMPONENT> + +<COMPONENT type="5251" id="976" > +<cdparam x="91" y="309" /> +<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="110" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarDiagramReference" value="Design_unlossy" /> +<TGConnectingPoint num="0" id="949" /> +<TGConnectingPoint num="1" id="950" /> +<TGConnectingPoint num="2" id="951" /> +<TGConnectingPoint num="3" id="952" /> +<TGConnectingPoint num="4" id="953" /> +<TGConnectingPoint num="5" id="954" /> +<TGConnectingPoint num="6" id="955" /> +<TGConnectingPoint num="7" id="956" /> +<TGConnectingPoint num="8" id="957" /> +<TGConnectingPoint num="9" id="958" /> +<TGConnectingPoint num="10" id="959" /> +<TGConnectingPoint num="11" id="960" /> +<TGConnectingPoint num="12" id="961" /> +<TGConnectingPoint num="13" id="962" /> +<TGConnectingPoint num="14" id="963" /> +<TGConnectingPoint num="15" id="964" /> +<TGConnectingPoint num="16" id="965" /> +<TGConnectingPoint num="17" id="966" /> +<TGConnectingPoint num="18" id="967" /> +<TGConnectingPoint num="19" id="968" /> +<TGConnectingPoint num="20" id="969" /> +<TGConnectingPoint num="21" id="970" /> +<TGConnectingPoint num="22" id="971" /> +<TGConnectingPoint num="23" id="972" /> +<TGConnectingPoint num="24" id="973" /> +<TGConnectingPoint num="25" id="974" /> +<TGConnectingPoint num="26" id="975" /> +</COMPONENT> + +<COMPONENT type="5250" id="1008" > +<cdparam x="441" y="159" /> +<sizeparam width="311" height="119" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="108" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="Lossy_Network" /> +<TGConnectingPoint num="0" id="977" /> +<TGConnectingPoint num="1" id="978" /> +<TGConnectingPoint num="2" id="979" /> +<TGConnectingPoint num="3" id="980" /> +<TGConnectingPoint num="4" id="981" /> +<TGConnectingPoint num="5" id="982" /> +<TGConnectingPoint num="6" id="983" /> +<TGConnectingPoint num="7" id="984" /> +<TGConnectingPoint num="8" id="985" /> +<TGConnectingPoint num="9" id="986" /> +<TGConnectingPoint num="10" id="987" /> +<TGConnectingPoint num="11" id="988" /> +<TGConnectingPoint num="12" id="989" /> +<TGConnectingPoint num="13" id="990" /> +<TGConnectingPoint num="14" id="991" /> +<TGConnectingPoint num="15" id="992" /> +<TGConnectingPoint num="16" id="993" /> +<TGConnectingPoint num="17" id="994" /> +<TGConnectingPoint num="18" id="995" /> +<TGConnectingPoint num="19" id="996" /> +<TGConnectingPoint num="20" id="997" /> +<TGConnectingPoint num="21" id="998" /> +<TGConnectingPoint num="22" id="999" /> +<TGConnectingPoint num="23" id="1000" /> +<TGConnectingPoint num="24" id="1001" /> +<TGConnectingPoint num="25" id="1002" /> +<TGConnectingPoint num="26" id="1003" /> +<TGConnectingPoint num="27" id="1004" /> +<TGConnectingPoint num="28" id="1005" /> +<TGConnectingPoint num="29" id="1006" /> +<TGConnectingPoint num="30" id="1007" /> +<extraparam> +<textline data="The network may loss one type of message:" /> +<textline data="the CC issued by the ground station after the" /> +<textline data="controller has acknowledged the connection." /> +<type data="1" /> +<durability data="2" /> +<source data="3" /> +<status data="1" /> +<limitation data="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5250" id="1040" > +<cdparam x="27" y="164" /> +<sizeparam width="277" height="108" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="120" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Assumption" value="Unlossy_Network" /> +<TGConnectingPoint num="0" id="1009" /> +<TGConnectingPoint num="1" id="1010" /> +<TGConnectingPoint num="2" id="1011" /> +<TGConnectingPoint num="3" id="1012" /> +<TGConnectingPoint num="4" id="1013" /> +<TGConnectingPoint num="5" id="1014" /> +<TGConnectingPoint num="6" id="1015" /> +<TGConnectingPoint num="7" id="1016" /> +<TGConnectingPoint num="8" id="1017" /> +<TGConnectingPoint num="9" id="1018" /> +<TGConnectingPoint num="10" id="1019" /> +<TGConnectingPoint num="11" id="1020" /> +<TGConnectingPoint num="12" id="1021" /> +<TGConnectingPoint num="13" id="1022" /> +<TGConnectingPoint num="14" id="1023" /> +<TGConnectingPoint num="15" id="1024" /> +<TGConnectingPoint num="16" id="1025" /> +<TGConnectingPoint num="17" id="1026" /> +<TGConnectingPoint num="18" id="1027" /> +<TGConnectingPoint num="19" id="1028" /> +<TGConnectingPoint num="20" id="1029" /> +<TGConnectingPoint num="21" id="1030" /> +<TGConnectingPoint num="22" id="1031" /> +<TGConnectingPoint num="23" id="1032" /> +<TGConnectingPoint num="24" id="1033" /> +<TGConnectingPoint num="25" id="1034" /> +<TGConnectingPoint num="26" id="1035" /> +<TGConnectingPoint num="27" id="1036" /> +<TGConnectingPoint num="28" id="1037" /> +<TGConnectingPoint num="29" id="1038" /> +<TGConnectingPoint num="30" id="1039" /> +<extraparam> +<textline data="The network does not loose messages." /> +<type data="1" /> +<durability data="2" /> +<source data="3" /> +<status data="1" /> +<limitation data="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5252" id="1068" > +<cdparam x="96" y="375" /> +<sizeparam width="139" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="71" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarElementReference" value="Network" /> +<TGConnectingPoint num="0" id="1041" /> +<TGConnectingPoint num="1" id="1042" /> +<TGConnectingPoint num="2" id="1043" /> +<TGConnectingPoint num="3" id="1044" /> +<TGConnectingPoint num="4" id="1045" /> +<TGConnectingPoint num="5" id="1046" /> +<TGConnectingPoint num="6" id="1047" /> +<TGConnectingPoint num="7" id="1048" /> +<TGConnectingPoint num="8" id="1049" /> +<TGConnectingPoint num="9" id="1050" /> +<TGConnectingPoint num="10" id="1051" /> +<TGConnectingPoint num="11" id="1052" /> +<TGConnectingPoint num="12" id="1053" /> +<TGConnectingPoint num="13" id="1054" /> +<TGConnectingPoint num="14" id="1055" /> +<TGConnectingPoint num="15" id="1056" /> +<TGConnectingPoint num="16" id="1057" /> +<TGConnectingPoint num="17" id="1058" /> +<TGConnectingPoint num="18" id="1059" /> +<TGConnectingPoint num="19" id="1060" /> +<TGConnectingPoint num="20" id="1061" /> +<TGConnectingPoint num="21" id="1062" /> +<TGConnectingPoint num="22" id="1063" /> +<TGConnectingPoint num="23" id="1064" /> +<TGConnectingPoint num="24" id="1065" /> +<TGConnectingPoint num="25" id="1066" /> +<TGConnectingPoint num="26" id="1067" /> +</COMPONENT> + +<COMPONENT type="5252" id="1096" > +<cdparam x="521" y="381" /> +<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="71" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="AvatarElementReference" value="Network" /> +<TGConnectingPoint num="0" id="1069" /> +<TGConnectingPoint num="1" id="1070" /> +<TGConnectingPoint num="2" id="1071" /> +<TGConnectingPoint num="3" id="1072" /> +<TGConnectingPoint num="4" id="1073" /> +<TGConnectingPoint num="5" id="1074" /> +<TGConnectingPoint num="6" id="1075" /> +<TGConnectingPoint num="7" id="1076" /> +<TGConnectingPoint num="8" id="1077" /> +<TGConnectingPoint num="9" id="1078" /> +<TGConnectingPoint num="10" id="1079" /> +<TGConnectingPoint num="11" id="1080" /> +<TGConnectingPoint num="12" id="1081" /> +<TGConnectingPoint num="13" id="1082" /> +<TGConnectingPoint num="14" id="1083" /> +<TGConnectingPoint num="15" id="1084" /> +<TGConnectingPoint num="16" id="1085" /> +<TGConnectingPoint num="17" id="1086" /> +<TGConnectingPoint num="18" id="1087" /> +<TGConnectingPoint num="19" id="1088" /> +<TGConnectingPoint num="20" id="1089" /> +<TGConnectingPoint num="21" id="1090" /> +<TGConnectingPoint num="22" id="1091" /> +<TGConnectingPoint num="23" id="1092" /> +<TGConnectingPoint num="24" id="1093" /> +<TGConnectingPoint num="25" id="1094" /> +<TGConnectingPoint num="26" id="1095" /> +</COMPONENT> + +<CONNECTOR type="5253" id="1098" > +<cdparam x="148" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<composition>>" /> +<TGConnectingPoint num="0" id="1097" /> +<P1 x="96" y="164" id="1015" /> +<P2 x="96" y="65" id="899" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5253" id="1100" > +<cdparam x="247" y="40" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<composition>>" /> +<TGConnectingPoint num="0" id="1099" /> +<P1 x="249" y="42" id="857" /> +<P2 x="182" y="42" id="892" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="1102" > +<cdparam x="707" y="544" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="1101" /> +<P1 x="596" y="381" id="1076" /> +<P2 x="596" y="346" id="931" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5255" id="1104" > +<cdparam x="304" y="548" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<impact>>" /> +<TGConnectingPoint num="0" id="1103" /> +<P1 x="596" y="278" id="999" /> +<P2 x="596" y="316" id="928" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5257" id="1106" > +<cdparam x="706" y="420" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<TGConnectingPoint num="0" id="1105" /> +<P1 x="165" y="375" id="1048" /> +<P2 x="166" y="339" id="959" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5255" id="1108" > +<cdparam x="306" y="417" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<impact>>" /> +<TGConnectingPoint num="0" id="1107" /> +<P1 x="165" y="272" id="1031" /> +<P2 x="166" y="309" id="956" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="5254" id="1110" > +<cdparam x="739" y="293" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<versioning>>" /> +<TGConnectingPoint num="0" id="1109" /> +<P1 x="304" y="218" id="1013" /> +<P2 x="441" y="218" id="978" /> +<AutomaticDrawing data="true" /> +<extraparam> +<oldVersion data="1" /> +<newVersion data="2" /> +</extraparam> +</CONNECTOR> + +</AvatarMADPanel> + +</Modeling> + + + + +<Modeling type="Avatar Analysis" nameTab="Analysis_unlossy" > +<UseCaseDiagramPanel name="Use Case Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="703" id="1143" > +<cdparam x="161" y="140" /> +<sizeparam width="74" height="50" minWidth="40" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="actor" value="Network" /> +<TGConnectingPoint num="0" id="1111" /> +<TGConnectingPoint num="1" id="1112" /> +<TGConnectingPoint num="2" id="1113" /> +<TGConnectingPoint num="3" id="1114" /> +<TGConnectingPoint num="4" id="1115" /> +<TGConnectingPoint num="5" id="1116" /> +<TGConnectingPoint num="6" id="1117" /> +<TGConnectingPoint num="7" id="1118" /> +<TGConnectingPoint num="8" id="1119" /> +<TGConnectingPoint num="9" id="1120" /> +<TGConnectingPoint num="10" id="1121" /> +<TGConnectingPoint num="11" id="1122" /> +<TGConnectingPoint num="12" id="1123" /> +<TGConnectingPoint num="13" id="1124" /> +<TGConnectingPoint num="14" id="1125" /> +<TGConnectingPoint num="15" id="1126" /> +<TGConnectingPoint num="16" id="1127" /> +<TGConnectingPoint num="17" id="1128" /> +<TGConnectingPoint num="18" id="1129" /> +<TGConnectingPoint num="19" id="1130" /> +<TGConnectingPoint num="20" id="1131" /> +<TGConnectingPoint num="21" id="1132" /> +<TGConnectingPoint num="22" id="1133" /> +<TGConnectingPoint num="23" id="1134" /> +<TGConnectingPoint num="24" id="1135" /> +<TGConnectingPoint num="25" id="1136" /> +<TGConnectingPoint num="26" id="1137" /> +<TGConnectingPoint num="27" id="1138" /> +<TGConnectingPoint num="28" id="1139" /> +<TGConnectingPoint num="29" id="1140" /> +<TGConnectingPoint num="30" id="1141" /> +<TGConnectingPoint num="31" id="1142" /> +</COMPONENT> + +<COMPONENT type="700" id="1176" > +<cdparam x="332" y="38" /> +<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="actor" value="Controller" /> +<TGConnectingPoint num="0" id="1144" /> +<TGConnectingPoint num="1" id="1145" /> +<TGConnectingPoint num="2" id="1146" /> +<TGConnectingPoint num="3" id="1147" /> +<TGConnectingPoint num="4" id="1148" /> +<TGConnectingPoint num="5" id="1149" /> +<TGConnectingPoint num="6" id="1150" /> +<TGConnectingPoint num="7" id="1151" /> +<TGConnectingPoint num="8" id="1152" /> +<TGConnectingPoint num="9" id="1153" /> +<TGConnectingPoint num="10" id="1154" /> +<TGConnectingPoint num="11" id="1155" /> +<TGConnectingPoint num="12" id="1156" /> +<TGConnectingPoint num="13" id="1157" /> +<TGConnectingPoint num="14" id="1158" /> +<TGConnectingPoint num="15" id="1159" /> +<TGConnectingPoint num="16" id="1160" /> +<TGConnectingPoint num="17" id="1161" /> +<TGConnectingPoint num="18" id="1162" /> +<TGConnectingPoint num="19" id="1163" /> +<TGConnectingPoint num="20" id="1164" /> +<TGConnectingPoint num="21" id="1165" /> +<TGConnectingPoint num="22" id="1166" /> +<TGConnectingPoint num="23" id="1167" /> +<TGConnectingPoint num="24" id="1168" /> +<TGConnectingPoint num="25" id="1169" /> +<TGConnectingPoint num="26" id="1170" /> +<TGConnectingPoint num="27" id="1171" /> +<TGConnectingPoint num="28" id="1172" /> +<TGConnectingPoint num="29" id="1173" /> +<TGConnectingPoint num="30" id="1174" /> +<TGConnectingPoint num="31" id="1175" /> +</COMPONENT> + +<COMPONENT type="701" id="1201" > +<cdparam x="146" y="53" /> +<sizeparam width="104" height="40" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Use case" value="InitialNotification" /> +<TGConnectingPoint num="0" id="1177" /> +<TGConnectingPoint num="1" id="1178" /> +<TGConnectingPoint num="2" id="1179" /> +<TGConnectingPoint num="3" id="1180" /> +<TGConnectingPoint num="4" id="1181" /> +<TGConnectingPoint num="5" id="1182" /> +<TGConnectingPoint num="6" id="1183" /> +<TGConnectingPoint num="7" id="1184" /> +<TGConnectingPoint num="8" id="1185" /> +<TGConnectingPoint num="9" id="1186" /> +<TGConnectingPoint num="10" id="1187" /> +<TGConnectingPoint num="11" id="1188" /> +<TGConnectingPoint num="12" id="1189" /> +<TGConnectingPoint num="13" id="1190" /> +<TGConnectingPoint num="14" id="1191" /> +<TGConnectingPoint num="15" id="1192" /> +<TGConnectingPoint num="16" id="1193" /> +<TGConnectingPoint num="17" id="1194" /> +<TGConnectingPoint num="18" id="1195" /> +<TGConnectingPoint num="19" id="1196" /> +<TGConnectingPoint num="20" id="1197" /> +<TGConnectingPoint num="21" id="1198" /> +<TGConnectingPoint num="22" id="1199" /> +<TGConnectingPoint num="23" id="1200" /> +<extraparam> +<info extension="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="700" id="1234" > +<cdparam x="31" y="38" /> +<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="actor" value="Pilot" /> +<TGConnectingPoint num="0" id="1202" /> +<TGConnectingPoint num="1" id="1203" /> +<TGConnectingPoint num="2" id="1204" /> +<TGConnectingPoint num="3" id="1205" /> +<TGConnectingPoint num="4" id="1206" /> +<TGConnectingPoint num="5" id="1207" /> +<TGConnectingPoint num="6" id="1208" /> +<TGConnectingPoint num="7" id="1209" /> +<TGConnectingPoint num="8" id="1210" /> +<TGConnectingPoint num="9" id="1211" /> +<TGConnectingPoint num="10" id="1212" /> +<TGConnectingPoint num="11" id="1213" /> +<TGConnectingPoint num="12" id="1214" /> +<TGConnectingPoint num="13" id="1215" /> +<TGConnectingPoint num="14" id="1216" /> +<TGConnectingPoint num="15" id="1217" /> +<TGConnectingPoint num="16" id="1218" /> +<TGConnectingPoint num="17" id="1219" /> +<TGConnectingPoint num="18" id="1220" /> +<TGConnectingPoint num="19" id="1221" /> +<TGConnectingPoint num="20" id="1222" /> +<TGConnectingPoint num="21" id="1223" /> +<TGConnectingPoint num="22" id="1224" /> +<TGConnectingPoint num="23" id="1225" /> +<TGConnectingPoint num="24" id="1226" /> +<TGConnectingPoint num="25" id="1227" /> +<TGConnectingPoint num="26" id="1228" /> +<TGConnectingPoint num="27" id="1229" /> +<TGConnectingPoint num="28" id="1230" /> +<TGConnectingPoint num="29" id="1231" /> +<TGConnectingPoint num="30" id="1232" /> +<TGConnectingPoint num="31" id="1233" /> +</COMPONENT> + +<COMPONENT type="702" id="1243" > +<cdparam x="92" y="21" /> +<sizeparam width="216" height="105" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="border" value="Communication_System" /> +<TGConnectingPoint num="0" id="1235" /> +<TGConnectingPoint num="1" id="1236" /> +<TGConnectingPoint num="2" id="1237" /> +<TGConnectingPoint num="3" id="1238" /> +<TGConnectingPoint num="4" id="1239" /> +<TGConnectingPoint num="5" id="1240" /> +<TGConnectingPoint num="6" id="1241" /> +<TGConnectingPoint num="7" id="1242" /> +</COMPONENT> + +<CONNECTOR type="110" id="1244" > +<cdparam x="207" y="162" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="198" y="140" id="1116" /> +<P2 x="198" y="93" id="1180" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="110" id="1245" > +<cdparam x="247" y="66" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Use case to actor" value="null" /> +<P1 x="250" y="73" id="1179" /> +<P2 x="332" y="73" id="1146" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="110" id="1246" > +<cdparam x="10" y="10" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from actor to Use case" value="null" /> +<P1 x="61" y="73" id="1211" /> +<P2 x="146" y="73" id="1178" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</UseCaseDiagramPanel> + +<SequenceDiagramPanel name="Nominal_Service" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="606" id="1272" > +<cdparam x="513" y="64" /> +<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Controller" value="AirTrafficController" /> +<TGConnectingPoint num="0" id="1247" /> +<TGConnectingPoint num="1" id="1248" /> +<TGConnectingPoint num="2" id="1249" /> +<TGConnectingPoint num="3" id="1250" /> +<TGConnectingPoint num="4" id="1251" /> +<TGConnectingPoint num="5" id="1252" /> +<TGConnectingPoint num="6" id="1253" /> +<TGConnectingPoint num="7" id="1254" /> +<TGConnectingPoint num="8" id="1255" /> +<TGConnectingPoint num="9" id="1256" /> +<TGConnectingPoint num="10" id="1257" /> +<TGConnectingPoint num="11" id="1258" /> +<TGConnectingPoint num="12" id="1259" /> +<TGConnectingPoint num="13" id="1260" /> +<TGConnectingPoint num="14" id="1261" /> +<TGConnectingPoint num="15" id="1262" /> +<TGConnectingPoint num="16" id="1263" /> +<TGConnectingPoint num="17" id="1264" /> +<TGConnectingPoint num="18" id="1265" /> +<TGConnectingPoint num="19" id="1266" /> +<TGConnectingPoint num="20" id="1267" /> +<TGConnectingPoint num="21" id="1268" /> +<TGConnectingPoint num="22" id="1269" /> +<TGConnectingPoint num="23" id="1270" /> +<TGConnectingPoint num="24" id="1271" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1299" > +<cdparam x="280" y="64" /> +<sizeparam width="10" height="273" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CommunicationSystem" value="FANS_Pilot_ATC_Communication_System" /> +<TGConnectingPoint num="0" id="1273" /> +<TGConnectingPoint num="1" id="1274" /> +<TGConnectingPoint num="2" id="1275" /> +<TGConnectingPoint num="3" id="1276" /> +<TGConnectingPoint num="4" id="1277" /> +<TGConnectingPoint num="5" id="1278" /> +<TGConnectingPoint num="6" id="1279" /> +<TGConnectingPoint num="7" id="1280" /> +<TGConnectingPoint num="8" id="1281" /> +<TGConnectingPoint num="9" id="1282" /> +<TGConnectingPoint num="10" id="1283" /> +<TGConnectingPoint num="11" id="1284" /> +<TGConnectingPoint num="12" id="1285" /> +<TGConnectingPoint num="13" id="1286" /> +<TGConnectingPoint num="14" id="1287" /> +<TGConnectingPoint num="15" id="1288" /> +<TGConnectingPoint num="16" id="1289" /> +<TGConnectingPoint num="17" id="1290" /> +<TGConnectingPoint num="18" id="1291" /> +<TGConnectingPoint num="19" id="1292" /> +<TGConnectingPoint num="20" id="1293" /> +<TGConnectingPoint num="21" id="1294" /> +<TGConnectingPoint num="22" id="1295" /> +<TGConnectingPoint num="23" id="1296" /> +<TGConnectingPoint num="24" id="1297" /> +<TGConnectingPoint num="25" id="1298" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1325" > +<cdparam x="60" y="64" /> +<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Pilot" value="Pilot" /> +<TGConnectingPoint num="0" id="1300" /> +<TGConnectingPoint num="1" id="1301" /> +<TGConnectingPoint num="2" id="1302" /> +<TGConnectingPoint num="3" id="1303" /> +<TGConnectingPoint num="4" id="1304" /> +<TGConnectingPoint num="5" id="1305" /> +<TGConnectingPoint num="6" id="1306" /> +<TGConnectingPoint num="7" id="1307" /> +<TGConnectingPoint num="8" id="1308" /> +<TGConnectingPoint num="9" id="1309" /> +<TGConnectingPoint num="10" id="1310" /> +<TGConnectingPoint num="11" id="1311" /> +<TGConnectingPoint num="12" id="1312" /> +<TGConnectingPoint num="13" id="1313" /> +<TGConnectingPoint num="14" id="1314" /> +<TGConnectingPoint num="15" id="1315" /> +<TGConnectingPoint num="16" id="1316" /> +<TGConnectingPoint num="17" id="1317" /> +<TGConnectingPoint num="18" id="1318" /> +<TGConnectingPoint num="19" id="1319" /> +<TGConnectingPoint num="20" id="1320" /> +<TGConnectingPoint num="21" id="1321" /> +<TGConnectingPoint num="22" id="1322" /> +<TGConnectingPoint num="23" id="1323" /> +<TGConnectingPoint num="24" id="1324" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="107" id="1326" > +<cdparam x="235" y="184" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconconf" /> +<P1 x="285" y="184" id="1284" /> +<P2 x="65" y="184" id="1311" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1327" > +<cdparam x="385" y="154" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconresp" /> +<P1 x="518" y="154" id="1255" /> +<P2 x="285" y="154" id="1281" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1328" > +<cdparam x="235" y="124" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconind" /> +<P1 x="285" y="124" id="1278" /> +<P2 x="518" y="124" id="1252" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1329" > +<cdparam x="85" y="104" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconreq" /> +<P1 x="65" y="104" id="1303" /> +<P2 x="285" y="104" id="1276" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</SequenceDiagramPanel> + +<SequenceDiagramPanel name="Nominal_Protocol" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="301" id="1346" > +<cdparam x="135" y="360" /> +<sizeparam width="596" height="63" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value=" + Black arrows: the protocol layer communicates by rendezvous with its upper layer. + + Basic arrows: the protocol layer communicates via FIFO queues with the network service it relies on. + +" /> +<TGConnectingPoint num="0" id="1330" /> +<TGConnectingPoint num="1" id="1331" /> +<TGConnectingPoint num="2" id="1332" /> +<TGConnectingPoint num="3" id="1333" /> +<TGConnectingPoint num="4" id="1334" /> +<TGConnectingPoint num="5" id="1335" /> +<TGConnectingPoint num="6" id="1336" /> +<TGConnectingPoint num="7" id="1337" /> +<TGConnectingPoint num="8" id="1338" /> +<TGConnectingPoint num="9" id="1339" /> +<TGConnectingPoint num="10" id="1340" /> +<TGConnectingPoint num="11" id="1341" /> +<TGConnectingPoint num="12" id="1342" /> +<TGConnectingPoint num="13" id="1343" /> +<TGConnectingPoint num="14" id="1344" /> +<TGConnectingPoint num="15" id="1345" /> +<extraparam> +<Line value="" /> +<Line value=" Black arrows: the protocol layer communicates by rendezvous with its upper layer." /> +<Line value=" " /> +<Line value=" Basic arrows: the protocol layer communicates via FIFO queues with the network service it relies on." /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1371" > +<cdparam x="502" y="78" /> +<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="GroundCommunication" value="GroundCommunication" /> +<TGConnectingPoint num="0" id="1347" /> +<TGConnectingPoint num="1" id="1348" /> +<TGConnectingPoint num="2" id="1349" /> +<TGConnectingPoint num="3" id="1350" /> +<TGConnectingPoint num="4" id="1351" /> +<TGConnectingPoint num="5" id="1352" /> +<TGConnectingPoint num="6" id="1353" /> +<TGConnectingPoint num="7" id="1354" /> +<TGConnectingPoint num="8" id="1355" /> +<TGConnectingPoint num="9" id="1356" /> +<TGConnectingPoint num="10" id="1357" /> +<TGConnectingPoint num="11" id="1358" /> +<TGConnectingPoint num="12" id="1359" /> +<TGConnectingPoint num="13" id="1360" /> +<TGConnectingPoint num="14" id="1361" /> +<TGConnectingPoint num="15" id="1362" /> +<TGConnectingPoint num="16" id="1363" /> +<TGConnectingPoint num="17" id="1364" /> +<TGConnectingPoint num="18" id="1365" /> +<TGConnectingPoint num="19" id="1366" /> +<TGConnectingPoint num="20" id="1367" /> +<TGConnectingPoint num="21" id="1368" /> +<TGConnectingPoint num="22" id="1369" /> +<TGConnectingPoint num="23" id="1370" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1396" > +<cdparam x="343" y="78" /> +<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Network" value="Network" /> +<TGConnectingPoint num="0" id="1372" /> +<TGConnectingPoint num="1" id="1373" /> +<TGConnectingPoint num="2" id="1374" /> +<TGConnectingPoint num="3" id="1375" /> +<TGConnectingPoint num="4" id="1376" /> +<TGConnectingPoint num="5" id="1377" /> +<TGConnectingPoint num="6" id="1378" /> +<TGConnectingPoint num="7" id="1379" /> +<TGConnectingPoint num="8" id="1380" /> +<TGConnectingPoint num="9" id="1381" /> +<TGConnectingPoint num="10" id="1382" /> +<TGConnectingPoint num="11" id="1383" /> +<TGConnectingPoint num="12" id="1384" /> +<TGConnectingPoint num="13" id="1385" /> +<TGConnectingPoint num="14" id="1386" /> +<TGConnectingPoint num="15" id="1387" /> +<TGConnectingPoint num="16" id="1388" /> +<TGConnectingPoint num="17" id="1389" /> +<TGConnectingPoint num="18" id="1390" /> +<TGConnectingPoint num="19" id="1391" /> +<TGConnectingPoint num="20" id="1392" /> +<TGConnectingPoint num="21" id="1393" /> +<TGConnectingPoint num="22" id="1394" /> +<TGConnectingPoint num="23" id="1395" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1421" > +<cdparam x="199" y="78" /> +<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="OnboardCommunication" value="OnboardCommunication" /> +<TGConnectingPoint num="0" id="1397" /> +<TGConnectingPoint num="1" id="1398" /> +<TGConnectingPoint num="2" id="1399" /> +<TGConnectingPoint num="3" id="1400" /> +<TGConnectingPoint num="4" id="1401" /> +<TGConnectingPoint num="5" id="1402" /> +<TGConnectingPoint num="6" id="1403" /> +<TGConnectingPoint num="7" id="1404" /> +<TGConnectingPoint num="8" id="1405" /> +<TGConnectingPoint num="9" id="1406" /> +<TGConnectingPoint num="10" id="1407" /> +<TGConnectingPoint num="11" id="1408" /> +<TGConnectingPoint num="12" id="1409" /> +<TGConnectingPoint num="13" id="1410" /> +<TGConnectingPoint num="14" id="1411" /> +<TGConnectingPoint num="15" id="1412" /> +<TGConnectingPoint num="16" id="1413" /> +<TGConnectingPoint num="17" id="1414" /> +<TGConnectingPoint num="18" id="1415" /> +<TGConnectingPoint num="19" id="1416" /> +<TGConnectingPoint num="20" id="1417" /> +<TGConnectingPoint num="21" id="1418" /> +<TGConnectingPoint num="22" id="1419" /> +<TGConnectingPoint num="23" id="1420" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1446" > +<cdparam x="680" y="78" /> +<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Controller" value="AirTrafficController" /> +<TGConnectingPoint num="0" id="1422" /> +<TGConnectingPoint num="1" id="1423" /> +<TGConnectingPoint num="2" id="1424" /> +<TGConnectingPoint num="3" id="1425" /> +<TGConnectingPoint num="4" id="1426" /> +<TGConnectingPoint num="5" id="1427" /> +<TGConnectingPoint num="6" id="1428" /> +<TGConnectingPoint num="7" id="1429" /> +<TGConnectingPoint num="8" id="1430" /> +<TGConnectingPoint num="9" id="1431" /> +<TGConnectingPoint num="10" id="1432" /> +<TGConnectingPoint num="11" id="1433" /> +<TGConnectingPoint num="12" id="1434" /> +<TGConnectingPoint num="13" id="1435" /> +<TGConnectingPoint num="14" id="1436" /> +<TGConnectingPoint num="15" id="1437" /> +<TGConnectingPoint num="16" id="1438" /> +<TGConnectingPoint num="17" id="1439" /> +<TGConnectingPoint num="18" id="1440" /> +<TGConnectingPoint num="19" id="1441" /> +<TGConnectingPoint num="20" id="1442" /> +<TGConnectingPoint num="21" id="1443" /> +<TGConnectingPoint num="22" id="1444" /> +<TGConnectingPoint num="23" id="1445" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1471" > +<cdparam x="36" y="78" /> +<sizeparam width="10" height="250" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Pilot" value="Pilot" /> +<TGConnectingPoint num="0" id="1447" /> +<TGConnectingPoint num="1" id="1448" /> +<TGConnectingPoint num="2" id="1449" /> +<TGConnectingPoint num="3" id="1450" /> +<TGConnectingPoint num="4" id="1451" /> +<TGConnectingPoint num="5" id="1452" /> +<TGConnectingPoint num="6" id="1453" /> +<TGConnectingPoint num="7" id="1454" /> +<TGConnectingPoint num="8" id="1455" /> +<TGConnectingPoint num="9" id="1456" /> +<TGConnectingPoint num="10" id="1457" /> +<TGConnectingPoint num="11" id="1458" /> +<TGConnectingPoint num="12" id="1459" /> +<TGConnectingPoint num="13" id="1460" /> +<TGConnectingPoint num="14" id="1461" /> +<TGConnectingPoint num="15" id="1462" /> +<TGConnectingPoint num="16" id="1463" /> +<TGConnectingPoint num="17" id="1464" /> +<TGConnectingPoint num="18" id="1465" /> +<TGConnectingPoint num="19" id="1466" /> +<TGConnectingPoint num="20" id="1467" /> +<TGConnectingPoint num="21" id="1468" /> +<TGConnectingPoint num="22" id="1469" /> +<TGConnectingPoint num="23" id="1470" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="106" id="1472" > +<cdparam x="348" y="258" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="348" y="258" id="1389" /> +<P2 x="204" y="258" id="1414" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="1473" > +<cdparam x="507" y="228" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="507" y="228" id="1361" /> +<P2 x="348" y="228" id="1386" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="1474" > +<cdparam x="348" y="148" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="348" y="148" id="1378" /> +<P2 x="507" y="148" id="1353" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="1475" > +<cdparam x="204" y="128" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="204" y="128" id="1401" /> +<P2 x="348" y="128" id="1376" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1476" > +<cdparam x="12" y="115" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="conreq" /> +<P1 x="41" y="108" id="1449" /> +<P2 x="204" y="108" id="1399" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1477" > +<cdparam x="202" y="280" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="conconf" /> +<P1 x="204" y="278" id="1416" /> +<P2 x="41" y="278" id="1466" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1478" > +<cdparam x="685" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="conresp" /> +<P1 x="685" y="198" id="1433" /> +<P2 x="507" y="198" id="1358" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1479" > +<cdparam x="507" y="169" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="conind" /> +<P1 x="507" y="168" id="1355" /> +<P2 x="685" y="168" id="1430" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</SequenceDiagramPanel> + +</Modeling> + + + + +<Modeling type="Avatar Analysis" nameTab="Analysis_lossy" > +<UseCaseDiagramPanel name="Use Case Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="703" id="1512" > +<cdparam x="171" y="157" /> +<sizeparam width="74" height="50" minWidth="40" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="actor" value="Network" /> +<TGConnectingPoint num="0" id="1480" /> +<TGConnectingPoint num="1" id="1481" /> +<TGConnectingPoint num="2" id="1482" /> +<TGConnectingPoint num="3" id="1483" /> +<TGConnectingPoint num="4" id="1484" /> +<TGConnectingPoint num="5" id="1485" /> +<TGConnectingPoint num="6" id="1486" /> +<TGConnectingPoint num="7" id="1487" /> +<TGConnectingPoint num="8" id="1488" /> +<TGConnectingPoint num="9" id="1489" /> +<TGConnectingPoint num="10" id="1490" /> +<TGConnectingPoint num="11" id="1491" /> +<TGConnectingPoint num="12" id="1492" /> +<TGConnectingPoint num="13" id="1493" /> +<TGConnectingPoint num="14" id="1494" /> +<TGConnectingPoint num="15" id="1495" /> +<TGConnectingPoint num="16" id="1496" /> +<TGConnectingPoint num="17" id="1497" /> +<TGConnectingPoint num="18" id="1498" /> +<TGConnectingPoint num="19" id="1499" /> +<TGConnectingPoint num="20" id="1500" /> +<TGConnectingPoint num="21" id="1501" /> +<TGConnectingPoint num="22" id="1502" /> +<TGConnectingPoint num="23" id="1503" /> +<TGConnectingPoint num="24" id="1504" /> +<TGConnectingPoint num="25" id="1505" /> +<TGConnectingPoint num="26" id="1506" /> +<TGConnectingPoint num="27" id="1507" /> +<TGConnectingPoint num="28" id="1508" /> +<TGConnectingPoint num="29" id="1509" /> +<TGConnectingPoint num="30" id="1510" /> +<TGConnectingPoint num="31" id="1511" /> +</COMPONENT> + +<COMPONENT type="700" id="1545" > +<cdparam x="342" y="55" /> +<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="actor" value="Controller" /> +<TGConnectingPoint num="0" id="1513" /> +<TGConnectingPoint num="1" id="1514" /> +<TGConnectingPoint num="2" id="1515" /> +<TGConnectingPoint num="3" id="1516" /> +<TGConnectingPoint num="4" id="1517" /> +<TGConnectingPoint num="5" id="1518" /> +<TGConnectingPoint num="6" id="1519" /> +<TGConnectingPoint num="7" id="1520" /> +<TGConnectingPoint num="8" id="1521" /> +<TGConnectingPoint num="9" id="1522" /> +<TGConnectingPoint num="10" id="1523" /> +<TGConnectingPoint num="11" id="1524" /> +<TGConnectingPoint num="12" id="1525" /> +<TGConnectingPoint num="13" id="1526" /> +<TGConnectingPoint num="14" id="1527" /> +<TGConnectingPoint num="15" id="1528" /> +<TGConnectingPoint num="16" id="1529" /> +<TGConnectingPoint num="17" id="1530" /> +<TGConnectingPoint num="18" id="1531" /> +<TGConnectingPoint num="19" id="1532" /> +<TGConnectingPoint num="20" id="1533" /> +<TGConnectingPoint num="21" id="1534" /> +<TGConnectingPoint num="22" id="1535" /> +<TGConnectingPoint num="23" id="1536" /> +<TGConnectingPoint num="24" id="1537" /> +<TGConnectingPoint num="25" id="1538" /> +<TGConnectingPoint num="26" id="1539" /> +<TGConnectingPoint num="27" id="1540" /> +<TGConnectingPoint num="28" id="1541" /> +<TGConnectingPoint num="29" id="1542" /> +<TGConnectingPoint num="30" id="1543" /> +<TGConnectingPoint num="31" id="1544" /> +</COMPONENT> + +<COMPONENT type="701" id="1570" > +<cdparam x="156" y="70" /> +<sizeparam width="104" height="40" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Use case" value="InitialNotification" /> +<TGConnectingPoint num="0" id="1546" /> +<TGConnectingPoint num="1" id="1547" /> +<TGConnectingPoint num="2" id="1548" /> +<TGConnectingPoint num="3" id="1549" /> +<TGConnectingPoint num="4" id="1550" /> +<TGConnectingPoint num="5" id="1551" /> +<TGConnectingPoint num="6" id="1552" /> +<TGConnectingPoint num="7" id="1553" /> +<TGConnectingPoint num="8" id="1554" /> +<TGConnectingPoint num="9" id="1555" /> +<TGConnectingPoint num="10" id="1556" /> +<TGConnectingPoint num="11" id="1557" /> +<TGConnectingPoint num="12" id="1558" /> +<TGConnectingPoint num="13" id="1559" /> +<TGConnectingPoint num="14" id="1560" /> +<TGConnectingPoint num="15" id="1561" /> +<TGConnectingPoint num="16" id="1562" /> +<TGConnectingPoint num="17" id="1563" /> +<TGConnectingPoint num="18" id="1564" /> +<TGConnectingPoint num="19" id="1565" /> +<TGConnectingPoint num="20" id="1566" /> +<TGConnectingPoint num="21" id="1567" /> +<TGConnectingPoint num="22" id="1568" /> +<TGConnectingPoint num="23" id="1569" /> +<extraparam> +<info extension="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="700" id="1603" > +<cdparam x="41" y="55" /> +<sizeparam width="30" height="70" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="actor" value="Pilot" /> +<TGConnectingPoint num="0" id="1571" /> +<TGConnectingPoint num="1" id="1572" /> +<TGConnectingPoint num="2" id="1573" /> +<TGConnectingPoint num="3" id="1574" /> +<TGConnectingPoint num="4" id="1575" /> +<TGConnectingPoint num="5" id="1576" /> +<TGConnectingPoint num="6" id="1577" /> +<TGConnectingPoint num="7" id="1578" /> +<TGConnectingPoint num="8" id="1579" /> +<TGConnectingPoint num="9" id="1580" /> +<TGConnectingPoint num="10" id="1581" /> +<TGConnectingPoint num="11" id="1582" /> +<TGConnectingPoint num="12" id="1583" /> +<TGConnectingPoint num="13" id="1584" /> +<TGConnectingPoint num="14" id="1585" /> +<TGConnectingPoint num="15" id="1586" /> +<TGConnectingPoint num="16" id="1587" /> +<TGConnectingPoint num="17" id="1588" /> +<TGConnectingPoint num="18" id="1589" /> +<TGConnectingPoint num="19" id="1590" /> +<TGConnectingPoint num="20" id="1591" /> +<TGConnectingPoint num="21" id="1592" /> +<TGConnectingPoint num="22" id="1593" /> +<TGConnectingPoint num="23" id="1594" /> +<TGConnectingPoint num="24" id="1595" /> +<TGConnectingPoint num="25" id="1596" /> +<TGConnectingPoint num="26" id="1597" /> +<TGConnectingPoint num="27" id="1598" /> +<TGConnectingPoint num="28" id="1599" /> +<TGConnectingPoint num="29" id="1600" /> +<TGConnectingPoint num="30" id="1601" /> +<TGConnectingPoint num="31" id="1602" /> +</COMPONENT> + +<COMPONENT type="702" id="1612" > +<cdparam x="102" y="38" /> +<sizeparam width="216" height="105" minWidth="100" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="border" value="Communication_System" /> +<TGConnectingPoint num="0" id="1604" /> +<TGConnectingPoint num="1" id="1605" /> +<TGConnectingPoint num="2" id="1606" /> +<TGConnectingPoint num="3" id="1607" /> +<TGConnectingPoint num="4" id="1608" /> +<TGConnectingPoint num="5" id="1609" /> +<TGConnectingPoint num="6" id="1610" /> +<TGConnectingPoint num="7" id="1611" /> +</COMPONENT> + +<CONNECTOR type="110" id="1613" > +<cdparam x="217" y="179" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="208" y="157" id="1485" /> +<P2 x="208" y="110" id="1549" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="110" id="1614" > +<cdparam x="257" y="83" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Use case to actor" value="null" /> +<P1 x="260" y="90" id="1548" /> +<P2 x="342" y="90" id="1515" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="110" id="1615" > +<cdparam x="32" y="20" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from actor to Use case" value="null" /> +<P1 x="71" y="90" id="1580" /> +<P2 x="156" y="90" id="1547" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</UseCaseDiagramPanel> + +<SequenceDiagramPanel name="error_service" minX="10" maxX="2500" minY="10" maxY="1500" > +<COMPONENT type="301" id="1632" > +<cdparam x="231" y="215" /> +<sizeparam width="43" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value="Lost +" /> +<TGConnectingPoint num="0" id="1616" /> +<TGConnectingPoint num="1" id="1617" /> +<TGConnectingPoint num="2" id="1618" /> +<TGConnectingPoint num="3" id="1619" /> +<TGConnectingPoint num="4" id="1620" /> +<TGConnectingPoint num="5" id="1621" /> +<TGConnectingPoint num="6" id="1622" /> +<TGConnectingPoint num="7" id="1623" /> +<TGConnectingPoint num="8" id="1624" /> +<TGConnectingPoint num="9" id="1625" /> +<TGConnectingPoint num="10" id="1626" /> +<TGConnectingPoint num="11" id="1627" /> +<TGConnectingPoint num="12" id="1628" /> +<TGConnectingPoint num="13" id="1629" /> +<TGConnectingPoint num="14" id="1630" /> +<TGConnectingPoint num="15" id="1631" /> +<extraparam> +<Line value="Lost" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="601" id="1642" > +<cdparam x="208" y="261" /> +<sizeparam width="40" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Line of relative time constraint" value="rtc" /> +<TGConnectingPoint num="0" id="1633" /> +<TGConnectingPoint num="1" id="1634" /> +<TGConnectingPoint num="2" id="1635" /> +<TGConnectingPoint num="3" id="1636" /> +<TGConnectingPoint num="4" id="1637" /> +<TGConnectingPoint num="5" id="1638" /> +<TGConnectingPoint num="6" id="1639" /> +<TGConnectingPoint num="7" id="1640" /> +<TGConnectingPoint num="8" id="1641" /> +</COMPONENT> + +<COMPONENT type="601" id="1652" > +<cdparam x="208" y="132" /> +<sizeparam width="40" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Line of relative time constraint" value="rtc" /> +<TGConnectingPoint num="0" id="1643" /> +<TGConnectingPoint num="1" id="1644" /> +<TGConnectingPoint num="2" id="1645" /> +<TGConnectingPoint num="3" id="1646" /> +<TGConnectingPoint num="4" id="1647" /> +<TGConnectingPoint num="5" id="1648" /> +<TGConnectingPoint num="6" id="1649" /> +<TGConnectingPoint num="7" id="1650" /> +<TGConnectingPoint num="8" id="1651" /> +</COMPONENT> + +<COMPONENT type="606" id="1678" > +<cdparam x="404" y="72" /> +<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Controller" value="AirTrafficController" /> +<TGConnectingPoint num="0" id="1653" /> +<TGConnectingPoint num="1" id="1654" /> +<TGConnectingPoint num="2" id="1655" /> +<TGConnectingPoint num="3" id="1656" /> +<TGConnectingPoint num="4" id="1657" /> +<TGConnectingPoint num="5" id="1658" /> +<TGConnectingPoint num="6" id="1659" /> +<TGConnectingPoint num="7" id="1660" /> +<TGConnectingPoint num="8" id="1661" /> +<TGConnectingPoint num="9" id="1662" /> +<TGConnectingPoint num="10" id="1663" /> +<TGConnectingPoint num="11" id="1664" /> +<TGConnectingPoint num="12" id="1665" /> +<TGConnectingPoint num="13" id="1666" /> +<TGConnectingPoint num="14" id="1667" /> +<TGConnectingPoint num="15" id="1668" /> +<TGConnectingPoint num="16" id="1669" /> +<TGConnectingPoint num="17" id="1670" /> +<TGConnectingPoint num="18" id="1671" /> +<TGConnectingPoint num="19" id="1672" /> +<TGConnectingPoint num="20" id="1673" /> +<TGConnectingPoint num="21" id="1674" /> +<TGConnectingPoint num="22" id="1675" /> +<TGConnectingPoint num="23" id="1676" /> +<TGConnectingPoint num="24" id="1677" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1705" > +<cdparam x="231" y="72" /> +<sizeparam width="10" height="273" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="CommunicationSystem" value="FANS_Pilot_ATC_Communication_System" /> +<TGConnectingPoint num="0" id="1679" /> +<TGConnectingPoint num="1" id="1680" /> +<TGConnectingPoint num="2" id="1681" /> +<TGConnectingPoint num="3" id="1682" /> +<TGConnectingPoint num="4" id="1683" /> +<TGConnectingPoint num="5" id="1684" /> +<TGConnectingPoint num="6" id="1685" /> +<TGConnectingPoint num="7" id="1686" /> +<TGConnectingPoint num="8" id="1687" /> +<TGConnectingPoint num="9" id="1688" /> +<TGConnectingPoint num="10" id="1689" /> +<TGConnectingPoint num="11" id="1690" /> +<TGConnectingPoint num="12" id="1691" /> +<TGConnectingPoint num="13" id="1692" /> +<TGConnectingPoint num="14" id="1693" /> +<TGConnectingPoint num="15" id="1694" /> +<TGConnectingPoint num="16" id="1695" /> +<TGConnectingPoint num="17" id="1696" /> +<TGConnectingPoint num="18" id="1697" /> +<TGConnectingPoint num="19" id="1698" /> +<TGConnectingPoint num="20" id="1699" /> +<TGConnectingPoint num="21" id="1700" /> +<TGConnectingPoint num="22" id="1701" /> +<TGConnectingPoint num="23" id="1702" /> +<TGConnectingPoint num="24" id="1703" /> +<TGConnectingPoint num="25" id="1704" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1731" > +<cdparam x="45" y="72" /> +<sizeparam width="10" height="265" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Pilot" value="Pilot" /> +<TGConnectingPoint num="0" id="1706" /> +<TGConnectingPoint num="1" id="1707" /> +<TGConnectingPoint num="2" id="1708" /> +<TGConnectingPoint num="3" id="1709" /> +<TGConnectingPoint num="4" id="1710" /> +<TGConnectingPoint num="5" id="1711" /> +<TGConnectingPoint num="6" id="1712" /> +<TGConnectingPoint num="7" id="1713" /> +<TGConnectingPoint num="8" id="1714" /> +<TGConnectingPoint num="9" id="1715" /> +<TGConnectingPoint num="10" id="1716" /> +<TGConnectingPoint num="11" id="1717" /> +<TGConnectingPoint num="12" id="1718" /> +<TGConnectingPoint num="13" id="1719" /> +<TGConnectingPoint num="14" id="1720" /> +<TGConnectingPoint num="15" id="1721" /> +<TGConnectingPoint num="16" id="1722" /> +<TGConnectingPoint num="17" id="1723" /> +<TGConnectingPoint num="18" id="1724" /> +<TGConnectingPoint num="19" id="1725" /> +<TGConnectingPoint num="20" id="1726" /> +<TGConnectingPoint num="21" id="1727" /> +<TGConnectingPoint num="22" id="1728" /> +<TGConnectingPoint num="23" id="1729" /> +<TGConnectingPoint num="24" id="1730" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="107" id="1732" > +<cdparam x="409" y="182" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconresp" /> +<P1 x="409" y="182" id="1663" /> +<P2 x="236" y="182" id="1689" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="109" id="1733" > +<cdparam x="218" y="132" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="relative time constraint" value="{ATST1..ATST1}" /> +<P1 x="218" y="132" id="1643" /> +<P2 x="218" y="261" id="1633" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Interval minConstraint="ATST1" maxConstraint="ATST1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="107" id="1734" > +<cdparam x="236" y="261" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INerror" /> +<P1 x="236" y="262" id="1697" /> +<P2 x="50" y="262" id="1724" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1735" > +<cdparam x="220" y="132" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconind" /> +<P1 x="236" y="132" id="1684" /> +<P2 x="409" y="132" id="1658" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="1736" > +<cdparam x="70" y="112" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconreq" /> +<P1 x="50" y="112" id="1709" /> +<P2 x="236" y="112" id="1682" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</SequenceDiagramPanel> + +<SequenceDiagramPanel name="lost_and_sucessful_retransmissions" minX="10" maxX="2500" minY="10" maxY="1500" > +<COMPONENT type="605" id="1745" > +<cdparam x="219" y="274" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="timer expiration" value="{timer=ATST1}" /> +<TGConnectingPoint num="0" id="1737" /> +<TGConnectingPoint num="1" id="1738" /> +<TGConnectingPoint num="2" id="1739" /> +<TGConnectingPoint num="3" id="1740" /> +<TGConnectingPoint num="4" id="1741" /> +<TGConnectingPoint num="5" id="1742" /> +<TGConnectingPoint num="6" id="1743" /> +<TGConnectingPoint num="7" id="1744" /> +<extraparam> +<Interval timer="ATST1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="603" id="1754" > +<cdparam x="221" y="151" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="setting timer" value="{timer=ATST1, duration=10}" /> +<TGConnectingPoint num="0" id="1746" /> +<TGConnectingPoint num="1" id="1747" /> +<TGConnectingPoint num="2" id="1748" /> +<TGConnectingPoint num="3" id="1749" /> +<TGConnectingPoint num="4" id="1750" /> +<TGConnectingPoint num="5" id="1751" /> +<TGConnectingPoint num="6" id="1752" /> +<TGConnectingPoint num="7" id="1753" /> +<extraparam> +<Interval timer="ATST1" duration="10" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1804" > +<cdparam x="620" y="86" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="330" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="GroundCommunication" value="GroundCommunication" /> +<TGConnectingPoint num="0" id="1755" /> +<TGConnectingPoint num="1" id="1756" /> +<TGConnectingPoint num="2" id="1757" /> +<TGConnectingPoint num="3" id="1758" /> +<TGConnectingPoint num="4" id="1759" /> +<TGConnectingPoint num="5" id="1760" /> +<TGConnectingPoint num="6" id="1761" /> +<TGConnectingPoint num="7" id="1762" /> +<TGConnectingPoint num="8" id="1763" /> +<TGConnectingPoint num="9" id="1764" /> +<TGConnectingPoint num="10" id="1765" /> +<TGConnectingPoint num="11" id="1766" /> +<TGConnectingPoint num="12" id="1767" /> +<TGConnectingPoint num="13" id="1768" /> +<TGConnectingPoint num="14" id="1769" /> +<TGConnectingPoint num="15" id="1770" /> +<TGConnectingPoint num="16" id="1771" /> +<TGConnectingPoint num="17" id="1772" /> +<TGConnectingPoint num="18" id="1773" /> +<TGConnectingPoint num="19" id="1774" /> +<TGConnectingPoint num="20" id="1775" /> +<TGConnectingPoint num="21" id="1776" /> +<TGConnectingPoint num="22" id="1777" /> +<TGConnectingPoint num="23" id="1778" /> +<TGConnectingPoint num="24" id="1779" /> +<TGConnectingPoint num="25" id="1780" /> +<TGConnectingPoint num="26" id="1781" /> +<TGConnectingPoint num="27" id="1782" /> +<TGConnectingPoint num="28" id="1783" /> +<TGConnectingPoint num="29" id="1784" /> +<TGConnectingPoint num="30" id="1785" /> +<TGConnectingPoint num="31" id="1786" /> +<TGConnectingPoint num="32" id="1787" /> +<TGConnectingPoint num="33" id="1788" /> +<TGConnectingPoint num="34" id="1789" /> +<TGConnectingPoint num="35" id="1790" /> +<TGConnectingPoint num="36" id="1791" /> +<TGConnectingPoint num="37" id="1792" /> +<TGConnectingPoint num="38" id="1793" /> +<TGConnectingPoint num="39" id="1794" /> +<TGConnectingPoint num="40" id="1795" /> +<TGConnectingPoint num="41" id="1796" /> +<TGConnectingPoint num="42" id="1797" /> +<TGConnectingPoint num="43" id="1798" /> +<TGConnectingPoint num="44" id="1799" /> +<TGConnectingPoint num="45" id="1800" /> +<TGConnectingPoint num="46" id="1801" /> +<TGConnectingPoint num="47" id="1802" /> +<TGConnectingPoint num="48" id="1803" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1854" > +<cdparam x="473" y="86" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Network" value="Network" /> +<TGConnectingPoint num="0" id="1805" /> +<TGConnectingPoint num="1" id="1806" /> +<TGConnectingPoint num="2" id="1807" /> +<TGConnectingPoint num="3" id="1808" /> +<TGConnectingPoint num="4" id="1809" /> +<TGConnectingPoint num="5" id="1810" /> +<TGConnectingPoint num="6" id="1811" /> +<TGConnectingPoint num="7" id="1812" /> +<TGConnectingPoint num="8" id="1813" /> +<TGConnectingPoint num="9" id="1814" /> +<TGConnectingPoint num="10" id="1815" /> +<TGConnectingPoint num="11" id="1816" /> +<TGConnectingPoint num="12" id="1817" /> +<TGConnectingPoint num="13" id="1818" /> +<TGConnectingPoint num="14" id="1819" /> +<TGConnectingPoint num="15" id="1820" /> +<TGConnectingPoint num="16" id="1821" /> +<TGConnectingPoint num="17" id="1822" /> +<TGConnectingPoint num="18" id="1823" /> +<TGConnectingPoint num="19" id="1824" /> +<TGConnectingPoint num="20" id="1825" /> +<TGConnectingPoint num="21" id="1826" /> +<TGConnectingPoint num="22" id="1827" /> +<TGConnectingPoint num="23" id="1828" /> +<TGConnectingPoint num="24" id="1829" /> +<TGConnectingPoint num="25" id="1830" /> +<TGConnectingPoint num="26" id="1831" /> +<TGConnectingPoint num="27" id="1832" /> +<TGConnectingPoint num="28" id="1833" /> +<TGConnectingPoint num="29" id="1834" /> +<TGConnectingPoint num="30" id="1835" /> +<TGConnectingPoint num="31" id="1836" /> +<TGConnectingPoint num="32" id="1837" /> +<TGConnectingPoint num="33" id="1838" /> +<TGConnectingPoint num="34" id="1839" /> +<TGConnectingPoint num="35" id="1840" /> +<TGConnectingPoint num="36" id="1841" /> +<TGConnectingPoint num="37" id="1842" /> +<TGConnectingPoint num="38" id="1843" /> +<TGConnectingPoint num="39" id="1844" /> +<TGConnectingPoint num="40" id="1845" /> +<TGConnectingPoint num="41" id="1846" /> +<TGConnectingPoint num="42" id="1847" /> +<TGConnectingPoint num="43" id="1848" /> +<TGConnectingPoint num="44" id="1849" /> +<TGConnectingPoint num="45" id="1850" /> +<TGConnectingPoint num="46" id="1851" /> +<TGConnectingPoint num="47" id="1852" /> +<TGConnectingPoint num="48" id="1853" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="1922" > +<cdparam x="201" y="86" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="283" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="OnboardCommunication" value="OnboardCommunication" /> +<TGConnectingPoint num="0" id="1873" /> +<TGConnectingPoint num="1" id="1874" /> +<TGConnectingPoint num="2" id="1875" /> +<TGConnectingPoint num="3" id="1876" /> +<TGConnectingPoint num="4" id="1877" /> +<TGConnectingPoint num="5" id="1878" /> +<TGConnectingPoint num="6" id="1879" /> +<TGConnectingPoint num="7" id="1880" /> +<TGConnectingPoint num="8" id="1881" /> +<TGConnectingPoint num="9" id="1882" /> +<TGConnectingPoint num="10" id="1883" /> +<TGConnectingPoint num="11" id="1884" /> +<TGConnectingPoint num="12" id="1885" /> +<TGConnectingPoint num="13" id="1886" /> +<TGConnectingPoint num="14" id="1887" /> +<TGConnectingPoint num="15" id="1888" /> +<TGConnectingPoint num="16" id="1889" /> +<TGConnectingPoint num="17" id="1890" /> +<TGConnectingPoint num="18" id="1891" /> +<TGConnectingPoint num="19" id="1892" /> +<TGConnectingPoint num="20" id="1893" /> +<TGConnectingPoint num="21" id="1894" /> +<TGConnectingPoint num="22" id="1895" /> +<TGConnectingPoint num="23" id="1896" /> +<TGConnectingPoint num="24" id="1897" /> +<TGConnectingPoint num="25" id="1898" /> +<TGConnectingPoint num="26" id="1899" /> +<TGConnectingPoint num="27" id="1900" /> +<TGConnectingPoint num="28" id="1901" /> +<TGConnectingPoint num="29" id="1902" /> +<TGConnectingPoint num="30" id="1903" /> +<TGConnectingPoint num="31" id="1904" /> +<TGConnectingPoint num="32" id="1905" /> +<TGConnectingPoint num="33" id="1906" /> +<TGConnectingPoint num="34" id="1907" /> +<TGConnectingPoint num="35" id="1908" /> +<TGConnectingPoint num="36" id="1909" /> +<TGConnectingPoint num="37" id="1910" /> +<TGConnectingPoint num="38" id="1911" /> +<TGConnectingPoint num="39" id="1912" /> +<TGConnectingPoint num="40" id="1913" /> +<TGConnectingPoint num="41" id="1914" /> +<TGConnectingPoint num="42" id="1915" /> +<TGConnectingPoint num="43" id="1916" /> +<TGConnectingPoint num="44" id="1917" /> +<TGConnectingPoint num="45" id="1918" /> +<TGConnectingPoint num="46" id="1919" /> +<TGConnectingPoint num="47" id="1920" /> +<TGConnectingPoint num="48" id="1921" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="604" id="1863" > +<father id="1922" num="0" /> +<cdparam x="219" y="448" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="478" /> +<infoparam name="timer cancellation" value="{timer=ATST1}" /> +<TGConnectingPoint num="0" id="1855" /> +<TGConnectingPoint num="1" id="1856" /> +<TGConnectingPoint num="2" id="1857" /> +<TGConnectingPoint num="3" id="1858" /> +<TGConnectingPoint num="4" id="1859" /> +<TGConnectingPoint num="5" id="1860" /> +<TGConnectingPoint num="6" id="1861" /> +<TGConnectingPoint num="7" id="1862" /> +<extraparam> +<Interval timer="ATST1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="603" id="1872" > +<father id="1922" num="1" /> +<cdparam x="219" y="344" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="478" /> +<infoparam name="setting timer" value="{timer=ATST1, duration=10}" /> +<TGConnectingPoint num="0" id="1864" /> +<TGConnectingPoint num="1" id="1865" /> +<TGConnectingPoint num="2" id="1866" /> +<TGConnectingPoint num="3" id="1867" /> +<TGConnectingPoint num="4" id="1868" /> +<TGConnectingPoint num="5" id="1869" /> +<TGConnectingPoint num="6" id="1870" /> +<TGConnectingPoint num="7" id="1871" /> +<extraparam> +<Interval timer="ATST1" duration="10" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="606" id="1972" > +<cdparam x="799" y="86" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="310" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Controller" value="AirTrafficController" /> +<TGConnectingPoint num="0" id="1923" /> +<TGConnectingPoint num="1" id="1924" /> +<TGConnectingPoint num="2" id="1925" /> +<TGConnectingPoint num="3" id="1926" /> +<TGConnectingPoint num="4" id="1927" /> +<TGConnectingPoint num="5" id="1928" /> +<TGConnectingPoint num="6" id="1929" /> +<TGConnectingPoint num="7" id="1930" /> +<TGConnectingPoint num="8" id="1931" /> +<TGConnectingPoint num="9" id="1932" /> +<TGConnectingPoint num="10" id="1933" /> +<TGConnectingPoint num="11" id="1934" /> +<TGConnectingPoint num="12" id="1935" /> +<TGConnectingPoint num="13" id="1936" /> +<TGConnectingPoint num="14" id="1937" /> +<TGConnectingPoint num="15" id="1938" /> +<TGConnectingPoint num="16" id="1939" /> +<TGConnectingPoint num="17" id="1940" /> +<TGConnectingPoint num="18" id="1941" /> +<TGConnectingPoint num="19" id="1942" /> +<TGConnectingPoint num="20" id="1943" /> +<TGConnectingPoint num="21" id="1944" /> +<TGConnectingPoint num="22" id="1945" /> +<TGConnectingPoint num="23" id="1946" /> +<TGConnectingPoint num="24" id="1947" /> +<TGConnectingPoint num="25" id="1948" /> +<TGConnectingPoint num="26" id="1949" /> +<TGConnectingPoint num="27" id="1950" /> +<TGConnectingPoint num="28" id="1951" /> +<TGConnectingPoint num="29" id="1952" /> +<TGConnectingPoint num="30" id="1953" /> +<TGConnectingPoint num="31" id="1954" /> +<TGConnectingPoint num="32" id="1955" /> +<TGConnectingPoint num="33" id="1956" /> +<TGConnectingPoint num="34" id="1957" /> +<TGConnectingPoint num="35" id="1958" /> +<TGConnectingPoint num="36" id="1959" /> +<TGConnectingPoint num="37" id="1960" /> +<TGConnectingPoint num="38" id="1961" /> +<TGConnectingPoint num="39" id="1962" /> +<TGConnectingPoint num="40" id="1963" /> +<TGConnectingPoint num="41" id="1964" /> +<TGConnectingPoint num="42" id="1965" /> +<TGConnectingPoint num="43" id="1966" /> +<TGConnectingPoint num="44" id="1967" /> +<TGConnectingPoint num="45" id="1968" /> +<TGConnectingPoint num="46" id="1969" /> +<TGConnectingPoint num="47" id="1970" /> +<TGConnectingPoint num="48" id="1971" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="2022" > +<cdparam x="38" y="86" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Pilot" value="Pilot" /> +<TGConnectingPoint num="0" id="1973" /> +<TGConnectingPoint num="1" id="1974" /> +<TGConnectingPoint num="2" id="1975" /> +<TGConnectingPoint num="3" id="1976" /> +<TGConnectingPoint num="4" id="1977" /> +<TGConnectingPoint num="5" id="1978" /> +<TGConnectingPoint num="6" id="1979" /> +<TGConnectingPoint num="7" id="1980" /> +<TGConnectingPoint num="8" id="1981" /> +<TGConnectingPoint num="9" id="1982" /> +<TGConnectingPoint num="10" id="1983" /> +<TGConnectingPoint num="11" id="1984" /> +<TGConnectingPoint num="12" id="1985" /> +<TGConnectingPoint num="13" id="1986" /> +<TGConnectingPoint num="14" id="1987" /> +<TGConnectingPoint num="15" id="1988" /> +<TGConnectingPoint num="16" id="1989" /> +<TGConnectingPoint num="17" id="1990" /> +<TGConnectingPoint num="18" id="1991" /> +<TGConnectingPoint num="19" id="1992" /> +<TGConnectingPoint num="20" id="1993" /> +<TGConnectingPoint num="21" id="1994" /> +<TGConnectingPoint num="22" id="1995" /> +<TGConnectingPoint num="23" id="1996" /> +<TGConnectingPoint num="24" id="1997" /> +<TGConnectingPoint num="25" id="1998" /> +<TGConnectingPoint num="26" id="1999" /> +<TGConnectingPoint num="27" id="2000" /> +<TGConnectingPoint num="28" id="2001" /> +<TGConnectingPoint num="29" id="2002" /> +<TGConnectingPoint num="30" id="2003" /> +<TGConnectingPoint num="31" id="2004" /> +<TGConnectingPoint num="32" id="2005" /> +<TGConnectingPoint num="33" id="2006" /> +<TGConnectingPoint num="34" id="2007" /> +<TGConnectingPoint num="35" id="2008" /> +<TGConnectingPoint num="36" id="2009" /> +<TGConnectingPoint num="37" id="2010" /> +<TGConnectingPoint num="38" id="2011" /> +<TGConnectingPoint num="39" id="2012" /> +<TGConnectingPoint num="40" id="2013" /> +<TGConnectingPoint num="41" id="2014" /> +<TGConnectingPoint num="42" id="2015" /> +<TGConnectingPoint num="43" id="2016" /> +<TGConnectingPoint num="44" id="2017" /> +<TGConnectingPoint num="45" id="2018" /> +<TGConnectingPoint num="46" id="2019" /> +<TGConnectingPoint num="47" id="2020" /> +<TGConnectingPoint num="48" id="2021" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="2039" > +<cdparam x="390" y="245" /> +<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value=" +CC is lost + +" /> +<TGConnectingPoint num="0" id="2023" /> +<TGConnectingPoint num="1" id="2024" /> +<TGConnectingPoint num="2" id="2025" /> +<TGConnectingPoint num="3" id="2026" /> +<TGConnectingPoint num="4" id="2027" /> +<TGConnectingPoint num="5" id="2028" /> +<TGConnectingPoint num="6" id="2029" /> +<TGConnectingPoint num="7" id="2030" /> +<TGConnectingPoint num="8" id="2031" /> +<TGConnectingPoint num="9" id="2032" /> +<TGConnectingPoint num="10" id="2033" /> +<TGConnectingPoint num="11" id="2034" /> +<TGConnectingPoint num="12" id="2035" /> +<TGConnectingPoint num="13" id="2036" /> +<TGConnectingPoint num="14" id="2037" /> +<TGConnectingPoint num="15" id="2038" /> +<extraparam> +<Line value=" " /> +<Line value="CC is lost" /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="107" id="2040" > +<cdparam x="625" y="366" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconind" /> +<P1 x="625" y="366" id="1782" /> +<P2 x="804" y="366" id="1950" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2041" > +<cdparam x="206" y="456" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconconf" /> +<P1 x="206" y="486" id="1912" /> +<P2 x="43" y="486" id="2012" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2042" > +<cdparam x="478" y="436" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="478" y="436" id="1839" /> +<P2 x="206" y="436" id="1907" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2043" > +<cdparam x="625" y="416" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="625" y="416" id="1787" /> +<P2 x="478" y="416" id="1837" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2044" > +<cdparam x="804" y="396" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconresp" /> +<P1 x="804" y="396" id="1953" /> +<P2 x="625" y="396" id="1785" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2045" > +<cdparam x="466" y="346" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="478" y="346" id="1830" /> +<P2 x="625" y="346" id="1780" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2046" > +<cdparam x="206" y="326" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="206" y="326" id="1896" /> +<P2 x="478" y="326" id="1828" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2047" > +<cdparam x="625" y="236" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="625" y="226" id="1768" /> +<P2 x="478" y="226" id="1818" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2048" > +<cdparam x="466" y="156" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="478" y="156" id="1811" /> +<P2 x="625" y="156" id="1761" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2049" > +<cdparam x="206" y="136" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="206" y="136" id="1877" /> +<P2 x="478" y="136" id="1809" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2050" > +<cdparam x="15" y="123" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconreq" /> +<P1 x="43" y="116" id="1975" /> +<P2 x="206" y="116" id="1875" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2051" > +<cdparam x="803" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconresp" /> +<P1 x="804" y="206" id="1934" /> +<P2 x="625" y="206" id="1766" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2052" > +<cdparam x="625" y="177" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconind" /> +<P1 x="625" y="176" id="1763" /> +<P2 x="804" y="176" id="1931" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</SequenceDiagramPanel> + +<SequenceDiagramPanel name="unsuccesful_retransmissions" minX="10" maxX="2500" minY="10" maxY="1500" > +<COMPONENT type="605" id="2061" > +<cdparam x="217" y="690" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="timer expiration" value="{timer=ATST1}" /> +<TGConnectingPoint num="0" id="2053" /> +<TGConnectingPoint num="1" id="2054" /> +<TGConnectingPoint num="2" id="2055" /> +<TGConnectingPoint num="3" id="2056" /> +<TGConnectingPoint num="4" id="2057" /> +<TGConnectingPoint num="5" id="2058" /> +<TGConnectingPoint num="6" id="2059" /> +<TGConnectingPoint num="7" id="2060" /> +<extraparam> +<Interval timer="ATST1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="605" id="2070" > +<cdparam x="214" y="264" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="timer expiration" value="{timer=ATST1}" /> +<TGConnectingPoint num="0" id="2062" /> +<TGConnectingPoint num="1" id="2063" /> +<TGConnectingPoint num="2" id="2064" /> +<TGConnectingPoint num="3" id="2065" /> +<TGConnectingPoint num="4" id="2066" /> +<TGConnectingPoint num="5" id="2067" /> +<TGConnectingPoint num="6" id="2068" /> +<TGConnectingPoint num="7" id="2069" /> +<extraparam> +<Interval timer="ATST1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="603" id="2079" > +<cdparam x="216" y="141" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="setting timer" value="{timer=ATST1, duration=10}" /> +<TGConnectingPoint num="0" id="2071" /> +<TGConnectingPoint num="1" id="2072" /> +<TGConnectingPoint num="2" id="2073" /> +<TGConnectingPoint num="3" id="2074" /> +<TGConnectingPoint num="4" id="2075" /> +<TGConnectingPoint num="5" id="2076" /> +<TGConnectingPoint num="6" id="2077" /> +<TGConnectingPoint num="7" id="2078" /> +<extraparam> +<Interval timer="ATST1" duration="10" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="2154" > +<cdparam x="615" y="76" /> +<sizeparam width="10" height="750" minWidth="10" minHeight="330" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="GroundCommunication" value="GroundCommunication" /> +<TGConnectingPoint num="0" id="2080" /> +<TGConnectingPoint num="1" id="2081" /> +<TGConnectingPoint num="2" id="2082" /> +<TGConnectingPoint num="3" id="2083" /> +<TGConnectingPoint num="4" id="2084" /> +<TGConnectingPoint num="5" id="2085" /> +<TGConnectingPoint num="6" id="2086" /> +<TGConnectingPoint num="7" id="2087" /> +<TGConnectingPoint num="8" id="2088" /> +<TGConnectingPoint num="9" id="2089" /> +<TGConnectingPoint num="10" id="2090" /> +<TGConnectingPoint num="11" id="2091" /> +<TGConnectingPoint num="12" id="2092" /> +<TGConnectingPoint num="13" id="2093" /> +<TGConnectingPoint num="14" id="2094" /> +<TGConnectingPoint num="15" id="2095" /> +<TGConnectingPoint num="16" id="2096" /> +<TGConnectingPoint num="17" id="2097" /> +<TGConnectingPoint num="18" id="2098" /> +<TGConnectingPoint num="19" id="2099" /> +<TGConnectingPoint num="20" id="2100" /> +<TGConnectingPoint num="21" id="2101" /> +<TGConnectingPoint num="22" id="2102" /> +<TGConnectingPoint num="23" id="2103" /> +<TGConnectingPoint num="24" id="2104" /> +<TGConnectingPoint num="25" id="2105" /> +<TGConnectingPoint num="26" id="2106" /> +<TGConnectingPoint num="27" id="2107" /> +<TGConnectingPoint num="28" id="2108" /> +<TGConnectingPoint num="29" id="2109" /> +<TGConnectingPoint num="30" id="2110" /> +<TGConnectingPoint num="31" id="2111" /> +<TGConnectingPoint num="32" id="2112" /> +<TGConnectingPoint num="33" id="2113" /> +<TGConnectingPoint num="34" id="2114" /> +<TGConnectingPoint num="35" id="2115" /> +<TGConnectingPoint num="36" id="2116" /> +<TGConnectingPoint num="37" id="2117" /> +<TGConnectingPoint num="38" id="2118" /> +<TGConnectingPoint num="39" id="2119" /> +<TGConnectingPoint num="40" id="2120" /> +<TGConnectingPoint num="41" id="2121" /> +<TGConnectingPoint num="42" id="2122" /> +<TGConnectingPoint num="43" id="2123" /> +<TGConnectingPoint num="44" id="2124" /> +<TGConnectingPoint num="45" id="2125" /> +<TGConnectingPoint num="46" id="2126" /> +<TGConnectingPoint num="47" id="2127" /> +<TGConnectingPoint num="48" id="2128" /> +<TGConnectingPoint num="49" id="2129" /> +<TGConnectingPoint num="50" id="2130" /> +<TGConnectingPoint num="51" id="2131" /> +<TGConnectingPoint num="52" id="2132" /> +<TGConnectingPoint num="53" id="2133" /> +<TGConnectingPoint num="54" id="2134" /> +<TGConnectingPoint num="55" id="2135" /> +<TGConnectingPoint num="56" id="2136" /> +<TGConnectingPoint num="57" id="2137" /> +<TGConnectingPoint num="58" id="2138" /> +<TGConnectingPoint num="59" id="2139" /> +<TGConnectingPoint num="60" id="2140" /> +<TGConnectingPoint num="61" id="2141" /> +<TGConnectingPoint num="62" id="2142" /> +<TGConnectingPoint num="63" id="2143" /> +<TGConnectingPoint num="64" id="2144" /> +<TGConnectingPoint num="65" id="2145" /> +<TGConnectingPoint num="66" id="2146" /> +<TGConnectingPoint num="67" id="2147" /> +<TGConnectingPoint num="68" id="2148" /> +<TGConnectingPoint num="69" id="2149" /> +<TGConnectingPoint num="70" id="2150" /> +<TGConnectingPoint num="71" id="2151" /> +<TGConnectingPoint num="72" id="2152" /> +<TGConnectingPoint num="73" id="2153" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="2229" > +<cdparam x="442" y="76" /> +<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Network" value="Network" /> +<TGConnectingPoint num="0" id="2155" /> +<TGConnectingPoint num="1" id="2156" /> +<TGConnectingPoint num="2" id="2157" /> +<TGConnectingPoint num="3" id="2158" /> +<TGConnectingPoint num="4" id="2159" /> +<TGConnectingPoint num="5" id="2160" /> +<TGConnectingPoint num="6" id="2161" /> +<TGConnectingPoint num="7" id="2162" /> +<TGConnectingPoint num="8" id="2163" /> +<TGConnectingPoint num="9" id="2164" /> +<TGConnectingPoint num="10" id="2165" /> +<TGConnectingPoint num="11" id="2166" /> +<TGConnectingPoint num="12" id="2167" /> +<TGConnectingPoint num="13" id="2168" /> +<TGConnectingPoint num="14" id="2169" /> +<TGConnectingPoint num="15" id="2170" /> +<TGConnectingPoint num="16" id="2171" /> +<TGConnectingPoint num="17" id="2172" /> +<TGConnectingPoint num="18" id="2173" /> +<TGConnectingPoint num="19" id="2174" /> +<TGConnectingPoint num="20" id="2175" /> +<TGConnectingPoint num="21" id="2176" /> +<TGConnectingPoint num="22" id="2177" /> +<TGConnectingPoint num="23" id="2178" /> +<TGConnectingPoint num="24" id="2179" /> +<TGConnectingPoint num="25" id="2180" /> +<TGConnectingPoint num="26" id="2181" /> +<TGConnectingPoint num="27" id="2182" /> +<TGConnectingPoint num="28" id="2183" /> +<TGConnectingPoint num="29" id="2184" /> +<TGConnectingPoint num="30" id="2185" /> +<TGConnectingPoint num="31" id="2186" /> +<TGConnectingPoint num="32" id="2187" /> +<TGConnectingPoint num="33" id="2188" /> +<TGConnectingPoint num="34" id="2189" /> +<TGConnectingPoint num="35" id="2190" /> +<TGConnectingPoint num="36" id="2191" /> +<TGConnectingPoint num="37" id="2192" /> +<TGConnectingPoint num="38" id="2193" /> +<TGConnectingPoint num="39" id="2194" /> +<TGConnectingPoint num="40" id="2195" /> +<TGConnectingPoint num="41" id="2196" /> +<TGConnectingPoint num="42" id="2197" /> +<TGConnectingPoint num="43" id="2198" /> +<TGConnectingPoint num="44" id="2199" /> +<TGConnectingPoint num="45" id="2200" /> +<TGConnectingPoint num="46" id="2201" /> +<TGConnectingPoint num="47" id="2202" /> +<TGConnectingPoint num="48" id="2203" /> +<TGConnectingPoint num="49" id="2204" /> +<TGConnectingPoint num="50" id="2205" /> +<TGConnectingPoint num="51" id="2206" /> +<TGConnectingPoint num="52" id="2207" /> +<TGConnectingPoint num="53" id="2208" /> +<TGConnectingPoint num="54" id="2209" /> +<TGConnectingPoint num="55" id="2210" /> +<TGConnectingPoint num="56" id="2211" /> +<TGConnectingPoint num="57" id="2212" /> +<TGConnectingPoint num="58" id="2213" /> +<TGConnectingPoint num="59" id="2214" /> +<TGConnectingPoint num="60" id="2215" /> +<TGConnectingPoint num="61" id="2216" /> +<TGConnectingPoint num="62" id="2217" /> +<TGConnectingPoint num="63" id="2218" /> +<TGConnectingPoint num="64" id="2219" /> +<TGConnectingPoint num="65" id="2220" /> +<TGConnectingPoint num="66" id="2221" /> +<TGConnectingPoint num="67" id="2222" /> +<TGConnectingPoint num="68" id="2223" /> +<TGConnectingPoint num="69" id="2224" /> +<TGConnectingPoint num="70" id="2225" /> +<TGConnectingPoint num="71" id="2226" /> +<TGConnectingPoint num="72" id="2227" /> +<TGConnectingPoint num="73" id="2228" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="2322" > +<cdparam x="196" y="76" /> +<sizeparam width="10" height="750" minWidth="10" minHeight="283" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="OnboardCommunication" value="OnboardCommunication" /> +<TGConnectingPoint num="0" id="2248" /> +<TGConnectingPoint num="1" id="2249" /> +<TGConnectingPoint num="2" id="2250" /> +<TGConnectingPoint num="3" id="2251" /> +<TGConnectingPoint num="4" id="2252" /> +<TGConnectingPoint num="5" id="2253" /> +<TGConnectingPoint num="6" id="2254" /> +<TGConnectingPoint num="7" id="2255" /> +<TGConnectingPoint num="8" id="2256" /> +<TGConnectingPoint num="9" id="2257" /> +<TGConnectingPoint num="10" id="2258" /> +<TGConnectingPoint num="11" id="2259" /> +<TGConnectingPoint num="12" id="2260" /> +<TGConnectingPoint num="13" id="2261" /> +<TGConnectingPoint num="14" id="2262" /> +<TGConnectingPoint num="15" id="2263" /> +<TGConnectingPoint num="16" id="2264" /> +<TGConnectingPoint num="17" id="2265" /> +<TGConnectingPoint num="18" id="2266" /> +<TGConnectingPoint num="19" id="2267" /> +<TGConnectingPoint num="20" id="2268" /> +<TGConnectingPoint num="21" id="2269" /> +<TGConnectingPoint num="22" id="2270" /> +<TGConnectingPoint num="23" id="2271" /> +<TGConnectingPoint num="24" id="2272" /> +<TGConnectingPoint num="25" id="2273" /> +<TGConnectingPoint num="26" id="2274" /> +<TGConnectingPoint num="27" id="2275" /> +<TGConnectingPoint num="28" id="2276" /> +<TGConnectingPoint num="29" id="2277" /> +<TGConnectingPoint num="30" id="2278" /> +<TGConnectingPoint num="31" id="2279" /> +<TGConnectingPoint num="32" id="2280" /> +<TGConnectingPoint num="33" id="2281" /> +<TGConnectingPoint num="34" id="2282" /> +<TGConnectingPoint num="35" id="2283" /> +<TGConnectingPoint num="36" id="2284" /> +<TGConnectingPoint num="37" id="2285" /> +<TGConnectingPoint num="38" id="2286" /> +<TGConnectingPoint num="39" id="2287" /> +<TGConnectingPoint num="40" id="2288" /> +<TGConnectingPoint num="41" id="2289" /> +<TGConnectingPoint num="42" id="2290" /> +<TGConnectingPoint num="43" id="2291" /> +<TGConnectingPoint num="44" id="2292" /> +<TGConnectingPoint num="45" id="2293" /> +<TGConnectingPoint num="46" id="2294" /> +<TGConnectingPoint num="47" id="2295" /> +<TGConnectingPoint num="48" id="2296" /> +<TGConnectingPoint num="49" id="2297" /> +<TGConnectingPoint num="50" id="2298" /> +<TGConnectingPoint num="51" id="2299" /> +<TGConnectingPoint num="52" id="2300" /> +<TGConnectingPoint num="53" id="2301" /> +<TGConnectingPoint num="54" id="2302" /> +<TGConnectingPoint num="55" id="2303" /> +<TGConnectingPoint num="56" id="2304" /> +<TGConnectingPoint num="57" id="2305" /> +<TGConnectingPoint num="58" id="2306" /> +<TGConnectingPoint num="59" id="2307" /> +<TGConnectingPoint num="60" id="2308" /> +<TGConnectingPoint num="61" id="2309" /> +<TGConnectingPoint num="62" id="2310" /> +<TGConnectingPoint num="63" id="2311" /> +<TGConnectingPoint num="64" id="2312" /> +<TGConnectingPoint num="65" id="2313" /> +<TGConnectingPoint num="66" id="2314" /> +<TGConnectingPoint num="67" id="2315" /> +<TGConnectingPoint num="68" id="2316" /> +<TGConnectingPoint num="69" id="2317" /> +<TGConnectingPoint num="70" id="2318" /> +<TGConnectingPoint num="71" id="2319" /> +<TGConnectingPoint num="72" id="2320" /> +<TGConnectingPoint num="73" id="2321" /> +<extraparam> +<Actor data="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="605" id="2238" > +<father id="2322" num="0" /> +<cdparam x="214" y="497" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="728" /> +<infoparam name="timer expiration" value="{timer=ATST1}" /> +<TGConnectingPoint num="0" id="2230" /> +<TGConnectingPoint num="1" id="2231" /> +<TGConnectingPoint num="2" id="2232" /> +<TGConnectingPoint num="3" id="2233" /> +<TGConnectingPoint num="4" id="2234" /> +<TGConnectingPoint num="5" id="2235" /> +<TGConnectingPoint num="6" id="2236" /> +<TGConnectingPoint num="7" id="2237" /> +<extraparam> +<Interval timer="ATST1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="603" id="2247" > +<father id="2322" num="1" /> +<cdparam x="214" y="334" /> +<sizeparam width="15" height="25" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="18" maxX="18" minY="-2" maxY="728" /> +<infoparam name="setting timer" value="{timer=ATST1, duration=10}" /> +<TGConnectingPoint num="0" id="2239" /> +<TGConnectingPoint num="1" id="2240" /> +<TGConnectingPoint num="2" id="2241" /> +<TGConnectingPoint num="3" id="2242" /> +<TGConnectingPoint num="4" id="2243" /> +<TGConnectingPoint num="5" id="2244" /> +<TGConnectingPoint num="6" id="2245" /> +<TGConnectingPoint num="7" id="2246" /> +<extraparam> +<Interval timer="ATST1" duration="10" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="606" id="2397" > +<cdparam x="794" y="76" /> +<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Controller" value="AirTrafficController" /> +<TGConnectingPoint num="0" id="2323" /> +<TGConnectingPoint num="1" id="2324" /> +<TGConnectingPoint num="2" id="2325" /> +<TGConnectingPoint num="3" id="2326" /> +<TGConnectingPoint num="4" id="2327" /> +<TGConnectingPoint num="5" id="2328" /> +<TGConnectingPoint num="6" id="2329" /> +<TGConnectingPoint num="7" id="2330" /> +<TGConnectingPoint num="8" id="2331" /> +<TGConnectingPoint num="9" id="2332" /> +<TGConnectingPoint num="10" id="2333" /> +<TGConnectingPoint num="11" id="2334" /> +<TGConnectingPoint num="12" id="2335" /> +<TGConnectingPoint num="13" id="2336" /> +<TGConnectingPoint num="14" id="2337" /> +<TGConnectingPoint num="15" id="2338" /> +<TGConnectingPoint num="16" id="2339" /> +<TGConnectingPoint num="17" id="2340" /> +<TGConnectingPoint num="18" id="2341" /> +<TGConnectingPoint num="19" id="2342" /> +<TGConnectingPoint num="20" id="2343" /> +<TGConnectingPoint num="21" id="2344" /> +<TGConnectingPoint num="22" id="2345" /> +<TGConnectingPoint num="23" id="2346" /> +<TGConnectingPoint num="24" id="2347" /> +<TGConnectingPoint num="25" id="2348" /> +<TGConnectingPoint num="26" id="2349" /> +<TGConnectingPoint num="27" id="2350" /> +<TGConnectingPoint num="28" id="2351" /> +<TGConnectingPoint num="29" id="2352" /> +<TGConnectingPoint num="30" id="2353" /> +<TGConnectingPoint num="31" id="2354" /> +<TGConnectingPoint num="32" id="2355" /> +<TGConnectingPoint num="33" id="2356" /> +<TGConnectingPoint num="34" id="2357" /> +<TGConnectingPoint num="35" id="2358" /> +<TGConnectingPoint num="36" id="2359" /> +<TGConnectingPoint num="37" id="2360" /> +<TGConnectingPoint num="38" id="2361" /> +<TGConnectingPoint num="39" id="2362" /> +<TGConnectingPoint num="40" id="2363" /> +<TGConnectingPoint num="41" id="2364" /> +<TGConnectingPoint num="42" id="2365" /> +<TGConnectingPoint num="43" id="2366" /> +<TGConnectingPoint num="44" id="2367" /> +<TGConnectingPoint num="45" id="2368" /> +<TGConnectingPoint num="46" id="2369" /> +<TGConnectingPoint num="47" id="2370" /> +<TGConnectingPoint num="48" id="2371" /> +<TGConnectingPoint num="49" id="2372" /> +<TGConnectingPoint num="50" id="2373" /> +<TGConnectingPoint num="51" id="2374" /> +<TGConnectingPoint num="52" id="2375" /> +<TGConnectingPoint num="53" id="2376" /> +<TGConnectingPoint num="54" id="2377" /> +<TGConnectingPoint num="55" id="2378" /> +<TGConnectingPoint num="56" id="2379" /> +<TGConnectingPoint num="57" id="2380" /> +<TGConnectingPoint num="58" id="2381" /> +<TGConnectingPoint num="59" id="2382" /> +<TGConnectingPoint num="60" id="2383" /> +<TGConnectingPoint num="61" id="2384" /> +<TGConnectingPoint num="62" id="2385" /> +<TGConnectingPoint num="63" id="2386" /> +<TGConnectingPoint num="64" id="2387" /> +<TGConnectingPoint num="65" id="2388" /> +<TGConnectingPoint num="66" id="2389" /> +<TGConnectingPoint num="67" id="2390" /> +<TGConnectingPoint num="68" id="2391" /> +<TGConnectingPoint num="69" id="2392" /> +<TGConnectingPoint num="70" id="2393" /> +<TGConnectingPoint num="71" id="2394" /> +<TGConnectingPoint num="72" id="2395" /> +<TGConnectingPoint num="73" id="2396" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="606" id="2472" > +<cdparam x="33" y="76" /> +<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Pilot" value="Pilot" /> +<TGConnectingPoint num="0" id="2398" /> +<TGConnectingPoint num="1" id="2399" /> +<TGConnectingPoint num="2" id="2400" /> +<TGConnectingPoint num="3" id="2401" /> +<TGConnectingPoint num="4" id="2402" /> +<TGConnectingPoint num="5" id="2403" /> +<TGConnectingPoint num="6" id="2404" /> +<TGConnectingPoint num="7" id="2405" /> +<TGConnectingPoint num="8" id="2406" /> +<TGConnectingPoint num="9" id="2407" /> +<TGConnectingPoint num="10" id="2408" /> +<TGConnectingPoint num="11" id="2409" /> +<TGConnectingPoint num="12" id="2410" /> +<TGConnectingPoint num="13" id="2411" /> +<TGConnectingPoint num="14" id="2412" /> +<TGConnectingPoint num="15" id="2413" /> +<TGConnectingPoint num="16" id="2414" /> +<TGConnectingPoint num="17" id="2415" /> +<TGConnectingPoint num="18" id="2416" /> +<TGConnectingPoint num="19" id="2417" /> +<TGConnectingPoint num="20" id="2418" /> +<TGConnectingPoint num="21" id="2419" /> +<TGConnectingPoint num="22" id="2420" /> +<TGConnectingPoint num="23" id="2421" /> +<TGConnectingPoint num="24" id="2422" /> +<TGConnectingPoint num="25" id="2423" /> +<TGConnectingPoint num="26" id="2424" /> +<TGConnectingPoint num="27" id="2425" /> +<TGConnectingPoint num="28" id="2426" /> +<TGConnectingPoint num="29" id="2427" /> +<TGConnectingPoint num="30" id="2428" /> +<TGConnectingPoint num="31" id="2429" /> +<TGConnectingPoint num="32" id="2430" /> +<TGConnectingPoint num="33" id="2431" /> +<TGConnectingPoint num="34" id="2432" /> +<TGConnectingPoint num="35" id="2433" /> +<TGConnectingPoint num="36" id="2434" /> +<TGConnectingPoint num="37" id="2435" /> +<TGConnectingPoint num="38" id="2436" /> +<TGConnectingPoint num="39" id="2437" /> +<TGConnectingPoint num="40" id="2438" /> +<TGConnectingPoint num="41" id="2439" /> +<TGConnectingPoint num="42" id="2440" /> +<TGConnectingPoint num="43" id="2441" /> +<TGConnectingPoint num="44" id="2442" /> +<TGConnectingPoint num="45" id="2443" /> +<TGConnectingPoint num="46" id="2444" /> +<TGConnectingPoint num="47" id="2445" /> +<TGConnectingPoint num="48" id="2446" /> +<TGConnectingPoint num="49" id="2447" /> +<TGConnectingPoint num="50" id="2448" /> +<TGConnectingPoint num="51" id="2449" /> +<TGConnectingPoint num="52" id="2450" /> +<TGConnectingPoint num="53" id="2451" /> +<TGConnectingPoint num="54" id="2452" /> +<TGConnectingPoint num="55" id="2453" /> +<TGConnectingPoint num="56" id="2454" /> +<TGConnectingPoint num="57" id="2455" /> +<TGConnectingPoint num="58" id="2456" /> +<TGConnectingPoint num="59" id="2457" /> +<TGConnectingPoint num="60" id="2458" /> +<TGConnectingPoint num="61" id="2459" /> +<TGConnectingPoint num="62" id="2460" /> +<TGConnectingPoint num="63" id="2461" /> +<TGConnectingPoint num="64" id="2462" /> +<TGConnectingPoint num="65" id="2463" /> +<TGConnectingPoint num="66" id="2464" /> +<TGConnectingPoint num="67" id="2465" /> +<TGConnectingPoint num="68" id="2466" /> +<TGConnectingPoint num="69" id="2467" /> +<TGConnectingPoint num="70" id="2468" /> +<TGConnectingPoint num="71" id="2469" /> +<TGConnectingPoint num="72" id="2470" /> +<TGConnectingPoint num="73" id="2471" /> +<extraparam> +<Actor data="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="2489" > +<cdparam x="385" y="235" /> +<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value=" +CC is lost + +" /> +<TGConnectingPoint num="0" id="2473" /> +<TGConnectingPoint num="1" id="2474" /> +<TGConnectingPoint num="2" id="2475" /> +<TGConnectingPoint num="3" id="2476" /> +<TGConnectingPoint num="4" id="2477" /> +<TGConnectingPoint num="5" id="2478" /> +<TGConnectingPoint num="6" id="2479" /> +<TGConnectingPoint num="7" id="2480" /> +<TGConnectingPoint num="8" id="2481" /> +<TGConnectingPoint num="9" id="2482" /> +<TGConnectingPoint num="10" id="2483" /> +<TGConnectingPoint num="11" id="2484" /> +<TGConnectingPoint num="12" id="2485" /> +<TGConnectingPoint num="13" id="2486" /> +<TGConnectingPoint num="14" id="2487" /> +<TGConnectingPoint num="15" id="2488" /> +<extraparam> +<Line value=" " /> +<Line value="CC is lost" /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="2506" > +<cdparam x="387" y="639" /> +<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value=" +CC is lost + +" /> +<TGConnectingPoint num="0" id="2490" /> +<TGConnectingPoint num="1" id="2491" /> +<TGConnectingPoint num="2" id="2492" /> +<TGConnectingPoint num="3" id="2493" /> +<TGConnectingPoint num="4" id="2494" /> +<TGConnectingPoint num="5" id="2495" /> +<TGConnectingPoint num="6" id="2496" /> +<TGConnectingPoint num="7" id="2497" /> +<TGConnectingPoint num="8" id="2498" /> +<TGConnectingPoint num="9" id="2499" /> +<TGConnectingPoint num="10" id="2500" /> +<TGConnectingPoint num="11" id="2501" /> +<TGConnectingPoint num="12" id="2502" /> +<TGConnectingPoint num="13" id="2503" /> +<TGConnectingPoint num="14" id="2504" /> +<TGConnectingPoint num="15" id="2505" /> +<extraparam> +<Line value=" " /> +<Line value="CC is lost" /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="2523" > +<cdparam x="384" y="440" /> +<sizeparam width="73" height="39" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="UML Note" value=" +CC is lost + +" /> +<TGConnectingPoint num="0" id="2507" /> +<TGConnectingPoint num="1" id="2508" /> +<TGConnectingPoint num="2" id="2509" /> +<TGConnectingPoint num="3" id="2510" /> +<TGConnectingPoint num="4" id="2511" /> +<TGConnectingPoint num="5" id="2512" /> +<TGConnectingPoint num="6" id="2513" /> +<TGConnectingPoint num="7" id="2514" /> +<TGConnectingPoint num="8" id="2515" /> +<TGConnectingPoint num="9" id="2516" /> +<TGConnectingPoint num="10" id="2517" /> +<TGConnectingPoint num="11" id="2518" /> +<TGConnectingPoint num="12" id="2519" /> +<TGConnectingPoint num="13" id="2520" /> +<TGConnectingPoint num="14" id="2521" /> +<TGConnectingPoint num="15" id="2522" /> +<extraparam> +<Line value=" " /> +<Line value="CC is lost" /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="107" id="2524" > +<cdparam x="201" y="726" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INerror" /> +<P1 x="201" y="726" id="2312" /> +<P2 x="38" y="726" id="2462" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2525" > +<cdparam x="620" y="616" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="620" y="616" id="2133" /> +<P2 x="447" y="616" id="2208" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2526" > +<cdparam x="799" y="596" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconresp" /> +<P1 x="799" y="596" id="2374" /> +<P2 x="620" y="596" id="2131" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2527" > +<cdparam x="620" y="576" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconind" /> +<P1 x="620" y="576" id="2129" /> +<P2 x="799" y="576" id="2372" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2528" > +<cdparam x="447" y="556" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="447" y="556" id="2202" /> +<P2 x="620" y="556" id="2127" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2529" > +<cdparam x="201" y="536" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="201" y="536" id="2293" /> +<P2 x="447" y="536" id="2200" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2530" > +<cdparam x="620" y="406" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="620" y="406" id="2112" /> +<P2 x="447" y="406" id="2187" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2531" > +<cdparam x="799" y="386" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconresp" /> +<P1 x="799" y="386" id="2353" /> +<P2 x="620" y="386" id="2110" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2534" > +<cdparam x="620" y="356" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconind" /> +<P1 x="620" y="356" id="2107" /> +<P2 x="799" y="356" id="2350" /> +<Point x="619" y="355" /> +<Point x="621" y="355" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2532" > +<father id="2534" num="0" /> +<cdparam x="619" y="355" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2533" > +<father id="2534" num="1" /> +<cdparam x="621" y="355" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="106" id="2535" > +<cdparam x="461" y="336" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="447" y="336" id="2180" /> +<P2 x="620" y="336" id="2105" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2536" > +<cdparam x="201" y="316" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="201" y="316" id="2271" /> +<P2 x="447" y="316" id="2178" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2537" > +<cdparam x="620" y="226" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CC" /> +<P1 x="620" y="216" id="2093" /> +<P2 x="447" y="216" id="2168" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2538" > +<cdparam x="461" y="146" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="447" y="146" id="2161" /> +<P2 x="620" y="146" id="2086" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="106" id="2539" > +<cdparam x="201" y="126" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="CR" /> +<P1 x="201" y="126" id="2252" /> +<P2 x="447" y="126" id="2159" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2540" > +<cdparam x="10" y="113" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="INconreq" /> +<P1 x="38" y="106" id="2400" /> +<P2 x="201" y="106" id="2250" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2541" > +<cdparam x="798" y="197" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconresp" /> +<P1 x="799" y="196" id="2334" /> +<P2 x="620" y="196" id="2091" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="107" id="2542" > +<cdparam x="620" y="167" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from instance to instance" value="INconind" /> +<P1 x="620" y="166" id="2088" /> +<P2 x="799" y="166" id="2331" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</SequenceDiagramPanel> + +</Modeling> + + + + +<Modeling type="AVATAR Design" nameTab="Design_unlossy" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="2548" > +<cdparam x="117" y="266" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="2545" /> +<TGConnectingPoint num="1" id="2546" /> +<TGConnectingPoint num="2" id="2547" /> +<P1 x="117" y="266" id="2601" /> +<P2 x="464" y="267" id="2627" /> +<Point x="117" y="308" /> +<Point x="464" y="308" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in CC()" /> +<osd value="out CC()" /> +<isd value="in CR()" /> +<oso value="out CR()" /> +<FIFOType asynchronous="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="2543" > +<father id="2548" num="0" /> +<cdparam x="117" y="308" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2544" > +<father id="2548" num="1" /> +<cdparam x="464" y="308" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5002" id="2550" > +<cdparam x="449" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="2549" /> +<P1 x="424" y="104" id="2643" /> +<P2 x="424" y="143" id="2613" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in INconind()" /> +<osd value="out INconind()" /> +<isd value="in INconresp()" /> +<oso value="out INconresp()" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="2552" > +<cdparam x="145" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="2551" /> +<P1 x="158" y="104" id="2668" /> +<P2 x="158" y="142" id="2588" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in INconconf()" /> +<osd value="out INconconf()" /> +<isd value="in INconreq()" /> +<oso value="out INconreq()" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="301" id="2569" > +<cdparam x="235" y="287" /> +<sizeparam width="111" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="Unlossy channel +" /> +<TGConnectingPoint num="0" id="2553" /> +<TGConnectingPoint num="1" id="2554" /> +<TGConnectingPoint num="2" id="2555" /> +<TGConnectingPoint num="3" id="2556" /> +<TGConnectingPoint num="4" id="2557" /> +<TGConnectingPoint num="5" id="2558" /> +<TGConnectingPoint num="6" id="2559" /> +<TGConnectingPoint num="7" id="2560" /> +<TGConnectingPoint num="8" id="2561" /> +<TGConnectingPoint num="9" id="2562" /> +<TGConnectingPoint num="10" id="2563" /> +<TGConnectingPoint num="11" id="2564" /> +<TGConnectingPoint num="12" id="2565" /> +<TGConnectingPoint num="13" id="2566" /> +<TGConnectingPoint num="14" id="2567" /> +<TGConnectingPoint num="15" id="2568" /> +<extraparam> +<Line value="Unlossy channel" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="2586" > +<cdparam x="10" y="332" /> +<sizeparam width="588" height="51" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value=" + Black squares: the protocol entities communicate by rendezvous with the Pilot and the Controller. + White squares: the protocol entities communicate bu FIFO queues with their underlying network. + +" /> +<TGConnectingPoint num="0" id="2570" /> +<TGConnectingPoint num="1" id="2571" /> +<TGConnectingPoint num="2" id="2572" /> +<TGConnectingPoint num="3" id="2573" /> +<TGConnectingPoint num="4" id="2574" /> +<TGConnectingPoint num="5" id="2575" /> +<TGConnectingPoint num="6" id="2576" /> +<TGConnectingPoint num="7" id="2577" /> +<TGConnectingPoint num="8" id="2578" /> +<TGConnectingPoint num="9" id="2579" /> +<TGConnectingPoint num="10" id="2580" /> +<TGConnectingPoint num="11" id="2581" /> +<TGConnectingPoint num="12" id="2582" /> +<TGConnectingPoint num="13" id="2583" /> +<TGConnectingPoint num="14" id="2584" /> +<TGConnectingPoint num="15" id="2585" /> +<extraparam> +<Line value="" /> +<Line value=" Black squares: the protocol entities communicate by rendezvous with the Pilot and the Controller." /> +<Line value=" White squares: the protocol entities communicate bu FIFO queues with their underlying network." /> +<Line value=" " /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="2611" > +<cdparam x="77" y="142" /> +<sizeparam width="163" height="124" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="OnBoardCommunication" /> +<TGConnectingPoint num="0" id="2587" /> +<TGConnectingPoint num="1" id="2588" /> +<TGConnectingPoint num="2" id="2589" /> +<TGConnectingPoint num="3" id="2590" /> +<TGConnectingPoint num="4" id="2591" /> +<TGConnectingPoint num="5" id="2592" /> +<TGConnectingPoint num="6" id="2593" /> +<TGConnectingPoint num="7" id="2594" /> +<TGConnectingPoint num="8" id="2595" /> +<TGConnectingPoint num="9" id="2596" /> +<TGConnectingPoint num="10" id="2597" /> +<TGConnectingPoint num="11" id="2598" /> +<TGConnectingPoint num="12" id="2599" /> +<TGConnectingPoint num="13" id="2600" /> +<TGConnectingPoint num="14" id="2601" /> +<TGConnectingPoint num="15" id="2602" /> +<TGConnectingPoint num="16" id="2603" /> +<TGConnectingPoint num="17" id="2604" /> +<TGConnectingPoint num="18" id="2605" /> +<TGConnectingPoint num="19" id="2606" /> +<TGConnectingPoint num="20" id="2607" /> +<TGConnectingPoint num="21" id="2608" /> +<TGConnectingPoint num="22" id="2609" /> +<TGConnectingPoint num="23" id="2610" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in INconreq()" attached="false" /> +<Signal value="out INconconf()" attached="false" /> +<Signal value="out CR()" attached="false" /> +<Signal value="in CC()" attached="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="2636" > +<cdparam x="344" y="143" /> +<sizeparam width="161" height="124" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="GroundCommunication" /> +<TGConnectingPoint num="0" id="2612" /> +<TGConnectingPoint num="1" id="2613" /> +<TGConnectingPoint num="2" id="2614" /> +<TGConnectingPoint num="3" id="2615" /> +<TGConnectingPoint num="4" id="2616" /> +<TGConnectingPoint num="5" id="2617" /> +<TGConnectingPoint num="6" id="2618" /> +<TGConnectingPoint num="7" id="2619" /> +<TGConnectingPoint num="8" id="2620" /> +<TGConnectingPoint num="9" id="2621" /> +<TGConnectingPoint num="10" id="2622" /> +<TGConnectingPoint num="11" id="2623" /> +<TGConnectingPoint num="12" id="2624" /> +<TGConnectingPoint num="13" id="2625" /> +<TGConnectingPoint num="14" id="2626" /> +<TGConnectingPoint num="15" id="2627" /> +<TGConnectingPoint num="16" id="2628" /> +<TGConnectingPoint num="17" id="2629" /> +<TGConnectingPoint num="18" id="2630" /> +<TGConnectingPoint num="19" id="2631" /> +<TGConnectingPoint num="20" id="2632" /> +<TGConnectingPoint num="21" id="2633" /> +<TGConnectingPoint num="22" id="2634" /> +<TGConnectingPoint num="23" id="2635" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in CR()" attached="false" /> +<Signal value="out CC()" attached="false" /> +<Signal value="out INconind()" attached="false" /> +<Signal value="in INconresp()" attached="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="2661" > +<cdparam x="346" y="10" /> +<sizeparam width="157" height="94" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="Controller" /> +<TGConnectingPoint num="0" id="2637" /> +<TGConnectingPoint num="1" id="2638" /> +<TGConnectingPoint num="2" id="2639" /> +<TGConnectingPoint num="3" id="2640" /> +<TGConnectingPoint num="4" id="2641" /> +<TGConnectingPoint num="5" id="2642" /> +<TGConnectingPoint num="6" id="2643" /> +<TGConnectingPoint num="7" id="2644" /> +<TGConnectingPoint num="8" id="2645" /> +<TGConnectingPoint num="9" id="2646" /> +<TGConnectingPoint num="10" id="2647" /> +<TGConnectingPoint num="11" id="2648" /> +<TGConnectingPoint num="12" id="2649" /> +<TGConnectingPoint num="13" id="2650" /> +<TGConnectingPoint num="14" id="2651" /> +<TGConnectingPoint num="15" id="2652" /> +<TGConnectingPoint num="16" id="2653" /> +<TGConnectingPoint num="17" id="2654" /> +<TGConnectingPoint num="18" id="2655" /> +<TGConnectingPoint num="19" id="2656" /> +<TGConnectingPoint num="20" id="2657" /> +<TGConnectingPoint num="21" id="2658" /> +<TGConnectingPoint num="22" id="2659" /> +<TGConnectingPoint num="23" id="2660" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in INconind()" attached="false" /> +<Signal value="out INconresp()" attached="false" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="2686" > +<cdparam x="76" y="10" /> +<sizeparam width="165" height="94" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="Pilot" /> +<TGConnectingPoint num="0" id="2662" /> +<TGConnectingPoint num="1" id="2663" /> +<TGConnectingPoint num="2" id="2664" /> +<TGConnectingPoint num="3" id="2665" /> +<TGConnectingPoint num="4" id="2666" /> +<TGConnectingPoint num="5" id="2667" /> +<TGConnectingPoint num="6" id="2668" /> +<TGConnectingPoint num="7" id="2669" /> +<TGConnectingPoint num="8" id="2670" /> +<TGConnectingPoint num="9" id="2671" /> +<TGConnectingPoint num="10" id="2672" /> +<TGConnectingPoint num="11" id="2673" /> +<TGConnectingPoint num="12" id="2674" /> +<TGConnectingPoint num="13" id="2675" /> +<TGConnectingPoint num="14" id="2676" /> +<TGConnectingPoint num="15" id="2677" /> +<TGConnectingPoint num="16" id="2678" /> +<TGConnectingPoint num="17" id="2679" /> +<TGConnectingPoint num="18" id="2680" /> +<TGConnectingPoint num="19" id="2681" /> +<TGConnectingPoint num="20" id="2682" /> +<TGConnectingPoint num="21" id="2683" /> +<TGConnectingPoint num="22" id="2684" /> +<TGConnectingPoint num="23" id="2685" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="out INconreq()" attached="false" /> +<Signal value="in INconconf()" attached="false" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="OnBoardCommunication" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="2693" > +<cdparam x="82" y="38" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="2692" /> +<P1 x="68" y="42" id="2944" /> +<P2 x="88" y="61" id="2904" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2691" > +<father id="2693" num="0" /> +<cdparam x="82" y="78" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2687" /> +<TGConnectingPoint num="1" id="2688" /> +<TGConnectingPoint num="2" id="2689" /> +<TGConnectingPoint num="3" id="2690" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2700" > +<cdparam x="88" y="111" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="2699" /> +<P1 x="88" y="111" id="2909" /> +<P2 x="88" y="133" id="2892" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2698" > +<father id="2700" num="0" /> +<cdparam x="88" y="151" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2694" /> +<TGConnectingPoint num="1" id="2695" /> +<TGConnectingPoint num="2" id="2696" /> +<TGConnectingPoint num="3" id="2697" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2707" > +<cdparam x="88" y="163" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2706" /> +<P1 x="88" y="163" id="2893" /> +<P2 x="87" y="181" id="2881" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2705" > +<father id="2707" num="0" /> +<cdparam x="88" y="203" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2701" /> +<TGConnectingPoint num="1" id="2702" /> +<TGConnectingPoint num="2" id="2703" /> +<TGConnectingPoint num="3" id="2704" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2714" > +<cdparam x="87" y="211" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2713" /> +<P1 x="87" y="211" id="2882" /> +<P2 x="87" y="232" id="2841" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2712" > +<father id="2714" num="0" /> +<cdparam x="87" y="251" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2708" /> +<TGConnectingPoint num="1" id="2709" /> +<TGConnectingPoint num="2" id="2710" /> +<TGConnectingPoint num="3" id="2711" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2721" > +<cdparam x="304" y="109" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="2720" /> +<P1 x="304" y="109" id="2805" /> +<P2 x="304" y="134" id="2788" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2719" > +<father id="2721" num="0" /> +<cdparam x="304" y="149" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2715" /> +<TGConnectingPoint num="1" id="2716" /> +<TGConnectingPoint num="2" id="2717" /> +<TGConnectingPoint num="3" id="2718" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2728" > +<cdparam x="304" y="164" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2727" /> +<P1 x="304" y="164" id="2789" /> +<P2 x="304" y="188" id="2777" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2726" > +<father id="2728" num="0" /> +<cdparam x="304" y="204" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2722" /> +<TGConnectingPoint num="1" id="2723" /> +<TGConnectingPoint num="2" id="2724" /> +<TGConnectingPoint num="3" id="2725" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2735" > +<cdparam x="304" y="218" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2734" /> +<P1 x="304" y="218" id="2778" /> +<P2 x="304" y="241" id="2737" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2733" > +<father id="2735" num="0" /> +<cdparam x="304" y="258" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2729" /> +<TGConnectingPoint num="1" id="2730" /> +<TGConnectingPoint num="2" id="2731" /> +<TGConnectingPoint num="3" id="2732" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="2776" > +<cdparam x="246" y="241" /> +<sizeparam width="117" height="47" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="CONNECTED" /> +<TGConnectingPoint num="0" id="2736" /> +<TGConnectingPoint num="1" id="2737" /> +<TGConnectingPoint num="2" id="2738" /> +<TGConnectingPoint num="3" id="2739" /> +<TGConnectingPoint num="4" id="2740" /> +<TGConnectingPoint num="5" id="2741" /> +<TGConnectingPoint num="6" id="2742" /> +<TGConnectingPoint num="7" id="2743" /> +<TGConnectingPoint num="8" id="2744" /> +<TGConnectingPoint num="9" id="2745" /> +<TGConnectingPoint num="10" id="2746" /> +<TGConnectingPoint num="11" id="2747" /> +<TGConnectingPoint num="12" id="2748" /> +<TGConnectingPoint num="13" id="2749" /> +<TGConnectingPoint num="14" id="2750" /> +<TGConnectingPoint num="15" id="2751" /> +<TGConnectingPoint num="16" id="2752" /> +<TGConnectingPoint num="17" id="2753" /> +<TGConnectingPoint num="18" id="2754" /> +<TGConnectingPoint num="19" id="2755" /> +<TGConnectingPoint num="20" id="2756" /> +<TGConnectingPoint num="21" id="2757" /> +<TGConnectingPoint num="22" id="2758" /> +<TGConnectingPoint num="23" id="2759" /> +<TGConnectingPoint num="24" id="2760" /> +<TGConnectingPoint num="25" id="2761" /> +<TGConnectingPoint num="26" id="2762" /> +<TGConnectingPoint num="27" id="2763" /> +<TGConnectingPoint num="28" id="2764" /> +<TGConnectingPoint num="29" id="2765" /> +<TGConnectingPoint num="30" id="2766" /> +<TGConnectingPoint num="31" id="2767" /> +<TGConnectingPoint num="32" id="2768" /> +<TGConnectingPoint num="33" id="2769" /> +<TGConnectingPoint num="34" id="2770" /> +<TGConnectingPoint num="35" id="2771" /> +<TGConnectingPoint num="36" id="2772" /> +<TGConnectingPoint num="37" id="2773" /> +<TGConnectingPoint num="38" id="2774" /> +<TGConnectingPoint num="39" id="2775" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="2787" > +<cdparam x="267" y="193" /> +<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconconf()" /> +<TGConnectingPoint num="0" id="2777" /> +<TGConnectingPoint num="1" id="2778" /> +<TGConnectingPoint num="2" id="2779" /> +<TGConnectingPoint num="3" id="2780" /> +<TGConnectingPoint num="4" id="2781" /> +<TGConnectingPoint num="5" id="2782" /> +<TGConnectingPoint num="6" id="2783" /> +<TGConnectingPoint num="7" id="2784" /> +<TGConnectingPoint num="8" id="2785" /> +<TGConnectingPoint num="9" id="2786" /> +</COMPONENT> + +<COMPONENT type="5104" id="2798" > +<cdparam x="283" y="139" /> +<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="CC()" /> +<TGConnectingPoint num="0" id="2788" /> +<TGConnectingPoint num="1" id="2789" /> +<TGConnectingPoint num="2" id="2790" /> +<TGConnectingPoint num="3" id="2791" /> +<TGConnectingPoint num="4" id="2792" /> +<TGConnectingPoint num="5" id="2793" /> +<TGConnectingPoint num="6" id="2794" /> +<TGConnectingPoint num="7" id="2795" /> +<TGConnectingPoint num="8" id="2796" /> +<TGConnectingPoint num="9" id="2797" /> +</COMPONENT> + +<COMPONENT type="5106" id="2839" > +<cdparam x="246" y="58" /> +<sizeparam width="117" height="51" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_CONF" /> +<TGConnectingPoint num="0" id="2799" /> +<TGConnectingPoint num="1" id="2800" /> +<TGConnectingPoint num="2" id="2801" /> +<TGConnectingPoint num="3" id="2802" /> +<TGConnectingPoint num="4" id="2803" /> +<TGConnectingPoint num="5" id="2804" /> +<TGConnectingPoint num="6" id="2805" /> +<TGConnectingPoint num="7" id="2806" /> +<TGConnectingPoint num="8" id="2807" /> +<TGConnectingPoint num="9" id="2808" /> +<TGConnectingPoint num="10" id="2809" /> +<TGConnectingPoint num="11" id="2810" /> +<TGConnectingPoint num="12" id="2811" /> +<TGConnectingPoint num="13" id="2812" /> +<TGConnectingPoint num="14" id="2813" /> +<TGConnectingPoint num="15" id="2814" /> +<TGConnectingPoint num="16" id="2815" /> +<TGConnectingPoint num="17" id="2816" /> +<TGConnectingPoint num="18" id="2817" /> +<TGConnectingPoint num="19" id="2818" /> +<TGConnectingPoint num="20" id="2819" /> +<TGConnectingPoint num="21" id="2820" /> +<TGConnectingPoint num="22" id="2821" /> +<TGConnectingPoint num="23" id="2822" /> +<TGConnectingPoint num="24" id="2823" /> +<TGConnectingPoint num="25" id="2824" /> +<TGConnectingPoint num="26" id="2825" /> +<TGConnectingPoint num="27" id="2826" /> +<TGConnectingPoint num="28" id="2827" /> +<TGConnectingPoint num="29" id="2828" /> +<TGConnectingPoint num="30" id="2829" /> +<TGConnectingPoint num="31" id="2830" /> +<TGConnectingPoint num="32" id="2831" /> +<TGConnectingPoint num="33" id="2832" /> +<TGConnectingPoint num="34" id="2833" /> +<TGConnectingPoint num="35" id="2834" /> +<TGConnectingPoint num="36" id="2835" /> +<TGConnectingPoint num="37" id="2836" /> +<TGConnectingPoint num="38" id="2837" /> +<TGConnectingPoint num="39" id="2838" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2880" > +<cdparam x="19" y="232" /> +<sizeparam width="137" height="52" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_CONF" /> +<TGConnectingPoint num="0" id="2840" /> +<TGConnectingPoint num="1" id="2841" /> +<TGConnectingPoint num="2" id="2842" /> +<TGConnectingPoint num="3" id="2843" /> +<TGConnectingPoint num="4" id="2844" /> +<TGConnectingPoint num="5" id="2845" /> +<TGConnectingPoint num="6" id="2846" /> +<TGConnectingPoint num="7" id="2847" /> +<TGConnectingPoint num="8" id="2848" /> +<TGConnectingPoint num="9" id="2849" /> +<TGConnectingPoint num="10" id="2850" /> +<TGConnectingPoint num="11" id="2851" /> +<TGConnectingPoint num="12" id="2852" /> +<TGConnectingPoint num="13" id="2853" /> +<TGConnectingPoint num="14" id="2854" /> +<TGConnectingPoint num="15" id="2855" /> +<TGConnectingPoint num="16" id="2856" /> +<TGConnectingPoint num="17" id="2857" /> +<TGConnectingPoint num="18" id="2858" /> +<TGConnectingPoint num="19" id="2859" /> +<TGConnectingPoint num="20" id="2860" /> +<TGConnectingPoint num="21" id="2861" /> +<TGConnectingPoint num="22" id="2862" /> +<TGConnectingPoint num="23" id="2863" /> +<TGConnectingPoint num="24" id="2864" /> +<TGConnectingPoint num="25" id="2865" /> +<TGConnectingPoint num="26" id="2866" /> +<TGConnectingPoint num="27" id="2867" /> +<TGConnectingPoint num="28" id="2868" /> +<TGConnectingPoint num="29" id="2869" /> +<TGConnectingPoint num="30" id="2870" /> +<TGConnectingPoint num="31" id="2871" /> +<TGConnectingPoint num="32" id="2872" /> +<TGConnectingPoint num="33" id="2873" /> +<TGConnectingPoint num="34" id="2874" /> +<TGConnectingPoint num="35" id="2875" /> +<TGConnectingPoint num="36" id="2876" /> +<TGConnectingPoint num="37" id="2877" /> +<TGConnectingPoint num="38" id="2878" /> +<TGConnectingPoint num="39" id="2879" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="2891" > +<cdparam x="70" y="186" /> +<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="CR()" /> +<TGConnectingPoint num="0" id="2881" /> +<TGConnectingPoint num="1" id="2882" /> +<TGConnectingPoint num="2" id="2883" /> +<TGConnectingPoint num="3" id="2884" /> +<TGConnectingPoint num="4" id="2885" /> +<TGConnectingPoint num="5" id="2886" /> +<TGConnectingPoint num="6" id="2887" /> +<TGConnectingPoint num="7" id="2888" /> +<TGConnectingPoint num="8" id="2889" /> +<TGConnectingPoint num="9" id="2890" /> +</COMPONENT> + +<COMPONENT type="5104" id="2902" > +<cdparam x="49" y="138" /> +<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconreq()" /> +<TGConnectingPoint num="0" id="2892" /> +<TGConnectingPoint num="1" id="2893" /> +<TGConnectingPoint num="2" id="2894" /> +<TGConnectingPoint num="3" id="2895" /> +<TGConnectingPoint num="4" id="2896" /> +<TGConnectingPoint num="5" id="2897" /> +<TGConnectingPoint num="6" id="2898" /> +<TGConnectingPoint num="7" id="2899" /> +<TGConnectingPoint num="8" id="2900" /> +<TGConnectingPoint num="9" id="2901" /> +</COMPONENT> + +<COMPONENT type="5106" id="2943" > +<cdparam x="38" y="61" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="IDLE" /> +<TGConnectingPoint num="0" id="2903" /> +<TGConnectingPoint num="1" id="2904" /> +<TGConnectingPoint num="2" id="2905" /> +<TGConnectingPoint num="3" id="2906" /> +<TGConnectingPoint num="4" id="2907" /> +<TGConnectingPoint num="5" id="2908" /> +<TGConnectingPoint num="6" id="2909" /> +<TGConnectingPoint num="7" id="2910" /> +<TGConnectingPoint num="8" id="2911" /> +<TGConnectingPoint num="9" id="2912" /> +<TGConnectingPoint num="10" id="2913" /> +<TGConnectingPoint num="11" id="2914" /> +<TGConnectingPoint num="12" id="2915" /> +<TGConnectingPoint num="13" id="2916" /> +<TGConnectingPoint num="14" id="2917" /> +<TGConnectingPoint num="15" id="2918" /> +<TGConnectingPoint num="16" id="2919" /> +<TGConnectingPoint num="17" id="2920" /> +<TGConnectingPoint num="18" id="2921" /> +<TGConnectingPoint num="19" id="2922" /> +<TGConnectingPoint num="20" id="2923" /> +<TGConnectingPoint num="21" id="2924" /> +<TGConnectingPoint num="22" id="2925" /> +<TGConnectingPoint num="23" id="2926" /> +<TGConnectingPoint num="24" id="2927" /> +<TGConnectingPoint num="25" id="2928" /> +<TGConnectingPoint num="26" id="2929" /> +<TGConnectingPoint num="27" id="2930" /> +<TGConnectingPoint num="28" id="2931" /> +<TGConnectingPoint num="29" id="2932" /> +<TGConnectingPoint num="30" id="2933" /> +<TGConnectingPoint num="31" id="2934" /> +<TGConnectingPoint num="32" id="2935" /> +<TGConnectingPoint num="33" id="2936" /> +<TGConnectingPoint num="34" id="2937" /> +<TGConnectingPoint num="35" id="2938" /> +<TGConnectingPoint num="36" id="2939" /> +<TGConnectingPoint num="37" id="2940" /> +<TGConnectingPoint num="38" id="2941" /> +<TGConnectingPoint num="39" id="2942" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2945" > +<cdparam x="61" y="22" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2944" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="GroundCommunication" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="2952" > +<cdparam x="86" y="48" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="2951" /> +<P1 x="86" y="48" id="3203" /> +<P2 x="87" y="72" id="3163" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2950" > +<father id="2952" num="0" /> +<cdparam x="86" y="88" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2946" /> +<TGConnectingPoint num="1" id="2947" /> +<TGConnectingPoint num="2" id="2948" /> +<TGConnectingPoint num="3" id="2949" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2959" > +<cdparam x="99" y="122" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="2958" /> +<P1 x="99" y="122" id="3192" /> +<P2 x="99" y="151" id="3151" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2957" > +<father id="2959" num="0" /> +<cdparam x="99" y="162" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2953" /> +<TGConnectingPoint num="1" id="2954" /> +<TGConnectingPoint num="2" id="2955" /> +<TGConnectingPoint num="3" id="2956" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2966" > +<cdparam x="99" y="181" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2965" /> +<P1 x="99" y="181" id="3152" /> +<P2 x="99" y="207" id="3140" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2964" > +<father id="2966" num="0" /> +<cdparam x="99" y="221" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2960" /> +<TGConnectingPoint num="1" id="2961" /> +<TGConnectingPoint num="2" id="2962" /> +<TGConnectingPoint num="3" id="2963" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2973" > +<cdparam x="99" y="237" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2972" /> +<P1 x="99" y="237" id="3141" /> +<P2 x="99" y="262" id="3100" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2971" > +<father id="2973" num="0" /> +<cdparam x="99" y="277" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2967" /> +<TGConnectingPoint num="1" id="2968" /> +<TGConnectingPoint num="2" id="2969" /> +<TGConnectingPoint num="3" id="2970" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2980" > +<cdparam x="327" y="119" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="2979" /> +<P1 x="327" y="119" id="3088" /> +<P2 x="327" y="145" id="3047" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2978" > +<father id="2980" num="0" /> +<cdparam x="327" y="159" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2974" /> +<TGConnectingPoint num="1" id="2975" /> +<TGConnectingPoint num="2" id="2976" /> +<TGConnectingPoint num="3" id="2977" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2987" > +<cdparam x="327" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="2986" /> +<P1 x="327" y="175" id="3048" /> +<P2 x="327" y="204" id="3036" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2985" > +<father id="2987" num="0" /> +<cdparam x="327" y="215" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2981" /> +<TGConnectingPoint num="1" id="2982" /> +<TGConnectingPoint num="2" id="2983" /> +<TGConnectingPoint num="3" id="2984" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2994" > +<cdparam x="327" y="234" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="2993" /> +<P1 x="327" y="234" id="3037" /> +<P2 x="327" y="261" id="2996" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2992" > +<father id="2994" num="0" /> +<cdparam x="327" y="274" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2988" /> +<TGConnectingPoint num="1" id="2989" /> +<TGConnectingPoint num="2" id="2990" /> +<TGConnectingPoint num="3" id="2991" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="3035" > +<cdparam x="277" y="261" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="IDLE" /> +<TGConnectingPoint num="0" id="2995" /> +<TGConnectingPoint num="1" id="2996" /> +<TGConnectingPoint num="2" id="2997" /> +<TGConnectingPoint num="3" id="2998" /> +<TGConnectingPoint num="4" id="2999" /> +<TGConnectingPoint num="5" id="3000" /> +<TGConnectingPoint num="6" id="3001" /> +<TGConnectingPoint num="7" id="3002" /> +<TGConnectingPoint num="8" id="3003" /> +<TGConnectingPoint num="9" id="3004" /> +<TGConnectingPoint num="10" id="3005" /> +<TGConnectingPoint num="11" id="3006" /> +<TGConnectingPoint num="12" id="3007" /> +<TGConnectingPoint num="13" id="3008" /> +<TGConnectingPoint num="14" id="3009" /> +<TGConnectingPoint num="15" id="3010" /> +<TGConnectingPoint num="16" id="3011" /> +<TGConnectingPoint num="17" id="3012" /> +<TGConnectingPoint num="18" id="3013" /> +<TGConnectingPoint num="19" id="3014" /> +<TGConnectingPoint num="20" id="3015" /> +<TGConnectingPoint num="21" id="3016" /> +<TGConnectingPoint num="22" id="3017" /> +<TGConnectingPoint num="23" id="3018" /> +<TGConnectingPoint num="24" id="3019" /> +<TGConnectingPoint num="25" id="3020" /> +<TGConnectingPoint num="26" id="3021" /> +<TGConnectingPoint num="27" id="3022" /> +<TGConnectingPoint num="28" id="3023" /> +<TGConnectingPoint num="29" id="3024" /> +<TGConnectingPoint num="30" id="3025" /> +<TGConnectingPoint num="31" id="3026" /> +<TGConnectingPoint num="32" id="3027" /> +<TGConnectingPoint num="33" id="3028" /> +<TGConnectingPoint num="34" id="3029" /> +<TGConnectingPoint num="35" id="3030" /> +<TGConnectingPoint num="36" id="3031" /> +<TGConnectingPoint num="37" id="3032" /> +<TGConnectingPoint num="38" id="3033" /> +<TGConnectingPoint num="39" id="3034" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="3046" > +<cdparam x="310" y="209" /> +<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="CC()" /> +<TGConnectingPoint num="0" id="3036" /> +<TGConnectingPoint num="1" id="3037" /> +<TGConnectingPoint num="2" id="3038" /> +<TGConnectingPoint num="3" id="3039" /> +<TGConnectingPoint num="4" id="3040" /> +<TGConnectingPoint num="5" id="3041" /> +<TGConnectingPoint num="6" id="3042" /> +<TGConnectingPoint num="7" id="3043" /> +<TGConnectingPoint num="8" id="3044" /> +<TGConnectingPoint num="9" id="3045" /> +</COMPONENT> + +<COMPONENT type="5104" id="3057" > +<cdparam x="285" y="150" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconresp()" /> +<TGConnectingPoint num="0" id="3047" /> +<TGConnectingPoint num="1" id="3048" /> +<TGConnectingPoint num="2" id="3049" /> +<TGConnectingPoint num="3" id="3050" /> +<TGConnectingPoint num="4" id="3051" /> +<TGConnectingPoint num="5" id="3052" /> +<TGConnectingPoint num="6" id="3053" /> +<TGConnectingPoint num="7" id="3054" /> +<TGConnectingPoint num="8" id="3055" /> +<TGConnectingPoint num="9" id="3056" /> +</COMPONENT> + +<COMPONENT type="5106" id="3098" > +<cdparam x="254" y="69" /> +<sizeparam width="119" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_RESP" /> +<TGConnectingPoint num="0" id="3058" /> +<TGConnectingPoint num="1" id="3059" /> +<TGConnectingPoint num="2" id="3060" /> +<TGConnectingPoint num="3" id="3061" /> +<TGConnectingPoint num="4" id="3062" /> +<TGConnectingPoint num="5" id="3063" /> +<TGConnectingPoint num="6" id="3064" /> +<TGConnectingPoint num="7" id="3065" /> +<TGConnectingPoint num="8" id="3066" /> +<TGConnectingPoint num="9" id="3067" /> +<TGConnectingPoint num="10" id="3068" /> +<TGConnectingPoint num="11" id="3069" /> +<TGConnectingPoint num="12" id="3070" /> +<TGConnectingPoint num="13" id="3071" /> +<TGConnectingPoint num="14" id="3072" /> +<TGConnectingPoint num="15" id="3073" /> +<TGConnectingPoint num="16" id="3074" /> +<TGConnectingPoint num="17" id="3075" /> +<TGConnectingPoint num="18" id="3076" /> +<TGConnectingPoint num="19" id="3077" /> +<TGConnectingPoint num="20" id="3078" /> +<TGConnectingPoint num="21" id="3079" /> +<TGConnectingPoint num="22" id="3080" /> +<TGConnectingPoint num="23" id="3081" /> +<TGConnectingPoint num="24" id="3082" /> +<TGConnectingPoint num="25" id="3083" /> +<TGConnectingPoint num="26" id="3084" /> +<TGConnectingPoint num="27" id="3085" /> +<TGConnectingPoint num="28" id="3086" /> +<TGConnectingPoint num="29" id="3087" /> +<TGConnectingPoint num="30" id="3088" /> +<TGConnectingPoint num="31" id="3089" /> +<TGConnectingPoint num="32" id="3090" /> +<TGConnectingPoint num="33" id="3091" /> +<TGConnectingPoint num="34" id="3092" /> +<TGConnectingPoint num="35" id="3093" /> +<TGConnectingPoint num="36" id="3094" /> +<TGConnectingPoint num="37" id="3095" /> +<TGConnectingPoint num="38" id="3096" /> +<TGConnectingPoint num="39" id="3097" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="3139" > +<cdparam x="39" y="262" /> +<sizeparam width="121" height="49" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_RESP" /> +<TGConnectingPoint num="0" id="3099" /> +<TGConnectingPoint num="1" id="3100" /> +<TGConnectingPoint num="2" id="3101" /> +<TGConnectingPoint num="3" id="3102" /> +<TGConnectingPoint num="4" id="3103" /> +<TGConnectingPoint num="5" id="3104" /> +<TGConnectingPoint num="6" id="3105" /> +<TGConnectingPoint num="7" id="3106" /> +<TGConnectingPoint num="8" id="3107" /> +<TGConnectingPoint num="9" id="3108" /> +<TGConnectingPoint num="10" id="3109" /> +<TGConnectingPoint num="11" id="3110" /> +<TGConnectingPoint num="12" id="3111" /> +<TGConnectingPoint num="13" id="3112" /> +<TGConnectingPoint num="14" id="3113" /> +<TGConnectingPoint num="15" id="3114" /> +<TGConnectingPoint num="16" id="3115" /> +<TGConnectingPoint num="17" id="3116" /> +<TGConnectingPoint num="18" id="3117" /> +<TGConnectingPoint num="19" id="3118" /> +<TGConnectingPoint num="20" id="3119" /> +<TGConnectingPoint num="21" id="3120" /> +<TGConnectingPoint num="22" id="3121" /> +<TGConnectingPoint num="23" id="3122" /> +<TGConnectingPoint num="24" id="3123" /> +<TGConnectingPoint num="25" id="3124" /> +<TGConnectingPoint num="26" id="3125" /> +<TGConnectingPoint num="27" id="3126" /> +<TGConnectingPoint num="28" id="3127" /> +<TGConnectingPoint num="29" id="3128" /> +<TGConnectingPoint num="30" id="3129" /> +<TGConnectingPoint num="31" id="3130" /> +<TGConnectingPoint num="32" id="3131" /> +<TGConnectingPoint num="33" id="3132" /> +<TGConnectingPoint num="34" id="3133" /> +<TGConnectingPoint num="35" id="3134" /> +<TGConnectingPoint num="36" id="3135" /> +<TGConnectingPoint num="37" id="3136" /> +<TGConnectingPoint num="38" id="3137" /> +<TGConnectingPoint num="39" id="3138" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="3150" > +<cdparam x="65" y="212" /> +<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconind()" /> +<TGConnectingPoint num="0" id="3140" /> +<TGConnectingPoint num="1" id="3141" /> +<TGConnectingPoint num="2" id="3142" /> +<TGConnectingPoint num="3" id="3143" /> +<TGConnectingPoint num="4" id="3144" /> +<TGConnectingPoint num="5" id="3145" /> +<TGConnectingPoint num="6" id="3146" /> +<TGConnectingPoint num="7" id="3147" /> +<TGConnectingPoint num="8" id="3148" /> +<TGConnectingPoint num="9" id="3149" /> +</COMPONENT> + +<COMPONENT type="5104" id="3161" > +<cdparam x="78" y="156" /> +<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="CR()" /> +<TGConnectingPoint num="0" id="3151" /> +<TGConnectingPoint num="1" id="3152" /> +<TGConnectingPoint num="2" id="3153" /> +<TGConnectingPoint num="3" id="3154" /> +<TGConnectingPoint num="4" id="3155" /> +<TGConnectingPoint num="5" id="3156" /> +<TGConnectingPoint num="6" id="3157" /> +<TGConnectingPoint num="7" id="3158" /> +<TGConnectingPoint num="8" id="3159" /> +<TGConnectingPoint num="9" id="3160" /> +</COMPONENT> + +<COMPONENT type="5106" id="3202" > +<cdparam x="37" y="72" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="IDLE" /> +<TGConnectingPoint num="0" id="3162" /> +<TGConnectingPoint num="1" id="3163" /> +<TGConnectingPoint num="2" id="3164" /> +<TGConnectingPoint num="3" id="3165" /> +<TGConnectingPoint num="4" id="3166" /> +<TGConnectingPoint num="5" id="3167" /> +<TGConnectingPoint num="6" id="3168" /> +<TGConnectingPoint num="7" id="3169" /> +<TGConnectingPoint num="8" id="3170" /> +<TGConnectingPoint num="9" id="3171" /> +<TGConnectingPoint num="10" id="3172" /> +<TGConnectingPoint num="11" id="3173" /> +<TGConnectingPoint num="12" id="3174" /> +<TGConnectingPoint num="13" id="3175" /> +<TGConnectingPoint num="14" id="3176" /> +<TGConnectingPoint num="15" id="3177" /> +<TGConnectingPoint num="16" id="3178" /> +<TGConnectingPoint num="17" id="3179" /> +<TGConnectingPoint num="18" id="3180" /> +<TGConnectingPoint num="19" id="3181" /> +<TGConnectingPoint num="20" id="3182" /> +<TGConnectingPoint num="21" id="3183" /> +<TGConnectingPoint num="22" id="3184" /> +<TGConnectingPoint num="23" id="3185" /> +<TGConnectingPoint num="24" id="3186" /> +<TGConnectingPoint num="25" id="3187" /> +<TGConnectingPoint num="26" id="3188" /> +<TGConnectingPoint num="27" id="3189" /> +<TGConnectingPoint num="28" id="3190" /> +<TGConnectingPoint num="29" id="3191" /> +<TGConnectingPoint num="30" id="3192" /> +<TGConnectingPoint num="31" id="3193" /> +<TGConnectingPoint num="32" id="3194" /> +<TGConnectingPoint num="33" id="3195" /> +<TGConnectingPoint num="34" id="3196" /> +<TGConnectingPoint num="35" id="3197" /> +<TGConnectingPoint num="36" id="3198" /> +<TGConnectingPoint num="37" id="3199" /> +<TGConnectingPoint num="38" id="3200" /> +<TGConnectingPoint num="39" id="3201" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="3204" > +<cdparam x="79" y="28" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="3203" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Controller" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="3217" > +<cdparam x="153" y="198" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3213" /> +<TGConnectingPoint num="1" id="3214" /> +<TGConnectingPoint num="2" id="3215" /> +<TGConnectingPoint num="3" id="3216" /> +<P1 x="153" y="198" id="3264" /> +<P2 x="261" y="114" id="3297" /> +<Point x="153" y="216" /> +<Point x="309" y="216" /> +<Point x="309" y="114" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3205" > +<father id="3217" num="0" /> +<cdparam x="153" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3206" > +<father id="3217" num="1" /> +<cdparam x="309" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3207" > +<father id="3217" num="2" /> +<cdparam x="309" y="114" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3212" > +<father id="3217" num="3" /> +<cdparam x="153" y="238" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3208" /> +<TGConnectingPoint num="1" id="3209" /> +<TGConnectingPoint num="2" id="3210" /> +<TGConnectingPoint num="3" id="3211" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3230" > +<cdparam x="247" y="197" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3226" /> +<TGConnectingPoint num="1" id="3227" /> +<TGConnectingPoint num="2" id="3228" /> +<TGConnectingPoint num="3" id="3229" /> +<P1 x="247" y="197" id="3253" /> +<P2 x="261" y="133" id="3287" /> +<Point x="247" y="207" /> +<Point x="298" y="207" /> +<Point x="298" y="133" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3218" > +<father id="3230" num="0" /> +<cdparam x="247" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3219" > +<father id="3230" num="1" /> +<cdparam x="298" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3220" > +<father id="3230" num="2" /> +<cdparam x="298" y="133" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3225" > +<father id="3230" num="3" /> +<cdparam x="247" y="237" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3221" /> +<TGConnectingPoint num="1" id="3222" /> +<TGConnectingPoint num="2" id="3223" /> +<TGConnectingPoint num="3" id="3224" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3237" > +<cdparam x="186" y="62" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="3236" /> +<P1 x="186" y="62" id="3315" /> +<P2 x="211" y="96" id="3275" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3235" > +<father id="3237" num="0" /> +<cdparam x="211" y="104" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3231" /> +<TGConnectingPoint num="1" id="3232" /> +<TGConnectingPoint num="2" id="3233" /> +<TGConnectingPoint num="3" id="3234" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3244" > +<cdparam x="161" y="146" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="3243" /> +<P1 x="186" y="146" id="3288" /> +<P2 x="153" y="168" id="3263" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3242" > +<father id="3244" num="0" /> +<cdparam x="161" y="186" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3238" /> +<TGConnectingPoint num="1" id="3239" /> +<TGConnectingPoint num="2" id="3240" /> +<TGConnectingPoint num="3" id="3241" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3251" > +<cdparam x="211" y="201" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="3250" /> +<P1 x="236" y="146" id="3289" /> +<P2 x="247" y="167" id="3252" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3249" > +<father id="3251" num="0" /> +<cdparam x="211" y="241" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3245" /> +<TGConnectingPoint num="1" id="3246" /> +<TGConnectingPoint num="2" id="3247" /> +<TGConnectingPoint num="3" id="3248" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="3262" > +<cdparam x="209" y="172" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconresp()" /> +<TGConnectingPoint num="0" id="3252" /> +<TGConnectingPoint num="1" id="3253" /> +<TGConnectingPoint num="2" id="3254" /> +<TGConnectingPoint num="3" id="3255" /> +<TGConnectingPoint num="4" id="3256" /> +<TGConnectingPoint num="5" id="3257" /> +<TGConnectingPoint num="6" id="3258" /> +<TGConnectingPoint num="7" id="3259" /> +<TGConnectingPoint num="8" id="3260" /> +<TGConnectingPoint num="9" id="3261" /> +</COMPONENT> + +<COMPONENT type="5104" id="3273" > +<cdparam x="115" y="173" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconind()" /> +<TGConnectingPoint num="0" id="3263" /> +<TGConnectingPoint num="1" id="3264" /> +<TGConnectingPoint num="2" id="3265" /> +<TGConnectingPoint num="3" id="3266" /> +<TGConnectingPoint num="4" id="3267" /> +<TGConnectingPoint num="5" id="3268" /> +<TGConnectingPoint num="6" id="3269" /> +<TGConnectingPoint num="7" id="3270" /> +<TGConnectingPoint num="8" id="3271" /> +<TGConnectingPoint num="9" id="3272" /> +</COMPONENT> + +<COMPONENT type="5106" id="3314" > +<cdparam x="161" y="96" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="ACTIVE" /> +<TGConnectingPoint num="0" id="3274" /> +<TGConnectingPoint num="1" id="3275" /> +<TGConnectingPoint num="2" id="3276" /> +<TGConnectingPoint num="3" id="3277" /> +<TGConnectingPoint num="4" id="3278" /> +<TGConnectingPoint num="5" id="3279" /> +<TGConnectingPoint num="6" id="3280" /> +<TGConnectingPoint num="7" id="3281" /> +<TGConnectingPoint num="8" id="3282" /> +<TGConnectingPoint num="9" id="3283" /> +<TGConnectingPoint num="10" id="3284" /> +<TGConnectingPoint num="11" id="3285" /> +<TGConnectingPoint num="12" id="3286" /> +<TGConnectingPoint num="13" id="3287" /> +<TGConnectingPoint num="14" id="3288" /> +<TGConnectingPoint num="15" id="3289" /> +<TGConnectingPoint num="16" id="3290" /> +<TGConnectingPoint num="17" id="3291" /> +<TGConnectingPoint num="18" id="3292" /> +<TGConnectingPoint num="19" id="3293" /> +<TGConnectingPoint num="20" id="3294" /> +<TGConnectingPoint num="21" id="3295" /> +<TGConnectingPoint num="22" id="3296" /> +<TGConnectingPoint num="23" id="3297" /> +<TGConnectingPoint num="24" id="3298" /> +<TGConnectingPoint num="25" id="3299" /> +<TGConnectingPoint num="26" id="3300" /> +<TGConnectingPoint num="27" id="3301" /> +<TGConnectingPoint num="28" id="3302" /> +<TGConnectingPoint num="29" id="3303" /> +<TGConnectingPoint num="30" id="3304" /> +<TGConnectingPoint num="31" id="3305" /> +<TGConnectingPoint num="32" id="3306" /> +<TGConnectingPoint num="33" id="3307" /> +<TGConnectingPoint num="34" id="3308" /> +<TGConnectingPoint num="35" id="3309" /> +<TGConnectingPoint num="36" id="3310" /> +<TGConnectingPoint num="37" id="3311" /> +<TGConnectingPoint num="38" id="3312" /> +<TGConnectingPoint num="39" id="3313" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="3316" > +<cdparam x="179" y="42" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="3315" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Pilot" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="3329" > +<cdparam x="79" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3325" /> +<TGConnectingPoint num="1" id="3326" /> +<TGConnectingPoint num="2" id="3327" /> +<TGConnectingPoint num="3" id="3328" /> +<P1 x="79" y="166" id="3376" /> +<P2 x="216" y="78" id="3399" /> +<Point x="79" y="189" /> +<Point x="341" y="189" /> +<Point x="341" y="78" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3317" > +<father id="3329" num="0" /> +<cdparam x="79" y="189" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3318" > +<father id="3329" num="1" /> +<cdparam x="341" y="189" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3319" > +<father id="3329" num="2" /> +<cdparam x="341" y="78" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3324" > +<father id="3329" num="3" /> +<cdparam x="79" y="206" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3320" /> +<TGConnectingPoint num="1" id="3321" /> +<TGConnectingPoint num="2" id="3322" /> +<TGConnectingPoint num="3" id="3323" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3342" > +<cdparam x="177" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3338" /> +<TGConnectingPoint num="1" id="3339" /> +<TGConnectingPoint num="2" id="3340" /> +<TGConnectingPoint num="3" id="3341" /> +<P1 x="177" y="166" id="3365" /> +<P2 x="216" y="91" id="3392" /> +<Point x="177" y="183" /> +<Point x="330" y="183" /> +<Point x="330" y="91" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3330" > +<father id="3342" num="0" /> +<cdparam x="177" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3331" > +<father id="3342" num="1" /> +<cdparam x="330" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3332" > +<father id="3342" num="2" /> +<cdparam x="330" y="91" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3337" > +<father id="3342" num="3" /> +<cdparam x="177" y="206" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3333" /> +<TGConnectingPoint num="1" id="3334" /> +<TGConnectingPoint num="2" id="3335" /> +<TGConnectingPoint num="3" id="3336" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3349" > +<cdparam x="165" y="44" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="3348" /> +<P1 x="165" y="44" id="3386" /> +<P2 x="166" y="66" id="3389" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3347" > +<father id="3349" num="0" /> +<cdparam x="165" y="84" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3343" /> +<TGConnectingPoint num="1" id="3344" /> +<TGConnectingPoint num="2" id="3345" /> +<TGConnectingPoint num="3" id="3346" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3356" > +<cdparam x="178" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="3355" /> +<P1 x="128" y="116" id="3416" /> +<P2 x="79" y="136" id="3375" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3354" > +<father id="3356" num="0" /> +<cdparam x="178" y="156" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3350" /> +<TGConnectingPoint num="1" id="3351" /> +<TGConnectingPoint num="2" id="3352" /> +<TGConnectingPoint num="3" id="3353" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3363" > +<cdparam x="178" y="168" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="3362" /> +<P1 x="166" y="116" id="3394" /> +<P2 x="177" y="136" id="3364" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3361" > +<father id="3363" num="0" /> +<cdparam x="178" y="208" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3357" /> +<TGConnectingPoint num="1" id="3358" /> +<TGConnectingPoint num="2" id="3359" /> +<TGConnectingPoint num="3" id="3360" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="3374" > +<cdparam x="136" y="141" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconconf()" /> +<TGConnectingPoint num="0" id="3364" /> +<TGConnectingPoint num="1" id="3365" /> +<TGConnectingPoint num="2" id="3366" /> +<TGConnectingPoint num="3" id="3367" /> +<TGConnectingPoint num="4" id="3368" /> +<TGConnectingPoint num="5" id="3369" /> +<TGConnectingPoint num="6" id="3370" /> +<TGConnectingPoint num="7" id="3371" /> +<TGConnectingPoint num="8" id="3372" /> +<TGConnectingPoint num="9" id="3373" /> +</COMPONENT> + +<COMPONENT type="5103" id="3385" > +<cdparam x="44" y="141" /> +<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconreq()" /> +<TGConnectingPoint num="0" id="3375" /> +<TGConnectingPoint num="1" id="3376" /> +<TGConnectingPoint num="2" id="3377" /> +<TGConnectingPoint num="3" id="3378" /> +<TGConnectingPoint num="4" id="3379" /> +<TGConnectingPoint num="5" id="3380" /> +<TGConnectingPoint num="6" id="3381" /> +<TGConnectingPoint num="7" id="3382" /> +<TGConnectingPoint num="8" id="3383" /> +<TGConnectingPoint num="9" id="3384" /> +</COMPONENT> + +<COMPONENT type="5100" id="3387" > +<cdparam x="158" y="24" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="3386" /> +</COMPONENT> + +<COMPONENT type="5106" id="3428" > +<cdparam x="116" y="66" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="ACTIVE" /> +<TGConnectingPoint num="0" id="3388" /> +<TGConnectingPoint num="1" id="3389" /> +<TGConnectingPoint num="2" id="3390" /> +<TGConnectingPoint num="3" id="3391" /> +<TGConnectingPoint num="4" id="3392" /> +<TGConnectingPoint num="5" id="3393" /> +<TGConnectingPoint num="6" id="3394" /> +<TGConnectingPoint num="7" id="3395" /> +<TGConnectingPoint num="8" id="3396" /> +<TGConnectingPoint num="9" id="3397" /> +<TGConnectingPoint num="10" id="3398" /> +<TGConnectingPoint num="11" id="3399" /> +<TGConnectingPoint num="12" id="3400" /> +<TGConnectingPoint num="13" id="3401" /> +<TGConnectingPoint num="14" id="3402" /> +<TGConnectingPoint num="15" id="3403" /> +<TGConnectingPoint num="16" id="3404" /> +<TGConnectingPoint num="17" id="3405" /> +<TGConnectingPoint num="18" id="3406" /> +<TGConnectingPoint num="19" id="3407" /> +<TGConnectingPoint num="20" id="3408" /> +<TGConnectingPoint num="21" id="3409" /> +<TGConnectingPoint num="22" id="3410" /> +<TGConnectingPoint num="23" id="3411" /> +<TGConnectingPoint num="24" id="3412" /> +<TGConnectingPoint num="25" id="3413" /> +<TGConnectingPoint num="26" id="3414" /> +<TGConnectingPoint num="27" id="3415" /> +<TGConnectingPoint num="28" id="3416" /> +<TGConnectingPoint num="29" id="3417" /> +<TGConnectingPoint num="30" id="3418" /> +<TGConnectingPoint num="31" id="3419" /> +<TGConnectingPoint num="32" id="3420" /> +<TGConnectingPoint num="33" id="3421" /> +<TGConnectingPoint num="34" id="3422" /> +<TGConnectingPoint num="35" id="3423" /> +<TGConnectingPoint num="36" id="3424" /> +<TGConnectingPoint num="37" id="3425" /> +<TGConnectingPoint num="38" id="3426" /> +<TGConnectingPoint num="39" id="3427" /> +<extraparam> +</extraparam> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +<Modeling type="AVATAR Design" nameTab="Design_lossy" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="OnBoardCommunication;GroundCommunication;Controller;Pilot;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="3434" > +<cdparam x="117" y="266" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="3431" /> +<TGConnectingPoint num="1" id="3432" /> +<TGConnectingPoint num="2" id="3433" /> +<P1 x="118" y="320" id="3493" /> +<P2 x="463" y="311" id="3519" /> +<Point x="118" y="400" /> +<Point x="462" y="400" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in CR()" /> +<isd value="in DR()" /> +<oso value="out CR()" /> +<oso value="out DR()" /> +<FIFOType asynchronous="true" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="3429" > +<father id="3434" num="0" /> +<cdparam x="118" y="400" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3430" > +<father id="3434" num="1" /> +<cdparam x="462" y="400" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5002" id="3440" > +<cdparam x="158" y="266" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="3437" /> +<TGConnectingPoint num="1" id="3438" /> +<TGConnectingPoint num="2" id="3439" /> +<P1 x="161" y="320" id="3485" /> +<P2 x="424" y="311" id="3510" /> +<Point x="161" y="352" /> +<Point x="423" y="352" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in CC()" /> +<osd value="out CC()" /> +<FIFOType asynchronous="true" size="1" blocking="false" private="true" broadcast="false" lossy="true" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="3435" > +<father id="3440" num="0" /> +<cdparam x="161" y="352" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="3436" > +<father id="3440" num="1" /> +<cdparam x="423" y="352" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="5002" id="3442" > +<cdparam x="449" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="3441" /> +<P1 x="423" y="118" id="3535" /> +<P2 x="424" y="134" id="3505" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in INconind()" /> +<iso value="in INerror_ground()" /> +<osd value="out INconind()" /> +<osd value="out INerror_ground()" /> +<isd value="in INconresp()" /> +<oso value="out INconresp()" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="3444" > +<cdparam x="145" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="3443" /> +<P1 x="161" y="117" id="3560" /> +<P2 x="161" y="138" id="3480" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in INconconf()" /> +<iso value="in INerror()" /> +<osd value="out INconconf()" /> +<osd value="out INerror()" /> +<isd value="in INconreq()" /> +<oso value="out INconreq()" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="301" id="3461" > +<cdparam x="204" y="333" /> +<sizeparam width="207" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value=" CC may be lost (lossy channel). +" /> +<TGConnectingPoint num="0" id="3445" /> +<TGConnectingPoint num="1" id="3446" /> +<TGConnectingPoint num="2" id="3447" /> +<TGConnectingPoint num="3" id="3448" /> +<TGConnectingPoint num="4" id="3449" /> +<TGConnectingPoint num="5" id="3450" /> +<TGConnectingPoint num="6" id="3451" /> +<TGConnectingPoint num="7" id="3452" /> +<TGConnectingPoint num="8" id="3453" /> +<TGConnectingPoint num="9" id="3454" /> +<TGConnectingPoint num="10" id="3455" /> +<TGConnectingPoint num="11" id="3456" /> +<TGConnectingPoint num="12" id="3457" /> +<TGConnectingPoint num="13" id="3458" /> +<TGConnectingPoint num="14" id="3459" /> +<TGConnectingPoint num="15" id="3460" /> +<extraparam> +<Line value=" CC may be lost (lossy channel)." /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="3478" > +<cdparam x="234" y="380" /> +<sizeparam width="194" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value=" CRs and DRs will not be lost. +" /> +<TGConnectingPoint num="0" id="3462" /> +<TGConnectingPoint num="1" id="3463" /> +<TGConnectingPoint num="2" id="3464" /> +<TGConnectingPoint num="3" id="3465" /> +<TGConnectingPoint num="4" id="3466" /> +<TGConnectingPoint num="5" id="3467" /> +<TGConnectingPoint num="6" id="3468" /> +<TGConnectingPoint num="7" id="3469" /> +<TGConnectingPoint num="8" id="3470" /> +<TGConnectingPoint num="9" id="3471" /> +<TGConnectingPoint num="10" id="3472" /> +<TGConnectingPoint num="11" id="3473" /> +<TGConnectingPoint num="12" id="3474" /> +<TGConnectingPoint num="13" id="3475" /> +<TGConnectingPoint num="14" id="3476" /> +<TGConnectingPoint num="15" id="3477" /> +<extraparam> +<Line value=" CRs and DRs will not be lost." /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="3503" > +<cdparam x="75" y="138" /> +<sizeparam width="172" height="182" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="OnBoardCommunication" /> +<TGConnectingPoint num="0" id="3479" /> +<TGConnectingPoint num="1" id="3480" /> +<TGConnectingPoint num="2" id="3481" /> +<TGConnectingPoint num="3" id="3482" /> +<TGConnectingPoint num="4" id="3483" /> +<TGConnectingPoint num="5" id="3484" /> +<TGConnectingPoint num="6" id="3485" /> +<TGConnectingPoint num="7" id="3486" /> +<TGConnectingPoint num="8" id="3487" /> +<TGConnectingPoint num="9" id="3488" /> +<TGConnectingPoint num="10" id="3489" /> +<TGConnectingPoint num="11" id="3490" /> +<TGConnectingPoint num="12" id="3491" /> +<TGConnectingPoint num="13" id="3492" /> +<TGConnectingPoint num="14" id="3493" /> +<TGConnectingPoint num="15" id="3494" /> +<TGConnectingPoint num="16" id="3495" /> +<TGConnectingPoint num="17" id="3496" /> +<TGConnectingPoint num="18" id="3497" /> +<TGConnectingPoint num="19" id="3498" /> +<TGConnectingPoint num="20" id="3499" /> +<TGConnectingPoint num="21" id="3500" /> +<TGConnectingPoint num="22" id="3501" /> +<TGConnectingPoint num="23" id="3502" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="ATST1" value="" type="9" typeOther="" /> +<Attribute access="0" id="retransmissionCounter" value="" type="8" typeOther="" /> +<Attribute access="0" id="maxRetransmissions" value="2" type="8" typeOther="" /> +<Signal value="in INconreq()" attached="true" /> +<Signal value="out INconconf()" attached="true" /> +<Signal value="out INerror()" attached="true" /> +<Signal value="out CR()" attached="true" /> +<Signal value="in CC()" attached="true" /> +<Signal value="out DR()" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="3528" > +<cdparam x="346" y="134" /> +<sizeparam width="157" height="177" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="GroundCommunication" /> +<TGConnectingPoint num="0" id="3504" /> +<TGConnectingPoint num="1" id="3505" /> +<TGConnectingPoint num="2" id="3506" /> +<TGConnectingPoint num="3" id="3507" /> +<TGConnectingPoint num="4" id="3508" /> +<TGConnectingPoint num="5" id="3509" /> +<TGConnectingPoint num="6" id="3510" /> +<TGConnectingPoint num="7" id="3511" /> +<TGConnectingPoint num="8" id="3512" /> +<TGConnectingPoint num="9" id="3513" /> +<TGConnectingPoint num="10" id="3514" /> +<TGConnectingPoint num="11" id="3515" /> +<TGConnectingPoint num="12" id="3516" /> +<TGConnectingPoint num="13" id="3517" /> +<TGConnectingPoint num="14" id="3518" /> +<TGConnectingPoint num="15" id="3519" /> +<TGConnectingPoint num="16" id="3520" /> +<TGConnectingPoint num="17" id="3521" /> +<TGConnectingPoint num="18" id="3522" /> +<TGConnectingPoint num="19" id="3523" /> +<TGConnectingPoint num="20" id="3524" /> +<TGConnectingPoint num="21" id="3525" /> +<TGConnectingPoint num="22" id="3526" /> +<TGConnectingPoint num="23" id="3527" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in CR()" attached="true" /> +<Signal value="out CC()" attached="true" /> +<Signal value="out INconind()" attached="true" /> +<Signal value="in INconresp()" attached="true" /> +<Signal value="out INerror_ground()" attached="true" /> +<Signal value="in DR()" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="3553" > +<cdparam x="346" y="10" /> +<sizeparam width="155" height="108" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="Controller" /> +<TGConnectingPoint num="0" id="3529" /> +<TGConnectingPoint num="1" id="3530" /> +<TGConnectingPoint num="2" id="3531" /> +<TGConnectingPoint num="3" id="3532" /> +<TGConnectingPoint num="4" id="3533" /> +<TGConnectingPoint num="5" id="3534" /> +<TGConnectingPoint num="6" id="3535" /> +<TGConnectingPoint num="7" id="3536" /> +<TGConnectingPoint num="8" id="3537" /> +<TGConnectingPoint num="9" id="3538" /> +<TGConnectingPoint num="10" id="3539" /> +<TGConnectingPoint num="11" id="3540" /> +<TGConnectingPoint num="12" id="3541" /> +<TGConnectingPoint num="13" id="3542" /> +<TGConnectingPoint num="14" id="3543" /> +<TGConnectingPoint num="15" id="3544" /> +<TGConnectingPoint num="16" id="3545" /> +<TGConnectingPoint num="17" id="3546" /> +<TGConnectingPoint num="18" id="3547" /> +<TGConnectingPoint num="19" id="3548" /> +<TGConnectingPoint num="20" id="3549" /> +<TGConnectingPoint num="21" id="3550" /> +<TGConnectingPoint num="22" id="3551" /> +<TGConnectingPoint num="23" id="3552" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in INconind()" attached="true" /> +<Signal value="out INconresp()" attached="true" /> +<Signal value="in INerror_ground()" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="3578" > +<cdparam x="76" y="13" /> +<sizeparam width="171" height="104" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="Pilot" /> +<TGConnectingPoint num="0" id="3554" /> +<TGConnectingPoint num="1" id="3555" /> +<TGConnectingPoint num="2" id="3556" /> +<TGConnectingPoint num="3" id="3557" /> +<TGConnectingPoint num="4" id="3558" /> +<TGConnectingPoint num="5" id="3559" /> +<TGConnectingPoint num="6" id="3560" /> +<TGConnectingPoint num="7" id="3561" /> +<TGConnectingPoint num="8" id="3562" /> +<TGConnectingPoint num="9" id="3563" /> +<TGConnectingPoint num="10" id="3564" /> +<TGConnectingPoint num="11" id="3565" /> +<TGConnectingPoint num="12" id="3566" /> +<TGConnectingPoint num="13" id="3567" /> +<TGConnectingPoint num="14" id="3568" /> +<TGConnectingPoint num="15" id="3569" /> +<TGConnectingPoint num="16" id="3570" /> +<TGConnectingPoint num="17" id="3571" /> +<TGConnectingPoint num="18" id="3572" /> +<TGConnectingPoint num="19" id="3573" /> +<TGConnectingPoint num="20" id="3574" /> +<TGConnectingPoint num="21" id="3575" /> +<TGConnectingPoint num="22" id="3576" /> +<TGConnectingPoint num="23" id="3577" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="out INconreq()" attached="true" /> +<Signal value="in INconconf()" attached="true" /> +<Signal value="in INerror()" attached="true" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="OnBoardCommunication" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="3585" > +<cdparam x="473" y="237" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3584" /> +<P1 x="472" y="233" id="3760" /> +<P2 x="472" y="260" id="3743" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3583" > +<father id="3585" num="0" /> +<cdparam x="476" y="245" /> +<sizeparam width="35" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3579" /> +<TGConnectingPoint num="1" id="3580" /> +<TGConnectingPoint num="2" id="3581" /> +<TGConnectingPoint num="3" id="3582" /> +<extraparam> +<guard value="[ else]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3592" > +<cdparam x="473" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3591" /> +<P1 x="473" y="165" id="3793" /> +<P2 x="472" y="183" id="3754" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3590" > +<father id="3592" num="0" /> +<cdparam x="473" y="205" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3586" /> +<TGConnectingPoint num="1" id="3587" /> +<TGConnectingPoint num="2" id="3588" /> +<TGConnectingPoint num="3" id="3589" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3599" > +<cdparam x="630" y="229" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3598" /> +<P1 x="619" y="228" id="3771" /> +<P2 x="619" y="248" id="3885" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3597" > +<father id="3599" num="0" /> +<cdparam x="630" y="269" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3593" /> +<TGConnectingPoint num="1" id="3594" /> +<TGConnectingPoint num="2" id="3595" /> +<TGConnectingPoint num="3" id="3596" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3606" > +<cdparam x="619" y="174" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3605" /> +<P1 x="619" y="174" id="3897" /> +<P2 x="619" y="198" id="3770" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3604" > +<father id="3606" num="0" /> +<cdparam x="619" y="214" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3600" /> +<TGConnectingPoint num="1" id="3601" /> +<TGConnectingPoint num="2" id="3602" /> +<TGConnectingPoint num="3" id="3603" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3613" > +<cdparam x="94" y="283" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3612" /> +<P1 x="99" y="284" id="3782" /> +<P2 x="100" y="299" id="3989" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3611" > +<father id="3613" num="0" /> +<cdparam x="94" y="323" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3607" /> +<TGConnectingPoint num="1" id="3608" /> +<TGConnectingPoint num="2" id="3609" /> +<TGConnectingPoint num="3" id="3610" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3620" > +<cdparam x="98" y="235" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3619" /> +<P1 x="98" y="235" id="3833" /> +<P2 x="99" y="254" id="3781" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3618" > +<father id="3620" num="0" /> +<cdparam x="98" y="275" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3614" /> +<TGConnectingPoint num="1" id="3615" /> +<TGConnectingPoint num="2" id="3616" /> +<TGConnectingPoint num="3" id="3617" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3627" > +<cdparam x="635" y="109" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3626" /> +<P1 x="532" y="109" id="3935" /> +<P2 x="473" y="135" id="3792" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3625" > +<father id="3627" num="0" /> +<cdparam x="635" y="149" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3621" /> +<TGConnectingPoint num="1" id="3622" /> +<TGConnectingPoint num="2" id="3623" /> +<TGConnectingPoint num="3" id="3624" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3634" > +<cdparam x="86" y="162" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3633" /> +<P1 x="86" y="162" id="4001" /> +<P2 x="86" y="193" id="3804" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3632" > +<father id="3634" num="0" /> +<cdparam x="93" y="175" /> +<sizeparam width="155" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3628" /> +<TGConnectingPoint num="1" id="3629" /> +<TGConnectingPoint num="2" id="3630" /> +<TGConnectingPoint num="3" id="3631" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="retransmissionCounter = 0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3641" > +<cdparam x="576" y="109" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="3640" /> +<P1 x="619" y="109" id="3938" /> +<P2 x="619" y="144" id="3896" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3639" > +<father id="3641" num="0" /> +<cdparam x="576" y="151" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3635" /> +<TGConnectingPoint num="1" id="3636" /> +<TGConnectingPoint num="2" id="3637" /> +<TGConnectingPoint num="3" id="3638" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3648" > +<cdparam x="85" y="210" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="3647" /> +<P1 x="100" y="329" id="3990" /> +<P2 x="100" y="351" id="3949" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3646" > +<father id="3648" num="0" /> +<cdparam x="85" y="250" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3642" /> +<TGConnectingPoint num="1" id="3643" /> +<TGConnectingPoint num="2" id="3644" /> +<TGConnectingPoint num="3" id="3645" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3655" > +<cdparam x="86" y="110" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="3654" /> +<P1 x="86" y="110" id="4017" /> +<P2 x="86" y="132" id="4000" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3653" > +<father id="3655" num="0" /> +<cdparam x="86" y="150" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3649" /> +<TGConnectingPoint num="1" id="3650" /> +<TGConnectingPoint num="2" id="3651" /> +<TGConnectingPoint num="3" id="3652" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3662" > +<cdparam x="80" y="37" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="3661" /> +<P1 x="67" y="36" id="4052" /> +<P2 x="86" y="60" id="4012" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3660" > +<father id="3662" num="0" /> +<cdparam x="82" y="38" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3656" /> +<TGConnectingPoint num="1" id="3657" /> +<TGConnectingPoint num="2" id="3658" /> +<TGConnectingPoint num="3" id="3659" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3669" > +<cdparam x="619" y="278" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3668" /> +<P1 x="619" y="278" id="3886" /> +<P2 x="619" y="302" id="3845" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3667" > +<father id="3669" num="0" /> +<cdparam x="619" y="318" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3663" /> +<TGConnectingPoint num="1" id="3664" /> +<TGConnectingPoint num="2" id="3665" /> +<TGConnectingPoint num="3" id="3666" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3676" > +<cdparam x="286" y="212" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3675" /> +<P1 x="447" y="208" id="3755" /> +<P2 x="138" y="208" id="3826" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3674" > +<father id="3676" num="0" /> +<cdparam x="154" y="206" /> +<sizeparam width="302" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3670" /> +<TGConnectingPoint num="1" id="3671" /> +<TGConnectingPoint num="2" id="3672" /> +<TGConnectingPoint num="3" id="3673" /> +<extraparam> +<guard value="[ retransmissionCounter < maxRetransmissions]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="retransmissionCounter = retransmissionCounter + 1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3683" > +<cdparam x="473" y="290" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3682" /> +<P1 x="472" y="290" id="3744" /> +<P2 x="473" y="308" id="3691" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3681" > +<father id="3683" num="0" /> +<cdparam x="466" y="297" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3677" /> +<TGConnectingPoint num="1" id="3678" /> +<TGConnectingPoint num="2" id="3679" /> +<TGConnectingPoint num="3" id="3680" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="3690" > +<cdparam x="459" y="334" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="3689" /> +<P1 x="473" y="338" id="3692" /> +<P2 x="473" y="366" id="3719" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3688" > +<father id="3690" num="0" /> +<cdparam x="459" y="350" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="3684" /> +<TGConnectingPoint num="1" id="3685" /> +<TGConnectingPoint num="2" id="3686" /> +<TGConnectingPoint num="3" id="3687" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="3701" > +<cdparam x="456" y="313" /> +<sizeparam width="35" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="DR()" /> +<TGConnectingPoint num="0" id="3691" /> +<TGConnectingPoint num="1" id="3692" /> +<TGConnectingPoint num="2" id="3693" /> +<TGConnectingPoint num="3" id="3694" /> +<TGConnectingPoint num="4" id="3695" /> +<TGConnectingPoint num="5" id="3696" /> +<TGConnectingPoint num="6" id="3697" /> +<TGConnectingPoint num="7" id="3698" /> +<TGConnectingPoint num="8" id="3699" /> +<TGConnectingPoint num="9" id="3700" /> +</COMPONENT> + +<COMPONENT type="5106" id="3742" > +<cdparam x="436" y="366" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="ERROR" /> +<TGConnectingPoint num="0" id="3702" /> +<TGConnectingPoint num="1" id="3703" /> +<TGConnectingPoint num="2" id="3704" /> +<TGConnectingPoint num="3" id="3705" /> +<TGConnectingPoint num="4" id="3706" /> +<TGConnectingPoint num="5" id="3707" /> +<TGConnectingPoint num="6" id="3708" /> +<TGConnectingPoint num="7" id="3709" /> +<TGConnectingPoint num="8" id="3710" /> +<TGConnectingPoint num="9" id="3711" /> +<TGConnectingPoint num="10" id="3712" /> +<TGConnectingPoint num="11" id="3713" /> +<TGConnectingPoint num="12" id="3714" /> +<TGConnectingPoint num="13" id="3715" /> +<TGConnectingPoint num="14" id="3716" /> +<TGConnectingPoint num="15" id="3717" /> +<TGConnectingPoint num="16" id="3718" /> +<TGConnectingPoint num="17" id="3719" /> +<TGConnectingPoint num="18" id="3720" /> +<TGConnectingPoint num="19" id="3721" /> +<TGConnectingPoint num="20" id="3722" /> +<TGConnectingPoint num="21" id="3723" /> +<TGConnectingPoint num="22" id="3724" /> +<TGConnectingPoint num="23" id="3725" /> +<TGConnectingPoint num="24" id="3726" /> +<TGConnectingPoint num="25" id="3727" /> +<TGConnectingPoint num="26" id="3728" /> +<TGConnectingPoint num="27" id="3729" /> +<TGConnectingPoint num="28" id="3730" /> +<TGConnectingPoint num="29" id="3731" /> +<TGConnectingPoint num="30" id="3732" /> +<TGConnectingPoint num="31" id="3733" /> +<TGConnectingPoint num="32" id="3734" /> +<TGConnectingPoint num="33" id="3735" /> +<TGConnectingPoint num="34" id="3736" /> +<TGConnectingPoint num="35" id="3737" /> +<TGConnectingPoint num="36" id="3738" /> +<TGConnectingPoint num="37" id="3739" /> +<TGConnectingPoint num="38" id="3740" /> +<TGConnectingPoint num="39" id="3741" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="3753" > +<cdparam x="443" y="265" /> +<sizeparam width="59" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INerror()" /> +<TGConnectingPoint num="0" id="3743" /> +<TGConnectingPoint num="1" id="3744" /> +<TGConnectingPoint num="2" id="3745" /> +<TGConnectingPoint num="3" id="3746" /> +<TGConnectingPoint num="4" id="3747" /> +<TGConnectingPoint num="5" id="3748" /> +<TGConnectingPoint num="6" id="3749" /> +<TGConnectingPoint num="7" id="3750" /> +<TGConnectingPoint num="8" id="3751" /> +<TGConnectingPoint num="9" id="3752" /> +</COMPONENT> + +<COMPONENT type="5107" id="3769" > +<cdparam x="457" y="193" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="3754" /> +<TGConnectingPoint num="1" id="3755" /> +<TGConnectingPoint num="2" id="3756" /> +<TGConnectingPoint num="3" id="3757" /> +<TGConnectingPoint num="4" id="3758" /> +<TGConnectingPoint num="5" id="3759" /> +<TGConnectingPoint num="6" id="3760" /> +<TGConnectingPoint num="7" id="3761" /> +<TGConnectingPoint num="8" id="3762" /> +<TGConnectingPoint num="9" id="3763" /> +<TGConnectingPoint num="10" id="3764" /> +<TGConnectingPoint num="11" id="3765" /> +<TGConnectingPoint num="12" id="3766" /> +<TGConnectingPoint num="13" id="3767" /> +<TGConnectingPoint num="14" id="3768" /> +</COMPONENT> + +<COMPONENT type="5110" id="3780" > +<cdparam x="577" y="203" /> +<sizeparam width="85" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Reset timer" value="reset(ATST1)" /> +<TGConnectingPoint num="0" id="3770" /> +<TGConnectingPoint num="1" id="3771" /> +<TGConnectingPoint num="2" id="3772" /> +<TGConnectingPoint num="3" id="3773" /> +<TGConnectingPoint num="4" id="3774" /> +<TGConnectingPoint num="5" id="3775" /> +<TGConnectingPoint num="6" id="3776" /> +<TGConnectingPoint num="7" id="3777" /> +<TGConnectingPoint num="8" id="3778" /> +<TGConnectingPoint num="9" id="3779" /> +</COMPONENT> + +<COMPONENT type="5109" id="3791" > +<cdparam x="36" y="259" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Set timer" value="setTimer(ATST1,10)" /> +<TGConnectingPoint num="0" id="3781" /> +<TGConnectingPoint num="1" id="3782" /> +<TGConnectingPoint num="2" id="3783" /> +<TGConnectingPoint num="3" id="3784" /> +<TGConnectingPoint num="4" id="3785" /> +<TGConnectingPoint num="5" id="3786" /> +<TGConnectingPoint num="6" id="3787" /> +<TGConnectingPoint num="7" id="3788" /> +<TGConnectingPoint num="8" id="3789" /> +<TGConnectingPoint num="9" id="3790" /> +</COMPONENT> + +<COMPONENT type="5111" id="3802" > +<cdparam x="422" y="140" /> +<sizeparam width="103" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Reset timer" value="expire(ATST1)" /> +<TGConnectingPoint num="0" id="3792" /> +<TGConnectingPoint num="1" id="3793" /> +<TGConnectingPoint num="2" id="3794" /> +<TGConnectingPoint num="3" id="3795" /> +<TGConnectingPoint num="4" id="3796" /> +<TGConnectingPoint num="5" id="3797" /> +<TGConnectingPoint num="6" id="3798" /> +<TGConnectingPoint num="7" id="3799" /> +<TGConnectingPoint num="8" id="3800" /> +<TGConnectingPoint num="9" id="3801" /> +</COMPONENT> + +<COMPONENT type="5106" id="3843" > +<cdparam x="35" y="193" /> +<sizeparam width="103" height="42" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="SEND" /> +<TGConnectingPoint num="0" id="3803" /> +<TGConnectingPoint num="1" id="3804" /> +<TGConnectingPoint num="2" id="3805" /> +<TGConnectingPoint num="3" id="3806" /> +<TGConnectingPoint num="4" id="3807" /> +<TGConnectingPoint num="5" id="3808" /> +<TGConnectingPoint num="6" id="3809" /> +<TGConnectingPoint num="7" id="3810" /> +<TGConnectingPoint num="8" id="3811" /> +<TGConnectingPoint num="9" id="3812" /> +<TGConnectingPoint num="10" id="3813" /> +<TGConnectingPoint num="11" id="3814" /> +<TGConnectingPoint num="12" id="3815" /> +<TGConnectingPoint num="13" id="3816" /> +<TGConnectingPoint num="14" id="3817" /> +<TGConnectingPoint num="15" id="3818" /> +<TGConnectingPoint num="16" id="3819" /> +<TGConnectingPoint num="17" id="3820" /> +<TGConnectingPoint num="18" id="3821" /> +<TGConnectingPoint num="19" id="3822" /> +<TGConnectingPoint num="20" id="3823" /> +<TGConnectingPoint num="21" id="3824" /> +<TGConnectingPoint num="22" id="3825" /> +<TGConnectingPoint num="23" id="3826" /> +<TGConnectingPoint num="24" id="3827" /> +<TGConnectingPoint num="25" id="3828" /> +<TGConnectingPoint num="26" id="3829" /> +<TGConnectingPoint num="27" id="3830" /> +<TGConnectingPoint num="28" id="3831" /> +<TGConnectingPoint num="29" id="3832" /> +<TGConnectingPoint num="30" id="3833" /> +<TGConnectingPoint num="31" id="3834" /> +<TGConnectingPoint num="32" id="3835" /> +<TGConnectingPoint num="33" id="3836" /> +<TGConnectingPoint num="34" id="3837" /> +<TGConnectingPoint num="35" id="3838" /> +<TGConnectingPoint num="36" id="3839" /> +<TGConnectingPoint num="37" id="3840" /> +<TGConnectingPoint num="38" id="3841" /> +<TGConnectingPoint num="39" id="3842" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="3884" > +<cdparam x="569" y="302" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="CONNECTED" /> +<TGConnectingPoint num="0" id="3844" /> +<TGConnectingPoint num="1" id="3845" /> +<TGConnectingPoint num="2" id="3846" /> +<TGConnectingPoint num="3" id="3847" /> +<TGConnectingPoint num="4" id="3848" /> +<TGConnectingPoint num="5" id="3849" /> +<TGConnectingPoint num="6" id="3850" /> +<TGConnectingPoint num="7" id="3851" /> +<TGConnectingPoint num="8" id="3852" /> +<TGConnectingPoint num="9" id="3853" /> +<TGConnectingPoint num="10" id="3854" /> +<TGConnectingPoint num="11" id="3855" /> +<TGConnectingPoint num="12" id="3856" /> +<TGConnectingPoint num="13" id="3857" /> +<TGConnectingPoint num="14" id="3858" /> +<TGConnectingPoint num="15" id="3859" /> +<TGConnectingPoint num="16" id="3860" /> +<TGConnectingPoint num="17" id="3861" /> +<TGConnectingPoint num="18" id="3862" /> +<TGConnectingPoint num="19" id="3863" /> +<TGConnectingPoint num="20" id="3864" /> +<TGConnectingPoint num="21" id="3865" /> +<TGConnectingPoint num="22" id="3866" /> +<TGConnectingPoint num="23" id="3867" /> +<TGConnectingPoint num="24" id="3868" /> +<TGConnectingPoint num="25" id="3869" /> +<TGConnectingPoint num="26" id="3870" /> +<TGConnectingPoint num="27" id="3871" /> +<TGConnectingPoint num="28" id="3872" /> +<TGConnectingPoint num="29" id="3873" /> +<TGConnectingPoint num="30" id="3874" /> +<TGConnectingPoint num="31" id="3875" /> +<TGConnectingPoint num="32" id="3876" /> +<TGConnectingPoint num="33" id="3877" /> +<TGConnectingPoint num="34" id="3878" /> +<TGConnectingPoint num="35" id="3879" /> +<TGConnectingPoint num="36" id="3880" /> +<TGConnectingPoint num="37" id="3881" /> +<TGConnectingPoint num="38" id="3882" /> +<TGConnectingPoint num="39" id="3883" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="3895" > +<cdparam x="582" y="253" /> +<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconconf()" /> +<TGConnectingPoint num="0" id="3885" /> +<TGConnectingPoint num="1" id="3886" /> +<TGConnectingPoint num="2" id="3887" /> +<TGConnectingPoint num="3" id="3888" /> +<TGConnectingPoint num="4" id="3889" /> +<TGConnectingPoint num="5" id="3890" /> +<TGConnectingPoint num="6" id="3891" /> +<TGConnectingPoint num="7" id="3892" /> +<TGConnectingPoint num="8" id="3893" /> +<TGConnectingPoint num="9" id="3894" /> +</COMPONENT> + +<COMPONENT type="5104" id="3906" > +<cdparam x="598" y="149" /> +<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="CC()" /> +<TGConnectingPoint num="0" id="3896" /> +<TGConnectingPoint num="1" id="3897" /> +<TGConnectingPoint num="2" id="3898" /> +<TGConnectingPoint num="3" id="3899" /> +<TGConnectingPoint num="4" id="3900" /> +<TGConnectingPoint num="5" id="3901" /> +<TGConnectingPoint num="6" id="3902" /> +<TGConnectingPoint num="7" id="3903" /> +<TGConnectingPoint num="8" id="3904" /> +<TGConnectingPoint num="9" id="3905" /> +</COMPONENT> + +<COMPONENT type="5106" id="3947" > +<cdparam x="518" y="58" /> +<sizeparam width="117" height="51" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_CONF" /> +<TGConnectingPoint num="0" id="3907" /> +<TGConnectingPoint num="1" id="3908" /> +<TGConnectingPoint num="2" id="3909" /> +<TGConnectingPoint num="3" id="3910" /> +<TGConnectingPoint num="4" id="3911" /> +<TGConnectingPoint num="5" id="3912" /> +<TGConnectingPoint num="6" id="3913" /> +<TGConnectingPoint num="7" id="3914" /> +<TGConnectingPoint num="8" id="3915" /> +<TGConnectingPoint num="9" id="3916" /> +<TGConnectingPoint num="10" id="3917" /> +<TGConnectingPoint num="11" id="3918" /> +<TGConnectingPoint num="12" id="3919" /> +<TGConnectingPoint num="13" id="3920" /> +<TGConnectingPoint num="14" id="3921" /> +<TGConnectingPoint num="15" id="3922" /> +<TGConnectingPoint num="16" id="3923" /> +<TGConnectingPoint num="17" id="3924" /> +<TGConnectingPoint num="18" id="3925" /> +<TGConnectingPoint num="19" id="3926" /> +<TGConnectingPoint num="20" id="3927" /> +<TGConnectingPoint num="21" id="3928" /> +<TGConnectingPoint num="22" id="3929" /> +<TGConnectingPoint num="23" id="3930" /> +<TGConnectingPoint num="24" id="3931" /> +<TGConnectingPoint num="25" id="3932" /> +<TGConnectingPoint num="26" id="3933" /> +<TGConnectingPoint num="27" id="3934" /> +<TGConnectingPoint num="28" id="3935" /> +<TGConnectingPoint num="29" id="3936" /> +<TGConnectingPoint num="30" id="3937" /> +<TGConnectingPoint num="31" id="3938" /> +<TGConnectingPoint num="32" id="3939" /> +<TGConnectingPoint num="33" id="3940" /> +<TGConnectingPoint num="34" id="3941" /> +<TGConnectingPoint num="35" id="3942" /> +<TGConnectingPoint num="36" id="3943" /> +<TGConnectingPoint num="37" id="3944" /> +<TGConnectingPoint num="38" id="3945" /> +<TGConnectingPoint num="39" id="3946" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="3988" > +<cdparam x="32" y="351" /> +<sizeparam width="137" height="52" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_CONF" /> +<TGConnectingPoint num="0" id="3948" /> +<TGConnectingPoint num="1" id="3949" /> +<TGConnectingPoint num="2" id="3950" /> +<TGConnectingPoint num="3" id="3951" /> +<TGConnectingPoint num="4" id="3952" /> +<TGConnectingPoint num="5" id="3953" /> +<TGConnectingPoint num="6" id="3954" /> +<TGConnectingPoint num="7" id="3955" /> +<TGConnectingPoint num="8" id="3956" /> +<TGConnectingPoint num="9" id="3957" /> +<TGConnectingPoint num="10" id="3958" /> +<TGConnectingPoint num="11" id="3959" /> +<TGConnectingPoint num="12" id="3960" /> +<TGConnectingPoint num="13" id="3961" /> +<TGConnectingPoint num="14" id="3962" /> +<TGConnectingPoint num="15" id="3963" /> +<TGConnectingPoint num="16" id="3964" /> +<TGConnectingPoint num="17" id="3965" /> +<TGConnectingPoint num="18" id="3966" /> +<TGConnectingPoint num="19" id="3967" /> +<TGConnectingPoint num="20" id="3968" /> +<TGConnectingPoint num="21" id="3969" /> +<TGConnectingPoint num="22" id="3970" /> +<TGConnectingPoint num="23" id="3971" /> +<TGConnectingPoint num="24" id="3972" /> +<TGConnectingPoint num="25" id="3973" /> +<TGConnectingPoint num="26" id="3974" /> +<TGConnectingPoint num="27" id="3975" /> +<TGConnectingPoint num="28" id="3976" /> +<TGConnectingPoint num="29" id="3977" /> +<TGConnectingPoint num="30" id="3978" /> +<TGConnectingPoint num="31" id="3979" /> +<TGConnectingPoint num="32" id="3980" /> +<TGConnectingPoint num="33" id="3981" /> +<TGConnectingPoint num="34" id="3982" /> +<TGConnectingPoint num="35" id="3983" /> +<TGConnectingPoint num="36" id="3984" /> +<TGConnectingPoint num="37" id="3985" /> +<TGConnectingPoint num="38" id="3986" /> +<TGConnectingPoint num="39" id="3987" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="3999" > +<cdparam x="83" y="304" /> +<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="CR()" /> +<TGConnectingPoint num="0" id="3989" /> +<TGConnectingPoint num="1" id="3990" /> +<TGConnectingPoint num="2" id="3991" /> +<TGConnectingPoint num="3" id="3992" /> +<TGConnectingPoint num="4" id="3993" /> +<TGConnectingPoint num="5" id="3994" /> +<TGConnectingPoint num="6" id="3995" /> +<TGConnectingPoint num="7" id="3996" /> +<TGConnectingPoint num="8" id="3997" /> +<TGConnectingPoint num="9" id="3998" /> +</COMPONENT> + +<COMPONENT type="5104" id="4010" > +<cdparam x="47" y="137" /> +<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconreq()" /> +<TGConnectingPoint num="0" id="4000" /> +<TGConnectingPoint num="1" id="4001" /> +<TGConnectingPoint num="2" id="4002" /> +<TGConnectingPoint num="3" id="4003" /> +<TGConnectingPoint num="4" id="4004" /> +<TGConnectingPoint num="5" id="4005" /> +<TGConnectingPoint num="6" id="4006" /> +<TGConnectingPoint num="7" id="4007" /> +<TGConnectingPoint num="8" id="4008" /> +<TGConnectingPoint num="9" id="4009" /> +</COMPONENT> + +<COMPONENT type="5106" id="4051" > +<cdparam x="36" y="60" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="IDLE" /> +<TGConnectingPoint num="0" id="4011" /> +<TGConnectingPoint num="1" id="4012" /> +<TGConnectingPoint num="2" id="4013" /> +<TGConnectingPoint num="3" id="4014" /> +<TGConnectingPoint num="4" id="4015" /> +<TGConnectingPoint num="5" id="4016" /> +<TGConnectingPoint num="6" id="4017" /> +<TGConnectingPoint num="7" id="4018" /> +<TGConnectingPoint num="8" id="4019" /> +<TGConnectingPoint num="9" id="4020" /> +<TGConnectingPoint num="10" id="4021" /> +<TGConnectingPoint num="11" id="4022" /> +<TGConnectingPoint num="12" id="4023" /> +<TGConnectingPoint num="13" id="4024" /> +<TGConnectingPoint num="14" id="4025" /> +<TGConnectingPoint num="15" id="4026" /> +<TGConnectingPoint num="16" id="4027" /> +<TGConnectingPoint num="17" id="4028" /> +<TGConnectingPoint num="18" id="4029" /> +<TGConnectingPoint num="19" id="4030" /> +<TGConnectingPoint num="20" id="4031" /> +<TGConnectingPoint num="21" id="4032" /> +<TGConnectingPoint num="22" id="4033" /> +<TGConnectingPoint num="23" id="4034" /> +<TGConnectingPoint num="24" id="4035" /> +<TGConnectingPoint num="25" id="4036" /> +<TGConnectingPoint num="26" id="4037" /> +<TGConnectingPoint num="27" id="4038" /> +<TGConnectingPoint num="28" id="4039" /> +<TGConnectingPoint num="29" id="4040" /> +<TGConnectingPoint num="30" id="4041" /> +<TGConnectingPoint num="31" id="4042" /> +<TGConnectingPoint num="32" id="4043" /> +<TGConnectingPoint num="33" id="4044" /> +<TGConnectingPoint num="34" id="4045" /> +<TGConnectingPoint num="35" id="4046" /> +<TGConnectingPoint num="36" id="4047" /> +<TGConnectingPoint num="37" id="4048" /> +<TGConnectingPoint num="38" id="4049" /> +<TGConnectingPoint num="39" id="4050" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="4053" > +<cdparam x="60" y="16" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="4052" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="GroundCommunication" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="4060" > +<cdparam x="483" y="115" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4059" /> +<P1 x="490" y="122" id="4362" /> +<P2 x="490" y="143" id="4293" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4058" > +<father id="4060" num="0" /> +<cdparam x="486" y="129" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4054" /> +<TGConnectingPoint num="1" id="4055" /> +<TGConnectingPoint num="2" id="4056" /> +<TGConnectingPoint num="3" id="4057" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4067" > +<cdparam x="492" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4066" /> +<P1 x="490" y="173" id="4294" /> +<P2 x="490" y="197" id="4304" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4065" > +<father id="4067" num="0" /> +<cdparam x="491" y="186" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4061" /> +<TGConnectingPoint num="1" id="4062" /> +<TGConnectingPoint num="2" id="4063" /> +<TGConnectingPoint num="3" id="4064" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4074" > +<cdparam x="490" y="193" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4073" /> +<P1 x="490" y="227" id="4305" /> +<P2 x="490" y="255" id="4316" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4072" > +<father id="4074" num="0" /> +<cdparam x="486" y="224" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4068" /> +<TGConnectingPoint num="1" id="4069" /> +<TGConnectingPoint num="2" id="4070" /> +<TGConnectingPoint num="3" id="4071" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4081" > +<cdparam x="86" y="48" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="4080" /> +<P1 x="75" y="47" id="4291" /> +<P2 x="87" y="72" id="4251" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4079" > +<father id="4081" num="0" /> +<cdparam x="86" y="88" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4075" /> +<TGConnectingPoint num="1" id="4076" /> +<TGConnectingPoint num="2" id="4077" /> +<TGConnectingPoint num="3" id="4078" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4088" > +<cdparam x="99" y="122" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="4087" /> +<P1 x="99" y="122" id="4280" /> +<P2 x="99" y="151" id="4239" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4086" > +<father id="4088" num="0" /> +<cdparam x="99" y="162" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4082" /> +<TGConnectingPoint num="1" id="4083" /> +<TGConnectingPoint num="2" id="4084" /> +<TGConnectingPoint num="3" id="4085" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4095" > +<cdparam x="99" y="181" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="4094" /> +<P1 x="99" y="181" id="4240" /> +<P2 x="99" y="207" id="4228" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4093" > +<father id="4095" num="0" /> +<cdparam x="99" y="221" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4089" /> +<TGConnectingPoint num="1" id="4090" /> +<TGConnectingPoint num="2" id="4091" /> +<TGConnectingPoint num="3" id="4092" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4102" > +<cdparam x="99" y="237" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="4101" /> +<P1 x="99" y="237" id="4229" /> +<P2 x="99" y="262" id="4188" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4100" > +<father id="4102" num="0" /> +<cdparam x="99" y="277" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4096" /> +<TGConnectingPoint num="1" id="4097" /> +<TGConnectingPoint num="2" id="4098" /> +<TGConnectingPoint num="3" id="4099" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4109" > +<cdparam x="327" y="119" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="4108" /> +<P1 x="327" y="119" id="4176" /> +<P2 x="327" y="145" id="4135" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4107" > +<father id="4109" num="0" /> +<cdparam x="327" y="159" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4103" /> +<TGConnectingPoint num="1" id="4104" /> +<TGConnectingPoint num="2" id="4105" /> +<TGConnectingPoint num="3" id="4106" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4116" > +<cdparam x="327" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="4115" /> +<P1 x="327" y="175" id="4136" /> +<P2 x="327" y="204" id="4124" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4114" > +<father id="4116" num="0" /> +<cdparam x="327" y="215" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4110" /> +<TGConnectingPoint num="1" id="4111" /> +<TGConnectingPoint num="2" id="4112" /> +<TGConnectingPoint num="3" id="4113" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4123" > +<cdparam x="327" y="234" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4122" /> +<P1 x="327" y="234" id="4125" /> +<P2 x="327" y="266" id="4398" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4121" > +<father id="4123" num="0" /> +<cdparam x="331" y="251" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4117" /> +<TGConnectingPoint num="1" id="4118" /> +<TGConnectingPoint num="2" id="4119" /> +<TGConnectingPoint num="3" id="4120" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="4134" > +<cdparam x="310" y="209" /> +<sizeparam width="34" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="CC()" /> +<TGConnectingPoint num="0" id="4124" /> +<TGConnectingPoint num="1" id="4125" /> +<TGConnectingPoint num="2" id="4126" /> +<TGConnectingPoint num="3" id="4127" /> +<TGConnectingPoint num="4" id="4128" /> +<TGConnectingPoint num="5" id="4129" /> +<TGConnectingPoint num="6" id="4130" /> +<TGConnectingPoint num="7" id="4131" /> +<TGConnectingPoint num="8" id="4132" /> +<TGConnectingPoint num="9" id="4133" /> +</COMPONENT> + +<COMPONENT type="5104" id="4145" > +<cdparam x="285" y="150" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconresp()" /> +<TGConnectingPoint num="0" id="4135" /> +<TGConnectingPoint num="1" id="4136" /> +<TGConnectingPoint num="2" id="4137" /> +<TGConnectingPoint num="3" id="4138" /> +<TGConnectingPoint num="4" id="4139" /> +<TGConnectingPoint num="5" id="4140" /> +<TGConnectingPoint num="6" id="4141" /> +<TGConnectingPoint num="7" id="4142" /> +<TGConnectingPoint num="8" id="4143" /> +<TGConnectingPoint num="9" id="4144" /> +</COMPONENT> + +<COMPONENT type="5106" id="4186" > +<cdparam x="254" y="69" /> +<sizeparam width="119" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_RESP" /> +<TGConnectingPoint num="0" id="4146" /> +<TGConnectingPoint num="1" id="4147" /> +<TGConnectingPoint num="2" id="4148" /> +<TGConnectingPoint num="3" id="4149" /> +<TGConnectingPoint num="4" id="4150" /> +<TGConnectingPoint num="5" id="4151" /> +<TGConnectingPoint num="6" id="4152" /> +<TGConnectingPoint num="7" id="4153" /> +<TGConnectingPoint num="8" id="4154" /> +<TGConnectingPoint num="9" id="4155" /> +<TGConnectingPoint num="10" id="4156" /> +<TGConnectingPoint num="11" id="4157" /> +<TGConnectingPoint num="12" id="4158" /> +<TGConnectingPoint num="13" id="4159" /> +<TGConnectingPoint num="14" id="4160" /> +<TGConnectingPoint num="15" id="4161" /> +<TGConnectingPoint num="16" id="4162" /> +<TGConnectingPoint num="17" id="4163" /> +<TGConnectingPoint num="18" id="4164" /> +<TGConnectingPoint num="19" id="4165" /> +<TGConnectingPoint num="20" id="4166" /> +<TGConnectingPoint num="21" id="4167" /> +<TGConnectingPoint num="22" id="4168" /> +<TGConnectingPoint num="23" id="4169" /> +<TGConnectingPoint num="24" id="4170" /> +<TGConnectingPoint num="25" id="4171" /> +<TGConnectingPoint num="26" id="4172" /> +<TGConnectingPoint num="27" id="4173" /> +<TGConnectingPoint num="28" id="4174" /> +<TGConnectingPoint num="29" id="4175" /> +<TGConnectingPoint num="30" id="4176" /> +<TGConnectingPoint num="31" id="4177" /> +<TGConnectingPoint num="32" id="4178" /> +<TGConnectingPoint num="33" id="4179" /> +<TGConnectingPoint num="34" id="4180" /> +<TGConnectingPoint num="35" id="4181" /> +<TGConnectingPoint num="36" id="4182" /> +<TGConnectingPoint num="37" id="4183" /> +<TGConnectingPoint num="38" id="4184" /> +<TGConnectingPoint num="39" id="4185" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="4227" > +<cdparam x="39" y="262" /> +<sizeparam width="121" height="49" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WAIT_FOR_RESP" /> +<TGConnectingPoint num="0" id="4187" /> +<TGConnectingPoint num="1" id="4188" /> +<TGConnectingPoint num="2" id="4189" /> +<TGConnectingPoint num="3" id="4190" /> +<TGConnectingPoint num="4" id="4191" /> +<TGConnectingPoint num="5" id="4192" /> +<TGConnectingPoint num="6" id="4193" /> +<TGConnectingPoint num="7" id="4194" /> +<TGConnectingPoint num="8" id="4195" /> +<TGConnectingPoint num="9" id="4196" /> +<TGConnectingPoint num="10" id="4197" /> +<TGConnectingPoint num="11" id="4198" /> +<TGConnectingPoint num="12" id="4199" /> +<TGConnectingPoint num="13" id="4200" /> +<TGConnectingPoint num="14" id="4201" /> +<TGConnectingPoint num="15" id="4202" /> +<TGConnectingPoint num="16" id="4203" /> +<TGConnectingPoint num="17" id="4204" /> +<TGConnectingPoint num="18" id="4205" /> +<TGConnectingPoint num="19" id="4206" /> +<TGConnectingPoint num="20" id="4207" /> +<TGConnectingPoint num="21" id="4208" /> +<TGConnectingPoint num="22" id="4209" /> +<TGConnectingPoint num="23" id="4210" /> +<TGConnectingPoint num="24" id="4211" /> +<TGConnectingPoint num="25" id="4212" /> +<TGConnectingPoint num="26" id="4213" /> +<TGConnectingPoint num="27" id="4214" /> +<TGConnectingPoint num="28" id="4215" /> +<TGConnectingPoint num="29" id="4216" /> +<TGConnectingPoint num="30" id="4217" /> +<TGConnectingPoint num="31" id="4218" /> +<TGConnectingPoint num="32" id="4219" /> +<TGConnectingPoint num="33" id="4220" /> +<TGConnectingPoint num="34" id="4221" /> +<TGConnectingPoint num="35" id="4222" /> +<TGConnectingPoint num="36" id="4223" /> +<TGConnectingPoint num="37" id="4224" /> +<TGConnectingPoint num="38" id="4225" /> +<TGConnectingPoint num="39" id="4226" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="4238" > +<cdparam x="65" y="212" /> +<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconind()" /> +<TGConnectingPoint num="0" id="4228" /> +<TGConnectingPoint num="1" id="4229" /> +<TGConnectingPoint num="2" id="4230" /> +<TGConnectingPoint num="3" id="4231" /> +<TGConnectingPoint num="4" id="4232" /> +<TGConnectingPoint num="5" id="4233" /> +<TGConnectingPoint num="6" id="4234" /> +<TGConnectingPoint num="7" id="4235" /> +<TGConnectingPoint num="8" id="4236" /> +<TGConnectingPoint num="9" id="4237" /> +</COMPONENT> + +<COMPONENT type="5104" id="4249" > +<cdparam x="78" y="156" /> +<sizeparam width="42" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="CR()" /> +<TGConnectingPoint num="0" id="4239" /> +<TGConnectingPoint num="1" id="4240" /> +<TGConnectingPoint num="2" id="4241" /> +<TGConnectingPoint num="3" id="4242" /> +<TGConnectingPoint num="4" id="4243" /> +<TGConnectingPoint num="5" id="4244" /> +<TGConnectingPoint num="6" id="4245" /> +<TGConnectingPoint num="7" id="4246" /> +<TGConnectingPoint num="8" id="4247" /> +<TGConnectingPoint num="9" id="4248" /> +</COMPONENT> + +<COMPONENT type="5106" id="4290" > +<cdparam x="37" y="72" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="IDLE" /> +<TGConnectingPoint num="0" id="4250" /> +<TGConnectingPoint num="1" id="4251" /> +<TGConnectingPoint num="2" id="4252" /> +<TGConnectingPoint num="3" id="4253" /> +<TGConnectingPoint num="4" id="4254" /> +<TGConnectingPoint num="5" id="4255" /> +<TGConnectingPoint num="6" id="4256" /> +<TGConnectingPoint num="7" id="4257" /> +<TGConnectingPoint num="8" id="4258" /> +<TGConnectingPoint num="9" id="4259" /> +<TGConnectingPoint num="10" id="4260" /> +<TGConnectingPoint num="11" id="4261" /> +<TGConnectingPoint num="12" id="4262" /> +<TGConnectingPoint num="13" id="4263" /> +<TGConnectingPoint num="14" id="4264" /> +<TGConnectingPoint num="15" id="4265" /> +<TGConnectingPoint num="16" id="4266" /> +<TGConnectingPoint num="17" id="4267" /> +<TGConnectingPoint num="18" id="4268" /> +<TGConnectingPoint num="19" id="4269" /> +<TGConnectingPoint num="20" id="4270" /> +<TGConnectingPoint num="21" id="4271" /> +<TGConnectingPoint num="22" id="4272" /> +<TGConnectingPoint num="23" id="4273" /> +<TGConnectingPoint num="24" id="4274" /> +<TGConnectingPoint num="25" id="4275" /> +<TGConnectingPoint num="26" id="4276" /> +<TGConnectingPoint num="27" id="4277" /> +<TGConnectingPoint num="28" id="4278" /> +<TGConnectingPoint num="29" id="4279" /> +<TGConnectingPoint num="30" id="4280" /> +<TGConnectingPoint num="31" id="4281" /> +<TGConnectingPoint num="32" id="4282" /> +<TGConnectingPoint num="33" id="4283" /> +<TGConnectingPoint num="34" id="4284" /> +<TGConnectingPoint num="35" id="4285" /> +<TGConnectingPoint num="36" id="4286" /> +<TGConnectingPoint num="37" id="4287" /> +<TGConnectingPoint num="38" id="4288" /> +<TGConnectingPoint num="39" id="4289" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="4292" > +<cdparam x="68" y="27" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="4291" /> +</COMPONENT> + +<COMPONENT type="5104" id="4303" > +<cdparam x="469" y="148" /> +<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="DR()" /> +<TGConnectingPoint num="0" id="4293" /> +<TGConnectingPoint num="1" id="4294" /> +<TGConnectingPoint num="2" id="4295" /> +<TGConnectingPoint num="3" id="4296" /> +<TGConnectingPoint num="4" id="4297" /> +<TGConnectingPoint num="5" id="4298" /> +<TGConnectingPoint num="6" id="4299" /> +<TGConnectingPoint num="7" id="4300" /> +<TGConnectingPoint num="8" id="4301" /> +<TGConnectingPoint num="9" id="4302" /> +</COMPONENT> + +<COMPONENT type="5103" id="4314" > +<cdparam x="437" y="202" /> +<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INerror_ground()" /> +<TGConnectingPoint num="0" id="4304" /> +<TGConnectingPoint num="1" id="4305" /> +<TGConnectingPoint num="2" id="4306" /> +<TGConnectingPoint num="3" id="4307" /> +<TGConnectingPoint num="4" id="4308" /> +<TGConnectingPoint num="5" id="4309" /> +<TGConnectingPoint num="6" id="4310" /> +<TGConnectingPoint num="7" id="4311" /> +<TGConnectingPoint num="8" id="4312" /> +<TGConnectingPoint num="9" id="4313" /> +</COMPONENT> + +<COMPONENT type="5106" id="4355" > +<cdparam x="440" y="255" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="ERROR" /> +<TGConnectingPoint num="0" id="4315" /> +<TGConnectingPoint num="1" id="4316" /> +<TGConnectingPoint num="2" id="4317" /> +<TGConnectingPoint num="3" id="4318" /> +<TGConnectingPoint num="4" id="4319" /> +<TGConnectingPoint num="5" id="4320" /> +<TGConnectingPoint num="6" id="4321" /> +<TGConnectingPoint num="7" id="4322" /> +<TGConnectingPoint num="8" id="4323" /> +<TGConnectingPoint num="9" id="4324" /> +<TGConnectingPoint num="10" id="4325" /> +<TGConnectingPoint num="11" id="4326" /> +<TGConnectingPoint num="12" id="4327" /> +<TGConnectingPoint num="13" id="4328" /> +<TGConnectingPoint num="14" id="4329" /> +<TGConnectingPoint num="15" id="4330" /> +<TGConnectingPoint num="16" id="4331" /> +<TGConnectingPoint num="17" id="4332" /> +<TGConnectingPoint num="18" id="4333" /> +<TGConnectingPoint num="19" id="4334" /> +<TGConnectingPoint num="20" id="4335" /> +<TGConnectingPoint num="21" id="4336" /> +<TGConnectingPoint num="22" id="4337" /> +<TGConnectingPoint num="23" id="4338" /> +<TGConnectingPoint num="24" id="4339" /> +<TGConnectingPoint num="25" id="4340" /> +<TGConnectingPoint num="26" id="4341" /> +<TGConnectingPoint num="27" id="4342" /> +<TGConnectingPoint num="28" id="4343" /> +<TGConnectingPoint num="29" id="4344" /> +<TGConnectingPoint num="30" id="4345" /> +<TGConnectingPoint num="31" id="4346" /> +<TGConnectingPoint num="32" id="4347" /> +<TGConnectingPoint num="33" id="4348" /> +<TGConnectingPoint num="34" id="4349" /> +<TGConnectingPoint num="35" id="4350" /> +<TGConnectingPoint num="36" id="4351" /> +<TGConnectingPoint num="37" id="4352" /> +<TGConnectingPoint num="38" id="4353" /> +<TGConnectingPoint num="39" id="4354" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="4396" > +<cdparam x="440" y="63" /> +<sizeparam width="100" height="59" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="CONNECTED" /> +<TGConnectingPoint num="0" id="4356" /> +<TGConnectingPoint num="1" id="4357" /> +<TGConnectingPoint num="2" id="4358" /> +<TGConnectingPoint num="3" id="4359" /> +<TGConnectingPoint num="4" id="4360" /> +<TGConnectingPoint num="5" id="4361" /> +<TGConnectingPoint num="6" id="4362" /> +<TGConnectingPoint num="7" id="4363" /> +<TGConnectingPoint num="8" id="4364" /> +<TGConnectingPoint num="9" id="4365" /> +<TGConnectingPoint num="10" id="4366" /> +<TGConnectingPoint num="11" id="4367" /> +<TGConnectingPoint num="12" id="4368" /> +<TGConnectingPoint num="13" id="4369" /> +<TGConnectingPoint num="14" id="4370" /> +<TGConnectingPoint num="15" id="4371" /> +<TGConnectingPoint num="16" id="4372" /> +<TGConnectingPoint num="17" id="4373" /> +<TGConnectingPoint num="18" id="4374" /> +<TGConnectingPoint num="19" id="4375" /> +<TGConnectingPoint num="20" id="4376" /> +<TGConnectingPoint num="21" id="4377" /> +<TGConnectingPoint num="22" id="4378" /> +<TGConnectingPoint num="23" id="4379" /> +<TGConnectingPoint num="24" id="4380" /> +<TGConnectingPoint num="25" id="4381" /> +<TGConnectingPoint num="26" id="4382" /> +<TGConnectingPoint num="27" id="4383" /> +<TGConnectingPoint num="28" id="4384" /> +<TGConnectingPoint num="29" id="4385" /> +<TGConnectingPoint num="30" id="4386" /> +<TGConnectingPoint num="31" id="4387" /> +<TGConnectingPoint num="32" id="4388" /> +<TGConnectingPoint num="33" id="4389" /> +<TGConnectingPoint num="34" id="4390" /> +<TGConnectingPoint num="35" id="4391" /> +<TGConnectingPoint num="36" id="4392" /> +<TGConnectingPoint num="37" id="4393" /> +<TGConnectingPoint num="38" id="4394" /> +<TGConnectingPoint num="39" id="4395" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="4437" > +<cdparam x="277" y="266" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="CONNECTED" /> +<TGConnectingPoint num="0" id="4397" /> +<TGConnectingPoint num="1" id="4398" /> +<TGConnectingPoint num="2" id="4399" /> +<TGConnectingPoint num="3" id="4400" /> +<TGConnectingPoint num="4" id="4401" /> +<TGConnectingPoint num="5" id="4402" /> +<TGConnectingPoint num="6" id="4403" /> +<TGConnectingPoint num="7" id="4404" /> +<TGConnectingPoint num="8" id="4405" /> +<TGConnectingPoint num="9" id="4406" /> +<TGConnectingPoint num="10" id="4407" /> +<TGConnectingPoint num="11" id="4408" /> +<TGConnectingPoint num="12" id="4409" /> +<TGConnectingPoint num="13" id="4410" /> +<TGConnectingPoint num="14" id="4411" /> +<TGConnectingPoint num="15" id="4412" /> +<TGConnectingPoint num="16" id="4413" /> +<TGConnectingPoint num="17" id="4414" /> +<TGConnectingPoint num="18" id="4415" /> +<TGConnectingPoint num="19" id="4416" /> +<TGConnectingPoint num="20" id="4417" /> +<TGConnectingPoint num="21" id="4418" /> +<TGConnectingPoint num="22" id="4419" /> +<TGConnectingPoint num="23" id="4420" /> +<TGConnectingPoint num="24" id="4421" /> +<TGConnectingPoint num="25" id="4422" /> +<TGConnectingPoint num="26" id="4423" /> +<TGConnectingPoint num="27" id="4424" /> +<TGConnectingPoint num="28" id="4425" /> +<TGConnectingPoint num="29" id="4426" /> +<TGConnectingPoint num="30" id="4427" /> +<TGConnectingPoint num="31" id="4428" /> +<TGConnectingPoint num="32" id="4429" /> +<TGConnectingPoint num="33" id="4430" /> +<TGConnectingPoint num="34" id="4431" /> +<TGConnectingPoint num="35" id="4432" /> +<TGConnectingPoint num="36" id="4433" /> +<TGConnectingPoint num="37" id="4434" /> +<TGConnectingPoint num="38" id="4435" /> +<TGConnectingPoint num="39" id="4436" /> +<extraparam> +</extraparam> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Controller" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="4452" > +<cdparam x="374" y="197" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4447" /> +<TGConnectingPoint num="1" id="4448" /> +<TGConnectingPoint num="2" id="4449" /> +<TGConnectingPoint num="3" id="4450" /> +<TGConnectingPoint num="4" id="4451" /> +<P1 x="374" y="197" id="4510" /> +<P2 x="248" y="96" id="4561" /> +<Point x="374" y="212" /> +<Point x="441" y="212" /> +<Point x="441" y="90" /> +<Point x="274" y="90" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4438" > +<father id="4452" num="0" /> +<cdparam x="374" y="212" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4439" > +<father id="4452" num="1" /> +<cdparam x="441" y="212" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4440" > +<father id="4452" num="2" /> +<cdparam x="441" y="90" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4441" > +<father id="4452" num="3" /> +<cdparam x="274" y="90" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4446" > +<father id="4452" num="4" /> +<cdparam x="311" y="146" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4442" /> +<TGConnectingPoint num="1" id="4443" /> +<TGConnectingPoint num="2" id="4444" /> +<TGConnectingPoint num="3" id="4445" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4461" > +<cdparam x="261" y="102" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4459" /> +<TGConnectingPoint num="1" id="4460" /> +<P1 x="261" y="102" id="4564" /> +<P2 x="374" y="167" id="4509" /> +<Point x="374" y="102" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4453" > +<father id="4461" num="0" /> +<cdparam x="374" y="102" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4458" > +<father id="4461" num="1" /> +<cdparam x="321" y="99" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4454" /> +<TGConnectingPoint num="1" id="4455" /> +<TGConnectingPoint num="2" id="4456" /> +<TGConnectingPoint num="3" id="4457" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4474" > +<cdparam x="153" y="198" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4470" /> +<TGConnectingPoint num="1" id="4471" /> +<TGConnectingPoint num="2" id="4472" /> +<TGConnectingPoint num="3" id="4473" /> +<P1 x="153" y="198" id="4532" /> +<P2 x="261" y="114" id="4565" /> +<Point x="153" y="216" /> +<Point x="309" y="216" /> +<Point x="309" y="114" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4462" > +<father id="4474" num="0" /> +<cdparam x="153" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4463" > +<father id="4474" num="1" /> +<cdparam x="309" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4464" > +<father id="4474" num="2" /> +<cdparam x="309" y="114" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4469" > +<father id="4474" num="3" /> +<cdparam x="153" y="238" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4465" /> +<TGConnectingPoint num="1" id="4466" /> +<TGConnectingPoint num="2" id="4467" /> +<TGConnectingPoint num="3" id="4468" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4487" > +<cdparam x="247" y="197" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4483" /> +<TGConnectingPoint num="1" id="4484" /> +<TGConnectingPoint num="2" id="4485" /> +<TGConnectingPoint num="3" id="4486" /> +<P1 x="247" y="197" id="4521" /> +<P2 x="261" y="133" id="4555" /> +<Point x="247" y="207" /> +<Point x="298" y="207" /> +<Point x="298" y="133" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4475" > +<father id="4487" num="0" /> +<cdparam x="247" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4476" > +<father id="4487" num="1" /> +<cdparam x="298" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4477" > +<father id="4487" num="2" /> +<cdparam x="298" y="133" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4482" > +<father id="4487" num="3" /> +<cdparam x="247" y="237" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4478" /> +<TGConnectingPoint num="1" id="4479" /> +<TGConnectingPoint num="2" id="4480" /> +<TGConnectingPoint num="3" id="4481" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4494" > +<cdparam x="186" y="62" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="4493" /> +<P1 x="186" y="62" id="4583" /> +<P2 x="211" y="96" id="4543" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4492" > +<father id="4494" num="0" /> +<cdparam x="211" y="104" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4488" /> +<TGConnectingPoint num="1" id="4489" /> +<TGConnectingPoint num="2" id="4490" /> +<TGConnectingPoint num="3" id="4491" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4501" > +<cdparam x="161" y="146" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="4500" /> +<P1 x="186" y="146" id="4556" /> +<P2 x="153" y="168" id="4531" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4499" > +<father id="4501" num="0" /> +<cdparam x="161" y="186" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4495" /> +<TGConnectingPoint num="1" id="4496" /> +<TGConnectingPoint num="2" id="4497" /> +<TGConnectingPoint num="3" id="4498" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4508" > +<cdparam x="211" y="201" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="4507" /> +<P1 x="236" y="146" id="4557" /> +<P2 x="247" y="167" id="4520" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4506" > +<father id="4508" num="0" /> +<cdparam x="211" y="241" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4502" /> +<TGConnectingPoint num="1" id="4503" /> +<TGConnectingPoint num="2" id="4504" /> +<TGConnectingPoint num="3" id="4505" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="4519" > +<cdparam x="317" y="172" /> +<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INerror_ground()" /> +<TGConnectingPoint num="0" id="4509" /> +<TGConnectingPoint num="1" id="4510" /> +<TGConnectingPoint num="2" id="4511" /> +<TGConnectingPoint num="3" id="4512" /> +<TGConnectingPoint num="4" id="4513" /> +<TGConnectingPoint num="5" id="4514" /> +<TGConnectingPoint num="6" id="4515" /> +<TGConnectingPoint num="7" id="4516" /> +<TGConnectingPoint num="8" id="4517" /> +<TGConnectingPoint num="9" id="4518" /> +</COMPONENT> + +<COMPONENT type="5103" id="4530" > +<cdparam x="209" y="172" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconresp()" /> +<TGConnectingPoint num="0" id="4520" /> +<TGConnectingPoint num="1" id="4521" /> +<TGConnectingPoint num="2" id="4522" /> +<TGConnectingPoint num="3" id="4523" /> +<TGConnectingPoint num="4" id="4524" /> +<TGConnectingPoint num="5" id="4525" /> +<TGConnectingPoint num="6" id="4526" /> +<TGConnectingPoint num="7" id="4527" /> +<TGConnectingPoint num="8" id="4528" /> +<TGConnectingPoint num="9" id="4529" /> +</COMPONENT> + +<COMPONENT type="5104" id="4541" > +<cdparam x="115" y="173" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconind()" /> +<TGConnectingPoint num="0" id="4531" /> +<TGConnectingPoint num="1" id="4532" /> +<TGConnectingPoint num="2" id="4533" /> +<TGConnectingPoint num="3" id="4534" /> +<TGConnectingPoint num="4" id="4535" /> +<TGConnectingPoint num="5" id="4536" /> +<TGConnectingPoint num="6" id="4537" /> +<TGConnectingPoint num="7" id="4538" /> +<TGConnectingPoint num="8" id="4539" /> +<TGConnectingPoint num="9" id="4540" /> +</COMPONENT> + +<COMPONENT type="5106" id="4582" > +<cdparam x="161" y="96" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="ACTIVE" /> +<TGConnectingPoint num="0" id="4542" /> +<TGConnectingPoint num="1" id="4543" /> +<TGConnectingPoint num="2" id="4544" /> +<TGConnectingPoint num="3" id="4545" /> +<TGConnectingPoint num="4" id="4546" /> +<TGConnectingPoint num="5" id="4547" /> +<TGConnectingPoint num="6" id="4548" /> +<TGConnectingPoint num="7" id="4549" /> +<TGConnectingPoint num="8" id="4550" /> +<TGConnectingPoint num="9" id="4551" /> +<TGConnectingPoint num="10" id="4552" /> +<TGConnectingPoint num="11" id="4553" /> +<TGConnectingPoint num="12" id="4554" /> +<TGConnectingPoint num="13" id="4555" /> +<TGConnectingPoint num="14" id="4556" /> +<TGConnectingPoint num="15" id="4557" /> +<TGConnectingPoint num="16" id="4558" /> +<TGConnectingPoint num="17" id="4559" /> +<TGConnectingPoint num="18" id="4560" /> +<TGConnectingPoint num="19" id="4561" /> +<TGConnectingPoint num="20" id="4562" /> +<TGConnectingPoint num="21" id="4563" /> +<TGConnectingPoint num="22" id="4564" /> +<TGConnectingPoint num="23" id="4565" /> +<TGConnectingPoint num="24" id="4566" /> +<TGConnectingPoint num="25" id="4567" /> +<TGConnectingPoint num="26" id="4568" /> +<TGConnectingPoint num="27" id="4569" /> +<TGConnectingPoint num="28" id="4570" /> +<TGConnectingPoint num="29" id="4571" /> +<TGConnectingPoint num="30" id="4572" /> +<TGConnectingPoint num="31" id="4573" /> +<TGConnectingPoint num="32" id="4574" /> +<TGConnectingPoint num="33" id="4575" /> +<TGConnectingPoint num="34" id="4576" /> +<TGConnectingPoint num="35" id="4577" /> +<TGConnectingPoint num="36" id="4578" /> +<TGConnectingPoint num="37" id="4579" /> +<TGConnectingPoint num="38" id="4580" /> +<TGConnectingPoint num="39" id="4581" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="4584" > +<cdparam x="179" y="42" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="4583" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Pilot" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="4597" > +<cdparam x="261" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4593" /> +<TGConnectingPoint num="1" id="4594" /> +<TGConnectingPoint num="2" id="4595" /> +<TGConnectingPoint num="3" id="4596" /> +<P1 x="271" y="165" id="4653" /> +<P2 x="216" y="109" id="4714" /> +<Point x="271" y="173" /> +<Point x="320" y="173" /> +<Point x="320" y="109" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4585" > +<father id="4597" num="0" /> +<cdparam x="271" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4586" > +<father id="4597" num="1" /> +<cdparam x="320" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4587" > +<father id="4597" num="2" /> +<cdparam x="320" y="109" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4592" > +<father id="4597" num="3" /> +<cdparam x="238" y="137" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4588" /> +<TGConnectingPoint num="1" id="4589" /> +<TGConnectingPoint num="2" id="4590" /> +<TGConnectingPoint num="3" id="4591" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4610" > +<cdparam x="79" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4606" /> +<TGConnectingPoint num="1" id="4607" /> +<TGConnectingPoint num="2" id="4608" /> +<TGConnectingPoint num="3" id="4609" /> +<P1 x="79" y="166" id="4675" /> +<P2 x="216" y="78" id="4698" /> +<Point x="79" y="189" /> +<Point x="341" y="189" /> +<Point x="341" y="78" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4598" > +<father id="4610" num="0" /> +<cdparam x="79" y="189" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4599" > +<father id="4610" num="1" /> +<cdparam x="341" y="189" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4600" > +<father id="4610" num="2" /> +<cdparam x="341" y="78" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4605" > +<father id="4610" num="3" /> +<cdparam x="79" y="206" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4601" /> +<TGConnectingPoint num="1" id="4602" /> +<TGConnectingPoint num="2" id="4603" /> +<TGConnectingPoint num="3" id="4604" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4623" > +<cdparam x="177" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4619" /> +<TGConnectingPoint num="1" id="4620" /> +<TGConnectingPoint num="2" id="4621" /> +<TGConnectingPoint num="3" id="4622" /> +<P1 x="177" y="166" id="4664" /> +<P2 x="216" y="91" id="4691" /> +<Point x="177" y="183" /> +<Point x="330" y="183" /> +<Point x="330" y="91" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4611" > +<father id="4623" num="0" /> +<cdparam x="177" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4612" > +<father id="4623" num="1" /> +<cdparam x="330" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4613" > +<father id="4623" num="2" /> +<cdparam x="330" y="91" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="4618" > +<father id="4623" num="3" /> +<cdparam x="177" y="206" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4614" /> +<TGConnectingPoint num="1" id="4615" /> +<TGConnectingPoint num="2" id="4616" /> +<TGConnectingPoint num="3" id="4617" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4630" > +<cdparam x="165" y="44" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="4629" /> +<P1 x="165" y="44" id="4685" /> +<P2 x="166" y="66" id="4688" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4628" > +<father id="4630" num="0" /> +<cdparam x="165" y="84" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4624" /> +<TGConnectingPoint num="1" id="4625" /> +<TGConnectingPoint num="2" id="4626" /> +<TGConnectingPoint num="3" id="4627" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4637" > +<cdparam x="178" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="4636" /> +<P1 x="128" y="116" id="4715" /> +<P2 x="79" y="136" id="4674" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4635" > +<father id="4637" num="0" /> +<cdparam x="178" y="156" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4631" /> +<TGConnectingPoint num="1" id="4632" /> +<TGConnectingPoint num="2" id="4633" /> +<TGConnectingPoint num="3" id="4634" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4644" > +<cdparam x="178" y="168" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="4643" /> +<P1 x="166" y="116" id="4693" /> +<P2 x="177" y="136" id="4663" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4642" > +<father id="4644" num="0" /> +<cdparam x="178" y="208" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4638" /> +<TGConnectingPoint num="1" id="4639" /> +<TGConnectingPoint num="2" id="4640" /> +<TGConnectingPoint num="3" id="4641" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="4651" > +<cdparam x="216" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="4650" /> +<P1 x="216" y="116" id="4694" /> +<P2 x="271" y="135" id="4652" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="4649" > +<father id="4651" num="0" /> +<cdparam x="246" y="129" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="4645" /> +<TGConnectingPoint num="1" id="4646" /> +<TGConnectingPoint num="2" id="4647" /> +<TGConnectingPoint num="3" id="4648" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="4662" > +<cdparam x="238" y="140" /> +<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INerror()" /> +<TGConnectingPoint num="0" id="4652" /> +<TGConnectingPoint num="1" id="4653" /> +<TGConnectingPoint num="2" id="4654" /> +<TGConnectingPoint num="3" id="4655" /> +<TGConnectingPoint num="4" id="4656" /> +<TGConnectingPoint num="5" id="4657" /> +<TGConnectingPoint num="6" id="4658" /> +<TGConnectingPoint num="7" id="4659" /> +<TGConnectingPoint num="8" id="4660" /> +<TGConnectingPoint num="9" id="4661" /> +</COMPONENT> + +<COMPONENT type="5104" id="4673" > +<cdparam x="136" y="141" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="INconconf()" /> +<TGConnectingPoint num="0" id="4663" /> +<TGConnectingPoint num="1" id="4664" /> +<TGConnectingPoint num="2" id="4665" /> +<TGConnectingPoint num="3" id="4666" /> +<TGConnectingPoint num="4" id="4667" /> +<TGConnectingPoint num="5" id="4668" /> +<TGConnectingPoint num="6" id="4669" /> +<TGConnectingPoint num="7" id="4670" /> +<TGConnectingPoint num="8" id="4671" /> +<TGConnectingPoint num="9" id="4672" /> +</COMPONENT> + +<COMPONENT type="5103" id="4684" > +<cdparam x="44" y="141" /> +<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="INconreq()" /> +<TGConnectingPoint num="0" id="4674" /> +<TGConnectingPoint num="1" id="4675" /> +<TGConnectingPoint num="2" id="4676" /> +<TGConnectingPoint num="3" id="4677" /> +<TGConnectingPoint num="4" id="4678" /> +<TGConnectingPoint num="5" id="4679" /> +<TGConnectingPoint num="6" id="4680" /> +<TGConnectingPoint num="7" id="4681" /> +<TGConnectingPoint num="8" id="4682" /> +<TGConnectingPoint num="9" id="4683" /> +</COMPONENT> + +<COMPONENT type="5100" id="4686" > +<cdparam x="158" y="24" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="4685" /> +</COMPONENT> + +<COMPONENT type="5106" id="4727" > +<cdparam x="116" y="66" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="ACTIVE" /> +<TGConnectingPoint num="0" id="4687" /> +<TGConnectingPoint num="1" id="4688" /> +<TGConnectingPoint num="2" id="4689" /> +<TGConnectingPoint num="3" id="4690" /> +<TGConnectingPoint num="4" id="4691" /> +<TGConnectingPoint num="5" id="4692" /> +<TGConnectingPoint num="6" id="4693" /> +<TGConnectingPoint num="7" id="4694" /> +<TGConnectingPoint num="8" id="4695" /> +<TGConnectingPoint num="9" id="4696" /> +<TGConnectingPoint num="10" id="4697" /> +<TGConnectingPoint num="11" id="4698" /> +<TGConnectingPoint num="12" id="4699" /> +<TGConnectingPoint num="13" id="4700" /> +<TGConnectingPoint num="14" id="4701" /> +<TGConnectingPoint num="15" id="4702" /> +<TGConnectingPoint num="16" id="4703" /> +<TGConnectingPoint num="17" id="4704" /> +<TGConnectingPoint num="18" id="4705" /> +<TGConnectingPoint num="19" id="4706" /> +<TGConnectingPoint num="20" id="4707" /> +<TGConnectingPoint num="21" id="4708" /> +<TGConnectingPoint num="22" id="4709" /> +<TGConnectingPoint num="23" id="4710" /> +<TGConnectingPoint num="24" id="4711" /> +<TGConnectingPoint num="25" id="4712" /> +<TGConnectingPoint num="26" id="4713" /> +<TGConnectingPoint num="27" id="4714" /> +<TGConnectingPoint num="28" id="4715" /> +<TGConnectingPoint num="29" id="4716" /> +<TGConnectingPoint num="30" id="4717" /> +<TGConnectingPoint num="31" id="4718" /> +<TGConnectingPoint num="32" id="4719" /> +<TGConnectingPoint num="33" id="4720" /> +<TGConnectingPoint num="34" id="4721" /> +<TGConnectingPoint num="35" id="4722" /> +<TGConnectingPoint num="36" id="4723" /> +<TGConnectingPoint num="37" id="4724" /> +<TGConnectingPoint num="38" id="4725" /> +<TGConnectingPoint num="39" id="4726" /> +<extraparam> +</extraparam> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/ebook_reader_01.xml b/ttool/src/test/resources/ui/diagram2avatar/input/ebook_reader_01.xml new file mode 100644 index 0000000000000000000000000000000000000000..186d52671d4de03c396fdc74ef63229c013a3f4d --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/input/ebook_reader_01.xml @@ -0,0 +1,3797 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="0.99-beta4"> + +<Modeling type="AVATAR Design" nameTab="AVATAR Design" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="PageLoader;UserModel;DisplayDriver;EReaderController;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="2" > +<cdparam x="504" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="1" /> +<P1 x="491" y="260" id="57" /> +<P2 x="491" y="282" id="127" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in loadPage(Document doc, int pageid)" /> +<osd value="out loadPage(Document doc, int pageid)" /> +<isd value="in getPage(Page aPage)" /> +<oso value="out pageReady(Page aPage)" /> +<FIFOType asynchronous="true" size="4" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="4" > +<cdparam x="490" y="519" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="3" /> +<P1 x="639" y="375" id="79" /> +<P2 x="606" y="374" id="130" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in home()" /> +<isd value="in openDocument(Document doc)" /> +<isd value="in flipNextPage()" /> +<isd value="in flipPreviousPage()" /> +<isd value="in goToPage(int index)" /> +<oso value="out home()" /> +<oso value="out openDocument(Document doc)" /> +<oso value="out flipNextPage()" /> +<oso value="out flipPreviousPage()" /> +<oso value="out goToPage(int index)" /> +<FIFOType asynchronous="true" size="10" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="5002" id="6" > +<cdparam x="248" y="317" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="5" /> +<P1 x="342" y="375" id="105" /> +<P2 x="377" y="374" id="129" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in displayPage(Page page)" /> +<osd value="out displayPage(Page page)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="5003" id="15" > +<cdparam x="633" y="78" /> +<sizeparam width="212" height="167" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="MemoryForPages" /> +<TGConnectingPoint num="0" id="7" /> +<TGConnectingPoint num="1" id="8" /> +<TGConnectingPoint num="2" id="9" /> +<TGConnectingPoint num="3" id="10" /> +<TGConnectingPoint num="4" id="11" /> +<TGConnectingPoint num="5" id="12" /> +<TGConnectingPoint num="6" id="13" /> +<TGConnectingPoint num="7" id="14" /> +<extraparam> +<Attribute access="0" id="index1" value="" type="8" typeOther="" /> +<Attribute access="0" id="data1" value="" type="8" typeOther="" /> +<Attribute access="0" id="index2" value="" type="8" typeOther="" /> +<Attribute access="0" id="data2" value="" type="8" typeOther="" /> +<Attribute access="0" id="index3" value="" type="8" typeOther="" /> +<Attribute access="0" id="data3" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="32" > +<cdparam x="636" y="10" /> +<sizeparam width="366" height="27" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="Add the possibility to prefetch pages, and keep the old +ones in memory (for example, the three last!) +" /> +<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" /> +<TGConnectingPoint num="8" id="24" /> +<TGConnectingPoint num="9" id="25" /> +<TGConnectingPoint num="10" id="26" /> +<TGConnectingPoint num="11" id="27" /> +<TGConnectingPoint num="12" id="28" /> +<TGConnectingPoint num="13" id="29" /> +<TGConnectingPoint num="14" id="30" /> +<TGConnectingPoint num="15" id="31" /> +<extraparam> +<Line value="Add the possibility to prefetch pages, and keep the old" /> +<Line value="ones in memory (for example, the three last!)" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="41" > +<cdparam x="147" y="167" /> +<sizeparam width="163" height="96" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="Page" /> +<TGConnectingPoint num="0" id="33" /> +<TGConnectingPoint num="1" id="34" /> +<TGConnectingPoint num="2" id="35" /> +<TGConnectingPoint num="3" id="36" /> +<TGConnectingPoint num="4" id="37" /> +<TGConnectingPoint num="5" id="38" /> +<TGConnectingPoint num="6" id="39" /> +<TGConnectingPoint num="7" id="40" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="50" > +<cdparam x="148" y="66" /> +<sizeparam width="162" height="92" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="Document" /> +<TGConnectingPoint num="0" id="42" /> +<TGConnectingPoint num="1" id="43" /> +<TGConnectingPoint num="2" id="44" /> +<TGConnectingPoint num="3" id="45" /> +<TGConnectingPoint num="4" id="46" /> +<TGConnectingPoint num="5" id="47" /> +<TGConnectingPoint num="6" id="48" /> +<TGConnectingPoint num="7" id="49" /> +<extraparam> +<Attribute access="0" id="id" value="" type="8" typeOther="" /> +<Attribute access="0" id="nbOfPages" value="" type="8" typeOther="" /> +<Attribute access="0" id="currentPage" value="0" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="75" > +<cdparam x="379" y="69" /> +<sizeparam width="225" height="191" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="PageLoader" /> +<TGConnectingPoint num="0" id="51" /> +<TGConnectingPoint num="1" id="52" /> +<TGConnectingPoint num="2" id="53" /> +<TGConnectingPoint num="3" id="54" /> +<TGConnectingPoint num="4" id="55" /> +<TGConnectingPoint num="5" id="56" /> +<TGConnectingPoint num="6" id="57" /> +<TGConnectingPoint num="7" id="58" /> +<TGConnectingPoint num="8" id="59" /> +<TGConnectingPoint num="9" id="60" /> +<TGConnectingPoint num="10" id="61" /> +<TGConnectingPoint num="11" id="62" /> +<TGConnectingPoint num="12" id="63" /> +<TGConnectingPoint num="13" id="64" /> +<TGConnectingPoint num="14" id="65" /> +<TGConnectingPoint num="15" id="66" /> +<TGConnectingPoint num="16" id="67" /> +<TGConnectingPoint num="17" id="68" /> +<TGConnectingPoint num="18" id="69" /> +<TGConnectingPoint num="19" id="70" /> +<TGConnectingPoint num="20" id="71" /> +<TGConnectingPoint num="21" id="72" /> +<TGConnectingPoint num="22" id="73" /> +<TGConnectingPoint num="23" id="74" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="doc" value="" type="5" typeOther="Document" /> +<Attribute access="0" id="page" value="" type="5" typeOther="Page" /> +<Attribute access="0" id="pageid" value="" type="8" typeOther="" /> +<Attribute access="0" id="minPageLoadingTime" value="10" type="8" typeOther="" /> +<Attribute access="0" id="maxPageLoadingTime" value="2000" type="8" typeOther="" /> +<Attribute access="0" id="x" value="" type="8" typeOther="" /> +<Attribute access="0" id="memoryPageAccessTime" value="2" type="8" typeOther="" /> +<Attribute access="0" id="memory" value="" type="5" typeOther="MemoryForPages" /> +<Signal value="in loadPage(Document doc, int pageid)" attached="true" /> +<Signal value="out pageReady(Page aPage)" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="100" > +<cdparam x="639" y="283" /> +<sizeparam width="198" height="184" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="UserModel" /> +<TGConnectingPoint num="0" id="76" /> +<TGConnectingPoint num="1" id="77" /> +<TGConnectingPoint num="2" id="78" /> +<TGConnectingPoint num="3" id="79" /> +<TGConnectingPoint num="4" id="80" /> +<TGConnectingPoint num="5" id="81" /> +<TGConnectingPoint num="6" id="82" /> +<TGConnectingPoint num="7" id="83" /> +<TGConnectingPoint num="8" id="84" /> +<TGConnectingPoint num="9" id="85" /> +<TGConnectingPoint num="10" id="86" /> +<TGConnectingPoint num="11" id="87" /> +<TGConnectingPoint num="12" id="88" /> +<TGConnectingPoint num="13" id="89" /> +<TGConnectingPoint num="14" id="90" /> +<TGConnectingPoint num="15" id="91" /> +<TGConnectingPoint num="16" id="92" /> +<TGConnectingPoint num="17" id="93" /> +<TGConnectingPoint num="18" id="94" /> +<TGConnectingPoint num="19" id="95" /> +<TGConnectingPoint num="20" id="96" /> +<TGConnectingPoint num="21" id="97" /> +<TGConnectingPoint num="22" id="98" /> +<TGConnectingPoint num="23" id="99" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="doc1" value="" type="5" typeOther="Document" /> +<Attribute access="0" id="doc2" value="" type="5" typeOther="Document" /> +<Attribute access="0" id="index" value="" type="8" typeOther="" /> +<Signal value="out home()" attached="false" /> +<Signal value="out openDocument(Document doc)" attached="true" /> +<Signal value="out flipNextPage()" attached="true" /> +<Signal value="out flipPreviousPage()" attached="false" /> +<Signal value="out goToPage(int index)" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="125" > +<cdparam x="92" y="287" /> +<sizeparam width="250" height="177" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="DisplayDriver" /> +<TGConnectingPoint num="0" id="101" /> +<TGConnectingPoint num="1" id="102" /> +<TGConnectingPoint num="2" id="103" /> +<TGConnectingPoint num="3" id="104" /> +<TGConnectingPoint num="4" id="105" /> +<TGConnectingPoint num="5" id="106" /> +<TGConnectingPoint num="6" id="107" /> +<TGConnectingPoint num="7" id="108" /> +<TGConnectingPoint num="8" id="109" /> +<TGConnectingPoint num="9" id="110" /> +<TGConnectingPoint num="10" id="111" /> +<TGConnectingPoint num="11" id="112" /> +<TGConnectingPoint num="12" id="113" /> +<TGConnectingPoint num="13" id="114" /> +<TGConnectingPoint num="14" id="115" /> +<TGConnectingPoint num="15" id="116" /> +<TGConnectingPoint num="16" id="117" /> +<TGConnectingPoint num="17" id="118" /> +<TGConnectingPoint num="18" id="119" /> +<TGConnectingPoint num="19" id="120" /> +<TGConnectingPoint num="20" id="121" /> +<TGConnectingPoint num="21" id="122" /> +<TGConnectingPoint num="22" id="123" /> +<TGConnectingPoint num="23" id="124" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="page" value="" type="5" typeOther="Page" /> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +<Method value="printPage(int data)" /> +<Signal value="in displayPage(Page page)" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="150" > +<cdparam x="377" y="282" /> +<sizeparam width="229" height="184" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="EReaderController" /> +<TGConnectingPoint num="0" id="126" /> +<TGConnectingPoint num="1" id="127" /> +<TGConnectingPoint num="2" id="128" /> +<TGConnectingPoint num="3" id="129" /> +<TGConnectingPoint num="4" id="130" /> +<TGConnectingPoint num="5" id="131" /> +<TGConnectingPoint num="6" id="132" /> +<TGConnectingPoint num="7" id="133" /> +<TGConnectingPoint num="8" id="134" /> +<TGConnectingPoint num="9" id="135" /> +<TGConnectingPoint num="10" id="136" /> +<TGConnectingPoint num="11" id="137" /> +<TGConnectingPoint num="12" id="138" /> +<TGConnectingPoint num="13" id="139" /> +<TGConnectingPoint num="14" id="140" /> +<TGConnectingPoint num="15" id="141" /> +<TGConnectingPoint num="16" id="142" /> +<TGConnectingPoint num="17" id="143" /> +<TGConnectingPoint num="18" id="144" /> +<TGConnectingPoint num="19" id="145" /> +<TGConnectingPoint num="20" id="146" /> +<TGConnectingPoint num="21" id="147" /> +<TGConnectingPoint num="22" id="148" /> +<TGConnectingPoint num="23" id="149" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="currentDocument" value="" type="5" typeOther="Document" /> +<Attribute access="0" id="currentPage" value="" type="8" typeOther="" /> +<Attribute access="0" id="page" value="" type="5" typeOther="Page" /> +<Signal value="out displayPage(Page page)" attached="true" /> +<Signal value="in openDocument(Document doc)" attached="true" /> +<Signal value="in flipNextPage()" attached="true" /> +<Signal value="in flipPreviousPage()" attached="true" /> +<Signal value="in goToPage(int index)" attached="true" /> +<Signal value="in home()" attached="true" /> +<Signal value="out loadPage(Document doc, int pageid)" attached="true" /> +<Signal value="in getPage(Page aPage)" attached="true" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="PageLoader" minX="10" maxX="1400" minY="10" maxY="1900" > +<CONNECTOR type="5102" id="159" > +<cdparam x="403" y="844" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="157" /> +<TGConnectingPoint num="1" id="158" /> +<P1 x="403" y="844" id="369" /> +<P2 x="703" y="1149" id="392" /> +<Point x="703" y="1048" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="151" > +<father id="159" num="0" /> +<cdparam x="703" y="1048" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="156" > +<father id="159" num="1" /> +<cdparam x="476" y="889" /> +<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="152" /> +<TGConnectingPoint num="1" id="153" /> +<TGConnectingPoint num="2" id="154" /> +<TGConnectingPoint num="3" id="155" /> +<extraparam> +<guard value="[ else ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="168" > +<cdparam x="409" y="1462" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="166" /> +<TGConnectingPoint num="1" id="167" /> +<P1 x="400" y="1459" id="873" /> +<P2 x="631" y="1199" id="389" /> +<Point x="631" y="1459" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="160" > +<father id="168" num="0" /> +<cdparam x="631" y="1459" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="165" > +<father id="168" num="1" /> +<cdparam x="562" y="1447" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="161" /> +<TGConnectingPoint num="1" id="162" /> +<TGConnectingPoint num="2" id="163" /> +<TGConnectingPoint num="3" id="164" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="175" > +<cdparam x="256" y="1075" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to TGComponent" value="null" /> +<TGConnectingPoint num="0" id="174" /> +<P1 x="256" y="1075" id="942" /> +<P2 x="263" y="1113" id="985" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="173" > +<father id="175" num="0" /> +<cdparam x="148" y="1101" /> +<sizeparam width="315" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="169" /> +<TGConnectingPoint num="1" id="170" /> +<TGConnectingPoint num="2" id="171" /> +<TGConnectingPoint num="3" id="172" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="minPageLoadingTime" /> +<afterMax value="maxPageLoadingTime" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="182" > +<cdparam x="257" y="1176" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="181" /> +<P1 x="263" y="1205" id="950" /> +<P2 x="263" y="1270" id="902" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="180" > +<father id="182" num="0" /> +<cdparam x="257" y="1216" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="176" /> +<TGConnectingPoint num="1" id="177" /> +<TGConnectingPoint num="2" id="178" /> +<TGConnectingPoint num="3" id="179" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="189" > +<cdparam x="206" y="1353" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="188" /> +<P1 x="263" y="1312" id="907" /> +<P2 x="263" y="1431" id="861" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="187" > +<father id="189" num="0" /> +<cdparam x="273" y="1333" /> +<sizeparam width="206" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="183" /> +<TGConnectingPoint num="1" id="184" /> +<TGConnectingPoint num="2" id="185" /> +<TGConnectingPoint num="3" id="186" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="memory.index1 = memory.index2" /> +<actions value="memory.data1 = memory.data2" /> +<actions value="memory.index2 = memory.index3" /> +<actions value="memory.data2 = memory.data3" /> +<actions value="memory.index3 = pageid" /> +<actions value="memory.data3 = x" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="196" > +<cdparam x="265" y="1112" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to state0" value="null" /> +<TGConnectingPoint num="0" id="195" /> +<P1 x="263" y="1143" id="986" /> +<P2 x="263" y="1155" id="945" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="194" > +<father id="196" num="0" /> +<cdparam x="265" y="1152" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="190" /> +<TGConnectingPoint num="1" id="191" /> +<TGConnectingPoint num="2" id="192" /> +<TGConnectingPoint num="3" id="193" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="203" > +<cdparam x="414" y="820" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to choice" value="null" /> +<TGConnectingPoint num="0" id="202" /> +<P1 x="378" y="779" id="425" /> +<P2 x="378" y="819" id="367" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="201" > +<father id="203" num="0" /> +<cdparam x="391" y="807" /> +<sizeparam width="130" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="197" /> +<TGConnectingPoint num="1" id="198" /> +<TGConnectingPoint num="2" id="199" /> +<TGConnectingPoint num="3" id="200" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="pageid = pageid + 1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="210" > +<cdparam x="459" y="979" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="209" /> +<P1 x="385" y="1078" id="999" /> +<P2 x="559" y="1078" id="838" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="208" > +<father id="210" num="0" /> +<cdparam x="459" y="1019" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="204" /> +<TGConnectingPoint num="1" id="205" /> +<TGConnectingPoint num="2" id="206" /> +<TGConnectingPoint num="3" id="207" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="223" > +<cdparam x="1046" y="703" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="219" /> +<TGConnectingPoint num="1" id="220" /> +<TGConnectingPoint num="2" id="221" /> +<TGConnectingPoint num="3" id="222" /> +<P1 x="1046" y="703" id="662" /> +<P2 x="560" y="295" id="578" /> +<Point x="1046" y="731" /> +<Point x="1153" y="731" /> +<Point x="1153" y="378" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="211" > +<father id="223" num="0" /> +<cdparam x="1046" y="731" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="212" > +<father id="223" num="1" /> +<cdparam x="1153" y="731" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="213" > +<father id="223" num="2" /> +<cdparam x="1153" y="378" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="218" > +<father id="223" num="3" /> +<cdparam x="1046" y="743" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="214" /> +<TGConnectingPoint num="1" id="215" /> +<TGConnectingPoint num="2" id="216" /> +<TGConnectingPoint num="3" id="217" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="234" > +<cdparam x="647" y="977" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="231" /> +<TGConnectingPoint num="1" id="232" /> +<TGConnectingPoint num="2" id="233" /> +<P1 x="679" y="947" id="545" /> +<P2 x="428" y="709" id="448" /> +<Point x="527" y="823" /> +<Point x="493" y="709" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="224" > +<father id="234" num="0" /> +<cdparam x="527" y="823" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="225" > +<father id="234" num="1" /> +<cdparam x="493" y="709" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="230" > +<father id="234" num="2" /> +<cdparam x="647" y="1017" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="226" /> +<TGConnectingPoint num="1" id="227" /> +<TGConnectingPoint num="2" id="228" /> +<TGConnectingPoint num="3" id="229" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="243" > +<cdparam x="459" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="241" /> +<TGConnectingPoint num="1" id="242" /> +<P1 x="422" y="361" id="519" /> +<P2 x="735" y="510" id="798" /> +<Point x="735" y="443" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="235" > +<father id="243" num="0" /> +<cdparam x="735" y="443" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="240" > +<father id="243" num="1" /> +<cdparam x="591" y="430" /> +<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="236" /> +<TGConnectingPoint num="1" id="237" /> +<TGConnectingPoint num="2" id="238" /> +<TGConnectingPoint num="3" id="239" /> +<extraparam> +<guard value="[ else ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="254" > +<cdparam x="459" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="251" /> +<TGConnectingPoint num="1" id="252" /> +<TGConnectingPoint num="2" id="253" /> +<P1 x="397" y="386" id="520" /> +<P2 x="392" y="511" id="480" /> +<Point x="440" y="406" /> +<Point x="441" y="488" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="244" > +<father id="254" num="0" /> +<cdparam x="440" y="406" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="245" > +<father id="254" num="1" /> +<cdparam x="441" y="488" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="250" > +<father id="254" num="2" /> +<cdparam x="350" y="446" /> +<sizeparam width="179" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="246" /> +<TGConnectingPoint num="1" id="247" /> +<TGConnectingPoint num="2" id="248" /> +<TGConnectingPoint num="3" id="249" /> +<extraparam> +<guard value="[pageid == memory.index3 ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="page.data = memory.data3" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="261" > +<cdparam x="409" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="260" /> +<P1 x="372" y="361" id="518" /> +<P2 x="276" y="486" id="484" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="259" > +<father id="261" num="0" /> +<cdparam x="200" y="368" /> +<sizeparam width="179" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="255" /> +<TGConnectingPoint num="1" id="256" /> +<TGConnectingPoint num="2" id="257" /> +<TGConnectingPoint num="3" id="258" /> +<extraparam> +<guard value="[ pageid == memory.index1]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="page.data = memory.data1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="268" > +<cdparam x="766" y="710" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="267" /> +<P1 x="816" y="710" id="703" /> +<P2 x="816" y="762" id="616" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="266" > +<father id="268" num="0" /> +<cdparam x="766" y="750" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="262" /> +<TGConnectingPoint num="1" id="263" /> +<TGConnectingPoint num="2" id="264" /> +<TGConnectingPoint num="3" id="265" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="275" > +<cdparam x="760" y="560" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="274" /> +<P1 x="934" y="567" id="808" /> +<P2 x="1046" y="605" id="781" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="273" > +<father id="275" num="0" /> +<cdparam x="760" y="600" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="269" /> +<TGConnectingPoint num="1" id="270" /> +<TGConnectingPoint num="2" id="271" /> +<TGConnectingPoint num="3" id="272" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="282" > +<cdparam x="859" y="632" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="281" /> +<P1 x="1046" y="635" id="782" /> +<P2 x="1046" y="653" id="657" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="280" > +<father id="282" num="0" /> +<cdparam x="859" y="672" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="276" /> +<TGConnectingPoint num="1" id="277" /> +<TGConnectingPoint num="2" id="278" /> +<TGConnectingPoint num="3" id="279" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="289" > +<cdparam x="428" y="125" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="288" /> +<P1 x="428" y="125" id="779" /> +<P2 x="428" y="166" id="739" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="287" > +<father id="289" num="0" /> +<cdparam x="428" y="165" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="283" /> +<TGConnectingPoint num="1" id="284" /> +<TGConnectingPoint num="2" id="285" /> +<TGConnectingPoint num="3" id="286" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="296" > +<cdparam x="428" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="295" /> +<P1 x="428" y="216" id="744" /> +<P2 x="428" y="223" id="849" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="294" > +<father id="296" num="0" /> +<cdparam x="428" y="256" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="290" /> +<TGConnectingPoint num="1" id="291" /> +<TGConnectingPoint num="2" id="292" /> +<TGConnectingPoint num="3" id="293" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="303" > +<cdparam x="428" y="272" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="302" /> +<P1 x="428" y="253" id="850" /> +<P2 x="428" y="270" id="575" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="301" > +<father id="303" num="0" /> +<cdparam x="428" y="312" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="297" /> +<TGConnectingPoint num="1" id="298" /> +<TGConnectingPoint num="2" id="299" /> +<TGConnectingPoint num="3" id="300" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="310" > +<cdparam x="685" y="560" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="309" /> +<P1 x="864" y="565" id="792" /> +<P2 x="858" y="606" id="794" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="308" > +<father id="310" num="0" /> +<cdparam x="574" y="578" /> +<sizeparam width="315" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="304" /> +<TGConnectingPoint num="1" id="305" /> +<TGConnectingPoint num="2" id="306" /> +<TGConnectingPoint num="3" id="307" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="minPageLoadingTime" /> +<afterMax value="maxPageLoadingTime" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="317" > +<cdparam x="714" y="662" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to state0" value="null" /> +<TGConnectingPoint num="0" id="316" /> +<P1 x="858" y="636" id="795" /> +<P2 x="816" y="660" id="698" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="315" > +<father id="317" num="0" /> +<cdparam x="719" y="648" /> +<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="311" /> +<TGConnectingPoint num="1" id="312" /> +<TGConnectingPoint num="2" id="313" /> +<TGConnectingPoint num="3" id="314" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="page.data = x" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="324" > +<cdparam x="718" y="868" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="323" /> +<P1 x="816" y="804" id="621" /> +<P2 x="816" y="919" id="534" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="322" > +<father id="324" num="0" /> +<cdparam x="737" y="820" /> +<sizeparam width="206" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="318" /> +<TGConnectingPoint num="1" id="319" /> +<TGConnectingPoint num="2" id="320" /> +<TGConnectingPoint num="3" id="321" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="memory.index1 = memory.index2" /> +<actions value="memory.data1 = memory.data2" /> +<actions value="memory.index2 = memory.index3" /> +<actions value="memory.data2 = memory.data3" /> +<actions value="memory.index3 = pageid" /> +<actions value="memory.data3 = page.data" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="331" > +<cdparam x="434" y="368" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to choice" value="null" /> +<TGConnectingPoint num="0" id="330" /> +<P1 x="428" y="320" id="580" /> +<P2 x="397" y="336" id="517" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="329" > +<father id="331" num="0" /> +<cdparam x="434" y="408" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="325" /> +<TGConnectingPoint num="1" id="326" /> +<TGConnectingPoint num="2" id="327" /> +<TGConnectingPoint num="3" id="328" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="338" > +<cdparam x="434" y="452" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="337" /> +<P1 x="397" y="386" id="523" /> +<P2 x="315" y="486" id="477" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="336" > +<father id="338" num="0" /> +<cdparam x="272" y="436" /> +<sizeparam width="179" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="332" /> +<TGConnectingPoint num="1" id="333" /> +<TGConnectingPoint num="2" id="334" /> +<TGConnectingPoint num="3" id="335" /> +<extraparam> +<guard value="[pageid == memory.index2 ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="page.data = memory.data2" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="345" > +<cdparam x="380" y="628" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="344" /> +<P1 x="353" y="536" id="491" /> +<P2 x="353" y="672" id="443" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="343" > +<father id="345" num="0" /> +<cdparam x="201" y="658" /> +<sizeparam width="356" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="339" /> +<TGConnectingPoint num="1" id="340" /> +<TGConnectingPoint num="2" id="341" /> +<TGConnectingPoint num="3" id="342" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="memoryPageAccessTime" /> +<afterMax value="memoryPageAccessTime" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="352" > +<cdparam x="456" y="730" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="351" /> +<P1 x="378" y="722" id="441" /> +<P2 x="378" y="749" id="424" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="350" > +<father id="352" num="0" /> +<cdparam x="456" y="770" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="346" /> +<TGConnectingPoint num="1" id="347" /> +<TGConnectingPoint num="2" id="348" /> +<TGConnectingPoint num="3" id="349" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="359" > +<cdparam x="581" y="1079" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="358" /> +<P1 x="559" y="1108" id="839" /> +<P2 x="559" y="1149" id="391" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="357" > +<father id="359" num="0" /> +<cdparam x="581" y="1119" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="353" /> +<TGConnectingPoint num="1" id="354" /> +<TGConnectingPoint num="2" id="355" /> +<TGConnectingPoint num="3" id="356" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="366" > +<cdparam x="384" y="893" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="365" /> +<P1 x="378" y="869" id="373" /> +<P2 x="256" y="1028" id="989" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="364" > +<father id="366" num="0" /> +<cdparam x="26" y="1011" /> +<sizeparam width="910" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="360" /> +<TGConnectingPoint num="1" id="361" /> +<TGConnectingPoint num="2" id="362" /> +<TGConnectingPoint num="3" id="363" /> +<extraparam> +<guard value="[(pageid < doc.nbOfPages) and (not(memory.index1 == pageid)) and (not(memory.index2 == pageid)) and (not(memory.index3 == pageid)) ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5107" id="382" > +<cdparam x="363" y="829" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="367" /> +<TGConnectingPoint num="1" id="368" /> +<TGConnectingPoint num="2" id="369" /> +<TGConnectingPoint num="3" id="370" /> +<TGConnectingPoint num="4" id="371" /> +<TGConnectingPoint num="5" id="372" /> +<TGConnectingPoint num="6" id="373" /> +<TGConnectingPoint num="7" id="374" /> +<TGConnectingPoint num="8" id="375" /> +<TGConnectingPoint num="9" id="376" /> +<TGConnectingPoint num="10" id="377" /> +<TGConnectingPoint num="11" id="378" /> +<TGConnectingPoint num="12" id="379" /> +<TGConnectingPoint num="13" id="380" /> +<TGConnectingPoint num="14" id="381" /> +</COMPONENT> + +<COMPONENT type="5106" id="423" > +<cdparam x="487" y="1149" /> +<sizeparam width="289" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="WaitingForPageToLoad" /> +<TGConnectingPoint num="0" id="383" /> +<TGConnectingPoint num="1" id="384" /> +<TGConnectingPoint num="2" id="385" /> +<TGConnectingPoint num="3" id="386" /> +<TGConnectingPoint num="4" id="387" /> +<TGConnectingPoint num="5" id="388" /> +<TGConnectingPoint num="6" id="389" /> +<TGConnectingPoint num="7" id="390" /> +<TGConnectingPoint num="8" id="391" /> +<TGConnectingPoint num="9" id="392" /> +<TGConnectingPoint num="10" id="393" /> +<TGConnectingPoint num="11" id="394" /> +<TGConnectingPoint num="12" id="395" /> +<TGConnectingPoint num="13" id="396" /> +<TGConnectingPoint num="14" id="397" /> +<TGConnectingPoint num="15" id="398" /> +<TGConnectingPoint num="16" id="399" /> +<TGConnectingPoint num="17" id="400" /> +<TGConnectingPoint num="18" id="401" /> +<TGConnectingPoint num="19" id="402" /> +<TGConnectingPoint num="20" id="403" /> +<TGConnectingPoint num="21" id="404" /> +<TGConnectingPoint num="22" id="405" /> +<TGConnectingPoint num="23" id="406" /> +<TGConnectingPoint num="24" id="407" /> +<TGConnectingPoint num="25" id="408" /> +<TGConnectingPoint num="26" id="409" /> +<TGConnectingPoint num="27" id="410" /> +<TGConnectingPoint num="28" id="411" /> +<TGConnectingPoint num="29" id="412" /> +<TGConnectingPoint num="30" id="413" /> +<TGConnectingPoint num="31" id="414" /> +<TGConnectingPoint num="32" id="415" /> +<TGConnectingPoint num="33" id="416" /> +<TGConnectingPoint num="34" id="417" /> +<TGConnectingPoint num="35" id="418" /> +<TGConnectingPoint num="36" id="419" /> +<TGConnectingPoint num="37" id="420" /> +<TGConnectingPoint num="38" id="421" /> +<TGConnectingPoint num="39" id="422" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="434" > +<cdparam x="317" y="754" /> +<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="Send signal" value="pageReady(page)" /> +<TGConnectingPoint num="0" id="424" /> +<TGConnectingPoint num="1" id="425" /> +<TGConnectingPoint num="2" id="426" /> +<TGConnectingPoint num="3" id="427" /> +<TGConnectingPoint num="4" id="428" /> +<TGConnectingPoint num="5" id="429" /> +<TGConnectingPoint num="6" id="430" /> +<TGConnectingPoint num="7" id="431" /> +<TGConnectingPoint num="8" id="432" /> +<TGConnectingPoint num="9" id="433" /> +</COMPONENT> + +<COMPONENT type="5106" id="475" > +<cdparam x="328" y="672" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="PageReady" /> +<TGConnectingPoint num="0" id="435" /> +<TGConnectingPoint num="1" id="436" /> +<TGConnectingPoint num="2" id="437" /> +<TGConnectingPoint num="3" id="438" /> +<TGConnectingPoint num="4" id="439" /> +<TGConnectingPoint num="5" id="440" /> +<TGConnectingPoint num="6" id="441" /> +<TGConnectingPoint num="7" id="442" /> +<TGConnectingPoint num="8" id="443" /> +<TGConnectingPoint num="9" id="444" /> +<TGConnectingPoint num="10" id="445" /> +<TGConnectingPoint num="11" id="446" /> +<TGConnectingPoint num="12" id="447" /> +<TGConnectingPoint num="13" id="448" /> +<TGConnectingPoint num="14" id="449" /> +<TGConnectingPoint num="15" id="450" /> +<TGConnectingPoint num="16" id="451" /> +<TGConnectingPoint num="17" id="452" /> +<TGConnectingPoint num="18" id="453" /> +<TGConnectingPoint num="19" id="454" /> +<TGConnectingPoint num="20" id="455" /> +<TGConnectingPoint num="21" id="456" /> +<TGConnectingPoint num="22" id="457" /> +<TGConnectingPoint num="23" id="458" /> +<TGConnectingPoint num="24" id="459" /> +<TGConnectingPoint num="25" id="460" /> +<TGConnectingPoint num="26" id="461" /> +<TGConnectingPoint num="27" id="462" /> +<TGConnectingPoint num="28" id="463" /> +<TGConnectingPoint num="29" id="464" /> +<TGConnectingPoint num="30" id="465" /> +<TGConnectingPoint num="31" id="466" /> +<TGConnectingPoint num="32" id="467" /> +<TGConnectingPoint num="33" id="468" /> +<TGConnectingPoint num="34" id="469" /> +<TGConnectingPoint num="35" id="470" /> +<TGConnectingPoint num="36" id="471" /> +<TGConnectingPoint num="37" id="472" /> +<TGConnectingPoint num="38" id="473" /> +<TGConnectingPoint num="39" id="474" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="516" > +<cdparam x="238" y="486" /> +<sizeparam width="154" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="gotItFromMemory" /> +<TGConnectingPoint num="0" id="476" /> +<TGConnectingPoint num="1" id="477" /> +<TGConnectingPoint num="2" id="478" /> +<TGConnectingPoint num="3" id="479" /> +<TGConnectingPoint num="4" id="480" /> +<TGConnectingPoint num="5" id="481" /> +<TGConnectingPoint num="6" id="482" /> +<TGConnectingPoint num="7" id="483" /> +<TGConnectingPoint num="8" id="484" /> +<TGConnectingPoint num="9" id="485" /> +<TGConnectingPoint num="10" id="486" /> +<TGConnectingPoint num="11" id="487" /> +<TGConnectingPoint num="12" id="488" /> +<TGConnectingPoint num="13" id="489" /> +<TGConnectingPoint num="14" id="490" /> +<TGConnectingPoint num="15" id="491" /> +<TGConnectingPoint num="16" id="492" /> +<TGConnectingPoint num="17" id="493" /> +<TGConnectingPoint num="18" id="494" /> +<TGConnectingPoint num="19" id="495" /> +<TGConnectingPoint num="20" id="496" /> +<TGConnectingPoint num="21" id="497" /> +<TGConnectingPoint num="22" id="498" /> +<TGConnectingPoint num="23" id="499" /> +<TGConnectingPoint num="24" id="500" /> +<TGConnectingPoint num="25" id="501" /> +<TGConnectingPoint num="26" id="502" /> +<TGConnectingPoint num="27" id="503" /> +<TGConnectingPoint num="28" id="504" /> +<TGConnectingPoint num="29" id="505" /> +<TGConnectingPoint num="30" id="506" /> +<TGConnectingPoint num="31" id="507" /> +<TGConnectingPoint num="32" id="508" /> +<TGConnectingPoint num="33" id="509" /> +<TGConnectingPoint num="34" id="510" /> +<TGConnectingPoint num="35" id="511" /> +<TGConnectingPoint num="36" id="512" /> +<TGConnectingPoint num="37" id="513" /> +<TGConnectingPoint num="38" id="514" /> +<TGConnectingPoint num="39" id="515" /> +<invariant /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5107" id="532" > +<cdparam x="382" y="346" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="517" /> +<TGConnectingPoint num="1" id="518" /> +<TGConnectingPoint num="2" id="519" /> +<TGConnectingPoint num="3" id="520" /> +<TGConnectingPoint num="4" id="521" /> +<TGConnectingPoint num="5" id="522" /> +<TGConnectingPoint num="6" id="523" /> +<TGConnectingPoint num="7" id="524" /> +<TGConnectingPoint num="8" id="525" /> +<TGConnectingPoint num="9" id="526" /> +<TGConnectingPoint num="10" id="527" /> +<TGConnectingPoint num="11" id="528" /> +<TGConnectingPoint num="12" id="529" /> +<TGConnectingPoint num="13" id="530" /> +<TGConnectingPoint num="14" id="531" /> +</COMPONENT> + +<COMPONENT type="5106" id="573" > +<cdparam x="679" y="919" /> +<sizeparam width="274" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="PutPageInMemoryDone" /> +<TGConnectingPoint num="0" id="533" /> +<TGConnectingPoint num="1" id="534" /> +<TGConnectingPoint num="2" id="535" /> +<TGConnectingPoint num="3" id="536" /> +<TGConnectingPoint num="4" id="537" /> +<TGConnectingPoint num="5" id="538" /> +<TGConnectingPoint num="6" id="539" /> +<TGConnectingPoint num="7" id="540" /> +<TGConnectingPoint num="8" id="541" /> +<TGConnectingPoint num="9" id="542" /> +<TGConnectingPoint num="10" id="543" /> +<TGConnectingPoint num="11" id="544" /> +<TGConnectingPoint num="12" id="545" /> +<TGConnectingPoint num="13" id="546" /> +<TGConnectingPoint num="14" id="547" /> +<TGConnectingPoint num="15" id="548" /> +<TGConnectingPoint num="16" id="549" /> +<TGConnectingPoint num="17" id="550" /> +<TGConnectingPoint num="18" id="551" /> +<TGConnectingPoint num="19" id="552" /> +<TGConnectingPoint num="20" id="553" /> +<TGConnectingPoint num="21" id="554" /> +<TGConnectingPoint num="22" id="555" /> +<TGConnectingPoint num="23" id="556" /> +<TGConnectingPoint num="24" id="557" /> +<TGConnectingPoint num="25" id="558" /> +<TGConnectingPoint num="26" id="559" /> +<TGConnectingPoint num="27" id="560" /> +<TGConnectingPoint num="28" id="561" /> +<TGConnectingPoint num="29" id="562" /> +<TGConnectingPoint num="30" id="563" /> +<TGConnectingPoint num="31" id="564" /> +<TGConnectingPoint num="32" id="565" /> +<TGConnectingPoint num="33" id="566" /> +<TGConnectingPoint num="34" id="567" /> +<TGConnectingPoint num="35" id="568" /> +<TGConnectingPoint num="36" id="569" /> +<TGConnectingPoint num="37" id="570" /> +<TGConnectingPoint num="38" id="571" /> +<TGConnectingPoint num="39" id="572" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="614" > +<cdparam x="296" y="270" /> +<sizeparam width="264" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="getFromMemory" /> +<TGConnectingPoint num="0" id="574" /> +<TGConnectingPoint num="1" id="575" /> +<TGConnectingPoint num="2" id="576" /> +<TGConnectingPoint num="3" id="577" /> +<TGConnectingPoint num="4" id="578" /> +<TGConnectingPoint num="5" id="579" /> +<TGConnectingPoint num="6" id="580" /> +<TGConnectingPoint num="7" id="581" /> +<TGConnectingPoint num="8" id="582" /> +<TGConnectingPoint num="9" id="583" /> +<TGConnectingPoint num="10" id="584" /> +<TGConnectingPoint num="11" id="585" /> +<TGConnectingPoint num="12" id="586" /> +<TGConnectingPoint num="13" id="587" /> +<TGConnectingPoint num="14" id="588" /> +<TGConnectingPoint num="15" id="589" /> +<TGConnectingPoint num="16" id="590" /> +<TGConnectingPoint num="17" id="591" /> +<TGConnectingPoint num="18" id="592" /> +<TGConnectingPoint num="19" id="593" /> +<TGConnectingPoint num="20" id="594" /> +<TGConnectingPoint num="21" id="595" /> +<TGConnectingPoint num="22" id="596" /> +<TGConnectingPoint num="23" id="597" /> +<TGConnectingPoint num="24" id="598" /> +<TGConnectingPoint num="25" id="599" /> +<TGConnectingPoint num="26" id="600" /> +<TGConnectingPoint num="27" id="601" /> +<TGConnectingPoint num="28" id="602" /> +<TGConnectingPoint num="29" id="603" /> +<TGConnectingPoint num="30" id="604" /> +<TGConnectingPoint num="31" id="605" /> +<TGConnectingPoint num="32" id="606" /> +<TGConnectingPoint num="33" id="607" /> +<TGConnectingPoint num="34" id="608" /> +<TGConnectingPoint num="35" id="609" /> +<TGConnectingPoint num="36" id="610" /> +<TGConnectingPoint num="37" id="611" /> +<TGConnectingPoint num="38" id="612" /> +<TGConnectingPoint num="39" id="613" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="655" > +<cdparam x="685" y="762" /> +<sizeparam width="263" height="42" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="PutPageInMemory" /> +<TGConnectingPoint num="0" id="615" /> +<TGConnectingPoint num="1" id="616" /> +<TGConnectingPoint num="2" id="617" /> +<TGConnectingPoint num="3" id="618" /> +<TGConnectingPoint num="4" id="619" /> +<TGConnectingPoint num="5" id="620" /> +<TGConnectingPoint num="6" id="621" /> +<TGConnectingPoint num="7" id="622" /> +<TGConnectingPoint num="8" id="623" /> +<TGConnectingPoint num="9" id="624" /> +<TGConnectingPoint num="10" id="625" /> +<TGConnectingPoint num="11" id="626" /> +<TGConnectingPoint num="12" id="627" /> +<TGConnectingPoint num="13" id="628" /> +<TGConnectingPoint num="14" id="629" /> +<TGConnectingPoint num="15" id="630" /> +<TGConnectingPoint num="16" id="631" /> +<TGConnectingPoint num="17" id="632" /> +<TGConnectingPoint num="18" id="633" /> +<TGConnectingPoint num="19" id="634" /> +<TGConnectingPoint num="20" id="635" /> +<TGConnectingPoint num="21" id="636" /> +<TGConnectingPoint num="22" id="637" /> +<TGConnectingPoint num="23" id="638" /> +<TGConnectingPoint num="24" id="639" /> +<TGConnectingPoint num="25" id="640" /> +<TGConnectingPoint num="26" id="641" /> +<TGConnectingPoint num="27" id="642" /> +<TGConnectingPoint num="28" id="643" /> +<TGConnectingPoint num="29" id="644" /> +<TGConnectingPoint num="30" id="645" /> +<TGConnectingPoint num="31" id="646" /> +<TGConnectingPoint num="32" id="647" /> +<TGConnectingPoint num="33" id="648" /> +<TGConnectingPoint num="34" id="649" /> +<TGConnectingPoint num="35" id="650" /> +<TGConnectingPoint num="36" id="651" /> +<TGConnectingPoint num="37" id="652" /> +<TGConnectingPoint num="38" id="653" /> +<TGConnectingPoint num="39" id="654" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="696" > +<cdparam x="996" y="653" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="Interrupted" /> +<TGConnectingPoint num="0" id="656" /> +<TGConnectingPoint num="1" id="657" /> +<TGConnectingPoint num="2" id="658" /> +<TGConnectingPoint num="3" id="659" /> +<TGConnectingPoint num="4" id="660" /> +<TGConnectingPoint num="5" id="661" /> +<TGConnectingPoint num="6" id="662" /> +<TGConnectingPoint num="7" id="663" /> +<TGConnectingPoint num="8" id="664" /> +<TGConnectingPoint num="9" id="665" /> +<TGConnectingPoint num="10" id="666" /> +<TGConnectingPoint num="11" id="667" /> +<TGConnectingPoint num="12" id="668" /> +<TGConnectingPoint num="13" id="669" /> +<TGConnectingPoint num="14" id="670" /> +<TGConnectingPoint num="15" id="671" /> +<TGConnectingPoint num="16" id="672" /> +<TGConnectingPoint num="17" id="673" /> +<TGConnectingPoint num="18" id="674" /> +<TGConnectingPoint num="19" id="675" /> +<TGConnectingPoint num="20" id="676" /> +<TGConnectingPoint num="21" id="677" /> +<TGConnectingPoint num="22" id="678" /> +<TGConnectingPoint num="23" id="679" /> +<TGConnectingPoint num="24" id="680" /> +<TGConnectingPoint num="25" id="681" /> +<TGConnectingPoint num="26" id="682" /> +<TGConnectingPoint num="27" id="683" /> +<TGConnectingPoint num="28" id="684" /> +<TGConnectingPoint num="29" id="685" /> +<TGConnectingPoint num="30" id="686" /> +<TGConnectingPoint num="31" id="687" /> +<TGConnectingPoint num="32" id="688" /> +<TGConnectingPoint num="33" id="689" /> +<TGConnectingPoint num="34" id="690" /> +<TGConnectingPoint num="35" id="691" /> +<TGConnectingPoint num="36" id="692" /> +<TGConnectingPoint num="37" id="693" /> +<TGConnectingPoint num="38" id="694" /> +<TGConnectingPoint num="39" id="695" /> +<accessibility /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="737" > +<cdparam x="766" y="660" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="PageLoaded" /> +<TGConnectingPoint num="0" id="697" /> +<TGConnectingPoint num="1" id="698" /> +<TGConnectingPoint num="2" id="699" /> +<TGConnectingPoint num="3" id="700" /> +<TGConnectingPoint num="4" id="701" /> +<TGConnectingPoint num="5" id="702" /> +<TGConnectingPoint num="6" id="703" /> +<TGConnectingPoint num="7" id="704" /> +<TGConnectingPoint num="8" id="705" /> +<TGConnectingPoint num="9" id="706" /> +<TGConnectingPoint num="10" id="707" /> +<TGConnectingPoint num="11" id="708" /> +<TGConnectingPoint num="12" id="709" /> +<TGConnectingPoint num="13" id="710" /> +<TGConnectingPoint num="14" id="711" /> +<TGConnectingPoint num="15" id="712" /> +<TGConnectingPoint num="16" id="713" /> +<TGConnectingPoint num="17" id="714" /> +<TGConnectingPoint num="18" id="715" /> +<TGConnectingPoint num="19" id="716" /> +<TGConnectingPoint num="20" id="717" /> +<TGConnectingPoint num="21" id="718" /> +<TGConnectingPoint num="22" id="719" /> +<TGConnectingPoint num="23" id="720" /> +<TGConnectingPoint num="24" id="721" /> +<TGConnectingPoint num="25" id="722" /> +<TGConnectingPoint num="26" id="723" /> +<TGConnectingPoint num="27" id="724" /> +<TGConnectingPoint num="28" id="725" /> +<TGConnectingPoint num="29" id="726" /> +<TGConnectingPoint num="30" id="727" /> +<TGConnectingPoint num="31" id="728" /> +<TGConnectingPoint num="32" id="729" /> +<TGConnectingPoint num="33" id="730" /> +<TGConnectingPoint num="34" id="731" /> +<TGConnectingPoint num="35" id="732" /> +<TGConnectingPoint num="36" id="733" /> +<TGConnectingPoint num="37" id="734" /> +<TGConnectingPoint num="38" id="735" /> +<TGConnectingPoint num="39" id="736" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="778" > +<cdparam x="320" y="166" /> +<sizeparam width="217" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="WaitingForPageToLoad" /> +<TGConnectingPoint num="0" id="738" /> +<TGConnectingPoint num="1" id="739" /> +<TGConnectingPoint num="2" id="740" /> +<TGConnectingPoint num="3" id="741" /> +<TGConnectingPoint num="4" id="742" /> +<TGConnectingPoint num="5" id="743" /> +<TGConnectingPoint num="6" id="744" /> +<TGConnectingPoint num="7" id="745" /> +<TGConnectingPoint num="8" id="746" /> +<TGConnectingPoint num="9" id="747" /> +<TGConnectingPoint num="10" id="748" /> +<TGConnectingPoint num="11" id="749" /> +<TGConnectingPoint num="12" id="750" /> +<TGConnectingPoint num="13" id="751" /> +<TGConnectingPoint num="14" id="752" /> +<TGConnectingPoint num="15" id="753" /> +<TGConnectingPoint num="16" id="754" /> +<TGConnectingPoint num="17" id="755" /> +<TGConnectingPoint num="18" id="756" /> +<TGConnectingPoint num="19" id="757" /> +<TGConnectingPoint num="20" id="758" /> +<TGConnectingPoint num="21" id="759" /> +<TGConnectingPoint num="22" id="760" /> +<TGConnectingPoint num="23" id="761" /> +<TGConnectingPoint num="24" id="762" /> +<TGConnectingPoint num="25" id="763" /> +<TGConnectingPoint num="26" id="764" /> +<TGConnectingPoint num="27" id="765" /> +<TGConnectingPoint num="28" id="766" /> +<TGConnectingPoint num="29" id="767" /> +<TGConnectingPoint num="30" id="768" /> +<TGConnectingPoint num="31" id="769" /> +<TGConnectingPoint num="32" id="770" /> +<TGConnectingPoint num="33" id="771" /> +<TGConnectingPoint num="34" id="772" /> +<TGConnectingPoint num="35" id="773" /> +<TGConnectingPoint num="36" id="774" /> +<TGConnectingPoint num="37" id="775" /> +<TGConnectingPoint num="38" id="776" /> +<TGConnectingPoint num="39" id="777" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="780" > +<cdparam x="421" y="105" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="779" /> +</COMPONENT> + +<COMPONENT type="5104" id="791" > +<cdparam x="966" y="610" /> +<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="Receive signal" value="loadPage(doc, pageid)" /> +<TGConnectingPoint num="0" id="781" /> +<TGConnectingPoint num="1" id="782" /> +<TGConnectingPoint num="2" id="783" /> +<TGConnectingPoint num="3" id="784" /> +<TGConnectingPoint num="4" id="785" /> +<TGConnectingPoint num="5" id="786" /> +<TGConnectingPoint num="6" id="787" /> +<TGConnectingPoint num="7" id="788" /> +<TGConnectingPoint num="8" id="789" /> +<TGConnectingPoint num="9" id="790" /> +</COMPONENT> + +<COMPONENT type="5106" id="837" > +<cdparam x="537" y="510" /> +<sizeparam width="397" height="230" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="LoadingPage" /> +<TGConnectingPoint num="0" id="797" /> +<TGConnectingPoint num="1" id="798" /> +<TGConnectingPoint num="2" id="799" /> +<TGConnectingPoint num="3" id="800" /> +<TGConnectingPoint num="4" id="801" /> +<TGConnectingPoint num="5" id="802" /> +<TGConnectingPoint num="6" id="803" /> +<TGConnectingPoint num="7" id="804" /> +<TGConnectingPoint num="8" id="805" /> +<TGConnectingPoint num="9" id="806" /> +<TGConnectingPoint num="10" id="807" /> +<TGConnectingPoint num="11" id="808" /> +<TGConnectingPoint num="12" id="809" /> +<TGConnectingPoint num="13" id="810" /> +<TGConnectingPoint num="14" id="811" /> +<TGConnectingPoint num="15" id="812" /> +<TGConnectingPoint num="16" id="813" /> +<TGConnectingPoint num="17" id="814" /> +<TGConnectingPoint num="18" id="815" /> +<TGConnectingPoint num="19" id="816" /> +<TGConnectingPoint num="20" id="817" /> +<TGConnectingPoint num="21" id="818" /> +<TGConnectingPoint num="22" id="819" /> +<TGConnectingPoint num="23" id="820" /> +<TGConnectingPoint num="24" id="821" /> +<TGConnectingPoint num="25" id="822" /> +<TGConnectingPoint num="26" id="823" /> +<TGConnectingPoint num="27" id="824" /> +<TGConnectingPoint num="28" id="825" /> +<TGConnectingPoint num="29" id="826" /> +<TGConnectingPoint num="30" id="827" /> +<TGConnectingPoint num="31" id="828" /> +<TGConnectingPoint num="32" id="829" /> +<TGConnectingPoint num="33" id="830" /> +<TGConnectingPoint num="34" id="831" /> +<TGConnectingPoint num="35" id="832" /> +<TGConnectingPoint num="36" id="833" /> +<TGConnectingPoint num="37" id="834" /> +<TGConnectingPoint num="38" id="835" /> +<TGConnectingPoint num="39" id="836" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5100" id="793" > +<father id="837" num="0" /> +<cdparam x="857" y="545" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="382" minY="0" maxY="215" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="792" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5108" id="796" > +<father id="837" num="1" /> +<cdparam x="790" y="611" /> +<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="261" minY="0" maxY="210" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="794" /> +<TGConnectingPoint num="1" id="795" /> +<extraparam> +<Data variable="x" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="848" > +<cdparam x="479" y="1083" /> +<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="Receive signal" value="loadPage(doc, pageid)" /> +<TGConnectingPoint num="0" id="838" /> +<TGConnectingPoint num="1" id="839" /> +<TGConnectingPoint num="2" id="840" /> +<TGConnectingPoint num="3" id="841" /> +<TGConnectingPoint num="4" id="842" /> +<TGConnectingPoint num="5" id="843" /> +<TGConnectingPoint num="6" id="844" /> +<TGConnectingPoint num="7" id="845" /> +<TGConnectingPoint num="8" id="846" /> +<TGConnectingPoint num="9" id="847" /> +</COMPONENT> + +<COMPONENT type="5104" id="859" > +<cdparam x="348" y="228" /> +<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="Receive signal" value="loadPage(doc, pageid)" /> +<TGConnectingPoint num="0" id="849" /> +<TGConnectingPoint num="1" id="850" /> +<TGConnectingPoint num="2" id="851" /> +<TGConnectingPoint num="3" id="852" /> +<TGConnectingPoint num="4" id="853" /> +<TGConnectingPoint num="5" id="854" /> +<TGConnectingPoint num="6" id="855" /> +<TGConnectingPoint num="7" id="856" /> +<TGConnectingPoint num="8" id="857" /> +<TGConnectingPoint num="9" id="858" /> +</COMPONENT> + +<COMPONENT type="5106" id="900" > +<cdparam x="126" y="1431" /> +<sizeparam width="274" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="PutPrefetchInMemoryDone" /> +<TGConnectingPoint num="0" id="860" /> +<TGConnectingPoint num="1" id="861" /> +<TGConnectingPoint num="2" id="862" /> +<TGConnectingPoint num="3" id="863" /> +<TGConnectingPoint num="4" id="864" /> +<TGConnectingPoint num="5" id="865" /> +<TGConnectingPoint num="6" id="866" /> +<TGConnectingPoint num="7" id="867" /> +<TGConnectingPoint num="8" id="868" /> +<TGConnectingPoint num="9" id="869" /> +<TGConnectingPoint num="10" id="870" /> +<TGConnectingPoint num="11" id="871" /> +<TGConnectingPoint num="12" id="872" /> +<TGConnectingPoint num="13" id="873" /> +<TGConnectingPoint num="14" id="874" /> +<TGConnectingPoint num="15" id="875" /> +<TGConnectingPoint num="16" id="876" /> +<TGConnectingPoint num="17" id="877" /> +<TGConnectingPoint num="18" id="878" /> +<TGConnectingPoint num="19" id="879" /> +<TGConnectingPoint num="20" id="880" /> +<TGConnectingPoint num="21" id="881" /> +<TGConnectingPoint num="22" id="882" /> +<TGConnectingPoint num="23" id="883" /> +<TGConnectingPoint num="24" id="884" /> +<TGConnectingPoint num="25" id="885" /> +<TGConnectingPoint num="26" id="886" /> +<TGConnectingPoint num="27" id="887" /> +<TGConnectingPoint num="28" id="888" /> +<TGConnectingPoint num="29" id="889" /> +<TGConnectingPoint num="30" id="890" /> +<TGConnectingPoint num="31" id="891" /> +<TGConnectingPoint num="32" id="892" /> +<TGConnectingPoint num="33" id="893" /> +<TGConnectingPoint num="34" id="894" /> +<TGConnectingPoint num="35" id="895" /> +<TGConnectingPoint num="36" id="896" /> +<TGConnectingPoint num="37" id="897" /> +<TGConnectingPoint num="38" id="898" /> +<TGConnectingPoint num="39" id="899" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="941" > +<cdparam x="132" y="1270" /> +<sizeparam width="263" height="42" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="PutPrefetchInMemory" /> +<TGConnectingPoint num="0" id="901" /> +<TGConnectingPoint num="1" id="902" /> +<TGConnectingPoint num="2" id="903" /> +<TGConnectingPoint num="3" id="904" /> +<TGConnectingPoint num="4" id="905" /> +<TGConnectingPoint num="5" id="906" /> +<TGConnectingPoint num="6" id="907" /> +<TGConnectingPoint num="7" id="908" /> +<TGConnectingPoint num="8" id="909" /> +<TGConnectingPoint num="9" id="910" /> +<TGConnectingPoint num="10" id="911" /> +<TGConnectingPoint num="11" id="912" /> +<TGConnectingPoint num="12" id="913" /> +<TGConnectingPoint num="13" id="914" /> +<TGConnectingPoint num="14" id="915" /> +<TGConnectingPoint num="15" id="916" /> +<TGConnectingPoint num="16" id="917" /> +<TGConnectingPoint num="17" id="918" /> +<TGConnectingPoint num="18" id="919" /> +<TGConnectingPoint num="19" id="920" /> +<TGConnectingPoint num="20" id="921" /> +<TGConnectingPoint num="21" id="922" /> +<TGConnectingPoint num="22" id="923" /> +<TGConnectingPoint num="23" id="924" /> +<TGConnectingPoint num="24" id="925" /> +<TGConnectingPoint num="25" id="926" /> +<TGConnectingPoint num="26" id="927" /> +<TGConnectingPoint num="27" id="928" /> +<TGConnectingPoint num="28" id="929" /> +<TGConnectingPoint num="29" id="930" /> +<TGConnectingPoint num="30" id="931" /> +<TGConnectingPoint num="31" id="932" /> +<TGConnectingPoint num="32" id="933" /> +<TGConnectingPoint num="33" id="934" /> +<TGConnectingPoint num="34" id="935" /> +<TGConnectingPoint num="35" id="936" /> +<TGConnectingPoint num="36" id="937" /> +<TGConnectingPoint num="37" id="938" /> +<TGConnectingPoint num="38" id="939" /> +<TGConnectingPoint num="39" id="940" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1028" > +<cdparam x="127" y="1028" /> +<sizeparam width="258" height="201" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1900" /> +<infoparam name="state0" value="Prefetching" /> +<TGConnectingPoint num="0" id="988" /> +<TGConnectingPoint num="1" id="989" /> +<TGConnectingPoint num="2" id="990" /> +<TGConnectingPoint num="3" id="991" /> +<TGConnectingPoint num="4" id="992" /> +<TGConnectingPoint num="5" id="993" /> +<TGConnectingPoint num="6" id="994" /> +<TGConnectingPoint num="7" id="995" /> +<TGConnectingPoint num="8" id="996" /> +<TGConnectingPoint num="9" id="997" /> +<TGConnectingPoint num="10" id="998" /> +<TGConnectingPoint num="11" id="999" /> +<TGConnectingPoint num="12" id="1000" /> +<TGConnectingPoint num="13" id="1001" /> +<TGConnectingPoint num="14" id="1002" /> +<TGConnectingPoint num="15" id="1003" /> +<TGConnectingPoint num="16" id="1004" /> +<TGConnectingPoint num="17" id="1005" /> +<TGConnectingPoint num="18" id="1006" /> +<TGConnectingPoint num="19" id="1007" /> +<TGConnectingPoint num="20" id="1008" /> +<TGConnectingPoint num="21" id="1009" /> +<TGConnectingPoint num="22" id="1010" /> +<TGConnectingPoint num="23" id="1011" /> +<TGConnectingPoint num="24" id="1012" /> +<TGConnectingPoint num="25" id="1013" /> +<TGConnectingPoint num="26" id="1014" /> +<TGConnectingPoint num="27" id="1015" /> +<TGConnectingPoint num="28" id="1016" /> +<TGConnectingPoint num="29" id="1017" /> +<TGConnectingPoint num="30" id="1018" /> +<TGConnectingPoint num="31" id="1019" /> +<TGConnectingPoint num="32" id="1020" /> +<TGConnectingPoint num="33" id="1021" /> +<TGConnectingPoint num="34" id="1022" /> +<TGConnectingPoint num="35" id="1023" /> +<TGConnectingPoint num="36" id="1024" /> +<TGConnectingPoint num="37" id="1025" /> +<TGConnectingPoint num="38" id="1026" /> +<TGConnectingPoint num="39" id="1027" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5100" id="943" > +<father id="1028" num="0" /> +<cdparam x="249" y="1055" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="243" minY="0" maxY="186" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="942" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5106" id="984" > +<father id="1028" num="1" /> +<cdparam x="213" y="1155" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="158" minY="0" maxY="151" /> +<infoparam name="state0" value="PagePrefetched" /> +<TGConnectingPoint num="0" id="944" /> +<TGConnectingPoint num="1" id="945" /> +<TGConnectingPoint num="2" id="946" /> +<TGConnectingPoint num="3" id="947" /> +<TGConnectingPoint num="4" id="948" /> +<TGConnectingPoint num="5" id="949" /> +<TGConnectingPoint num="6" id="950" /> +<TGConnectingPoint num="7" id="951" /> +<TGConnectingPoint num="8" id="952" /> +<TGConnectingPoint num="9" id="953" /> +<TGConnectingPoint num="10" id="954" /> +<TGConnectingPoint num="11" id="955" /> +<TGConnectingPoint num="12" id="956" /> +<TGConnectingPoint num="13" id="957" /> +<TGConnectingPoint num="14" id="958" /> +<TGConnectingPoint num="15" id="959" /> +<TGConnectingPoint num="16" id="960" /> +<TGConnectingPoint num="17" id="961" /> +<TGConnectingPoint num="18" id="962" /> +<TGConnectingPoint num="19" id="963" /> +<TGConnectingPoint num="20" id="964" /> +<TGConnectingPoint num="21" id="965" /> +<TGConnectingPoint num="22" id="966" /> +<TGConnectingPoint num="23" id="967" /> +<TGConnectingPoint num="24" id="968" /> +<TGConnectingPoint num="25" id="969" /> +<TGConnectingPoint num="26" id="970" /> +<TGConnectingPoint num="27" id="971" /> +<TGConnectingPoint num="28" id="972" /> +<TGConnectingPoint num="29" id="973" /> +<TGConnectingPoint num="30" id="974" /> +<TGConnectingPoint num="31" id="975" /> +<TGConnectingPoint num="32" id="976" /> +<TGConnectingPoint num="33" id="977" /> +<TGConnectingPoint num="34" id="978" /> +<TGConnectingPoint num="35" id="979" /> +<TGConnectingPoint num="36" id="980" /> +<TGConnectingPoint num="37" id="981" /> +<TGConnectingPoint num="38" id="982" /> +<TGConnectingPoint num="39" id="983" /> +<extraparam> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5108" id="987" > +<father id="1028" num="2" /> +<cdparam x="195" y="1118" /> +<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="228" minY="0" maxY="181" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="985" /> +<TGConnectingPoint num="1" id="986" /> +<extraparam> +<Data variable="x" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="UserModel" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1035" > +<cdparam x="460" y="447" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1034" /> +<P1 x="460" y="447" id="1186" /> +<P2 x="460" y="456" id="1174" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1033" > +<father id="1035" num="0" /> +<cdparam x="478" y="456" /> +<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1029" /> +<TGConnectingPoint num="1" id="1030" /> +<TGConnectingPoint num="2" id="1031" /> +<TGConnectingPoint num="3" id="1032" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="100" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1042" > +<cdparam x="460" y="405" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1041" /> +<P1 x="460" y="405" id="1164" /> +<P2 x="460" y="417" id="1185" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1040" > +<father id="1042" num="0" /> +<cdparam x="472" y="417" /> +<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1036" /> +<TGConnectingPoint num="1" id="1037" /> +<TGConnectingPoint num="2" id="1038" /> +<TGConnectingPoint num="3" id="1039" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="100" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1049" > +<cdparam x="458" y="358" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1048" /> +<P1 x="458" y="358" id="1153" /> +<P2 x="460" y="375" id="1163" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1047" > +<father id="1049" num="0" /> +<cdparam x="479" y="374" /> +<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1043" /> +<TGConnectingPoint num="1" id="1044" /> +<TGConnectingPoint num="2" id="1045" /> +<TGConnectingPoint num="3" id="1046" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="100" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1056" > +<cdparam x="448" y="147" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1055" /> +<P1 x="434" y="106" id="1150" /> +<P2 x="457" y="160" id="1110" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1054" > +<father id="1056" num="0" /> +<cdparam x="448" y="187" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1050" /> +<TGConnectingPoint num="1" id="1051" /> +<TGConnectingPoint num="2" id="1052" /> +<TGConnectingPoint num="3" id="1053" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1063" > +<cdparam x="457" y="240" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1062" /> +<P1 x="457" y="225" id="1115" /> +<P2 x="457" y="281" id="1098" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1061" > +<father id="1063" num="0" /> +<cdparam x="488" y="245" /> +<sizeparam width="139" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1057" /> +<TGConnectingPoint num="1" id="1058" /> +<TGConnectingPoint num="2" id="1059" /> +<TGConnectingPoint num="3" id="1060" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="doc1.id = 1" /> +<actions value="doc1.nbOfPages = 5" /> +<actions value="doc1.currentPage = 2" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1070" > +<cdparam x="457" y="311" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1069" /> +<P1 x="457" y="311" id="1099" /> +<P2 x="458" y="328" id="1152" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1068" > +<father id="1070" num="0" /> +<cdparam x="474" y="327" /> +<sizeparam width="68" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1064" /> +<TGConnectingPoint num="1" id="1065" /> +<TGConnectingPoint num="2" id="1066" /> +<TGConnectingPoint num="3" id="1067" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="100" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1077" > +<cdparam x="460" y="486" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1076" /> +<P1 x="460" y="486" id="1175" /> +<P2 x="460" y="534" id="1087" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1075" > +<father id="1077" num="0" /> +<cdparam x="473" y="504" /> +<sizeparam width="68" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1071" /> +<TGConnectingPoint num="1" id="1072" /> +<TGConnectingPoint num="2" id="1073" /> +<TGConnectingPoint num="3" id="1074" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="250" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="index = 1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1084" > +<cdparam x="460" y="564" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to stop state" value="null" /> +<TGConnectingPoint num="0" id="1083" /> +<P1 x="460" y="564" id="1088" /> +<P2 x="461" y="584" id="1085" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1082" > +<father id="1084" num="0" /> +<cdparam x="460" y="604" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1078" /> +<TGConnectingPoint num="1" id="1079" /> +<TGConnectingPoint num="2" id="1080" /> +<TGConnectingPoint num="3" id="1081" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5101" id="1086" > +<cdparam x="451" y="589" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1085" /> +</COMPONENT> + +<COMPONENT type="5103" id="1097" > +<cdparam x="402" y="539" /> +<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="goToPage(index)" /> +<TGConnectingPoint num="0" id="1087" /> +<TGConnectingPoint num="1" id="1088" /> +<TGConnectingPoint num="2" id="1089" /> +<TGConnectingPoint num="3" id="1090" /> +<TGConnectingPoint num="4" id="1091" /> +<TGConnectingPoint num="5" id="1092" /> +<TGConnectingPoint num="6" id="1093" /> +<TGConnectingPoint num="7" id="1094" /> +<TGConnectingPoint num="8" id="1095" /> +<TGConnectingPoint num="9" id="1096" /> +</COMPONENT> + +<COMPONENT type="5103" id="1108" > +<cdparam x="384" y="286" /> +<sizeparam width="147" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="openDocument(doc1)" /> +<TGConnectingPoint num="0" id="1098" /> +<TGConnectingPoint num="1" id="1099" /> +<TGConnectingPoint num="2" id="1100" /> +<TGConnectingPoint num="3" id="1101" /> +<TGConnectingPoint num="4" id="1102" /> +<TGConnectingPoint num="5" id="1103" /> +<TGConnectingPoint num="6" id="1104" /> +<TGConnectingPoint num="7" id="1105" /> +<TGConnectingPoint num="8" id="1106" /> +<TGConnectingPoint num="9" id="1107" /> +</COMPONENT> + +<COMPONENT type="5106" id="1149" > +<cdparam x="319" y="160" /> +<sizeparam width="276" height="65" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="firstDoc" /> +<TGConnectingPoint num="0" id="1109" /> +<TGConnectingPoint num="1" id="1110" /> +<TGConnectingPoint num="2" id="1111" /> +<TGConnectingPoint num="3" id="1112" /> +<TGConnectingPoint num="4" id="1113" /> +<TGConnectingPoint num="5" id="1114" /> +<TGConnectingPoint num="6" id="1115" /> +<TGConnectingPoint num="7" id="1116" /> +<TGConnectingPoint num="8" id="1117" /> +<TGConnectingPoint num="9" id="1118" /> +<TGConnectingPoint num="10" id="1119" /> +<TGConnectingPoint num="11" id="1120" /> +<TGConnectingPoint num="12" id="1121" /> +<TGConnectingPoint num="13" id="1122" /> +<TGConnectingPoint num="14" id="1123" /> +<TGConnectingPoint num="15" id="1124" /> +<TGConnectingPoint num="16" id="1125" /> +<TGConnectingPoint num="17" id="1126" /> +<TGConnectingPoint num="18" id="1127" /> +<TGConnectingPoint num="19" id="1128" /> +<TGConnectingPoint num="20" id="1129" /> +<TGConnectingPoint num="21" id="1130" /> +<TGConnectingPoint num="22" id="1131" /> +<TGConnectingPoint num="23" id="1132" /> +<TGConnectingPoint num="24" id="1133" /> +<TGConnectingPoint num="25" id="1134" /> +<TGConnectingPoint num="26" id="1135" /> +<TGConnectingPoint num="27" id="1136" /> +<TGConnectingPoint num="28" id="1137" /> +<TGConnectingPoint num="29" id="1138" /> +<TGConnectingPoint num="30" id="1139" /> +<TGConnectingPoint num="31" id="1140" /> +<TGConnectingPoint num="32" id="1141" /> +<TGConnectingPoint num="33" id="1142" /> +<TGConnectingPoint num="34" id="1143" /> +<TGConnectingPoint num="35" id="1144" /> +<TGConnectingPoint num="36" id="1145" /> +<TGConnectingPoint num="37" id="1146" /> +<TGConnectingPoint num="38" id="1147" /> +<TGConnectingPoint num="39" id="1148" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1151" > +<cdparam x="427" y="86" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1150" /> +</COMPONENT> + +<COMPONENT type="5103" id="1162" > +<cdparam x="409" y="333" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="flipNextPage()" /> +<TGConnectingPoint num="0" id="1152" /> +<TGConnectingPoint num="1" id="1153" /> +<TGConnectingPoint num="2" id="1154" /> +<TGConnectingPoint num="3" id="1155" /> +<TGConnectingPoint num="4" id="1156" /> +<TGConnectingPoint num="5" id="1157" /> +<TGConnectingPoint num="6" id="1158" /> +<TGConnectingPoint num="7" id="1159" /> +<TGConnectingPoint num="8" id="1160" /> +<TGConnectingPoint num="9" id="1161" /> +</COMPONENT> + +<COMPONENT type="5103" id="1173" > +<cdparam x="411" y="380" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="flipNextPage()" /> +<TGConnectingPoint num="0" id="1163" /> +<TGConnectingPoint num="1" id="1164" /> +<TGConnectingPoint num="2" id="1165" /> +<TGConnectingPoint num="3" id="1166" /> +<TGConnectingPoint num="4" id="1167" /> +<TGConnectingPoint num="5" id="1168" /> +<TGConnectingPoint num="6" id="1169" /> +<TGConnectingPoint num="7" id="1170" /> +<TGConnectingPoint num="8" id="1171" /> +<TGConnectingPoint num="9" id="1172" /> +</COMPONENT> + +<COMPONENT type="5103" id="1184" > +<cdparam x="411" y="461" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="flipNextPage()" /> +<TGConnectingPoint num="0" id="1174" /> +<TGConnectingPoint num="1" id="1175" /> +<TGConnectingPoint num="2" id="1176" /> +<TGConnectingPoint num="3" id="1177" /> +<TGConnectingPoint num="4" id="1178" /> +<TGConnectingPoint num="5" id="1179" /> +<TGConnectingPoint num="6" id="1180" /> +<TGConnectingPoint num="7" id="1181" /> +<TGConnectingPoint num="8" id="1182" /> +<TGConnectingPoint num="9" id="1183" /> +</COMPONENT> + +<COMPONENT type="5103" id="1195" > +<cdparam x="411" y="422" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="flipNextPage()" /> +<TGConnectingPoint num="0" id="1185" /> +<TGConnectingPoint num="1" id="1186" /> +<TGConnectingPoint num="2" id="1187" /> +<TGConnectingPoint num="3" id="1188" /> +<TGConnectingPoint num="4" id="1189" /> +<TGConnectingPoint num="5" id="1190" /> +<TGConnectingPoint num="6" id="1191" /> +<TGConnectingPoint num="7" id="1192" /> +<TGConnectingPoint num="8" id="1193" /> +<TGConnectingPoint num="9" id="1194" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="DisplayDriver" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1208" > +<cdparam x="400" y="247" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1204" /> +<TGConnectingPoint num="1" id="1205" /> +<TGConnectingPoint num="2" id="1206" /> +<TGConnectingPoint num="3" id="1207" /> +<P1 x="400" y="247" id="1224" /> +<P2 x="295" y="167" id="1237" /> +<Point x="400" y="312" /> +<Point x="250" y="312" /> +<Point x="250" y="167" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1196" > +<father id="1208" num="0" /> +<cdparam x="400" y="312" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1197" > +<father id="1208" num="1" /> +<cdparam x="250" y="312" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1198" > +<father id="1208" num="2" /> +<cdparam x="250" y="167" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1203" > +<father id="1208" num="3" /> +<cdparam x="410" y="275" /> +<sizeparam width="112" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1199" /> +<TGConnectingPoint num="1" id="1200" /> +<TGConnectingPoint num="2" id="1201" /> +<TGConnectingPoint num="3" id="1202" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="20" /> +<afterMax value="40" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="data = page.data" /> +<actions value="printPage(data)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1215" > +<cdparam x="398" y="95" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1214" /> +<P1 x="398" y="95" id="1275" /> +<P2 x="399" y="142" id="1235" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1213" > +<father id="1215" num="0" /> +<cdparam x="398" y="135" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1209" /> +<TGConnectingPoint num="1" id="1210" /> +<TGConnectingPoint num="2" id="1211" /> +<TGConnectingPoint num="3" id="1212" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1222" > +<cdparam x="399" y="192" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1221" /> +<P1 x="399" y="192" id="1240" /> +<P2 x="400" y="217" id="1223" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1220" > +<father id="1222" num="0" /> +<cdparam x="399" y="232" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1216" /> +<TGConnectingPoint num="1" id="1217" /> +<TGConnectingPoint num="2" id="1218" /> +<TGConnectingPoint num="3" id="1219" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="1233" > +<cdparam x="333" y="222" /> +<sizeparam width="135" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="displayPage(page)" /> +<TGConnectingPoint num="0" id="1223" /> +<TGConnectingPoint num="1" id="1224" /> +<TGConnectingPoint num="2" id="1225" /> +<TGConnectingPoint num="3" id="1226" /> +<TGConnectingPoint num="4" id="1227" /> +<TGConnectingPoint num="5" id="1228" /> +<TGConnectingPoint num="6" id="1229" /> +<TGConnectingPoint num="7" id="1230" /> +<TGConnectingPoint num="8" id="1231" /> +<TGConnectingPoint num="9" id="1232" /> +</COMPONENT> + +<COMPONENT type="5106" id="1274" > +<cdparam x="295" y="142" /> +<sizeparam width="209" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="WaitingForPageToDisplay" /> +<TGConnectingPoint num="0" id="1234" /> +<TGConnectingPoint num="1" id="1235" /> +<TGConnectingPoint num="2" id="1236" /> +<TGConnectingPoint num="3" id="1237" /> +<TGConnectingPoint num="4" id="1238" /> +<TGConnectingPoint num="5" id="1239" /> +<TGConnectingPoint num="6" id="1240" /> +<TGConnectingPoint num="7" id="1241" /> +<TGConnectingPoint num="8" id="1242" /> +<TGConnectingPoint num="9" id="1243" /> +<TGConnectingPoint num="10" id="1244" /> +<TGConnectingPoint num="11" id="1245" /> +<TGConnectingPoint num="12" id="1246" /> +<TGConnectingPoint num="13" id="1247" /> +<TGConnectingPoint num="14" id="1248" /> +<TGConnectingPoint num="15" id="1249" /> +<TGConnectingPoint num="16" id="1250" /> +<TGConnectingPoint num="17" id="1251" /> +<TGConnectingPoint num="18" id="1252" /> +<TGConnectingPoint num="19" id="1253" /> +<TGConnectingPoint num="20" id="1254" /> +<TGConnectingPoint num="21" id="1255" /> +<TGConnectingPoint num="22" id="1256" /> +<TGConnectingPoint num="23" id="1257" /> +<TGConnectingPoint num="24" id="1258" /> +<TGConnectingPoint num="25" id="1259" /> +<TGConnectingPoint num="26" id="1260" /> +<TGConnectingPoint num="27" id="1261" /> +<TGConnectingPoint num="28" id="1262" /> +<TGConnectingPoint num="29" id="1263" /> +<TGConnectingPoint num="30" id="1264" /> +<TGConnectingPoint num="31" id="1265" /> +<TGConnectingPoint num="32" id="1266" /> +<TGConnectingPoint num="33" id="1267" /> +<TGConnectingPoint num="34" id="1268" /> +<TGConnectingPoint num="35" id="1269" /> +<TGConnectingPoint num="36" id="1270" /> +<TGConnectingPoint num="37" id="1271" /> +<TGConnectingPoint num="38" id="1272" /> +<TGConnectingPoint num="39" id="1273" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1276" > +<cdparam x="391" y="75" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1275" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="EReaderController" minX="10" maxX="1400" minY="10" maxY="1400" > +<CONNECTOR type="5102" id="1283" > +<cdparam x="828" y="336" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1282" /> +<P1 x="809" y="327" id="1645" /> +<P2 x="682" y="361" id="1607" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1281" > +<father id="1283" num="0" /> +<cdparam x="828" y="376" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1277" /> +<TGConnectingPoint num="1" id="1278" /> +<TGConnectingPoint num="2" id="1279" /> +<TGConnectingPoint num="3" id="1280" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1294" > +<cdparam x="870" y="518" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1291" /> +<TGConnectingPoint num="1" id="1292" /> +<TGConnectingPoint num="2" id="1293" /> +<P1 x="870" y="481" id="1553" /> +<P2 x="809" y="297" id="1644" /> +<Point x="965" y="368" /> +<Point x="965" y="273" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1284" > +<father id="1294" num="0" /> +<cdparam x="965" y="368" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1285" > +<father id="1294" num="1" /> +<cdparam x="965" y="273" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1290" > +<father id="1294" num="2" /> +<cdparam x="870" y="558" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1286" /> +<TGConnectingPoint num="1" id="1287" /> +<TGConnectingPoint num="2" id="1288" /> +<TGConnectingPoint num="3" id="1289" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1301" > +<cdparam x="870" y="493" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1300" /> +<P1 x="870" y="506" id="1555" /> +<P2 x="998" y="530" id="1655" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1299" > +<father id="1301" num="0" /> +<cdparam x="870" y="533" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1295" /> +<TGConnectingPoint num="1" id="1296" /> +<TGConnectingPoint num="2" id="1297" /> +<TGConnectingPoint num="3" id="1298" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1308" > +<cdparam x="556" y="222" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1307" /> +<P1 x="556" y="222" id="1667" /> +<P2 x="575" y="336" id="1604" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1306" > +<father id="1308" num="0" /> +<cdparam x="556" y="262" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1302" /> +<TGConnectingPoint num="1" id="1303" /> +<TGConnectingPoint num="2" id="1304" /> +<TGConnectingPoint num="3" id="1305" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1321" > +<cdparam x="800" y="680" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="1317" /> +<TGConnectingPoint num="1" id="1318" /> +<TGConnectingPoint num="2" id="1319" /> +<TGConnectingPoint num="3" id="1320" /> +<P1 x="800" y="680" id="1515" /> +<P2 x="870" y="531" id="1558" /> +<Point x="836" y="703" /> +<Point x="894" y="703" /> +<Point x="894" y="558" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1309" > +<father id="1321" num="0" /> +<cdparam x="836" y="703" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1310" > +<father id="1321" num="1" /> +<cdparam x="894" y="703" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1311" > +<father id="1321" num="2" /> +<cdparam x="894" y="558" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1316" > +<father id="1321" num="3" /> +<cdparam x="852" y="669" /> +<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1312" /> +<TGConnectingPoint num="1" id="1313" /> +<TGConnectingPoint num="2" id="1314" /> +<TGConnectingPoint num="3" id="1315" /> +<extraparam> +<guard value="[ else ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1328" > +<cdparam x="750" y="680" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to state0" value="null" /> +<TGConnectingPoint num="0" id="1327" /> +<P1 x="750" y="680" id="1514" /> +<P2 x="604" y="748" id="1481" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1326" > +<father id="1328" num="0" /> +<cdparam x="492" y="725" /> +<sizeparam width="448" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1322" /> +<TGConnectingPoint num="1" id="1323" /> +<TGConnectingPoint num="2" id="1324" /> +<TGConnectingPoint num="3" id="1325" /> +<extraparam> +<guard value="[(currentPage > 0) and (currentPage < currentDocument.nbOfPages) ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="currentDocument.currentPage = currentPage" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1335" > +<cdparam x="775" y="611" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1334" /> +<P1 x="754" y="614" id="1530" /> +<P2 x="775" y="655" id="1513" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1333" > +<father id="1335" num="0" /> +<cdparam x="604" y="727" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1329" /> +<TGConnectingPoint num="1" id="1330" /> +<TGConnectingPoint num="2" id="1331" /> +<TGConnectingPoint num="3" id="1332" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1342" > +<cdparam x="722" y="531" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1341" /> +<P1 x="722" y="531" id="1566" /> +<P2 x="754" y="584" id="1529" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1340" > +<father id="1342" num="0" /> +<cdparam x="722" y="571" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1336" /> +<TGConnectingPoint num="1" id="1337" /> +<TGConnectingPoint num="2" id="1338" /> +<TGConnectingPoint num="3" id="1339" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1349" > +<cdparam x="612" y="624" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1348" /> +<P1 x="575" y="615" id="1541" /> +<P2 x="540" y="748" id="1473" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1347" > +<father id="1349" num="0" /> +<cdparam x="448" y="646" /> +<sizeparam width="428" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1343" /> +<TGConnectingPoint num="1" id="1344" /> +<TGConnectingPoint num="2" id="1345" /> +<TGConnectingPoint num="3" id="1346" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="currentDocument.currentPage = currentDocument.currentPage + 1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1356" > +<cdparam x="575" y="531" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1355" /> +<P1 x="575" y="531" id="1557" /> +<P2 x="575" y="585" id="1540" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1354" > +<father id="1356" num="0" /> +<cdparam x="580" y="551" /> +<sizeparam width="163" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1350" /> +<TGConnectingPoint num="1" id="1351" /> +<TGConnectingPoint num="2" id="1352" /> +<TGConnectingPoint num="3" id="1353" /> +<extraparam> +<guard value="[ not(currentPage == 0) ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<filesToIncludeLine value="" /> +<codeToIncludeLine value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1363" > +<cdparam x="427" y="615" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1362" /> +<P1 x="427" y="615" id="1462" /> +<P2 x="476" y="748" id="1480" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1361" > +<father id="1363" num="0" /> +<cdparam x="292" y="682" /> +<sizeparam width="428" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1357" /> +<TGConnectingPoint num="1" id="1358" /> +<TGConnectingPoint num="2" id="1359" /> +<TGConnectingPoint num="3" id="1360" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="currentDocument.currentPage = currentDocument.currentPage + 1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1370" > +<cdparam x="408" y="540" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1369" /> +<P1 x="427" y="531" id="1565" /> +<P2 x="427" y="585" id="1461" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1368" > +<father id="1370" num="0" /> +<cdparam x="284" y="574" /> +<sizeparam width="292" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1364" /> +<TGConnectingPoint num="1" id="1365" /> +<TGConnectingPoint num="2" id="1366" /> +<TGConnectingPoint num="3" id="1367" /> +<extraparam> +<guard value="[currentPage < currentDocument.nbOfPages ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1383" > +<cdparam x="277" y="657" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1379" /> +<TGConnectingPoint num="1" id="1380" /> +<TGConnectingPoint num="2" id="1381" /> +<TGConnectingPoint num="3" id="1382" /> +<P1 x="269" y="647" id="1440" /> +<P2 x="280" y="506" id="1554" /> +<Point x="269" y="676" /> +<Point x="186" y="676" /> +<Point x="186" y="515" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1371" > +<father id="1383" num="0" /> +<cdparam x="269" y="676" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1372" > +<father id="1383" num="1" /> +<cdparam x="186" y="676" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1373" > +<father id="1383" num="2" /> +<cdparam x="186" y="515" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1378" > +<father id="1383" num="3" /> +<cdparam x="255" y="697" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1374" /> +<TGConnectingPoint num="1" id="1375" /> +<TGConnectingPoint num="2" id="1376" /> +<TGConnectingPoint num="3" id="1377" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1390" > +<cdparam x="306" y="622" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1389" /> +<P1 x="269" y="595" id="1451" /> +<P2 x="269" y="617" id="1439" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1388" > +<father id="1390" num="0" /> +<cdparam x="306" y="662" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1384" /> +<TGConnectingPoint num="1" id="1385" /> +<TGConnectingPoint num="2" id="1386" /> +<TGConnectingPoint num="3" id="1387" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1397" > +<cdparam x="366" y="547" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1396" /> +<P1 x="280" y="531" id="1556" /> +<P2 x="269" y="565" id="1450" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1395" > +<father id="1397" num="0" /> +<cdparam x="366" y="587" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1391" /> +<TGConnectingPoint num="1" id="1392" /> +<TGConnectingPoint num="2" id="1393" /> +<TGConnectingPoint num="3" id="1394" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1404" > +<cdparam x="408" y="468" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1403" /> +<P1 x="575" y="455" id="1593" /> +<P2 x="575" y="481" id="1552" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1402" > +<father id="1404" num="0" /> +<cdparam x="408" y="508" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1398" /> +<TGConnectingPoint num="1" id="1399" /> +<TGConnectingPoint num="2" id="1400" /> +<TGConnectingPoint num="3" id="1401" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1411" > +<cdparam x="408" y="397" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1410" /> +<P1 x="575" y="386" id="1609" /> +<P2 x="575" y="425" id="1592" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1409" > +<father id="1411" num="0" /> +<cdparam x="607" y="405" /> +<sizeparam width="288" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1405" /> +<TGConnectingPoint num="1" id="1406" /> +<TGConnectingPoint num="2" id="1407" /> +<TGConnectingPoint num="3" id="1408" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="currentPage = currentDocument.currentPage" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1418" > +<cdparam x="565" y="76" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1417" /> +<P1 x="556" y="87" id="1718" /> +<P2 x="556" y="128" id="1678" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1416" > +<father id="1418" num="0" /> +<cdparam x="565" y="116" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1412" /> +<TGConnectingPoint num="1" id="1413" /> +<TGConnectingPoint num="2" id="1414" /> +<TGConnectingPoint num="3" id="1415" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1425" > +<cdparam x="565" y="171" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Receive signal" value="null" /> +<TGConnectingPoint num="0" id="1424" /> +<P1 x="556" y="178" id="1683" /> +<P2 x="556" y="192" id="1666" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1423" > +<father id="1425" num="0" /> +<cdparam x="565" y="211" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1419" /> +<TGConnectingPoint num="1" id="1420" /> +<TGConnectingPoint num="2" id="1421" /> +<TGConnectingPoint num="3" id="1422" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1438" > +<cdparam x="747" y="421" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Receive signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1434" /> +<TGConnectingPoint num="1" id="1435" /> +<TGConnectingPoint num="2" id="1436" /> +<TGConnectingPoint num="3" id="1437" /> +<P1 x="998" y="560" id="1656" /> +<P2 x="625" y="153" id="1681" /> +<Point x="1075" y="569" /> +<Point x="1080" y="272" /> +<Point x="882" y="153" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1426" > +<father id="1438" num="0" /> +<cdparam x="1075" y="569" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1427" > +<father id="1438" num="1" /> +<cdparam x="1080" y="272" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1428" > +<father id="1438" num="2" /> +<cdparam x="882" y="153" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1433" > +<father id="1438" num="3" /> +<cdparam x="747" y="461" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1429" /> +<TGConnectingPoint num="1" id="1430" /> +<TGConnectingPoint num="2" id="1431" /> +<TGConnectingPoint num="3" id="1432" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="1449" > +<cdparam x="206" y="622" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="displayPage(page)" /> +<TGConnectingPoint num="0" id="1439" /> +<TGConnectingPoint num="1" id="1440" /> +<TGConnectingPoint num="2" id="1441" /> +<TGConnectingPoint num="3" id="1442" /> +<TGConnectingPoint num="4" id="1443" /> +<TGConnectingPoint num="5" id="1444" /> +<TGConnectingPoint num="6" id="1445" /> +<TGConnectingPoint num="7" id="1446" /> +<TGConnectingPoint num="8" id="1447" /> +<TGConnectingPoint num="9" id="1448" /> +</COMPONENT> + +<COMPONENT type="5104" id="1460" > +<cdparam x="213" y="570" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="getPage(page)" /> +<TGConnectingPoint num="0" id="1450" /> +<TGConnectingPoint num="1" id="1451" /> +<TGConnectingPoint num="2" id="1452" /> +<TGConnectingPoint num="3" id="1453" /> +<TGConnectingPoint num="4" id="1454" /> +<TGConnectingPoint num="5" id="1455" /> +<TGConnectingPoint num="6" id="1456" /> +<TGConnectingPoint num="7" id="1457" /> +<TGConnectingPoint num="8" id="1458" /> +<TGConnectingPoint num="9" id="1459" /> +</COMPONENT> + +<COMPONENT type="5104" id="1471" > +<cdparam x="374" y="590" /> +<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="flipNextPage()" /> +<TGConnectingPoint num="0" id="1461" /> +<TGConnectingPoint num="1" id="1462" /> +<TGConnectingPoint num="2" id="1463" /> +<TGConnectingPoint num="3" id="1464" /> +<TGConnectingPoint num="4" id="1465" /> +<TGConnectingPoint num="5" id="1466" /> +<TGConnectingPoint num="6" id="1467" /> +<TGConnectingPoint num="7" id="1468" /> +<TGConnectingPoint num="8" id="1469" /> +<TGConnectingPoint num="9" id="1470" /> +</COMPONENT> + +<COMPONENT type="5106" id="1512" > +<cdparam x="412" y="748" /> +<sizeparam width="256" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="PageLoadingManagement" /> +<TGConnectingPoint num="0" id="1472" /> +<TGConnectingPoint num="1" id="1473" /> +<TGConnectingPoint num="2" id="1474" /> +<TGConnectingPoint num="3" id="1475" /> +<TGConnectingPoint num="4" id="1476" /> +<TGConnectingPoint num="5" id="1477" /> +<TGConnectingPoint num="6" id="1478" /> +<TGConnectingPoint num="7" id="1479" /> +<TGConnectingPoint num="8" id="1480" /> +<TGConnectingPoint num="9" id="1481" /> +<TGConnectingPoint num="10" id="1482" /> +<TGConnectingPoint num="11" id="1483" /> +<TGConnectingPoint num="12" id="1484" /> +<TGConnectingPoint num="13" id="1485" /> +<TGConnectingPoint num="14" id="1486" /> +<TGConnectingPoint num="15" id="1487" /> +<TGConnectingPoint num="16" id="1488" /> +<TGConnectingPoint num="17" id="1489" /> +<TGConnectingPoint num="18" id="1490" /> +<TGConnectingPoint num="19" id="1491" /> +<TGConnectingPoint num="20" id="1492" /> +<TGConnectingPoint num="21" id="1493" /> +<TGConnectingPoint num="22" id="1494" /> +<TGConnectingPoint num="23" id="1495" /> +<TGConnectingPoint num="24" id="1496" /> +<TGConnectingPoint num="25" id="1497" /> +<TGConnectingPoint num="26" id="1498" /> +<TGConnectingPoint num="27" id="1499" /> +<TGConnectingPoint num="28" id="1500" /> +<TGConnectingPoint num="29" id="1501" /> +<TGConnectingPoint num="30" id="1502" /> +<TGConnectingPoint num="31" id="1503" /> +<TGConnectingPoint num="32" id="1504" /> +<TGConnectingPoint num="33" id="1505" /> +<TGConnectingPoint num="34" id="1506" /> +<TGConnectingPoint num="35" id="1507" /> +<TGConnectingPoint num="36" id="1508" /> +<TGConnectingPoint num="37" id="1509" /> +<TGConnectingPoint num="38" id="1510" /> +<TGConnectingPoint num="39" id="1511" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5107" id="1528" > +<cdparam x="760" y="665" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="1513" /> +<TGConnectingPoint num="1" id="1514" /> +<TGConnectingPoint num="2" id="1515" /> +<TGConnectingPoint num="3" id="1516" /> +<TGConnectingPoint num="4" id="1517" /> +<TGConnectingPoint num="5" id="1518" /> +<TGConnectingPoint num="6" id="1519" /> +<TGConnectingPoint num="7" id="1520" /> +<TGConnectingPoint num="8" id="1521" /> +<TGConnectingPoint num="9" id="1522" /> +<TGConnectingPoint num="10" id="1523" /> +<TGConnectingPoint num="11" id="1524" /> +<TGConnectingPoint num="12" id="1525" /> +<TGConnectingPoint num="13" id="1526" /> +<TGConnectingPoint num="14" id="1527" /> +</COMPONENT> + +<COMPONENT type="5104" id="1539" > +<cdparam x="670" y="589" /> +<sizeparam width="169" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="goToPage(currentPage)" /> +<TGConnectingPoint num="0" id="1529" /> +<TGConnectingPoint num="1" id="1530" /> +<TGConnectingPoint num="2" id="1531" /> +<TGConnectingPoint num="3" id="1532" /> +<TGConnectingPoint num="4" id="1533" /> +<TGConnectingPoint num="5" id="1534" /> +<TGConnectingPoint num="6" id="1535" /> +<TGConnectingPoint num="7" id="1536" /> +<TGConnectingPoint num="8" id="1537" /> +<TGConnectingPoint num="9" id="1538" /> +</COMPONENT> + +<COMPONENT type="5104" id="1550" > +<cdparam x="510" y="590" /> +<sizeparam width="131" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="flipPreviousPage()" /> +<TGConnectingPoint num="0" id="1540" /> +<TGConnectingPoint num="1" id="1541" /> +<TGConnectingPoint num="2" id="1542" /> +<TGConnectingPoint num="3" id="1543" /> +<TGConnectingPoint num="4" id="1544" /> +<TGConnectingPoint num="5" id="1545" /> +<TGConnectingPoint num="6" id="1546" /> +<TGConnectingPoint num="7" id="1547" /> +<TGConnectingPoint num="8" id="1548" /> +<TGConnectingPoint num="9" id="1549" /> +</COMPONENT> + +<COMPONENT type="5106" id="1591" > +<cdparam x="280" y="481" /> +<sizeparam width="590" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForPageBeingLoadedOrUserEvent" /> +<TGConnectingPoint num="0" id="1551" /> +<TGConnectingPoint num="1" id="1552" /> +<TGConnectingPoint num="2" id="1553" /> +<TGConnectingPoint num="3" id="1554" /> +<TGConnectingPoint num="4" id="1555" /> +<TGConnectingPoint num="5" id="1556" /> +<TGConnectingPoint num="6" id="1557" /> +<TGConnectingPoint num="7" id="1558" /> +<TGConnectingPoint num="8" id="1559" /> +<TGConnectingPoint num="9" id="1560" /> +<TGConnectingPoint num="10" id="1561" /> +<TGConnectingPoint num="11" id="1562" /> +<TGConnectingPoint num="12" id="1563" /> +<TGConnectingPoint num="13" id="1564" /> +<TGConnectingPoint num="14" id="1565" /> +<TGConnectingPoint num="15" id="1566" /> +<TGConnectingPoint num="16" id="1567" /> +<TGConnectingPoint num="17" id="1568" /> +<TGConnectingPoint num="18" id="1569" /> +<TGConnectingPoint num="19" id="1570" /> +<TGConnectingPoint num="20" id="1571" /> +<TGConnectingPoint num="21" id="1572" /> +<TGConnectingPoint num="22" id="1573" /> +<TGConnectingPoint num="23" id="1574" /> +<TGConnectingPoint num="24" id="1575" /> +<TGConnectingPoint num="25" id="1576" /> +<TGConnectingPoint num="26" id="1577" /> +<TGConnectingPoint num="27" id="1578" /> +<TGConnectingPoint num="28" id="1579" /> +<TGConnectingPoint num="29" id="1580" /> +<TGConnectingPoint num="30" id="1581" /> +<TGConnectingPoint num="31" id="1582" /> +<TGConnectingPoint num="32" id="1583" /> +<TGConnectingPoint num="33" id="1584" /> +<TGConnectingPoint num="34" id="1585" /> +<TGConnectingPoint num="35" id="1586" /> +<TGConnectingPoint num="36" id="1587" /> +<TGConnectingPoint num="37" id="1588" /> +<TGConnectingPoint num="38" id="1589" /> +<TGConnectingPoint num="39" id="1590" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="1602" > +<cdparam x="438" y="430" /> +<sizeparam width="275" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Send signal" value="loadPage(currentDocument, currentPage)" /> +<TGConnectingPoint num="0" id="1592" /> +<TGConnectingPoint num="1" id="1593" /> +<TGConnectingPoint num="2" id="1594" /> +<TGConnectingPoint num="3" id="1595" /> +<TGConnectingPoint num="4" id="1596" /> +<TGConnectingPoint num="5" id="1597" /> +<TGConnectingPoint num="6" id="1598" /> +<TGConnectingPoint num="7" id="1599" /> +<TGConnectingPoint num="8" id="1600" /> +<TGConnectingPoint num="9" id="1601" /> +</COMPONENT> + +<COMPONENT type="5106" id="1643" > +<cdparam x="468" y="336" /> +<sizeparam width="214" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="PageLoadingManagement" /> +<TGConnectingPoint num="0" id="1603" /> +<TGConnectingPoint num="1" id="1604" /> +<TGConnectingPoint num="2" id="1605" /> +<TGConnectingPoint num="3" id="1606" /> +<TGConnectingPoint num="4" id="1607" /> +<TGConnectingPoint num="5" id="1608" /> +<TGConnectingPoint num="6" id="1609" /> +<TGConnectingPoint num="7" id="1610" /> +<TGConnectingPoint num="8" id="1611" /> +<TGConnectingPoint num="9" id="1612" /> +<TGConnectingPoint num="10" id="1613" /> +<TGConnectingPoint num="11" id="1614" /> +<TGConnectingPoint num="12" id="1615" /> +<TGConnectingPoint num="13" id="1616" /> +<TGConnectingPoint num="14" id="1617" /> +<TGConnectingPoint num="15" id="1618" /> +<TGConnectingPoint num="16" id="1619" /> +<TGConnectingPoint num="17" id="1620" /> +<TGConnectingPoint num="18" id="1621" /> +<TGConnectingPoint num="19" id="1622" /> +<TGConnectingPoint num="20" id="1623" /> +<TGConnectingPoint num="21" id="1624" /> +<TGConnectingPoint num="22" id="1625" /> +<TGConnectingPoint num="23" id="1626" /> +<TGConnectingPoint num="24" id="1627" /> +<TGConnectingPoint num="25" id="1628" /> +<TGConnectingPoint num="26" id="1629" /> +<TGConnectingPoint num="27" id="1630" /> +<TGConnectingPoint num="28" id="1631" /> +<TGConnectingPoint num="29" id="1632" /> +<TGConnectingPoint num="30" id="1633" /> +<TGConnectingPoint num="31" id="1634" /> +<TGConnectingPoint num="32" id="1635" /> +<TGConnectingPoint num="33" id="1636" /> +<TGConnectingPoint num="34" id="1637" /> +<TGConnectingPoint num="35" id="1638" /> +<TGConnectingPoint num="36" id="1639" /> +<TGConnectingPoint num="37" id="1640" /> +<TGConnectingPoint num="38" id="1641" /> +<TGConnectingPoint num="39" id="1642" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1654" > +<cdparam x="692" y="302" /> +<sizeparam width="234" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="openDocument(currentDocument)" /> +<TGConnectingPoint num="0" id="1644" /> +<TGConnectingPoint num="1" id="1645" /> +<TGConnectingPoint num="2" id="1646" /> +<TGConnectingPoint num="3" id="1647" /> +<TGConnectingPoint num="4" id="1648" /> +<TGConnectingPoint num="5" id="1649" /> +<TGConnectingPoint num="6" id="1650" /> +<TGConnectingPoint num="7" id="1651" /> +<TGConnectingPoint num="8" id="1652" /> +<TGConnectingPoint num="9" id="1653" /> +</COMPONENT> + +<COMPONENT type="5104" id="1665" > +<cdparam x="967" y="535" /> +<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="home()" /> +<TGConnectingPoint num="0" id="1655" /> +<TGConnectingPoint num="1" id="1656" /> +<TGConnectingPoint num="2" id="1657" /> +<TGConnectingPoint num="3" id="1658" /> +<TGConnectingPoint num="4" id="1659" /> +<TGConnectingPoint num="5" id="1660" /> +<TGConnectingPoint num="6" id="1661" /> +<TGConnectingPoint num="7" id="1662" /> +<TGConnectingPoint num="8" id="1663" /> +<TGConnectingPoint num="9" id="1664" /> +</COMPONENT> + +<COMPONENT type="5104" id="1676" > +<cdparam x="439" y="197" /> +<sizeparam width="234" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="Receive signal" value="openDocument(currentDocument)" /> +<TGConnectingPoint num="0" id="1666" /> +<TGConnectingPoint num="1" id="1667" /> +<TGConnectingPoint num="2" id="1668" /> +<TGConnectingPoint num="3" id="1669" /> +<TGConnectingPoint num="4" id="1670" /> +<TGConnectingPoint num="5" id="1671" /> +<TGConnectingPoint num="6" id="1672" /> +<TGConnectingPoint num="7" id="1673" /> +<TGConnectingPoint num="8" id="1674" /> +<TGConnectingPoint num="9" id="1675" /> +</COMPONENT> + +<COMPONENT type="5106" id="1717" > +<cdparam x="488" y="128" /> +<sizeparam width="137" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="state0" value="WaitingForDocument" /> +<TGConnectingPoint num="0" id="1677" /> +<TGConnectingPoint num="1" id="1678" /> +<TGConnectingPoint num="2" id="1679" /> +<TGConnectingPoint num="3" id="1680" /> +<TGConnectingPoint num="4" id="1681" /> +<TGConnectingPoint num="5" id="1682" /> +<TGConnectingPoint num="6" id="1683" /> +<TGConnectingPoint num="7" id="1684" /> +<TGConnectingPoint num="8" id="1685" /> +<TGConnectingPoint num="9" id="1686" /> +<TGConnectingPoint num="10" id="1687" /> +<TGConnectingPoint num="11" id="1688" /> +<TGConnectingPoint num="12" id="1689" /> +<TGConnectingPoint num="13" id="1690" /> +<TGConnectingPoint num="14" id="1691" /> +<TGConnectingPoint num="15" id="1692" /> +<TGConnectingPoint num="16" id="1693" /> +<TGConnectingPoint num="17" id="1694" /> +<TGConnectingPoint num="18" id="1695" /> +<TGConnectingPoint num="19" id="1696" /> +<TGConnectingPoint num="20" id="1697" /> +<TGConnectingPoint num="21" id="1698" /> +<TGConnectingPoint num="22" id="1699" /> +<TGConnectingPoint num="23" id="1700" /> +<TGConnectingPoint num="24" id="1701" /> +<TGConnectingPoint num="25" id="1702" /> +<TGConnectingPoint num="26" id="1703" /> +<TGConnectingPoint num="27" id="1704" /> +<TGConnectingPoint num="28" id="1705" /> +<TGConnectingPoint num="29" id="1706" /> +<TGConnectingPoint num="30" id="1707" /> +<TGConnectingPoint num="31" id="1708" /> +<TGConnectingPoint num="32" id="1709" /> +<TGConnectingPoint num="33" id="1710" /> +<TGConnectingPoint num="34" id="1711" /> +<TGConnectingPoint num="35" id="1712" /> +<TGConnectingPoint num="36" id="1713" /> +<TGConnectingPoint num="37" id="1714" /> +<TGConnectingPoint num="38" id="1715" /> +<TGConnectingPoint num="39" id="1716" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1719" > +<cdparam x="549" y="67" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1718" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/ttool/src/test/resources/ui/diagram2avatar/input/exampleFunctionCall.xml b/ttool/src/test/resources/ui/diagram2avatar/input/exampleFunctionCall.xml new file mode 100644 index 0000000000000000000000000000000000000000..5b50e31e36d50f2a653e3537551e462e4f98a7a3 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2avatar/input/exampleFunctionCall.xml @@ -0,0 +1,1500 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="0.98-beta4"> + +<Modeling type="AVATAR Design" nameTab="Design" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="2" > +<cdparam x="289" y="131" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="1" /> +<P1 x="288" y="129" id="76" /> +<P2 x="451" y="138" id="50" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in chin(int v)" /> +<osd value="out chout(int v)" /> +<isd value="in chin(int v)" /> +<oso value="out chout(int v)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="302" id="19" > +<cdparam x="351" y="389" /> +<sizeparam width="375" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge Bob.skey Alice.skey +#InitialSystemKnowledge Bob.secretData Alice.secretData +#Confidentiality Bob.secretData +" /> +<TGConnectingPoint num="0" id="3" /> +<TGConnectingPoint num="1" id="4" /> +<TGConnectingPoint num="2" id="5" /> +<TGConnectingPoint num="3" id="6" /> +<TGConnectingPoint num="4" id="7" /> +<TGConnectingPoint num="5" id="8" /> +<TGConnectingPoint num="6" id="9" /> +<TGConnectingPoint num="7" id="10" /> +<TGConnectingPoint num="8" id="11" /> +<TGConnectingPoint num="9" id="12" /> +<TGConnectingPoint num="10" id="13" /> +<TGConnectingPoint num="11" id="14" /> +<TGConnectingPoint num="12" id="15" /> +<TGConnectingPoint num="13" id="16" /> +<TGConnectingPoint num="14" id="17" /> +<TGConnectingPoint num="15" id="18" /> +<extraparam> +<Line value="#InitialSystemKnowledge Bob.skey Alice.skey" /> +<Line value="#InitialSystemKnowledge Bob.secretData Alice.secretData" /> +<Line value="#Confidentiality Bob.secretData" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="28" > +<cdparam x="622" y="271" /> +<sizeparam width="250" height="68" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Key" /> +<TGConnectingPoint num="0" id="20" /> +<TGConnectingPoint num="1" id="21" /> +<TGConnectingPoint num="2" id="22" /> +<TGConnectingPoint num="3" id="23" /> +<TGConnectingPoint num="4" id="24" /> +<TGConnectingPoint num="5" id="25" /> +<TGConnectingPoint num="6" id="26" /> +<TGConnectingPoint num="7" id="27" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="37" > +<cdparam x="345" y="273" /> +<sizeparam width="250" height="68" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Message" /> +<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> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5005" id="46" > +<cdparam x="89" y="278" /> +<sizeparam width="160" height="144" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="SendReceiveMessage" value="SendReceiveMessage" /> +<TGConnectingPoint num="0" id="38" /> +<TGConnectingPoint num="1" id="39" /> +<TGConnectingPoint num="2" id="40" /> +<TGConnectingPoint num="3" id="41" /> +<TGConnectingPoint num="4" id="42" /> +<TGConnectingPoint num="5" id="43" /> +<TGConnectingPoint num="6" id="44" /> +<TGConnectingPoint num="7" id="45" /> +<extraparam> +<CryptoLibraryFunction value="false" /> +<Parameter access="0" id="msg" value="" type="5" typeOther="Message" /> +<Parameter access="0" id="key" value="" type="5" typeOther="Key" /> +<Signal value="in inch(int v)" /> +<Signal value="out outch(int v)" /> +<ReturnAttribute access="0" id="msgRet" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="d" value="" type="8" typeOther="" /> +<Attribute access="0" id="dummy" value="" type="5" typeOther="Message" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="71" > +<cdparam x="451" y="38" /> +<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block1" value="Alice" /> +<TGConnectingPoint num="0" id="47" /> +<TGConnectingPoint num="1" id="48" /> +<TGConnectingPoint num="2" id="49" /> +<TGConnectingPoint num="3" id="50" /> +<TGConnectingPoint num="4" id="51" /> +<TGConnectingPoint num="5" id="52" /> +<TGConnectingPoint num="6" id="53" /> +<TGConnectingPoint num="7" id="54" /> +<TGConnectingPoint num="8" id="55" /> +<TGConnectingPoint num="9" id="56" /> +<TGConnectingPoint num="10" id="57" /> +<TGConnectingPoint num="11" id="58" /> +<TGConnectingPoint num="12" id="59" /> +<TGConnectingPoint num="13" id="60" /> +<TGConnectingPoint num="14" id="61" /> +<TGConnectingPoint num="15" id="62" /> +<TGConnectingPoint num="16" id="63" /> +<TGConnectingPoint num="17" id="64" /> +<TGConnectingPoint num="18" id="65" /> +<TGConnectingPoint num="19" id="66" /> +<TGConnectingPoint num="20" id="67" /> +<TGConnectingPoint num="21" id="68" /> +<TGConnectingPoint num="22" id="69" /> +<TGConnectingPoint num="23" id="70" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="send" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="recv" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="skey" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="96" > +<cdparam x="38" y="44" /> +<sizeparam width="250" height="170" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block0" value="Bob" /> +<TGConnectingPoint num="0" id="72" /> +<TGConnectingPoint num="1" id="73" /> +<TGConnectingPoint num="2" id="74" /> +<TGConnectingPoint num="3" id="75" /> +<TGConnectingPoint num="4" id="76" /> +<TGConnectingPoint num="5" id="77" /> +<TGConnectingPoint num="6" id="78" /> +<TGConnectingPoint num="7" id="79" /> +<TGConnectingPoint num="8" id="80" /> +<TGConnectingPoint num="9" id="81" /> +<TGConnectingPoint num="10" id="82" /> +<TGConnectingPoint num="11" id="83" /> +<TGConnectingPoint num="12" id="84" /> +<TGConnectingPoint num="13" id="85" /> +<TGConnectingPoint num="14" id="86" /> +<TGConnectingPoint num="15" id="87" /> +<TGConnectingPoint num="16" id="88" /> +<TGConnectingPoint num="17" id="89" /> +<TGConnectingPoint num="18" id="90" /> +<TGConnectingPoint num="19" id="91" /> +<TGConnectingPoint num="20" id="92" /> +<TGConnectingPoint num="21" id="93" /> +<TGConnectingPoint num="22" id="94" /> +<TGConnectingPoint num="23" id="95" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="send" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="recv" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="skey" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="SendReceiveMessage" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="103" > +<cdparam x="388" y="143" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="102" /> +<P1 x="388" y="143" id="132" /> +<P2 x="388" y="205" id="118" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="101" > +<father id="103" num="0" /> +<cdparam x="388" y="183" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="97" /> +<TGConnectingPoint num="1" id="98" /> +<TGConnectingPoint num="2" id="99" /> +<TGConnectingPoint num="3" id="100" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="110" > +<cdparam x="416" y="149" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="109" /> +<P1 x="388" y="235" id="119" /> +<P2 x="409" y="305" id="129" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="108" > +<father id="110" num="0" /> +<cdparam x="420" y="262" /> +<sizeparam width="202" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="104" /> +<TGConnectingPoint num="1" id="105" /> +<TGConnectingPoint num="2" id="106" /> +<TGConnectingPoint num="3" id="107" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="dummy.data = d" /> +<actions value="msgRet = sdecrypt(dummy, key)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="117" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="116" /> +<P1 x="407" y="70" id="142" /> +<P2 x="388" y="113" id="131" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="115" > +<father id="117" num="0" /> +<cdparam x="423" y="87" /> +<sizeparam width="181" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="111" /> +<TGConnectingPoint num="1" id="112" /> +<TGConnectingPoint num="2" id="113" /> +<TGConnectingPoint num="3" id="114" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="dummy = sencrypt(msg, key)" /> +<actions value="d = dummy.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="128" > +<cdparam x="357" y="210" /> +<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="inch(d)" /> +<TGConnectingPoint num="0" id="118" /> +<TGConnectingPoint num="1" id="119" /> +<TGConnectingPoint num="2" id="120" /> +<TGConnectingPoint num="3" id="121" /> +<TGConnectingPoint num="4" id="122" /> +<TGConnectingPoint num="5" id="123" /> +<TGConnectingPoint num="6" id="124" /> +<TGConnectingPoint num="7" id="125" /> +<TGConnectingPoint num="8" id="126" /> +<TGConnectingPoint num="9" id="127" /> +</COMPONENT> + +<COMPONENT type="5101" id="130" > +<cdparam x="399" y="310" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="129" /> +</COMPONENT> + +<COMPONENT type="5103" id="141" > +<cdparam x="356" y="118" /> +<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="outch(d)" /> +<TGConnectingPoint num="0" id="131" /> +<TGConnectingPoint num="1" id="132" /> +<TGConnectingPoint num="2" id="133" /> +<TGConnectingPoint num="3" id="134" /> +<TGConnectingPoint num="4" id="135" /> +<TGConnectingPoint num="5" id="136" /> +<TGConnectingPoint num="6" id="137" /> +<TGConnectingPoint num="7" id="138" /> +<TGConnectingPoint num="8" id="139" /> +<TGConnectingPoint num="9" id="140" /> +</COMPONENT> + +<COMPONENT type="5100" id="143" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="142" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="150" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="149" /> +<P1 x="407" y="70" id="219" /> +<P2 x="525" y="118" id="208" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="148" > +<father id="150" num="0" /> +<cdparam x="489" y="81" /> +<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="144" /> +<TGConnectingPoint num="1" id="145" /> +<TGConnectingPoint num="2" id="146" /> +<TGConnectingPoint num="3" id="147" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="send.data = secretData" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="157" > +<cdparam x="426" y="161" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="156" /> +<P1 x="525" y="161" id="209" /> +<P2 x="429" y="199" id="167" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="155" > +<father id="157" num="0" /> +<cdparam x="426" y="201" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="151" /> +<TGConnectingPoint num="1" id="152" /> +<TGConnectingPoint num="2" id="153" /> +<TGConnectingPoint num="3" id="154" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="164" > +<cdparam x="479" y="249" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="163" /> +<P1 x="479" y="249" id="173" /> +<P2 x="480" y="281" id="165" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="162" > +<father id="164" num="0" /> +<cdparam x="479" y="289" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="158" /> +<TGConnectingPoint num="1" id="159" /> +<TGConnectingPoint num="2" id="160" /> +<TGConnectingPoint num="3" id="161" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5101" id="166" > +<cdparam x="470" y="286" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="165" /> +</COMPONENT> + +<COMPONENT type="5106" id="207" > +<cdparam x="429" y="199" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="state0" /> +<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" /> +<TGConnectingPoint num="24" id="191" /> +<TGConnectingPoint num="25" id="192" /> +<TGConnectingPoint num="26" id="193" /> +<TGConnectingPoint num="27" id="194" /> +<TGConnectingPoint num="28" id="195" /> +<TGConnectingPoint num="29" id="196" /> +<TGConnectingPoint num="30" id="197" /> +<TGConnectingPoint num="31" id="198" /> +<TGConnectingPoint num="32" id="199" /> +<TGConnectingPoint num="33" id="200" /> +<TGConnectingPoint num="34" id="201" /> +<TGConnectingPoint num="35" id="202" /> +<TGConnectingPoint num="36" id="203" /> +<TGConnectingPoint num="37" id="204" /> +<TGConnectingPoint num="38" id="205" /> +<TGConnectingPoint num="39" id="206" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5112" id="218" > +<cdparam x="376" y="123" /> +<sizeparam width="298" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" /> +<TGConnectingPoint num="0" id="208" /> +<TGConnectingPoint num="1" id="209" /> +<TGConnectingPoint num="2" id="210" /> +<TGConnectingPoint num="3" id="211" /> +<TGConnectingPoint num="4" id="212" /> +<TGConnectingPoint num="5" id="213" /> +<TGConnectingPoint num="6" id="214" /> +<TGConnectingPoint num="7" id="215" /> +<TGConnectingPoint num="8" id="216" /> +<TGConnectingPoint num="9" id="217" /> +<extraparam> +<LibraryFunction name="SendReceiveMessage" /> +<Parameter id="send" /> +<Parameter id="skey" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +<ReturnAttribute id="recv" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="220" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="219" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="227" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="226" /> +<P1 x="407" y="70" id="296" /> +<P2 x="534" y="130" id="285" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="225" > +<father id="227" num="0" /> +<cdparam x="495" y="86" /> +<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="221" /> +<TGConnectingPoint num="1" id="222" /> +<TGConnectingPoint num="2" id="223" /> +<TGConnectingPoint num="3" id="224" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="send.data = secretData" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="234" > +<cdparam x="423" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="233" /> +<P1 x="534" y="173" id="286" /> +<P2 x="435" y="259" id="244" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="232" > +<father id="234" num="0" /> +<cdparam x="509" y="214" /> +<sizeparam width="175" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="228" /> +<TGConnectingPoint num="1" id="229" /> +<TGConnectingPoint num="2" id="230" /> +<TGConnectingPoint num="3" id="231" /> +<extraparam> +<guard value="[ recv.data == secretData ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="241" > +<cdparam x="472" y="309" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="240" /> +<P1 x="472" y="309" id="273" /> +<P2 x="467" y="336" id="242" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="239" > +<father id="241" num="0" /> +<cdparam x="472" y="349" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="235" /> +<TGConnectingPoint num="1" id="236" /> +<TGConnectingPoint num="2" id="237" /> +<TGConnectingPoint num="3" id="238" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5101" id="243" > +<cdparam x="457" y="341" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="242" /> +</COMPONENT> + +<COMPONENT type="5106" id="284" > +<cdparam x="435" y="259" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="state0" /> +<TGConnectingPoint num="0" id="244" /> +<TGConnectingPoint num="1" id="245" /> +<TGConnectingPoint num="2" id="246" /> +<TGConnectingPoint num="3" id="247" /> +<TGConnectingPoint num="4" id="248" /> +<TGConnectingPoint num="5" id="249" /> +<TGConnectingPoint num="6" id="250" /> +<TGConnectingPoint num="7" id="251" /> +<TGConnectingPoint num="8" id="252" /> +<TGConnectingPoint num="9" id="253" /> +<TGConnectingPoint num="10" id="254" /> +<TGConnectingPoint num="11" id="255" /> +<TGConnectingPoint num="12" id="256" /> +<TGConnectingPoint num="13" id="257" /> +<TGConnectingPoint num="14" id="258" /> +<TGConnectingPoint num="15" id="259" /> +<TGConnectingPoint num="16" id="260" /> +<TGConnectingPoint num="17" id="261" /> +<TGConnectingPoint num="18" id="262" /> +<TGConnectingPoint num="19" id="263" /> +<TGConnectingPoint num="20" id="264" /> +<TGConnectingPoint num="21" id="265" /> +<TGConnectingPoint num="22" id="266" /> +<TGConnectingPoint num="23" id="267" /> +<TGConnectingPoint num="24" id="268" /> +<TGConnectingPoint num="25" id="269" /> +<TGConnectingPoint num="26" id="270" /> +<TGConnectingPoint num="27" id="271" /> +<TGConnectingPoint num="28" id="272" /> +<TGConnectingPoint num="29" id="273" /> +<TGConnectingPoint num="30" id="274" /> +<TGConnectingPoint num="31" id="275" /> +<TGConnectingPoint num="32" id="276" /> +<TGConnectingPoint num="33" id="277" /> +<TGConnectingPoint num="34" id="278" /> +<TGConnectingPoint num="35" id="279" /> +<TGConnectingPoint num="36" id="280" /> +<TGConnectingPoint num="37" id="281" /> +<TGConnectingPoint num="38" id="282" /> +<TGConnectingPoint num="39" id="283" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5112" id="295" > +<cdparam x="373" y="135" /> +<sizeparam width="323" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" /> +<TGConnectingPoint num="0" id="285" /> +<TGConnectingPoint num="1" id="286" /> +<TGConnectingPoint num="2" id="287" /> +<TGConnectingPoint num="3" id="288" /> +<TGConnectingPoint num="4" id="289" /> +<TGConnectingPoint num="5" id="290" /> +<TGConnectingPoint num="6" id="291" /> +<TGConnectingPoint num="7" id="292" /> +<TGConnectingPoint num="8" id="293" /> +<TGConnectingPoint num="9" id="294" /> +<extraparam> +<LibraryFunction name="SendReceiveMessage" /> +<Parameter id="send" /> +<Parameter id="skey" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +<ReturnAttribute id="recv" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="297" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="296" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +<Modeling type="AVATAR Design" nameTab="DesignNonConfidential" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="SendReceiveMessage;Alice;Bob;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="299" > +<cdparam x="289" y="131" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="298" /> +<P1 x="288" y="129" id="373" /> +<P2 x="466" y="136" id="347" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in chin(int v)" /> +<osd value="out chout(int v)" /> +<isd value="in chin(int v)" /> +<oso value="out chout(int v)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="302" id="316" > +<cdparam x="350" y="372" /> +<sizeparam width="375" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge Bob.skey Alice.skey +#InitialSystemKnowledge Bob.secretData Alice.secretData +#Confidentiality Bob.secretData +" /> +<TGConnectingPoint num="0" id="300" /> +<TGConnectingPoint num="1" id="301" /> +<TGConnectingPoint num="2" id="302" /> +<TGConnectingPoint num="3" id="303" /> +<TGConnectingPoint num="4" id="304" /> +<TGConnectingPoint num="5" id="305" /> +<TGConnectingPoint num="6" id="306" /> +<TGConnectingPoint num="7" id="307" /> +<TGConnectingPoint num="8" id="308" /> +<TGConnectingPoint num="9" id="309" /> +<TGConnectingPoint num="10" id="310" /> +<TGConnectingPoint num="11" id="311" /> +<TGConnectingPoint num="12" id="312" /> +<TGConnectingPoint num="13" id="313" /> +<TGConnectingPoint num="14" id="314" /> +<TGConnectingPoint num="15" id="315" /> +<extraparam> +<Line value="#InitialSystemKnowledge Bob.skey Alice.skey" /> +<Line value="#InitialSystemKnowledge Bob.secretData Alice.secretData" /> +<Line value="#Confidentiality Bob.secretData" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="325" > +<cdparam x="622" y="271" /> +<sizeparam width="250" height="68" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Key" /> +<TGConnectingPoint num="0" id="317" /> +<TGConnectingPoint num="1" id="318" /> +<TGConnectingPoint num="2" id="319" /> +<TGConnectingPoint num="3" id="320" /> +<TGConnectingPoint num="4" id="321" /> +<TGConnectingPoint num="5" id="322" /> +<TGConnectingPoint num="6" id="323" /> +<TGConnectingPoint num="7" id="324" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="334" > +<cdparam x="345" y="273" /> +<sizeparam width="250" height="68" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Message" /> +<TGConnectingPoint num="0" id="326" /> +<TGConnectingPoint num="1" id="327" /> +<TGConnectingPoint num="2" id="328" /> +<TGConnectingPoint num="3" id="329" /> +<TGConnectingPoint num="4" id="330" /> +<TGConnectingPoint num="5" id="331" /> +<TGConnectingPoint num="6" id="332" /> +<TGConnectingPoint num="7" id="333" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5005" id="343" > +<cdparam x="89" y="278" /> +<sizeparam width="160" height="144" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="SendReceiveMessage" value="SendReceiveMessage" /> +<TGConnectingPoint num="0" id="335" /> +<TGConnectingPoint num="1" id="336" /> +<TGConnectingPoint num="2" id="337" /> +<TGConnectingPoint num="3" id="338" /> +<TGConnectingPoint num="4" id="339" /> +<TGConnectingPoint num="5" id="340" /> +<TGConnectingPoint num="6" id="341" /> +<TGConnectingPoint num="7" id="342" /> +<extraparam> +<CryptoLibraryFunction value="false" /> +<Parameter access="0" id="msg" value="" type="5" typeOther="Message" /> +<Parameter access="0" id="key" value="" type="5" typeOther="Key" /> +<Signal value="in inch(int v)" /> +<Signal value="out outch(int v)" /> +<ReturnAttribute access="0" id="msgRet" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="d" value="" type="8" typeOther="" /> +<Attribute access="0" id="dummy" value="" type="5" typeOther="Message" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="368" > +<cdparam x="466" y="36" /> +<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block1" value="Alice" /> +<TGConnectingPoint num="0" id="344" /> +<TGConnectingPoint num="1" id="345" /> +<TGConnectingPoint num="2" id="346" /> +<TGConnectingPoint num="3" id="347" /> +<TGConnectingPoint num="4" id="348" /> +<TGConnectingPoint num="5" id="349" /> +<TGConnectingPoint num="6" id="350" /> +<TGConnectingPoint num="7" id="351" /> +<TGConnectingPoint num="8" id="352" /> +<TGConnectingPoint num="9" id="353" /> +<TGConnectingPoint num="10" id="354" /> +<TGConnectingPoint num="11" id="355" /> +<TGConnectingPoint num="12" id="356" /> +<TGConnectingPoint num="13" id="357" /> +<TGConnectingPoint num="14" id="358" /> +<TGConnectingPoint num="15" id="359" /> +<TGConnectingPoint num="16" id="360" /> +<TGConnectingPoint num="17" id="361" /> +<TGConnectingPoint num="18" id="362" /> +<TGConnectingPoint num="19" id="363" /> +<TGConnectingPoint num="20" id="364" /> +<TGConnectingPoint num="21" id="365" /> +<TGConnectingPoint num="22" id="366" /> +<TGConnectingPoint num="23" id="367" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="send" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="recv" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="skey" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="393" > +<cdparam x="38" y="44" /> +<sizeparam width="250" height="170" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block0" value="Bob" /> +<TGConnectingPoint num="0" id="369" /> +<TGConnectingPoint num="1" id="370" /> +<TGConnectingPoint num="2" id="371" /> +<TGConnectingPoint num="3" id="372" /> +<TGConnectingPoint num="4" id="373" /> +<TGConnectingPoint num="5" id="374" /> +<TGConnectingPoint num="6" id="375" /> +<TGConnectingPoint num="7" id="376" /> +<TGConnectingPoint num="8" id="377" /> +<TGConnectingPoint num="9" id="378" /> +<TGConnectingPoint num="10" id="379" /> +<TGConnectingPoint num="11" id="380" /> +<TGConnectingPoint num="12" id="381" /> +<TGConnectingPoint num="13" id="382" /> +<TGConnectingPoint num="14" id="383" /> +<TGConnectingPoint num="15" id="384" /> +<TGConnectingPoint num="16" id="385" /> +<TGConnectingPoint num="17" id="386" /> +<TGConnectingPoint num="18" id="387" /> +<TGConnectingPoint num="19" id="388" /> +<TGConnectingPoint num="20" id="389" /> +<TGConnectingPoint num="21" id="390" /> +<TGConnectingPoint num="22" id="391" /> +<TGConnectingPoint num="23" id="392" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="send" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="recv" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="skey" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="SendReceiveMessage" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="400" > +<cdparam x="388" y="143" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="399" /> +<P1 x="388" y="143" id="429" /> +<P2 x="388" y="205" id="415" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="398" > +<father id="400" num="0" /> +<cdparam x="388" y="183" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="394" /> +<TGConnectingPoint num="1" id="395" /> +<TGConnectingPoint num="2" id="396" /> +<TGConnectingPoint num="3" id="397" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="407" > +<cdparam x="416" y="149" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="406" /> +<P1 x="388" y="235" id="416" /> +<P2 x="409" y="305" id="426" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="405" > +<father id="407" num="0" /> +<cdparam x="420" y="262" /> +<sizeparam width="202" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="401" /> +<TGConnectingPoint num="1" id="402" /> +<TGConnectingPoint num="2" id="403" /> +<TGConnectingPoint num="3" id="404" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="dummy.data = d" /> +<actions value="msgRet = sdecrypt(dummy, key)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="414" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="413" /> +<P1 x="407" y="70" id="439" /> +<P2 x="388" y="113" id="428" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="412" > +<father id="414" num="0" /> +<cdparam x="423" y="87" /> +<sizeparam width="181" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="408" /> +<TGConnectingPoint num="1" id="409" /> +<TGConnectingPoint num="2" id="410" /> +<TGConnectingPoint num="3" id="411" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="dummy = sencrypt(msg, key)" /> +<actions value="d = dummy.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="425" > +<cdparam x="357" y="210" /> +<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="inch(d)" /> +<TGConnectingPoint num="0" id="415" /> +<TGConnectingPoint num="1" id="416" /> +<TGConnectingPoint num="2" id="417" /> +<TGConnectingPoint num="3" id="418" /> +<TGConnectingPoint num="4" id="419" /> +<TGConnectingPoint num="5" id="420" /> +<TGConnectingPoint num="6" id="421" /> +<TGConnectingPoint num="7" id="422" /> +<TGConnectingPoint num="8" id="423" /> +<TGConnectingPoint num="9" id="424" /> +</COMPONENT> + +<COMPONENT type="5101" id="427" > +<cdparam x="399" y="310" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="426" /> +</COMPONENT> + +<COMPONENT type="5103" id="438" > +<cdparam x="356" y="118" /> +<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="outch(d)" /> +<TGConnectingPoint num="0" id="428" /> +<TGConnectingPoint num="1" id="429" /> +<TGConnectingPoint num="2" id="430" /> +<TGConnectingPoint num="3" id="431" /> +<TGConnectingPoint num="4" id="432" /> +<TGConnectingPoint num="5" id="433" /> +<TGConnectingPoint num="6" id="434" /> +<TGConnectingPoint num="7" id="435" /> +<TGConnectingPoint num="8" id="436" /> +<TGConnectingPoint num="9" id="437" /> +</COMPONENT> + +<COMPONENT type="5100" id="440" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="439" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="447" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="446" /> +<P1 x="407" y="70" id="516" /> +<P2 x="525" y="118" id="505" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="445" > +<father id="447" num="0" /> +<cdparam x="489" y="81" /> +<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="441" /> +<TGConnectingPoint num="1" id="442" /> +<TGConnectingPoint num="2" id="443" /> +<TGConnectingPoint num="3" id="444" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="send.data = secretData" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="454" > +<cdparam x="426" y="161" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="453" /> +<P1 x="525" y="161" id="506" /> +<P2 x="429" y="199" id="464" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="452" > +<father id="454" num="0" /> +<cdparam x="426" y="201" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="448" /> +<TGConnectingPoint num="1" id="449" /> +<TGConnectingPoint num="2" id="450" /> +<TGConnectingPoint num="3" id="451" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="461" > +<cdparam x="479" y="249" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="460" /> +<P1 x="479" y="249" id="470" /> +<P2 x="480" y="281" id="462" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="459" > +<father id="461" num="0" /> +<cdparam x="479" y="289" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="455" /> +<TGConnectingPoint num="1" id="456" /> +<TGConnectingPoint num="2" id="457" /> +<TGConnectingPoint num="3" id="458" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5101" id="463" > +<cdparam x="470" y="286" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="462" /> +</COMPONENT> + +<COMPONENT type="5106" id="504" > +<cdparam x="429" y="199" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="state0" /> +<TGConnectingPoint num="0" id="464" /> +<TGConnectingPoint num="1" id="465" /> +<TGConnectingPoint num="2" id="466" /> +<TGConnectingPoint num="3" id="467" /> +<TGConnectingPoint num="4" id="468" /> +<TGConnectingPoint num="5" id="469" /> +<TGConnectingPoint num="6" id="470" /> +<TGConnectingPoint num="7" id="471" /> +<TGConnectingPoint num="8" id="472" /> +<TGConnectingPoint num="9" id="473" /> +<TGConnectingPoint num="10" id="474" /> +<TGConnectingPoint num="11" id="475" /> +<TGConnectingPoint num="12" id="476" /> +<TGConnectingPoint num="13" id="477" /> +<TGConnectingPoint num="14" id="478" /> +<TGConnectingPoint num="15" id="479" /> +<TGConnectingPoint num="16" id="480" /> +<TGConnectingPoint num="17" id="481" /> +<TGConnectingPoint num="18" id="482" /> +<TGConnectingPoint num="19" id="483" /> +<TGConnectingPoint num="20" id="484" /> +<TGConnectingPoint num="21" id="485" /> +<TGConnectingPoint num="22" id="486" /> +<TGConnectingPoint num="23" id="487" /> +<TGConnectingPoint num="24" id="488" /> +<TGConnectingPoint num="25" id="489" /> +<TGConnectingPoint num="26" id="490" /> +<TGConnectingPoint num="27" id="491" /> +<TGConnectingPoint num="28" id="492" /> +<TGConnectingPoint num="29" id="493" /> +<TGConnectingPoint num="30" id="494" /> +<TGConnectingPoint num="31" id="495" /> +<TGConnectingPoint num="32" id="496" /> +<TGConnectingPoint num="33" id="497" /> +<TGConnectingPoint num="34" id="498" /> +<TGConnectingPoint num="35" id="499" /> +<TGConnectingPoint num="36" id="500" /> +<TGConnectingPoint num="37" id="501" /> +<TGConnectingPoint num="38" id="502" /> +<TGConnectingPoint num="39" id="503" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5112" id="515" > +<cdparam x="376" y="123" /> +<sizeparam width="298" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" /> +<TGConnectingPoint num="0" id="505" /> +<TGConnectingPoint num="1" id="506" /> +<TGConnectingPoint num="2" id="507" /> +<TGConnectingPoint num="3" id="508" /> +<TGConnectingPoint num="4" id="509" /> +<TGConnectingPoint num="5" id="510" /> +<TGConnectingPoint num="6" id="511" /> +<TGConnectingPoint num="7" id="512" /> +<TGConnectingPoint num="8" id="513" /> +<TGConnectingPoint num="9" id="514" /> +<extraparam> +<LibraryFunction name="SendReceiveMessage" /> +<Parameter id="send" /> +<Parameter id="skey" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +<ReturnAttribute id="recv" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="517" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="516" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="524" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="523" /> +<P1 x="407" y="70" id="611" /> +<P2 x="534" y="130" id="600" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="522" > +<father id="524" num="0" /> +<cdparam x="495" y="86" /> +<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="518" /> +<TGConnectingPoint num="1" id="519" /> +<TGConnectingPoint num="2" id="520" /> +<TGConnectingPoint num="3" id="521" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="send.data = secretData" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="531" > +<cdparam x="423" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="530" /> +<P1 x="534" y="173" id="601" /> +<P2 x="411" y="233" id="559" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="529" > +<father id="531" num="0" /> +<cdparam x="509" y="214" /> +<sizeparam width="175" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="525" /> +<TGConnectingPoint num="1" id="526" /> +<TGConnectingPoint num="2" id="527" /> +<TGConnectingPoint num="3" id="528" /> +<extraparam> +<guard value="[ recv.data == secretData ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="538" > +<cdparam x="472" y="309" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="537" /> +<P1 x="412" y="373" id="547" /> +<P2 x="444" y="425" id="557" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="536" > +<father id="538" num="0" /> +<cdparam x="472" y="349" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="532" /> +<TGConnectingPoint num="1" id="533" /> +<TGConnectingPoint num="2" id="534" /> +<TGConnectingPoint num="3" id="535" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="545" > +<cdparam x="423" y="283" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="544" /> +<P1 x="423" y="283" id="587" /> +<P2 x="412" y="343" id="546" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="543" > +<father id="545" num="0" /> +<cdparam x="423" y="323" /> +<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="539" /> +<TGConnectingPoint num="1" id="540" /> +<TGConnectingPoint num="2" id="541" /> +<TGConnectingPoint num="3" id="542" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="secretData = skey.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="556" > +<cdparam x="349" y="348" /> +<sizeparam width="126" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="chout(secretData)" /> +<TGConnectingPoint num="0" id="546" /> +<TGConnectingPoint num="1" id="547" /> +<TGConnectingPoint num="2" id="548" /> +<TGConnectingPoint num="3" id="549" /> +<TGConnectingPoint num="4" id="550" /> +<TGConnectingPoint num="5" id="551" /> +<TGConnectingPoint num="6" id="552" /> +<TGConnectingPoint num="7" id="553" /> +<TGConnectingPoint num="8" id="554" /> +<TGConnectingPoint num="9" id="555" /> +</COMPONENT> + +<COMPONENT type="5101" id="558" > +<cdparam x="434" y="430" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" 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="557" /> +</COMPONENT> + +<COMPONENT type="5106" id="599" > +<cdparam x="411" y="233" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="state0" /> +<TGConnectingPoint num="0" id="559" /> +<TGConnectingPoint num="1" id="560" /> +<TGConnectingPoint num="2" id="561" /> +<TGConnectingPoint num="3" id="562" /> +<TGConnectingPoint num="4" id="563" /> +<TGConnectingPoint num="5" id="564" /> +<TGConnectingPoint num="6" id="565" /> +<TGConnectingPoint num="7" id="566" /> +<TGConnectingPoint num="8" id="567" /> +<TGConnectingPoint num="9" id="568" /> +<TGConnectingPoint num="10" id="569" /> +<TGConnectingPoint num="11" id="570" /> +<TGConnectingPoint num="12" id="571" /> +<TGConnectingPoint num="13" id="572" /> +<TGConnectingPoint num="14" id="573" /> +<TGConnectingPoint num="15" id="574" /> +<TGConnectingPoint num="16" id="575" /> +<TGConnectingPoint num="17" id="576" /> +<TGConnectingPoint num="18" id="577" /> +<TGConnectingPoint num="19" id="578" /> +<TGConnectingPoint num="20" id="579" /> +<TGConnectingPoint num="21" id="580" /> +<TGConnectingPoint num="22" id="581" /> +<TGConnectingPoint num="23" id="582" /> +<TGConnectingPoint num="24" id="583" /> +<TGConnectingPoint num="25" id="584" /> +<TGConnectingPoint num="26" id="585" /> +<TGConnectingPoint num="27" id="586" /> +<TGConnectingPoint num="28" id="587" /> +<TGConnectingPoint num="29" id="588" /> +<TGConnectingPoint num="30" id="589" /> +<TGConnectingPoint num="31" id="590" /> +<TGConnectingPoint num="32" id="591" /> +<TGConnectingPoint num="33" id="592" /> +<TGConnectingPoint num="34" id="593" /> +<TGConnectingPoint num="35" id="594" /> +<TGConnectingPoint num="36" id="595" /> +<TGConnectingPoint num="37" id="596" /> +<TGConnectingPoint num="38" id="597" /> +<TGConnectingPoint num="39" id="598" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5112" id="610" > +<cdparam x="373" y="135" /> +<sizeparam width="323" height="33" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Library function call" value="recv = SendReceiveMessage (send, skey)" /> +<TGConnectingPoint num="0" id="600" /> +<TGConnectingPoint num="1" id="601" /> +<TGConnectingPoint num="2" id="602" /> +<TGConnectingPoint num="3" id="603" /> +<TGConnectingPoint num="4" id="604" /> +<TGConnectingPoint num="5" id="605" /> +<TGConnectingPoint num="6" id="606" /> +<TGConnectingPoint num="7" id="607" /> +<TGConnectingPoint num="8" id="608" /> +<TGConnectingPoint num="9" id="609" /> +<extraparam> +<LibraryFunction name="SendReceiveMessage" /> +<Parameter id="send" /> +<Parameter id="skey" /> +<Signal value="in chin(int v)" /> +<Signal value="out chout(int v)" /> +<ReturnAttribute id="recv" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="612" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" 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="611" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..7ce0df3d609b86ff84d801f7ee2b0455119f0744 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml @@ -0,0 +1,557 @@ +<TMLMAPPING> +<TMLMODELING> +<TASK name="Zigbee_TX__X_Sink" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Source" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue="127"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="Zigbee_TX__source_req" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action"> +<CUSTOM action="size = 127" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_Source" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in " /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Symbol2ChipSeq" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__bit2chip_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_Chip2Octet" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Sink" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="size_1" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request"> +<CUSTOM request="Zigbee_TX__sink_req" params="size+size_1" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="3" name="wait event"> +<CUSTOM event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size_1" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="4" name="wait event"> +<CUSTOM event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_CWL" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="Zigbee_TX__cwl_req" params="size" /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="5" name="send event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_CWP_Q" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__cwpQ_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_CWP_I" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__cwpI_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Chip2Octet" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__chip2octet_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_CWP_I" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_CWP_Q" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_CWL" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_Symbol2ChipSeq" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TMLCHANNEL name="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in" origintask="Zigbee_TX__X_Source" originport="Source_ch_out" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" destinationport="symbol2ChipSeq_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in" origintask="Zigbee_TX__X_Chip2Octet" originport="chip2octet_ch_out" destinationtask="Zigbee_TX__X_CWL" destinationport="cwl_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" destinationtask="Zigbee_TX__X_Sink" destinationport="sink_ch_in" origintask="Zigbee_TX__X_CWP_I;Zigbee_TX__X_CWP_Q;" originport="cwpI_ch_out;cwpQ_ch_out;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="Zigbee_TX__X_CWL" originport="cwl_ch_out" destinationtask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" destinationport="cwpQ_ch_in;cwpI_ch_in;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in" origintask="Zigbee_TX__X_Symbol2ChipSeq" originport="symbol2ChipSeq_ch_out" destinationtask="Zigbee_TX__X_Chip2Octet" destinationport="chip2octet_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLREQUEST name="Zigbee_TX__sink_req" destinationtask="Zigbee_TX__X_Sink" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Sink" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__source_req" destinationtask="Zigbee_TX__X_Source" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Source" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__chip2octet_req" destinationtask="Zigbee_TX__X_Chip2Octet" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Chip2Octet" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__cwpI_req" destinationtask="Zigbee_TX__X_CWP_I" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_CWP_I" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__cwpQ_req" destinationtask="Zigbee_TX__X_CWP_Q" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_CWP_Q" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__cwl_req" destinationtask="Zigbee_TX__X_CWL" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_CWL" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__bit2chip_req" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Symbol2ChipSeq" /> <PARAM type="int" /></TMLREQUEST> +<TMLEVENT name="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" origintask="Zigbee_TX__F_Source" destinationtask="Zigbee_TX__F_Symbol2ChipSeq" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" origintask="Zigbee_TX__F_Symbol2ChipSeq" destinationtask="Zigbee_TX__F_Chip2Octet" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_I" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_Q" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" origintask="Zigbee_TX__F_CWP_Q" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" origintask="Zigbee_TX__F_CWP_I" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" origintask="Zigbee_TX__F_Chip2Octet" destinationtask="Zigbee_TX__F_CWL" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +</TMLMODELING> +<TMLARCHITECTURE freq="100" > +<CPU name="INTL_DMA" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="CPU" /> +<CPU name="ADAIF_DMA" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="CPU" /> +<MEMORY name="ADAIF_MSS" clockRatio="1" byteDataSize="4" memorySize="1024" bufferType="2" /> +<CPU name="ADAIF_PSS" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="ADAIF" /> +<BRIDGE name="ADAIF_Bridge" clockRatio="1" bufferByteSize="4" /> +<MEMORY name="MainMemory" clockRatio="1" byteDataSize="4" memorySize="1024" bufferType="4" /> +<CPU name="MainCPU" clockRatio="6" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="CPU" /> +<BUS name="MainBus" clockRatio="1" byteDataSize="4" pipelineSize="1" arbitration="0" sliceTime="10000" /> +<BRIDGE name="MainBridge" clockRatio="1" bufferByteSize="4" /> +<BUS name="Crossbar" clockRatio="1" byteDataSize="8" pipelineSize="1" arbitration="0" sliceTime="10000" /> +<BRIDGE name="INTL_Bridge" clockRatio="1" bufferByteSize="4" /> +<MEMORY name="INTL_MSS" clockRatio="1" byteDataSize="4" memorySize="1024" bufferType="3" /> +<CPU name="INTL_PSS" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="INTL" /> +<BUS name="INTL_Bus" clockRatio="1" byteDataSize="8" pipelineSize="1" arbitration="0" sliceTime="10000" /> +<BUS name="ADAIF_Bus" clockRatio="1" byteDataSize="8" pipelineSize="1" arbitration="0" sliceTime="10000" /> +<CPU name="FEP_DMA" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="CPU" /> +<MEMORY name="FEP_MSS" clockRatio="1" byteDataSize="4" memorySize="1024" bufferType="0" /> +<CPU name="FEP_PSS" clockRatio="1" byteDataSize="4" execiTime="2" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="FEP" /> +<BRIDGE name="FEP_Bridge" clockRatio="1" bufferByteSize="4" /> +<BUS name="FEP_Bus" clockRatio="1" byteDataSize="8" pipelineSize="1" arbitration="0" sliceTime="10000" /> +<CPU name="MAPPER_DMA" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="CPU" /> +<BRIDGE name="MAPPER_Bridge" clockRatio="1" bufferByteSize="4" /> +<MEMORY name="MAPPER_MSS" clockRatio="1" byteDataSize="4" memorySize="1024" bufferType="1" /> +<CPU name="MAPPER_PSS" clockRatio="1" byteDataSize="4" execiTime="1" execcTime="1" pipelineSize="5" goIdleTime="10" maxConsecutiveIdleCycles="10" taskSwitchingTime="20" cacheMiss="5" schedulingPolicy="0" sliceTime="10000" MEC="MAPP" /> +<BUS name="MAPPER_Bus" clockRatio="1" byteDataSize="8" pipelineSize="1" arbitration="0" sliceTime="10000" /> +<LINK name="link_MainBridge_to_Crossbar" bus="Crossbar" hwnode="MainBridge" priority="0" /> +<LINK name="link_FEP_DMA_to_Crossbar" bus="Crossbar" hwnode="FEP_DMA" priority="0" /> +<LINK name="link_MAPPER_DMA_to_Crossbar" bus="Crossbar" hwnode="MAPPER_DMA" priority="0" /> +<LINK name="link_MAPPER_Bridge_to_Crossbar" bus="Crossbar" hwnode="MAPPER_Bridge" priority="0" /> +<LINK name="link_FEP_Bridge_to_Crossbar" bus="Crossbar" hwnode="FEP_Bridge" priority="0" /> +<LINK name="link_MainBridge_to_MainBus" bus="MainBus" hwnode="MainBridge" priority="0" /> +<LINK name="link_INTL_Bridge_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_Bridge" priority="0" /> +<LINK name="link_INTL_DMA_to_Crossbar" bus="Crossbar" hwnode="INTL_DMA" priority="0" /> +<LINK name="link_INTL_DMA_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_DMA" priority="0" /> +<LINK name="link_INTL_MSS_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_MSS" priority="0" /> +<LINK name="link_INTL_PSS_to_INTL_Bus" bus="INTL_Bus" hwnode="INTL_PSS" priority="0" /> +<LINK name="link_ADAIF_Bridge_to_Crossbar" bus="Crossbar" hwnode="ADAIF_Bridge" priority="0" /> +<LINK name="link_ADAIF_Bridge_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_Bridge" priority="0" /> +<LINK name="link_ADAIF_DMA_to_Crossbar" bus="Crossbar" hwnode="ADAIF_DMA" priority="0" /> +<LINK name="link_ADAIF_DMA_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_DMA" priority="0" /> +<LINK name="link_ADAIF_MSS_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_MSS" priority="0" /> +<LINK name="link_ADAIF_PSS_to_ADAIF_Bus" bus="ADAIF_Bus" hwnode="ADAIF_PSS" priority="0" /> +<LINK name="link_INTL_Bridge_to_Crossbar" bus="Crossbar" hwnode="INTL_Bridge" priority="0" /> +<LINK name="link_MainMemory_to_MainBus" bus="MainBus" hwnode="MainMemory" priority="0" /> +<LINK name="link_MainCPU_to_MainBus" bus="MainBus" hwnode="MainCPU" priority="0" /> +<LINK name="link_FEP_Bridge_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_Bridge" priority="0" /> +<LINK name="link_FEP_DMA_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_DMA" priority="0" /> +<LINK name="link_FEP_MSS_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_MSS" priority="0" /> +<LINK name="link_FEP_PSS_to_FEP_Bus" bus="FEP_Bus" hwnode="FEP_PSS" priority="0" /> +<LINK name="link_MAPPER_Bridge_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_Bridge" priority="0" /> +<LINK name="link_MAPPER_DMA_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_DMA" priority="0" /> +<LINK name="link_MAPPER_MSS_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_MSS" priority="0" /> +<LINK name="link_MAPPER_PSS_to_MAPPER_Bus" bus="MAPPER_Bus" hwnode="MAPPER_PSS" priority="0" /> +</TMLARCHITECTURE><TASKMAP node="ADAIF_PSS" task="Zigbee_TX__X_Sink" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__F_Source" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__X_Source" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__F_Symbol2ChipSeq" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__X_Chip2Octet" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__F_Sink" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__F_CWL" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__F_CWP_Q" /> +<TASKMAP node="MainCPU" task="Zigbee_TX__F_CWP_I" /> +<TASKMAP node="INTL_PSS" task="Zigbee_TX__F_Chip2Octet" /> +<TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWP_I" /> +<TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWP_Q" /> +<TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWL" /> +<TASKMAP node="MAPPER_PSS" task="Zigbee_TX__X_Symbol2ChipSeq" /> +<TMLCPLIB name="CP_Symbol2ChipSeq_Chips2Octet::DMA_transfer" cpMECType="1" typeName="DMA_transfer"> +<TMLCPLIBARTIFACT taskName="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" memoryName="INTL_MSS" priority="5" > +<BUFFERPARAMETERS param="3" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +<BUFFERPARAMETERS param="" /> +</TMLCPLIBARTIFACT> +<MAPPEUNIT unit="DMA_transfer.CPU_Controller_1 : MainCPU" /> +<MAPPEUNIT unit="DMA_transfer.DMA_Controller_1 : MAPPER_DMA" /> +<MAPPEUNIT unit="DMA_transfer.Src_Storage_Instance_1 : MAPPER_MSS" /> +<MAPPEUNIT unit="DMA_transfer.Dst_Storage_Instance_1 : INTL_MSS" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_2 : MAPPER_Bus" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_3 : Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_4 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<TRANSFERTYPE type="0" /> +<TRANSFERTYPE type="0" /> +</TMLCPLIB><TMLCPLIB name="CP_Chip2Octet_CWL::DMA_transfer" cpMECType="1" typeName="DMA_transfer"> +<TMLCPLIBARTIFACT taskName="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" memoryName="FEP_MSS" priority="5" > +<BUFFERPARAMETERS param="0" /> +<BUFFERPARAMETERS param="1" /> +<BUFFERPARAMETERS param="0x2" /> +<BUFFERPARAMETERS param="0" /> +<BUFFERPARAMETERS param="int8" /> +</TMLCPLIBARTIFACT> +<MAPPEUNIT unit="DMA_transfer.CPU_Controller_1 : MainCPU" /> +<MAPPEUNIT unit="DMA_transfer.DMA_Controller_1 : INTL_DMA" /> +<MAPPEUNIT unit="DMA_transfer.Src_Storage_Instance_1 : INTL_MSS" /> +<MAPPEUNIT unit="DMA_transfer.Dst_Storage_Instance_1 : FEP_MSS" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_2 : INTL_Bus" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_3 : ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<MAPPEUNIT unit="DMA_transfer.Transfer_Instance_4 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<TRANSFERTYPE type="0" /> +<TRANSFERTYPE type="0" /> +</TMLCPLIB><TMLCPLIB name="CP_sink::Double_DMA_transfer" cpMECType="2" typeName="Double_DMA_transfer"> +<TMLCPLIBARTIFACT taskName="Zigbee_TX::sink_ch_in" portName="sink_ch_in" memoryName="ADAIF_MSS" priority="5" > +<BUFFERPARAMETERS param="2" /> +<BUFFERPARAMETERS param="1" /> +<BUFFERPARAMETERS param="0x2" /> +</TMLCPLIBARTIFACT> +<MAPPEUNIT unit="Double_DMA_transfer.CPU_Controller_1 : MainCPU" /> +<MAPPEUNIT unit="Double_DMA_transfer.CPU_Controller_2 : MainCPU" /> +<MAPPEUNIT unit="Double_DMA_transfer.DMA_Controller_1 : FEP_DMA" /> +<MAPPEUNIT unit="Double_DMA_transfer.DMA_Controller_2 : FEP_DMA" /> +<MAPPEUNIT unit="Double_DMA_transfer.Src_Storage_Instance_1 : FEP_MSS" /> +<MAPPEUNIT unit="Double_DMA_transfer.Src_Storage_Instance_2 : FEP_MSS" /> +<MAPPEUNIT unit="Double_DMA_transfer.Dst_Storage_Instance_2 : ADAIF_MSS" /> +<MAPPEUNIT unit="Double_DMA_transfer.Dst_Storage_Instance_1 : ADAIF_MSS" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_2 : FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_3 : ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_4 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_5 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_6 : FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_7 : ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<MAPPEUNIT unit="Double_DMA_transfer.Transfer_Instance_8 : MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<TRANSFERTYPE type="0" /> +<TRANSFERTYPE type="0" /> +</TMLCPLIB><TMLCPLIB name="CP_Source_to_Bits2Symbol::CP_Memory_Copy" cpMECType="0" typeName="CP_Memory_Copy"> +<TMLCPLIBARTIFACT taskName="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" memoryName="MAPPER_MSS" priority="5" > +<BUFFERPARAMETERS param="1" /> +<BUFFERPARAMETERS param="1" /> +<BUFFERPARAMETERS param="0x2" /> +<BUFFERPARAMETERS param="3" /> +<BUFFERPARAMETERS param="OFF" /> +<BUFFERPARAMETERS param="0x4" /> +<BUFFERPARAMETERS param="0x5" /> +</TMLCPLIBARTIFACT> +<MAPPEUNIT unit="CP_Memory_Copy.CPU_Controller : MainCPU" /> +<MAPPEUNIT unit="CP_Memory_Copy.Dst_Storage_Instance : MAPPER_MSS" /> +<MAPPEUNIT unit="CP_Memory_Copy.Src_Storage_Instance : MainMemory" /> +<MAPPEUNIT unit="CP_Memory_Copy.Transfer_Instance_1 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<MAPPEUNIT unit="CP_Memory_Copy.Transfer_Instance2 : MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<TRANSFERTYPE type="0" /> +<TRANSFERTYPE type="0" /> +</TMLCPLIB></TMLMAPPING> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Zigbee_TX.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Zigbee_TX.xml new file mode 100644 index 0000000000000000000000000000000000000000..cb58209c789f8d272336e795981888f9a34cda7d --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/Zigbee_TX.xml @@ -0,0 +1,403 @@ +<TMLMODELING> +<TASK name="Zigbee_TX__X_Source" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in " /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Source" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue="127"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="Zigbee_TX__source_req" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action"> +<CUSTOM action="size = 127" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_Symbol2ChipSeq" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Symbol2ChipSeq" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__bit2chip_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_Chip2Octet" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Chip2Octet" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__chip2octet_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_CWL" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_CWL" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="Zigbee_TX__cwl_req" params="size" /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="5" name="send event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_Sink" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_Sink" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="size_1" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request"> +<CUSTOM request="Zigbee_TX__sink_req" params="size+size_1" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="3" name="wait event"> +<CUSTOM event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size_1" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="4" name="wait event"> +<CUSTOM event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_CWP_Q" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_CWP_Q" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__cwpQ_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__X_CWP_I" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ATTRIBUTE type="1" name="arg1__req" initialValue="0"/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TASK name="Zigbee_TX__F_CWP_I" priority="0" > +<ATTRIBUTE type="1" name="size" initialValue=""/> +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="1" name="wait event"> +<CUSTOM event="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="3" name="send event"> +<CUSTOM event="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="4" name="send request"> +<CUSTOM request="Zigbee_TX__cwpI_req" params="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +</ACTIVITY> +</TASK> +<TMLCHANNEL name="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in" origintask="Zigbee_TX__X_Source" originport="Source_ch_out" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" destinationport="symbol2ChipSeq_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in" origintask="Zigbee_TX__X_Symbol2ChipSeq" originport="symbol2ChipSeq_ch_out" destinationtask="Zigbee_TX__X_Chip2Octet" destinationport="chip2octet_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in" origintask="Zigbee_TX__X_Chip2Octet" originport="chip2octet_ch_out" destinationtask="Zigbee_TX__X_CWL" destinationport="cwl_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="Zigbee_TX__X_CWL" originport="cwl_ch_out" destinationtask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" destinationport="cwpQ_ch_in;cwpI_ch_in;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLCHANNEL name="Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out" destinationtask="Zigbee_TX__X_Sink" destinationport="sink_ch_in" origintask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" originport="cwpQ_ch_out;cwpI_ch_out;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8" /> +<TMLREQUEST name="Zigbee_TX__source_req" destinationtask="Zigbee_TX__X_Source" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Source" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__bit2chip_req" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Symbol2ChipSeq" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__chip2octet_req" destinationtask="Zigbee_TX__X_Chip2Octet" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Chip2Octet" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__cwl_req" destinationtask="Zigbee_TX__X_CWL" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_CWL" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__sink_req" destinationtask="Zigbee_TX__X_Sink" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_Sink" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__cwpQ_req" destinationtask="Zigbee_TX__X_CWP_Q" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_CWP_Q" /> <PARAM type="int" /></TMLREQUEST> +<TMLREQUEST name="Zigbee_TX__cwpI_req" destinationtask="Zigbee_TX__X_CWP_I" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<ORIGINTASK name="Zigbee_TX__F_CWP_I" /> <PARAM type="int" /></TMLREQUEST> +<TMLEVENT name="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" origintask="Zigbee_TX__F_Source" destinationtask="Zigbee_TX__F_Symbol2ChipSeq" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" origintask="Zigbee_TX__F_Symbol2ChipSeq" destinationtask="Zigbee_TX__F_Chip2Octet" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__chip2octet_evt_out__Zigbee_TX__cwl_evt_in" origintask="Zigbee_TX__F_Chip2Octet" destinationtask="Zigbee_TX__F_CWL" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwl_evt_out__Zigbee_TX__cwpI_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_I" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwl_evt_out_1__Zigbee_TX__cwpQ_evt_in" origintask="Zigbee_TX__F_CWL" destinationtask="Zigbee_TX__F_CWP_Q" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwpQ_evt_out__Zigbee_TX__sink_evt_in_1" origintask="Zigbee_TX__F_CWP_Q" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +<TMLEVENT name="Zigbee_TX__cwpI_evt_out__Zigbee_TX__sink_evt_in" origintask="Zigbee_TX__F_CWP_I" destinationtask="Zigbee_TX__F_Sink" maxEvt="-1" isBlocking="false" canBeNotified="false" isLossy="false" lossPercentage="0" maxNbOfLoss="0" > +<PARAM type="int" /></TMLEVENT> +</TMLMODELING> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionState.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionState.xml new file mode 100644 index 0000000000000000000000000000000000000000..95d407d311c5f77b0090c8cb0aac2c432efd1099 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionState.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="Zigbee_TX__source_req" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..04bfc6487d87942f825bf4c085a5d8a11442672b --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendEvent.xml @@ -0,0 +1,13 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request"> +<CUSTOM request="Zigbee_TX__source_req" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequest.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequest.xml new file mode 100644 index 0000000000000000000000000000000000000000..47fef1cbf4fb1854794a2c3229ed41c4470ebef9 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequest.xml @@ -0,0 +1,13 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequestSendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequestSendEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..eeb8817b4b041db81d761ea7530a90d4da8a36ec --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_ActionStateSendRequestSendEvent.xml @@ -0,0 +1,9 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..e77484a53de2f374ff68021b10b22f8ea58d4ed1 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendEvent.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="2" name="send request"> +<CUSTOM request="Zigbee_TX__source_req" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action"> +<CUSTOM action="size = 127" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequest.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequest.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a6db0d5b06bc3258592b634ffaf52ed6f51f742 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequest.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="Zigbee_TX__Source_evt_out__Zigbee_TX__bit2symbol_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action"> +<CUSTOM action="size = 127" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequestSendEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequestSendEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..9d0d3fcc6070372ce42c71fada55038f262ab4ba --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Source_Disable_SendRequestSendEvent.xml @@ -0,0 +1,13 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="2" name="action"> +<CUSTOM action="size = 127" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Symbol2ChipSeq_Disable_WaitEvent.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Symbol2ChipSeq_Disable_WaitEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6da6d2ea972aa16c9c43f86cc47d6262878426f --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/F_Symbol2ChipSeq_Disable_WaitEvent.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="Zigbee_TX__bit2symbol_evt_out__Zigbee_TX__chip2octet_evt_in" params="size" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="Zigbee_TX__bit2chip_req" params="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ChoiceLeft.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ChoiceLeft.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb03280482b70bf3b11253153813a7fa7adcafa5 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ChoiceLeft.xml @@ -0,0 +1,73 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice"> +<CUSTOM guards="[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="8" /> +<NEXTACTIVITYELEMENT id="11" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice"> +<CUSTOM guards="[ true ];[ x>0 ];" /> +<NEXTACTIVITYELEMENT id="12" /> +<NEXTACTIVITYELEMENT id="14" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="AppC__activation" params="" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event"> +<CUSTOM event="AppC__reset__AppC__reset" params="" /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="5" name="wait event"> +<CUSTOM event="AppC__answerToReset__AppC__answerToReset" params="" /> +<NEXTACTIVITYELEMENT id="6" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="6" name="send event"> +<CUSTOM event="AppC__pTS__AppC__pTS" params="" /> +<NEXTACTIVITYELEMENT id="7" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="7" name="wait event"> +<CUSTOM event="AppC__pTSConfirm__AppC__pTSConfirm" params="" /> +<NEXTACTIVITYELEMENT id="16" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="8" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromDtoSC " /> +<NEXTACTIVITYELEMENT id="9" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="9" name="send event"> +<CUSTOM event="AppC__data_Ready__AppC__data_Ready" params="x,b" /> +<NEXTACTIVITYELEMENT id="10" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="10" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLNotifiedEvent" value="" id="11" name="notified event"> +<CUSTOM event="AppC__data_Ready_SC__AppC__data_Ready_SC" params="" variable="x" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="12" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="13" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromSCtoD " /> +<NEXTACTIVITYELEMENT id="15" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="14" name="wait event"> +<CUSTOM event="AppC__data_Ready_SC__AppC__data_Ready_SC" params="" /> +<NEXTACTIVITYELEMENT id="13" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="15" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="16" name="loop"> +<CUSTOM init="i=0" condition="i<nbOfComputedPackets" increment="i = i +1" isInfinite="false" /> +<NEXTACTIVITYELEMENT id="1" /> +<NEXTACTIVITYELEMENT id="17" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="17" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ConnectorChoice.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ConnectorChoice.xml new file mode 100644 index 0000000000000000000000000000000000000000..ee58a0c10c43eb1f3247daecd47c6429aed5ae00 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ConnectorChoice.xml @@ -0,0 +1,61 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice"> +<CUSTOM guards="[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="8" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice"> +<CUSTOM guards="[ true ];[ true ];" /> +<NEXTACTIVITYELEMENT id="11" /> +<NEXTACTIVITYELEMENT id="12" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="3" name="send request"> +<CUSTOM request="AppC__activation" params="" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event"> +<CUSTOM event="AppC__reset__AppC__reset" params="" /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="5" name="wait event"> +<CUSTOM event="AppC__answerToReset__AppC__answerToReset" params="" /> +<NEXTACTIVITYELEMENT id="6" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="6" name="send event"> +<CUSTOM event="AppC__pTS__AppC__pTS" params="" /> +<NEXTACTIVITYELEMENT id="7" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="7" name="wait event"> +<CUSTOM event="AppC__pTSConfirm__AppC__pTSConfirm" params="" /> +<NEXTACTIVITYELEMENT id="13" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="8" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromDtoSC " /> +<NEXTACTIVITYELEMENT id="9" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="9" name="send event"> +<CUSTOM event="AppC__data_Ready__AppC__data_Ready" params="x,b" /> +<NEXTACTIVITYELEMENT id="10" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="10" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="11" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="12" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="13" name="loop"> +<CUSTOM init="i=0" condition="i<nbOfComputedPackets" increment="i = i +1" isInfinite="false" /> +<NEXTACTIVITYELEMENT id="1" /> +<NEXTACTIVITYELEMENT id="14" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="14" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ForLoop.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ForLoop.xml new file mode 100644 index 0000000000000000000000000000000000000000..22d98880ac49d77677d5823aa0c88555daffd3a0 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/InterfaceDevice_Disable_ForLoop.xml @@ -0,0 +1,29 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="1" name="send request"> +<CUSTOM request="AppC__activation" params="" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="2" name="send event"> +<CUSTOM event="AppC__reset__AppC__reset" params="" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="3" name="wait event"> +<CUSTOM event="AppC__answerToReset__AppC__answerToReset" params="" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="4" name="send event"> +<CUSTOM event="AppC__pTS__AppC__pTS" params="" /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="5" name="wait event"> +<CUSTOM event="AppC__pTSConfirm__AppC__pTSConfirm" params="" /> +<NEXTACTIVITYELEMENT id="6" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="6" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottom.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottom.xml new file mode 100644 index 0000000000000000000000000000000000000000..ec7277413c327edb8e816284446eaf15ae1b1eb4 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottom.xml @@ -0,0 +1,561 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="35" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==10 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="120" /> +<NEXTACTIVITYELEMENT id="136" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==1 ];[ tcpctrl__state ==3 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="11" /> +<NEXTACTIVITYELEMENT id="12" /> +<NEXTACTIVITYELEMENT id="137" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="3" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==5 ];[ tcpctrl__state == 7 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="117" /> +<NEXTACTIVITYELEMENT id="123" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="4" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==2 ];[ tcpctrl__state ==4 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="115" /> +<NEXTACTIVITYELEMENT id="114" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="5" name="choice"> +<CUSTOM guards="[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="10" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="6" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="107" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="7" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="106" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="8" name="choice"> +<CUSTOM guards="[ tcpctrl__state == 4 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="7" /> +<NEXTACTIVITYELEMENT id="135" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="9" name="choice"> +<CUSTOM guards="[ ];[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="108" /> +<NEXTACTIVITYELEMENT id="8" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="10" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="109" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="11" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="128" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="12" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="131" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="13" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==6 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="14" /> +<NEXTACTIVITYELEMENT id="104" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="14" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="99" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="15" name="choice"> +<CUSTOM guards="[ tcpctrl__state == 1 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="66" /> +<NEXTACTIVITYELEMENT id="97" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="16" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="74" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="17" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="68" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="18" name="choice"> +<CUSTOM guards="[ tcpctrl__state == 5];[ tcpctrl__state ==4 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="27" /> +<NEXTACTIVITYELEMENT id="17" /> +<NEXTACTIVITYELEMENT id="13" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="19" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="64" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="20" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==0 ];[ tcpctrl__state==0 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="62" /> +<NEXTACTIVITYELEMENT id="19" /> +<NEXTACTIVITYELEMENT id="98" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="21" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="88" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="22" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="85" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="23" name="choice"> +<CUSTOM guards="[ ];[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="9" /> +<NEXTACTIVITYELEMENT id="20" /> +<NEXTACTIVITYELEMENT id="18" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="24" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="23" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="25" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="87" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="26" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="86" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="27" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="71" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="28" name="choice"> +<CUSTOM guards="[ tcpctrl__state==0 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="32" /> +<NEXTACTIVITYELEMENT id="46" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="29" name="choice"> +<CUSTOM guards="[ tcpctrl__a>0 ];[ tcpctrl__a==0 ];" /> +<NEXTACTIVITYELEMENT id="48" /> +<NEXTACTIVITYELEMENT id="45" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="30" name="choice"> +<CUSTOM guards="[ true ];[ true ];[ else ];" /> +<NEXTACTIVITYELEMENT id="25" /> +<NEXTACTIVITYELEMENT id="21" /> +<NEXTACTIVITYELEMENT id="15" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="31" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==4 ];[ tcpctrl__state == 1];[ else ];" /> +<NEXTACTIVITYELEMENT id="50" /> +<NEXTACTIVITYELEMENT id="22" /> +<NEXTACTIVITYELEMENT id="47" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="32" name="action"> +<CUSTOM action="tcpctrl__state =1" /> +<NEXTACTIVITYELEMENT id="33" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="33" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="34" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromPtoT " /> +<NEXTACTIVITYELEMENT id="24" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="35" name="loop"> +<CUSTOM init="i=0" condition="(tcpctrl__a==0)" increment="i = i" isInfinite="false" /> +<NEXTACTIVITYELEMENT id="38" /> +<NEXTACTIVITYELEMENT id="37" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="36" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="37" name="action"> +<CUSTOM action="tcpctrl__state=0" /> +<NEXTACTIVITYELEMENT id="36" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLNotifiedEvent" value="" id="38" name="notified event"> +<CUSTOM event="AppC__abort__AppC__abort" params="" variable="tcpctrl__a" /> +<NEXTACTIVITYELEMENT id="29" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="39" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="16" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="40" name="wait event"> +<CUSTOM event="AppC__timeOut__AppC__timeOut" params="" /> +<NEXTACTIVITYELEMENT id="39" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="41" name="wait event"> +<CUSTOM event="AppC__receive__AppC__receive" params="" /> +<NEXTACTIVITYELEMENT id="34" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="42" name="wait event"> +<CUSTOM event="AppC__close__AppC__close" params="" /> +<NEXTACTIVITYELEMENT id="30" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="43" name="wait event"> +<CUSTOM event="AppC__send_TCP__AppC__send_TCP" params="" /> +<NEXTACTIVITYELEMENT id="31" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="44" name="wait event"> +<CUSTOM event="AppC__open__AppC__open" params="" /> +<NEXTACTIVITYELEMENT id="28" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSelectEvt" value="" id="45" name="select"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="40" /> +<NEXTACTIVITYELEMENT id="41" /> +<NEXTACTIVITYELEMENT id="42" /> +<NEXTACTIVITYELEMENT id="43" /> +<NEXTACTIVITYELEMENT id="44" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="46" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="47" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="48" name="wait event"> +<CUSTOM event="AppC__abort__AppC__abort" params="" /> +<NEXTACTIVITYELEMENT id="49" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="49" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="50" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromAtoT " /> +<NEXTACTIVITYELEMENT id="26" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="51" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="89" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="52" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="53" name="action"> +<CUSTOM action="tcpctrl__state =5" /> +<NEXTACTIVITYELEMENT id="83" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="54" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="55" name="action"> +<CUSTOM action="tcpctrl__state=3" /> +<NEXTACTIVITYELEMENT id="76" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="56" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="92" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="57" name="action"> +<CUSTOM action="tcpctrl__state =10" /> +<NEXTACTIVITYELEMENT id="81" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="58" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="59" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="91" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="60" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="90" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="61" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="62" name="action"> +<CUSTOM action="tcpctrl__state =1" /> +<NEXTACTIVITYELEMENT id="63" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="63" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="64" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="94" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="65" name="action"> +<CUSTOM action="tcpctrl__state =3" /> +<NEXTACTIVITYELEMENT id="61" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="66" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="67" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="67" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="68" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="95" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="69" name="action"> +<CUSTOM action="tcpctrl__state =9" /> +<NEXTACTIVITYELEMENT id="70" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="70" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="71" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="96" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="72" name="action"> +<CUSTOM action="tcpctrl__state =7" /> +<NEXTACTIVITYELEMENT id="73" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="73" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="74" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="93" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="75" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="76" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="77" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="77" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="78" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="78" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="79" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="80" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="80" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="52" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="81" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="82" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="82" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="58" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="83" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="84" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="84" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="54" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="85" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="56" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="86" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="51" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="87" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="59" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="88" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="60" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="89" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="79" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="90" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="57" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="91" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="53" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="92" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="55" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="93" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="75" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="94" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="65" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="95" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="69" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="96" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="72" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="97" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="98" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="99" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="100" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="100" name="action"> +<CUSTOM action="tcpctrl__state =8" /> +<NEXTACTIVITYELEMENT id="103" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="101" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="102" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="101" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="103" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="102" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="104" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="105" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="106" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoA " /> +<NEXTACTIVITYELEMENT id="138" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="107" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="111" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="108" name="send event"> +<CUSTOM event="AppC__stop__AppC__stop" params="" /> +<NEXTACTIVITYELEMENT id="139" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="109" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="112" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="110" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="111" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="105" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="112" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="113" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="113" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="110" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="114" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="115" name="action"> +<CUSTOM action="tcpctrl__state =4" /> +<NEXTACTIVITYELEMENT id="116" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="116" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="117" name="action"> +<CUSTOM action="tcpctrl__state =6" /> +<NEXTACTIVITYELEMENT id="118" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="118" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="119" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="120" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="121" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="121" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="122" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="119" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="123" name="action"> +<CUSTOM action="tcpctrl__state =8" /> +<NEXTACTIVITYELEMENT id="122" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="124" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="129" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="125" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="126" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="127" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="127" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="130" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="128" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="124" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="129" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="126" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="130" name="action"> +<CUSTOM action="tcpctrl__state =2" /> +<NEXTACTIVITYELEMENT id="125" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="131" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="134" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="132" name="action"> +<CUSTOM action="tcpctrl__state =2" /> +<NEXTACTIVITYELEMENT id="133" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="133" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="134" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="132" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="135" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="136" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="137" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="138" name="send event"> +<CUSTOM event="AppC__receive_Application__AppC__receive_Application" params="" /> +<NEXTACTIVITYELEMENT id="6" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="139" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottomRight.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottomRight.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0e74ad7a1a44bf5103ccc974523e4a5b750a2dd --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ChoiceLeftBottomRight.xml @@ -0,0 +1,561 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="35" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="1" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==10 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="120" /> +<NEXTACTIVITYELEMENT id="136" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="2" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==1 ];[ tcpctrl__state ==3 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="11" /> +<NEXTACTIVITYELEMENT id="12" /> +<NEXTACTIVITYELEMENT id="137" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="3" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==5 ];[ tcpctrl__state == 7 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="117" /> +<NEXTACTIVITYELEMENT id="123" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="4" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==2 ];[ tcpctrl__state ==4 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="115" /> +<NEXTACTIVITYELEMENT id="114" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="5" name="choice"> +<CUSTOM guards="[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="10" /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="6" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="107" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="7" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="106" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="8" name="choice"> +<CUSTOM guards="[ tcpctrl__state == 4 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="7" /> +<NEXTACTIVITYELEMENT id="135" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="9" name="choice"> +<CUSTOM guards="[ ];[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="108" /> +<NEXTACTIVITYELEMENT id="8" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="10" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="109" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="11" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="128" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="12" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="131" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="13" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==6 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="14" /> +<NEXTACTIVITYELEMENT id="104" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="14" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="99" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="15" name="choice"> +<CUSTOM guards="[ tcpctrl__state == 1 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="66" /> +<NEXTACTIVITYELEMENT id="97" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="16" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="74" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="17" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="68" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="18" name="choice"> +<CUSTOM guards="[ tcpctrl__state == 5];[ tcpctrl__state ==4 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="27" /> +<NEXTACTIVITYELEMENT id="17" /> +<NEXTACTIVITYELEMENT id="13" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="19" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="64" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="20" name="choice"> +<CUSTOM guards="[ tcpctrl__state ==0 ];[ tcpctrl__state==0 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="62" /> +<NEXTACTIVITYELEMENT id="19" /> +<NEXTACTIVITYELEMENT id="98" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="21" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="88" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="22" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="85" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="23" name="choice"> +<CUSTOM guards="[ ];[ ];[ ];" /> +<NEXTACTIVITYELEMENT id="9" /> +<NEXTACTIVITYELEMENT id="20" /> +<NEXTACTIVITYELEMENT id="18" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="24" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="23" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="25" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="87" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="26" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="86" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="b" id="27" name="execi"> +<CUSTOM action="b" /> +<NEXTACTIVITYELEMENT id="71" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="28" name="choice"> +<CUSTOM guards="[ tcpctrl__state==0 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="32" /> +<NEXTACTIVITYELEMENT id="46" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="29" name="choice"> +<CUSTOM guards="[ tcpctrl__a>0 ];[ tcpctrl__a==0 ];" /> +<NEXTACTIVITYELEMENT id="48" /> +<NEXTACTIVITYELEMENT id="45" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="30" name="choice"> +<CUSTOM guards="[ (tcpctrl__state ==2) or (tcpctrl__state ==4) ];[ tcpctrl__state ==9 ];[ else ];" /> +<NEXTACTIVITYELEMENT id="25" /> +<NEXTACTIVITYELEMENT id="21" /> +<NEXTACTIVITYELEMENT id="15" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLChoice" value="" id="31" name="choice"> +<CUSTOM guards="[ true ];[ true ];[ true ];" /> +<NEXTACTIVITYELEMENT id="50" /> +<NEXTACTIVITYELEMENT id="22" /> +<NEXTACTIVITYELEMENT id="47" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="32" name="action"> +<CUSTOM action="tcpctrl__state =1" /> +<NEXTACTIVITYELEMENT id="33" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="33" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="34" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromPtoT " /> +<NEXTACTIVITYELEMENT id="24" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="35" name="loop"> +<CUSTOM init="i=0" condition="(tcpctrl__a==0)" increment="i = i" isInfinite="false" /> +<NEXTACTIVITYELEMENT id="38" /> +<NEXTACTIVITYELEMENT id="37" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="36" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="37" name="action"> +<CUSTOM action="tcpctrl__state=0" /> +<NEXTACTIVITYELEMENT id="36" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLNotifiedEvent" value="" id="38" name="notified event"> +<CUSTOM event="AppC__abort__AppC__abort" params="" variable="tcpctrl__a" /> +<NEXTACTIVITYELEMENT id="29" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="39" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="16" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="40" name="wait event"> +<CUSTOM event="AppC__timeOut__AppC__timeOut" params="" /> +<NEXTACTIVITYELEMENT id="39" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="41" name="wait event"> +<CUSTOM event="AppC__receive__AppC__receive" params="" /> +<NEXTACTIVITYELEMENT id="34" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="42" name="wait event"> +<CUSTOM event="AppC__close__AppC__close" params="" /> +<NEXTACTIVITYELEMENT id="30" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="43" name="wait event"> +<CUSTOM event="AppC__send_TCP__AppC__send_TCP" params="" /> +<NEXTACTIVITYELEMENT id="31" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="44" name="wait event"> +<CUSTOM event="AppC__open__AppC__open" params="" /> +<NEXTACTIVITYELEMENT id="28" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSelectEvt" value="" id="45" name="select"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="40" /> +<NEXTACTIVITYELEMENT id="41" /> +<NEXTACTIVITYELEMENT id="42" /> +<NEXTACTIVITYELEMENT id="43" /> +<NEXTACTIVITYELEMENT id="44" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="46" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="47" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWaitEvent" value="" id="48" name="wait event"> +<CUSTOM event="AppC__abort__AppC__abort" params="" /> +<NEXTACTIVITYELEMENT id="49" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="49" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="50" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromAtoT " /> +<NEXTACTIVITYELEMENT id="26" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="51" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="89" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="52" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="53" name="action"> +<CUSTOM action="tcpctrl__state =5" /> +<NEXTACTIVITYELEMENT id="83" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="54" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="55" name="action"> +<CUSTOM action="tcpctrl__state=3" /> +<NEXTACTIVITYELEMENT id="76" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="56" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="92" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="57" name="action"> +<CUSTOM action="tcpctrl__state =10" /> +<NEXTACTIVITYELEMENT id="81" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="58" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="59" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="91" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="60" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="90" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="61" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="62" name="action"> +<CUSTOM action="tcpctrl__state =1" /> +<NEXTACTIVITYELEMENT id="63" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="63" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="64" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="94" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="65" name="action"> +<CUSTOM action="tcpctrl__state =3" /> +<NEXTACTIVITYELEMENT id="61" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="66" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="67" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="67" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="68" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="95" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="69" name="action"> +<CUSTOM action="tcpctrl__state =9" /> +<NEXTACTIVITYELEMENT id="70" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="70" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="71" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="96" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="72" name="action"> +<CUSTOM action="tcpctrl__state =7" /> +<NEXTACTIVITYELEMENT id="73" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="73" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="74" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="93" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="75" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="76" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="77" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="77" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="78" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="78" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="79" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="80" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="80" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="52" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="81" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="82" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="82" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="58" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="83" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="84" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="84" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="54" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="85" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="56" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="86" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="51" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="87" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="59" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="88" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="60" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="89" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="79" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="90" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="57" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="91" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="53" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="92" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="55" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="93" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="75" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="94" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="65" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="95" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="69" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="96" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="72" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="97" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="98" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="99" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="100" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="100" name="action"> +<CUSTOM action="tcpctrl__state =8" /> +<NEXTACTIVITYELEMENT id="103" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="101" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="102" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="101" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="103" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="102" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="104" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="105" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="106" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoA " /> +<NEXTACTIVITYELEMENT id="138" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="107" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="111" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="108" name="send event"> +<CUSTOM event="AppC__stop__AppC__stop" params="" /> +<NEXTACTIVITYELEMENT id="139" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="109" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="112" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="110" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="111" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="105" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="112" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="113" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="113" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="110" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="114" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="115" name="action"> +<CUSTOM action="tcpctrl__state =4" /> +<NEXTACTIVITYELEMENT id="116" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="116" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="117" name="action"> +<CUSTOM action="tcpctrl__state =6" /> +<NEXTACTIVITYELEMENT id="118" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="118" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="119" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="120" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="121" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="121" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="122" name="action"> +<CUSTOM action="tcpctrl__state =0" /> +<NEXTACTIVITYELEMENT id="119" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="123" name="action"> +<CUSTOM action="tcpctrl__state =8" /> +<NEXTACTIVITYELEMENT id="122" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="124" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="129" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="125" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendRequest" value="" id="126" name="send request"> +<CUSTOM request="AppC__req_Timer" params="" /> +<NEXTACTIVITYELEMENT id="127" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="127" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="130" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="128" name="action"> +<CUSTOM action="seqNum=seqNum+wind" /> +<NEXTACTIVITYELEMENT id="124" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="129" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="126" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="130" name="action"> +<CUSTOM action="tcpctrl__state =2" /> +<NEXTACTIVITYELEMENT id="125" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="131" name="write channel"> +<CUSTOM nbOfSamples="1" channels="AppC__fromTtoP " /> +<NEXTACTIVITYELEMENT id="134" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="132" name="action"> +<CUSTOM action="tcpctrl__state =2" /> +<NEXTACTIVITYELEMENT id="133" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="133" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="134" name="send event"> +<CUSTOM event="AppC__send__AppC__send" params="" /> +<NEXTACTIVITYELEMENT id="132" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="135" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="136" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="137" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLSendEvent" value="" id="138" name="send event"> +<CUSTOM event="AppC__receive_Application__AppC__receive_Application" params="" /> +<NEXTACTIVITYELEMENT id="6" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="139" name="read channel"> +<CUSTOM nbOfSamples="1" channels="AppC__temp " /> +<NEXTACTIVITYELEMENT id="5" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ForLoopAfterStart.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ForLoopAfterStart.xml new file mode 100644 index 0000000000000000000000000000000000000000..7479397f0f2202943bfecfca5fb690378645f589 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/TCPIP_Disable_ForLoopAfterStart.xml @@ -0,0 +1,13 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="2" name="action"> +<CUSTOM action="tcpctrl__state=0" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Chip2Octet_Disable_ExecC.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Chip2Octet_Disable_ExecC.xml new file mode 100644 index 0000000000000000000000000000000000000000..706ae6f37486134961ceb73781f29e69ea8b0460 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Chip2Octet_Disable_ExecC.xml @@ -0,0 +1,21 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="1" name="read channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in " /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in " /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ExecI.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ExecI.xml new file mode 100644 index 0000000000000000000000000000000000000000..84b8bcd6405104de27303c3ae18a0e704b089be9 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ExecI.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="2" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in " /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ReadRequestArg.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ReadRequestArg.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9555fc44af24ca8919929de5093707ad2f48cc1 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_ReadRequestArg.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in " /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_WriteChannel.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_WriteChannel.xml new file mode 100644 index 0000000000000000000000000000000000000000..6d3ff961e140db7b6633a619536b6f03392732aa --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Source_Disable_WriteChannel.xml @@ -0,0 +1,17 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecI" value="size" id="1" name="execi"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="3" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Symbol2ChipSeq_Disable_ReadChannel.xml b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Symbol2ChipSeq_Disable_ReadChannel.xml new file mode 100644 index 0000000000000000000000000000000000000000..756b85ad30cd16cad7e5c82f6f7b75d1db25fbe0 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/expected/components_disabling/X_Symbol2ChipSeq_Disable_ReadChannel.xml @@ -0,0 +1,21 @@ +<ACTIVITY first="0"> +<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="start"> +<CUSTOM /> +<NEXTACTIVITYELEMENT id="4" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLExecC" value="size" id="1" name="execc"> +<CUSTOM action="size" /> +<NEXTACTIVITYELEMENT id="3" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop state"> +<CUSTOM /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="3" name="write channel"> +<CUSTOM nbOfSamples="size" channels="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in " /> +<NEXTACTIVITYELEMENT id="2" /> +</ACTIVITYELEMENT> +<ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="4" name="action reading args"> +<CUSTOM action="size = arg1__req" /> +<NEXTACTIVITYELEMENT id="1" /> +</ACTIVITYELEMENT> +</ACTIVITY> diff --git a/ttool/src/test/resources/ui/diagram2tml/input/SmartCardProtocol.xml b/ttool/src/test/resources/ui/diagram2tml/input/SmartCardProtocol.xml new file mode 100644 index 0000000000000000000000000000000000000000..745f29ca72e6e06344d46fa433e4bbfc42836353 --- /dev/null +++ b/ttool/src/test/resources/ui/diagram2tml/input/SmartCardProtocol.xml @@ -0,0 +1,6916 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="TML Component Design" nameTab="AppC" > +<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="0" maxX="1724" minY="0" maxY="916" channels="true" events="true" requests="true" zoom="1.0000000000000018" > +<CONNECTOR type="126" id="1" > +<cdparam x="522" y="390" /> +<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="522" y="390" id="60" /> +<P2 x="468" y="336" id="39" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="2" > +<cdparam x="409" y="124" /> +<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="402" y="84" id="37" /> +<P2 x="593" y="85" id="186" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="3" > +<cdparam x="652" y="444" /> +<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="816" y="554" id="89" /> +<P2 x="971" y="502" id="152" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="4" > +<cdparam x="652" y="418" /> +<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="816" y="522" id="87" /> +<P2 x="922" y="482" id="154" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="5" > +<cdparam x="602" y="327" /> +<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="752" y="408" id="79" /> +<P2 x="831" y="376" id="103" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="6" > +<cdparam x="685" y="310" /> +<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="857" y="376" id="107" /> +<P2 x="922" y="368" id="144" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="7" > +<cdparam x="652" y="395" /> +<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="816" y="493" id="83" /> +<P2 x="922" y="459" id="146" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="8" > +<cdparam x="652" y="369" /> +<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="816" y="461" id="85" /> +<P2 x="922" y="432" id="148" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="9" > +<cdparam x="737" y="314" /> +<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="922" y="403" id="150" /> +<P2 x="816" y="432" id="81" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="10" > +<cdparam x="735" y="260" /> +<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="919" y="336" id="142" /> +<P2 x="749" y="284" id="198" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="11" > +<cdparam x="641" y="230" /> +<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="749" y="248" id="200" /> +<P2 x="919" y="297" id="140" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="12" > +<cdparam x="641" y="195" /> +<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="749" y="204" id="202" /> +<P2 x="919" y="254" id="138" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="13" > +<cdparam x="740" y="353" /> +<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="831" y="376" id="102" /> +<P2 x="749" y="315" id="204" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="14" > +<cdparam x="460" y="270" /> +<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="522" y="304" id="194" /> +<P2 x="468" y="304" id="45" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="15" > +<cdparam x="387" y="129" /> +<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="466" y="127" id="49" /> +<P2 x="525" y="127" id="206" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="16" > +<cdparam x="389" y="200" /> +<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="468" y="216" id="43" /> +<P2 x="522" y="216" id="192" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="17" > +<cdparam x="460" y="236" /> +<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="522" y="261" id="190" /> +<P2 x="468" y="261" id="41" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="18" > +<cdparam x="460" y="296" /> +<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="536" y="349" id="188" /> +<P2 x="548" y="390" id="65" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="19" > +<cdparam x="389" y="163" /> +<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="468" y="170" id="47" /> +<P2 x="522" y="170" id="196" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="20" > +<cdparam x="967" y="190" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> +<P1 x="919" y="204" id="136" /> +<P2 x="749" y="125" id="184" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="21" > +<cdparam x="1028" y="535" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> +<P1 x="630" y="347" id="208" /> +<P2 x="671" y="408" id="91" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="22" > +<cdparam x="1304" y="321" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> +<P1 x="1224" y="379" id="121" /> +<P2 x="1180" y="386" id="156" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="23" > +<cdparam x="1168" y="455" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> +<P1 x="1180" y="421" id="158" /> +<P2 x="1224" y="414" id="123" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="26" > +<cdparam x="1037" y="180" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> +<P1 x="1180" y="214" id="160" /> +<P2 x="1180" y="282" id="162" /> +<Point x="1224" y="226" /> +<Point x="1224" y="266" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="24" > +<father id="26" num="0" /> +<cdparam x="1224" y="226" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="25" > +<father id="26" num="1" /> +<cdparam x="1224" y="266" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="27" > +<cdparam x="873" y="361" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" /> +<P1 x="1180" y="461" id="164" /> +<P2 x="1224" y="442" id="125" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="1205" id="36" > +<cdparam x="1152" y="505" /> +<sizeparam width="206" height="105" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1725" minY="0" maxY="917" /> +<infoparam name="Record component" value="TCP_CTRL" /> +<TGConnectingPoint num="0" id="28" /> +<TGConnectingPoint num="1" id="29" /> +<TGConnectingPoint num="2" id="30" /> +<TGConnectingPoint num="3" id="31" /> +<TGConnectingPoint num="4" id="32" /> +<TGConnectingPoint num="5" id="33" /> +<TGConnectingPoint num="6" id="34" /> +<TGConnectingPoint num="7" id="35" /> +<extraparam> +<Attribute access="2" id="a" value="" type="0" typeOther="" /> +<Attribute access="2" id="state" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1202" id="59" > +<cdparam x="164" y="97" /> +<sizeparam width="291" height="277" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1725" minY="0" maxY="917" /> +<infoparam name="TGComponent" value="InterfaceDevice" /> +<TGConnectingPoint num="0" id="51" /> +<TGConnectingPoint num="1" id="52" /> +<TGConnectingPoint num="2" id="53" /> +<TGConnectingPoint num="3" id="54" /> +<TGConnectingPoint num="4" id="55" /> +<TGConnectingPoint num="5" id="56" /> +<TGConnectingPoint num="6" id="57" /> +<TGConnectingPoint num="7" id="58" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="resetType" value="0" type="0" typeOther="" /> +<Attribute access="2" id="x" value="0" type="0" typeOther="" /> +<Attribute access="2" id="i" value="0" type="0" typeOther="" /> +<Attribute access="2" id="nbOfComputedPackets" value="1" type="0" typeOther="" /> +<Attribute access="2" id="b" value="" type="4" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1203" id="38" > +<father id="59" num="0" /> +<cdparam x="389" y="84" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" /> +<infoparam name="TGComponent" value="Event reset, pTS" /> +<TGConnectingPoint num="0" id="37" /> +<extraparam> +<Prop commName="reset, pTS" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="40" > +<father id="59" num="1" /> +<cdparam x="442" y="323" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" /> +<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" /> +<TGConnectingPoint num="0" id="39" /> +<extraparam> +<Prop commName="answerToReset, pTSConfirm" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="42" > +<father id="59" num="2" /> +<cdparam x="442" y="248" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" /> +<infoparam name="TGComponent" value="Channel fromSCtoD" /> +<TGConnectingPoint num="0" id="41" /> +<extraparam> +<Prop commName="fromSCtoD" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="44" > +<father id="59" num="3" /> +<cdparam x="442" y="203" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" /> +<infoparam name="TGComponent" value="Channel fromDtoSC" /> +<TGConnectingPoint num="0" id="43" /> +<extraparam> +<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="46" > +<father id="59" num="4" /> +<cdparam x="442" y="291" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" /> +<infoparam name="TGComponent" value="Event data_Ready_SC" /> +<TGConnectingPoint num="0" id="45" /> +<extraparam> +<Prop commName="data_Ready_SC" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="48" > +<father id="59" num="5" /> +<cdparam x="442" y="157" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="278" minY="-13" maxY="264" /> +<infoparam name="TGComponent" value="Event data_Ready" /> +<TGConnectingPoint num="0" id="47" /> +<extraparam> +<Prop commName="data_Ready" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="2" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="50" > +<father id="59" num="6" /> +<cdparam x="445" y="117" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="281" minY="-10" maxY="267" /> +<infoparam name="TGComponent" value="Request activation" /> +<TGConnectingPoint num="0" id="49" /> +<extraparam> +<Prop commName="activation" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="227" > +<cdparam x="535" y="94" /> +<sizeparam width="936" height="530" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1725" minY="0" maxY="917" /> +<infoparam name="TGComponent" value="SmartCard" /> +<TGConnectingPoint num="0" id="219" /> +<TGConnectingPoint num="1" id="220" /> +<TGConnectingPoint num="2" id="221" /> +<TGConnectingPoint num="3" id="222" /> +<TGConnectingPoint num="4" id="223" /> +<TGConnectingPoint num="5" id="224" /> +<TGConnectingPoint num="6" id="225" /> +<TGConnectingPoint num="7" id="226" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="78" > +<father id="227" num="0" /> +<cdparam x="522" y="377" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="923" minY="-13" maxY="517" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="60" /> +<TGConnectingPoint num="1" id="61" /> +<TGConnectingPoint num="2" id="62" /> +<TGConnectingPoint num="3" id="63" /> +<TGConnectingPoint num="4" id="64" /> +<TGConnectingPoint num="5" id="65" /> +<TGConnectingPoint num="6" id="66" /> +<TGConnectingPoint num="7" id="67" /> +<TGConnectingPoint num="8" id="68" /> +<TGConnectingPoint num="9" id="69" /> +<TGConnectingPoint num="10" id="70" /> +<TGConnectingPoint num="11" id="71" /> +<TGConnectingPoint num="12" id="72" /> +<TGConnectingPoint num="13" id="73" /> +<TGConnectingPoint num="14" id="74" /> +<TGConnectingPoint num="15" id="75" /> +<TGConnectingPoint num="16" id="76" /> +<TGConnectingPoint num="17" id="77" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="101" > +<father id="227" num="1" /> +<cdparam x="565" y="418" /> +<sizeparam width="240" height="146" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="696" minY="0" maxY="384" /> +<infoparam name="TGComponent" value="Application" /> +<TGConnectingPoint num="0" id="93" /> +<TGConnectingPoint num="1" id="94" /> +<TGConnectingPoint num="2" id="95" /> +<TGConnectingPoint num="3" id="96" /> +<TGConnectingPoint num="4" id="97" /> +<TGConnectingPoint num="5" id="98" /> +<TGConnectingPoint num="6" id="99" /> +<TGConnectingPoint num="7" id="100" /> +<extraparam> +<Data isAttacker="No" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="80" > +<father id="101" num="0" /> +<cdparam x="742" y="408" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Request start_TCP_IP" /> +<TGConnectingPoint num="0" id="79" /> +<extraparam> +<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="82" > +<father id="101" num="1" /> +<cdparam x="795" y="422" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Channel fromTtoA" /> +<TGConnectingPoint num="0" id="81" /> +<extraparam> +<Prop commName="fromTtoA" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="84" > +<father id="101" num="2" /> +<cdparam x="795" y="483" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Event send_TCP" /> +<TGConnectingPoint num="0" id="83" /> +<extraparam> +<Prop commName="send_TCP" commType="1" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="86" > +<father id="101" num="3" /> +<cdparam x="795" y="451" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Event open, abort, close" /> +<TGConnectingPoint num="0" id="85" /> +<extraparam> +<Prop commName="open, abort, close" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="88" > +<father id="101" num="4" /> +<cdparam x="795" y="512" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Event receive_Application" /> +<TGConnectingPoint num="0" id="87" /> +<extraparam> +<Prop commName="receive_Application" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="90" > +<father id="101" num="5" /> +<cdparam x="795" y="544" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Channel fromAtoT" /> +<TGConnectingPoint num="0" id="89" /> +<extraparam> +<Prop commName="fromAtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="92" > +<father id="101" num="6" /> +<cdparam x="661" y="408" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="136" /> +<infoparam name="TGComponent" value="Request start_Application" /> +<TGConnectingPoint num="0" id="91" /> +<extraparam> +<Prop commName="start_Application" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1200" id="183" > +<father id="227" num="2" /> +<cdparam x="844" y="134" /> +<sizeparam width="570" height="486" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="366" minY="0" maxY="44" /> +<infoparam name="TGComponent" value="TCPIP Entities" /> +<TGConnectingPoint num="0" id="175" /> +<TGConnectingPoint num="1" id="176" /> +<TGConnectingPoint num="2" id="177" /> +<TGConnectingPoint num="3" id="178" /> +<TGConnectingPoint num="4" id="179" /> +<TGConnectingPoint num="5" id="180" /> +<TGConnectingPoint num="6" id="181" /> +<TGConnectingPoint num="7" id="182" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="120" > +<father id="183" num="0" /> +<cdparam x="831" y="363" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="557" minY="-13" maxY="473" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="102" /> +<TGConnectingPoint num="1" id="103" /> +<TGConnectingPoint num="2" id="104" /> +<TGConnectingPoint num="3" id="105" /> +<TGConnectingPoint num="4" id="106" /> +<TGConnectingPoint num="5" id="107" /> +<TGConnectingPoint num="6" id="108" /> +<TGConnectingPoint num="7" id="109" /> +<TGConnectingPoint num="8" id="110" /> +<TGConnectingPoint num="9" id="111" /> +<TGConnectingPoint num="10" id="112" /> +<TGConnectingPoint num="11" id="113" /> +<TGConnectingPoint num="12" id="114" /> +<TGConnectingPoint num="13" id="115" /> +<TGConnectingPoint num="14" id="116" /> +<TGConnectingPoint num="15" id="117" /> +<TGConnectingPoint num="16" id="118" /> +<TGConnectingPoint num="17" id="119" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="135" > +<father id="183" num="1" /> +<cdparam x="1234" y="329" /> +<sizeparam width="141" height="142" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="429" minY="0" maxY="344" /> +<infoparam name="TGComponent" value="Timer" /> +<TGConnectingPoint num="0" id="127" /> +<TGConnectingPoint num="1" id="128" /> +<TGConnectingPoint num="2" id="129" /> +<TGConnectingPoint num="3" id="130" /> +<TGConnectingPoint num="4" id="131" /> +<TGConnectingPoint num="5" id="132" /> +<TGConnectingPoint num="6" id="133" /> +<TGConnectingPoint num="7" id="134" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="x" value="0" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="122" > +<father id="135" num="0" /> +<cdparam x="1224" y="369" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="131" minY="-10" maxY="132" /> +<infoparam name="TGComponent" value="Event timeOut" /> +<TGConnectingPoint num="0" id="121" /> +<extraparam> +<Prop commName="timeOut" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="124" > +<father id="135" num="1" /> +<cdparam x="1224" y="404" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="131" minY="-10" maxY="132" /> +<infoparam name="TGComponent" value="Request req_Timer" /> +<TGConnectingPoint num="0" id="123" /> +<extraparam> +<Prop commName="req_Timer" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="126" > +<father id="135" num="2" /> +<cdparam x="1224" y="432" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="131" minY="-10" maxY="132" /> +<infoparam name="TGComponent" value="Event stop" /> +<TGConnectingPoint num="0" id="125" /> +<extraparam> +<Prop commName="stop" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="174" > +<father id="183" num="2" /> +<cdparam x="932" y="173" /> +<sizeparam width="237" height="318" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="333" minY="0" maxY="168" /> +<infoparam name="TGComponent" value="TCPIP" /> +<TGConnectingPoint num="0" id="166" /> +<TGConnectingPoint num="1" id="167" /> +<TGConnectingPoint num="2" id="168" /> +<TGConnectingPoint num="3" id="169" /> +<TGConnectingPoint num="4" id="170" /> +<TGConnectingPoint num="5" id="171" /> +<TGConnectingPoint num="6" id="172" /> +<TGConnectingPoint num="7" id="173" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="wind" value="64" type="0" typeOther="" /> +<Attribute access="2" id="seqNum" value="0" type="0" typeOther="" /> +<Attribute access="2" id="i" value="" type="0" typeOther="" /> +<Attribute access="2" id="j" value="" type="0" typeOther="" /> +<Attribute access="2" id="a" value="0" type="0" typeOther="" /> +<Attribute access="2" id="b" value="0" type="0" typeOther="" /> +<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="137" > +<father id="174" num="0" /> +<cdparam x="919" y="191" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" /> +<infoparam name="TGComponent" value="Event send" /> +<TGConnectingPoint num="0" id="136" /> +<extraparam> +<Prop commName="send" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="139" > +<father id="174" num="1" /> +<cdparam x="919" y="241" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" /> +<infoparam name="TGComponent" value="Event receive" /> +<TGConnectingPoint num="0" id="138" /> +<extraparam> +<Prop commName="receive" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="141" > +<father id="174" num="2" /> +<cdparam x="919" y="284" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" /> +<infoparam name="TGComponent" value="Channel fromPtoT" /> +<TGConnectingPoint num="0" id="140" /> +<extraparam> +<Prop commName="fromPtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="143" > +<father id="174" num="3" /> +<cdparam x="919" y="323" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="224" minY="-13" maxY="305" /> +<infoparam name="TGComponent" value="Channel fromTtoP" /> +<TGConnectingPoint num="0" id="142" /> +<extraparam> +<Prop commName="fromTtoP" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="145" > +<father id="174" num="4" /> +<cdparam x="922" y="358" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Request start_TCP_IP" /> +<TGConnectingPoint num="0" id="144" /> +<extraparam> +<Prop commName="start_TCP_IP" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="147" > +<father id="174" num="5" /> +<cdparam x="922" y="449" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Event send_TCP" /> +<TGConnectingPoint num="0" id="146" /> +<extraparam> +<Prop commName="send_TCP" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="149" > +<father id="174" num="6" /> +<cdparam x="922" y="422" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Event open, abort, close" /> +<TGConnectingPoint num="0" id="148" /> +<extraparam> +<Prop commName="open, abort, close" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="151" > +<father id="174" num="7" /> +<cdparam x="922" y="393" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Channel fromTtoA" /> +<TGConnectingPoint num="0" id="150" /> +<extraparam> +<Prop commName="fromTtoA" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="153" > +<father id="174" num="8" /> +<cdparam x="961" y="481" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Channel fromAtoT" /> +<TGConnectingPoint num="0" id="152" /> +<extraparam> +<Prop commName="fromAtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="155" > +<father id="174" num="9" /> +<cdparam x="922" y="472" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Event receive_Application" /> +<TGConnectingPoint num="0" id="154" /> +<extraparam> +<Prop commName="receive_Application" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="157" > +<father id="174" num="10" /> +<cdparam x="1159" y="376" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Event timeOut" /> +<TGConnectingPoint num="0" id="156" /> +<extraparam> +<Prop commName="timeOut" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="159" > +<father id="174" num="11" /> +<cdparam x="1159" y="411" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Request req_Timer" /> +<TGConnectingPoint num="0" id="158" /> +<extraparam> +<Prop commName="req_Timer" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="161" > +<father id="174" num="12" /> +<cdparam x="1159" y="204" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Channel temp" /> +<TGConnectingPoint num="0" id="160" /> +<extraparam> +<Prop commName="temp" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="163" > +<father id="174" num="13" /> +<cdparam x="1159" y="272" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Channel temp" /> +<TGConnectingPoint num="0" id="162" /> +<extraparam> +<Prop commName="temp" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="165" > +<father id="174" num="14" /> +<cdparam x="1159" y="451" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="227" minY="-10" maxY="308" /> +<infoparam name="TGComponent" value="Event stop" /> +<TGConnectingPoint num="0" id="164" /> +<extraparam> +<Prop commName="stop" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="218" > +<father id="227" num="3" /> +<cdparam x="535" y="98" /> +<sizeparam width="201" height="238" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="735" minY="0" maxY="292" /> +<infoparam name="TGComponent" value="SmartCard" /> +<TGConnectingPoint num="0" id="210" /> +<TGConnectingPoint num="1" id="211" /> +<TGConnectingPoint num="2" id="212" /> +<TGConnectingPoint num="3" id="213" /> +<TGConnectingPoint num="4" id="214" /> +<TGConnectingPoint num="5" id="215" /> +<TGConnectingPoint num="6" id="216" /> +<TGConnectingPoint num="7" id="217" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="resetType" value="0" type="0" typeOther="" /> +<Attribute access="2" id="a" value="0" type="0" typeOther="" /> +<Attribute access="2" id="b" value="" type="4" typeOther="" /> +<Attribute access="2" id="i" value="0" type="0" typeOther="" /> +<Attribute access="2" id="j" value="0" type="0" typeOther="" /> +<Attribute access="2" id="x" value="0" type="0" typeOther="" /> +<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" /> +<Attribute access="2" id="t" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="185" > +<father id="218" num="0" /> +<cdparam x="723" y="112" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Event send" /> +<TGConnectingPoint num="0" id="184" /> +<extraparam> +<Prop commName="send" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="187" > +<father id="218" num="1" /> +<cdparam x="580" y="85" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Event reset, pTS" /> +<TGConnectingPoint num="0" id="186" /> +<extraparam> +<Prop commName="reset, pTS" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="189" > +<father id="218" num="2" /> +<cdparam x="523" y="323" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" /> +<TGConnectingPoint num="0" id="188" /> +<extraparam> +<Prop commName="answerToReset, pTSConfirm" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="191" > +<father id="218" num="3" /> +<cdparam x="522" y="248" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Channel fromSCtoD" /> +<TGConnectingPoint num="0" id="190" /> +<extraparam> +<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="193" > +<father id="218" num="4" /> +<cdparam x="522" y="203" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Channel fromDtoSC" /> +<TGConnectingPoint num="0" id="192" /> +<extraparam> +<Prop commName="fromDtoSC" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="195" > +<father id="218" num="5" /> +<cdparam x="522" y="291" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Event data_Ready_SC" /> +<TGConnectingPoint num="0" id="194" /> +<extraparam> +<Prop commName="data_Ready_SC" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="197" > +<father id="218" num="6" /> +<cdparam x="522" y="157" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Event data_Ready" /> +<TGConnectingPoint num="0" id="196" /> +<extraparam> +<Prop commName="data_Ready" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="2" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="199" > +<father id="218" num="7" /> +<cdparam x="723" y="271" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Channel fromTtoP" /> +<TGConnectingPoint num="0" id="198" /> +<extraparam> +<Prop commName="fromTtoP" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="201" > +<father id="218" num="8" /> +<cdparam x="723" y="235" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Channel fromPtoT" /> +<TGConnectingPoint num="0" id="200" /> +<extraparam> +<Prop commName="fromPtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="203" > +<father id="218" num="9" /> +<cdparam x="723" y="191" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Event receive" /> +<TGConnectingPoint num="0" id="202" /> +<extraparam> +<Prop commName="receive" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="205" > +<father id="218" num="10" /> +<cdparam x="723" y="302" /> +<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="188" minY="-13" maxY="225" /> +<infoparam name="TGComponent" value="Request start_TCP_IP" /> +<TGConnectingPoint num="0" id="204" /> +<extraparam> +<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="207" > +<father id="218" num="11" /> +<cdparam x="525" y="117" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="191" minY="-10" maxY="228" /> +<infoparam name="TGComponent" value="Request activation" /> +<TGConnectingPoint num="0" id="206" /> +<extraparam> +<Prop commName="activation" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="209" > +<father id="218" num="12" /> +<cdparam x="620" y="326" /> +<sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-10" maxX="191" minY="-10" maxY="228" /> +<infoparam name="TGComponent" value="Request start_Application" /> +<TGConnectingPoint num="0" id="208" /> +<extraparam> +<Prop commName="start_Application" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1012" id="235" > +<cdparam x="553" y="376" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="231" /> +<TGConnectingPoint num="1" id="232" /> +<TGConnectingPoint num="2" id="233" /> +<TGConnectingPoint num="3" id="234" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="228" > +<father id="235" num="0" /> +<cdparam x="528" y="386" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="229" > +<father id="235" num="1" /> +<cdparam x="588" y="386" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="230" > +<father id="235" num="2" /> +<cdparam x="573" y="421" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="243" > +<cdparam x="644" y="517" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="239" /> +<TGConnectingPoint num="1" id="240" /> +<TGConnectingPoint num="2" id="241" /> +<TGConnectingPoint num="3" id="242" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="236" > +<father id="243" num="0" /> +<cdparam x="599" y="527" /> +<sizeparam width="52" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ x==0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="237" > +<father id="243" num="1" /> +<cdparam x="679" y="527" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="238" > +<father id="243" num="2" /> +<cdparam x="664" y="562" /> +<sizeparam width="42" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ x>0 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1000" id="245" > +<cdparam x="222" y="58" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="244" /> +</COMPONENT> + +<COMPONENT type="1007" id="248" > +<cdparam x="188" y="137" /> +<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="activation()" /> +<TGConnectingPoint num="0" id="246" /> +<TGConnectingPoint num="1" id="247" /> +<extraparam> +<Data requestName="activation" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="251" > +<cdparam x="202" y="237" /> +<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="reset()" /> +<TGConnectingPoint num="0" id="249" /> +<TGConnectingPoint num="1" id="250" /> +<latencyCheck /> +<extraparam> +<Data eventName="reset" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="254" > +<cdparam x="167" y="288" /> +<sizeparam width="120" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="answerToReset() " /> +<TGConnectingPoint num="0" id="252" /> +<TGConnectingPoint num="1" id="253" /> +<extraparam> +<Data eventName="answerToReset" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="257" > +<cdparam x="207" y="337" /> +<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="pTS()" /> +<TGConnectingPoint num="0" id="255" /> +<TGConnectingPoint num="1" id="256" /> +<extraparam> +<Data eventName="pTS" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="260" > +<cdparam x="356" y="165" /> +<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="pTSConfirm() " /> +<TGConnectingPoint num="0" id="258" /> +<TGConnectingPoint num="1" id="259" /> +<latencyCheck /> +<breakpoint /> +<extraparam> +<Data eventName="pTSConfirm" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="277" > +<cdparam x="367" y="222" /> +<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="data exchange +" /> +<TGConnectingPoint num="0" id="261" /> +<TGConnectingPoint num="1" id="262" /> +<TGConnectingPoint num="2" id="263" /> +<TGConnectingPoint num="3" id="264" /> +<TGConnectingPoint num="4" id="265" /> +<TGConnectingPoint num="5" id="266" /> +<TGConnectingPoint num="6" id="267" /> +<TGConnectingPoint num="7" id="268" /> +<TGConnectingPoint num="8" id="269" /> +<TGConnectingPoint num="9" id="270" /> +<TGConnectingPoint num="10" id="271" /> +<TGConnectingPoint num="11" id="272" /> +<TGConnectingPoint num="12" id="273" /> +<TGConnectingPoint num="13" id="274" /> +<TGConnectingPoint num="14" id="275" /> +<TGConnectingPoint num="15" id="276" /> +<extraparam> +<Line value="data exchange" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="280" > +<cdparam x="429" y="448" /> +<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="fromDtoSC(1)" /> +<TGConnectingPoint num="0" id="278" /> +<TGConnectingPoint num="1" id="279" /> +<extraparam> +<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="283" > +<cdparam x="419" y="507" /> +<sizeparam width="115" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="data_Ready(x, b)" /> +<TGConnectingPoint num="0" id="281" /> +<TGConnectingPoint num="1" id="282" /> +<latencyCheck /> +<extraparam> +<Data eventName="data_Ready" nbOfParams="5" /> +<Param index="0" value="x" /> +<Param index="1" value="b" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="285" > +<cdparam x="466" y="570" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="284" /> +</COMPONENT> + +<COMPONENT type="1017" id="288" > +<cdparam x="588" y="447" /> +<sizeparam width="142" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="notified event" value="x=?data_Ready_SC()" /> +<TGConnectingPoint num="0" id="286" /> +<TGConnectingPoint num="1" id="287" /> +<extraparam> +<Data eventName="data_Ready_SC" variable="x" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="290" > +<cdparam x="569" y="577" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="289" /> +</COMPONENT> + +<COMPONENT type="1009" id="293" > +<cdparam x="610" y="700" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="fromSCtoD(1) " /> +<TGConnectingPoint num="0" id="291" /> +<TGConnectingPoint num="1" id="292" /> +<extraparam> +<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="296" > +<cdparam x="600" y="619" /> +<sizeparam width="119" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="data_Ready_SC() " /> +<TGConnectingPoint num="0" id="294" /> +<TGConnectingPoint num="1" id="295" /> +<accessibility /> +<extraparam> +<Data eventName="data_Ready_SC" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="298" > +<cdparam x="649" y="774" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="297" /> +</COMPONENT> + +<COMPONENT type="1014" id="302" > +<cdparam x="300" y="287" /> +<sizeparam width="268" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="for loop" value="for(i=0;i<nbOfComputedPackets;i = i +1)" /> +<TGConnectingPoint num="0" id="299" /> +<TGConnectingPoint num="1" id="300" /> +<TGConnectingPoint num="2" id="301" /> +<extraparam> +<Data init="i=0" condition="i<nbOfComputedPackets" increment="i = i +1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="304" > +<cdparam x="382" y="380" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="303" /> +</COMPONENT> + +<CONNECTOR type="115" id="305" > +<cdparam x="434" y="312" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="434" y="312" id="301" /> +<P2 x="392" y="375" id="303" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="306" > +<cdparam x="561" y="301" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="568" y="301" id="300" /> +<P2 x="568" y="366" id="231" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="311" > +<cdparam x="78" y="363" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to wait event" value="null" /> +<P1 x="228" y="362" id="256" /> +<P2 x="403" y="160" id="258" /> +<Point x="228" y="383" /> +<Point x="307" y="383" /> +<Point x="307" y="140" /> +<Point x="403" y="140" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="307" > +<father id="311" num="0" /> +<cdparam x="228" y="383" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="308" > +<father id="311" num="1" /> +<cdparam x="307" y="383" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="309" > +<father id="311" num="2" /> +<cdparam x="307" y="140" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="310" > +<father id="311" num="3" /> +<cdparam x="403" y="140" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="115" id="312" > +<cdparam x="228" y="57" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to send request" value="null" /> +<P1 x="229" y="78" id="244" /> +<P2 x="228" y="132" id="246" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="313" > +<cdparam x="228" y="162" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to send event" value="null" /> +<P1 x="228" y="162" id="247" /> +<P2 x="228" y="232" id="249" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="314" > +<cdparam x="228" y="284" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to send event" value="null" /> +<P1 x="227" y="313" id="253" /> +<P2 x="228" y="332" id="255" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="315" > +<cdparam x="528" y="391" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to write channel" value="null" /> +<P1 x="528" y="391" id="232" /> +<P2 x="476" y="443" id="278" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="316" > +<cdparam x="476" y="473" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="476" y="473" id="279" /> +<P2 x="476" y="502" id="281" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="317" > +<cdparam x="471" y="529" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to stop state" value="null" /> +<P1 x="476" y="532" id="282" /> +<P2 x="476" y="565" id="284" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="318" > +<cdparam x="619" y="532" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="619" y="532" id="240" /> +<P2 x="579" y="572" id="289" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="319" > +<cdparam x="580" y="405" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to notified event" value="null" /> +<P1 x="608" y="391" id="233" /> +<P2 x="659" y="442" id="286" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="320" > +<cdparam x="659" y="472" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from notified event to choice" value="null" /> +<P1 x="659" y="472" id="287" /> +<P2 x="659" y="507" id="239" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="321" > +<cdparam x="659" y="572" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="659" y="572" id="242" /> +<P2 x="659" y="614" id="294" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="322" > +<cdparam x="670" y="644" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to read channel" value="null" /> +<P1 x="659" y="644" id="295" /> +<P2 x="659" y="695" id="291" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="323" > +<cdparam x="659" y="725" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to stop state" value="null" /> +<P1 x="659" y="725" id="292" /> +<P2 x="659" y="769" id="297" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="324" > +<cdparam x="403" y="190" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to for loop" value="null" /> +<P1 x="403" y="190" id="259" /> +<P2 x="434" y="282" id="299" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="325" > +<cdparam x="228" y="262" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to wait event" value="null" /> +<P1 x="228" y="262" id="250" /> +<P2 x="227" y="283" id="252" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1000" id="327" > +<cdparam x="159" y="66" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="326" /> +</COMPONENT> + +<COMPONENT type="1010" id="330" > +<cdparam x="138" y="129" /> +<sizeparam width="57" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="reset() " /> +<TGConnectingPoint num="0" id="328" /> +<TGConnectingPoint num="1" id="329" /> +<extraparam> +<Data eventName="reset" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="333" > +<cdparam x="108" y="182" /> +<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="answerToReset()" /> +<TGConnectingPoint num="0" id="331" /> +<TGConnectingPoint num="1" id="332" /> +<extraparam> +<Data eventName="answerToReset" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="336" > +<cdparam x="143" y="237" /> +<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="pTS() " /> +<TGConnectingPoint num="0" id="334" /> +<TGConnectingPoint num="1" id="335" /> +<extraparam> +<Data eventName="pTS" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="339" > +<cdparam x="121" y="308" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="pTSConfirm()" /> +<TGConnectingPoint num="0" id="337" /> +<TGConnectingPoint num="1" id="338" /> +<extraparam> +<Data eventName="pTSConfirm" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="356" > +<cdparam x="376" y="98" /> +<sizeparam width="249" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="The first two layers of the OSI model +are used to communicate between +the smart card and the terminal +" /> +<TGConnectingPoint num="0" id="340" /> +<TGConnectingPoint num="1" id="341" /> +<TGConnectingPoint num="2" id="342" /> +<TGConnectingPoint num="3" id="343" /> +<TGConnectingPoint num="4" id="344" /> +<TGConnectingPoint num="5" id="345" /> +<TGConnectingPoint num="6" id="346" /> +<TGConnectingPoint num="7" id="347" /> +<TGConnectingPoint num="8" id="348" /> +<TGConnectingPoint num="9" id="349" /> +<TGConnectingPoint num="10" id="350" /> +<TGConnectingPoint num="11" id="351" /> +<TGConnectingPoint num="12" id="352" /> +<TGConnectingPoint num="13" id="353" /> +<TGConnectingPoint num="14" id="354" /> +<TGConnectingPoint num="15" id="355" /> +<extraparam> +<Line value="The first two layers of the OSI model " /> +<Line value="are used to communicate between " /> +<Line value="the smart card and the terminal" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="359" > +<cdparam x="250" y="97" /> +<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="start_TCP_IP()" /> +<TGConnectingPoint num="0" id="357" /> +<TGConnectingPoint num="1" id="358" /> +<extraparam> +<Data requestName="start_TCP_IP" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="362" > +<cdparam x="236" y="148" /> +<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="start_Application()" /> +<TGConnectingPoint num="0" id="360" /> +<TGConnectingPoint num="1" id="361" /> +<extraparam> +<Data requestName="start_Application" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="364" > +<cdparam x="515" y="428" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="363" /> +</COMPONENT> + +<COMPONENT type="1008" id="367" > +<cdparam x="305" y="350" /> +<sizeparam width="115" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="data_Ready_SC()" /> +<TGConnectingPoint num="0" id="365" /> +<TGConnectingPoint num="1" id="366" /> +<extraparam> +<Data eventName="data_Ready_SC" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="369" > +<cdparam x="352" y="426" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="368" /> +</COMPONENT> + +<COMPONENT type="1009" id="372" > +<cdparam x="318" y="308" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="fromTtoP(1) " /> +<TGConnectingPoint num="0" id="370" /> +<TGConnectingPoint num="1" id="371" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="375" > +<cdparam x="335" y="264" /> +<sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="send() " /> +<TGConnectingPoint num="0" id="373" /> +<TGConnectingPoint num="1" id="374" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="378" > +<cdparam x="315" y="392" /> +<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="fromSCtoD(1)" /> +<TGConnectingPoint num="0" id="376" /> +<TGConnectingPoint num="1" id="377" /> +<extraparam> +<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="381" > +<cdparam x="493" y="350" /> +<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="receive()" /> +<TGConnectingPoint num="0" id="379" /> +<TGConnectingPoint num="1" id="380" /> +<extraparam> +<Data eventName="receive" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1009" id="384" > +<cdparam x="476" y="311" /> +<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="fromDtoSC(1) " /> +<TGConnectingPoint num="0" id="382" /> +<TGConnectingPoint num="1" id="383" /> +<extraparam> +<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="387" > +<cdparam x="483" y="387" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="fromPtoT(1)" /> +<TGConnectingPoint num="0" id="385" /> +<TGConnectingPoint num="1" id="386" /> +<extraparam> +<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="390" > +<cdparam x="466" y="268" /> +<sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="data_Ready(t, b) " /> +<TGConnectingPoint num="0" id="388" /> +<TGConnectingPoint num="1" id="389" /> +<breakpoint /> +<extraparam> +<Data eventName="data_Ready" nbOfParams="5" /> +<Param index="0" value="t" /> +<Param index="1" value="b" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1014" id="394" > +<cdparam x="236" y="202" /> +<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="for loop" value="for(j=0;x==0;j = j)" /> +<TGConnectingPoint num="0" id="391" /> +<TGConnectingPoint num="1" id="392" /> +<TGConnectingPoint num="2" id="393" /> +<extraparam> +<Data init="j=0" condition="x==0" increment="j = j" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="396" > +<cdparam x="297" y="231" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="395" /> +</COMPONENT> + +<COMPONENT type="1018" id="407" > +<cdparam x="424" y="226" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="select" value="null" /> +<TGConnectingPoint num="0" id="397" /> +<TGConnectingPoint num="1" id="398" /> +<TGConnectingPoint num="2" id="399" /> +<TGConnectingPoint num="3" id="400" /> +<TGConnectingPoint num="4" id="401" /> +<TGConnectingPoint num="5" id="402" /> +<TGConnectingPoint num="6" id="403" /> +<TGConnectingPoint num="7" id="404" /> +<TGConnectingPoint num="8" id="405" /> +<TGConnectingPoint num="9" id="406" /> +</COMPONENT> + +<CONNECTOR type="115" id="412" > +<cdparam x="111" y="331" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to send request" value="null" /> +<P1 x="166" y="333" id="338" /> +<P2 x="298" y="92" id="357" /> +<Point x="166" y="351" /> +<Point x="231" y="351" /> +<Point x="231" y="72" /> +<Point x="298" y="72" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="408" > +<father id="412" num="0" /> +<cdparam x="166" y="351" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="409" > +<father id="412" num="1" /> +<cdparam x="231" y="351" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="410" > +<father id="412" num="2" /> +<cdparam x="231" y="72" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="411" > +<father id="412" num="3" /> +<cdparam x="298" y="72" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="115" id="413" > +<cdparam x="166" y="64" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to wait event" value="null" /> +<P1 x="166" y="86" id="326" /> +<P2 x="166" y="124" id="328" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="414" > +<cdparam x="166" y="154" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to send event" value="null" /> +<P1 x="166" y="154" id="329" /> +<P2 x="166" y="177" id="331" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="415" > +<cdparam x="312" y="133" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to send request" value="null" /> +<P1 x="298" y="122" id="358" /> +<P2 x="298" y="143" id="360" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="416" > +<cdparam x="355" y="300" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to read channel" value="null" /> +<P1 x="362" y="289" id="374" /> +<P2 x="362" y="303" id="370" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="417" > +<cdparam x="355" y="365" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to send event" value="null" /> +<P1 x="362" y="333" id="371" /> +<P2 x="362" y="345" id="365" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="418" > +<cdparam x="355" y="417" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to write channel" value="null" /> +<P1 x="362" y="375" id="366" /> +<P2 x="362" y="387" id="376" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="419" > +<cdparam x="355" y="473" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="362" y="417" id="377" /> +<P2 x="362" y="421" id="368" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="420" > +<cdparam x="541" y="358" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to send event" value="null" /> +<P1 x="525" y="336" id="383" /> +<P2 x="525" y="345" id="379" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="421" > +<cdparam x="540" y="402" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to write channel" value="null" /> +<P1 x="525" y="375" id="380" /> +<P2 x="525" y="382" id="385" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="422" > +<cdparam x="543" y="305" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to read channel" value="null" /> +<P1 x="525" y="293" id="389" /> +<P2 x="525" y="306" id="382" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="423" > +<cdparam x="540" y="464" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="525" y="412" id="386" /> +<P2 x="525" y="423" id="363" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="424" > +<cdparam x="298" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to for loop" value="null" /> +<P1 x="298" y="173" id="361" /> +<P2 x="298" y="197" id="391" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="425" > +<cdparam x="328" y="232" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from for loop to stop state" value="null" /> +<P1 x="298" y="227" id="393" /> +<P2 x="307" y="226" id="395" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="426" > +<cdparam x="395" y="283" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from select to wait event" value="null" /> +<P1 x="399" y="241" id="398" /> +<P2 x="362" y="259" id="373" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="427" > +<cdparam x="543" y="341" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from select to wait event" value="null" /> +<P1 x="479" y="241" id="399" /> +<P2 x="525" y="263" id="388" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="428" > +<cdparam x="391" y="282" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from for loop to select" value="null" /> +<P1 x="360" y="216" id="392" /> +<P2 x="439" y="216" id="397" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="429" > +<cdparam x="164" y="262" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to send event" value="null" /> +<P1 x="166" y="262" id="335" /> +<P2 x="166" y="303" id="337" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="430" > +<cdparam x="166" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to wait event" value="null" /> +<P1 x="166" y="207" id="332" /> +<P2 x="166" y="232" id="334" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="TCPIP" minX="10" maxX="2900" minY="10" maxY="1900" > +<COMPONENT type="1012" id="438" > +<cdparam x="2086" y="1378" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="434" /> +<TGConnectingPoint num="1" id="435" /> +<TGConnectingPoint num="2" id="436" /> +<TGConnectingPoint num="3" id="437" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="431" > +<father id="438" num="0" /> +<cdparam x="2061" y="1388" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="432" > +<father id="438" num="1" /> +<cdparam x="2121" y="1388" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="433" > +<father id="438" num="2" /> +<cdparam x="2106" y="1426" /> +<sizeparam width="135" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state ==10 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="446" > +<cdparam x="2262" y="951" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="442" /> +<TGConnectingPoint num="1" id="443" /> +<TGConnectingPoint num="2" id="444" /> +<TGConnectingPoint num="3" id="445" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="439" > +<father id="446" num="0" /> +<cdparam x="2212" y="961" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state ==1 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="440" > +<father id="446" num="1" /> +<cdparam x="2297" y="961" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ tcpctrl.state ==3 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="441" > +<father id="446" num="2" /> +<cdparam x="2282" y="996" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ else ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="454" > +<cdparam x="1981" y="1346" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="450" /> +<TGConnectingPoint num="1" id="451" /> +<TGConnectingPoint num="2" id="452" /> +<TGConnectingPoint num="3" id="453" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="447" > +<father id="454" num="0" /> +<cdparam x="1934" y="1356" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state ==5 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="448" > +<father id="454" num="1" /> +<cdparam x="2016" y="1356" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="449" > +<father id="454" num="2" /> +<cdparam x="2001" y="1391" /> +<sizeparam width="131" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state == 7 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="462" > +<cdparam x="1811" y="1269" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="458" /> +<TGConnectingPoint num="1" id="459" /> +<TGConnectingPoint num="2" id="460" /> +<TGConnectingPoint num="3" id="461" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="455" > +<father id="462" num="0" /> +<cdparam x="1762" y="1279" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="456" > +<father id="462" num="1" /> +<cdparam x="1846" y="1279" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="457" > +<father id="462" num="2" /> +<cdparam x="1831" y="1314" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state ==2 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="470" > +<cdparam x="1716" y="1141" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="466" /> +<TGConnectingPoint num="1" id="467" /> +<TGConnectingPoint num="2" id="468" /> +<TGConnectingPoint num="3" id="469" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="463" > +<father id="470" num="0" /> +<cdparam x="1691" y="1151" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="464" > +<father id="470" num="1" /> +<cdparam x="1751" y="1151" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="465" > +<father id="470" num="2" /> +<cdparam x="1736" y="1186" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="474" > +<cdparam x="1524" y="1254" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="472" /> +<TGConnectingPoint num="1" id="473" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="471" > +<father id="474" num="0" /> +<cdparam x="1539" y="1274" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="478" > +<cdparam x="1524" y="1064" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="476" /> +<TGConnectingPoint num="1" id="477" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="475" > +<father id="478" num="0" /> +<cdparam x="1538" y="1088" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="486" > +<cdparam x="1592" y="1006" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="482" /> +<TGConnectingPoint num="1" id="483" /> +<TGConnectingPoint num="2" id="484" /> +<TGConnectingPoint num="3" id="485" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="479" > +<father id="486" num="0" /> +<cdparam x="1542" y="1016" /> +<sizeparam width="135" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state == 4 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="480" > +<father id="486" num="1" /> +<cdparam x="1627" y="1016" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="481" > +<father id="486" num="2" /> +<cdparam x="1612" y="1051" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="494" > +<cdparam x="1713" y="875" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="490" /> +<TGConnectingPoint num="1" id="491" /> +<TGConnectingPoint num="2" id="492" /> +<TGConnectingPoint num="3" id="493" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="487" > +<father id="494" num="0" /> +<cdparam x="1688" y="885" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="488" > +<father id="494" num="1" /> +<cdparam x="1748" y="885" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="489" > +<father id="494" num="2" /> +<cdparam x="1733" y="920" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="498" > +<cdparam x="1636" y="1235" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="496" /> +<TGConnectingPoint num="1" id="497" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="495" > +<father id="498" num="0" /> +<cdparam x="1655" y="1254" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="502" > +<cdparam x="2213" y="1059" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="500" /> +<TGConnectingPoint num="1" id="501" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="499" > +<father id="502" num="0" /> +<cdparam x="2200" y="1083" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="506" > +<cdparam x="2336" y="1024" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="504" /> +<TGConnectingPoint num="1" id="505" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="503" > +<father id="506" num="0" /> +<cdparam x="2312" y="1044" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="514" > +<cdparam x="1193" y="1020" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="510" /> +<TGConnectingPoint num="1" id="511" /> +<TGConnectingPoint num="2" id="512" /> +<TGConnectingPoint num="3" id="513" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="507" > +<father id="514" num="0" /> +<cdparam x="1168" y="1030" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="508" > +<father id="514" num="1" /> +<cdparam x="1228" y="1030" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="509" > +<father id="514" num="2" /> +<cdparam x="1213" y="1065" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state ==6 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="518" > +<cdparam x="1203" y="1107" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="516" /> +<TGConnectingPoint num="1" id="517" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="515" > +<father id="518" num="0" /> +<cdparam x="1218" y="1127" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="526" > +<cdparam x="557" y="712" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="522" /> +<TGConnectingPoint num="1" id="523" /> +<TGConnectingPoint num="2" id="524" /> +<TGConnectingPoint num="3" id="525" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="519" > +<father id="526" num="0" /> +<cdparam x="514" y="722" /> +<sizeparam width="131" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state == 1 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="520" > +<father id="526" num="1" /> +<cdparam x="592" y="722" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="521" > +<father id="526" num="2" /> +<cdparam x="577" y="757" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="530" > +<cdparam x="717" y="694" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="528" /> +<TGConnectingPoint num="1" id="529" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="527" > +<father id="530" num="0" /> +<cdparam x="732" y="714" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="534" > +<cdparam x="938" y="1025" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="532" /> +<TGConnectingPoint num="1" id="533" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="531" > +<father id="534" num="0" /> +<cdparam x="953" y="1045" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="542" > +<cdparam x="1034" y="939" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="538" /> +<TGConnectingPoint num="1" id="539" /> +<TGConnectingPoint num="2" id="540" /> +<TGConnectingPoint num="3" id="541" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="535" > +<father id="542" num="0" /> +<cdparam x="989" y="949" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="536" > +<father id="542" num="1" /> +<cdparam x="1070" y="949" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="537" > +<father id="542" num="2" /> +<cdparam x="1054" y="984" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state == 5]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="546" > +<cdparam x="795" y="1009" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="544" /> +<TGConnectingPoint num="1" id="545" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="543" > +<father id="546" num="0" /> +<cdparam x="818" y="1031" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="554" > +<cdparam x="828" y="869" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="550" /> +<TGConnectingPoint num="1" id="551" /> +<TGConnectingPoint num="2" id="552" /> +<TGConnectingPoint num="3" id="553" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="547" > +<father id="554" num="0" /> +<cdparam x="753" y="885" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state ==0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="548" > +<father id="554" num="1" /> +<cdparam x="863" y="879" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="549" > +<father id="554" num="2" /> +<cdparam x="848" y="914" /> +<sizeparam width="123" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state==0 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="558" > +<cdparam x="341" y="764" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="556" /> +<TGConnectingPoint num="1" id="557" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="555" > +<father id="558" num="0" /> +<cdparam x="354" y="785" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="562" > +<cdparam x="127" y="794" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="560" /> +<TGConnectingPoint num="1" id="561" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="559" > +<father id="562" num="0" /> +<cdparam x="146" y="818" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="570" > +<cdparam x="993" y="780" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="566" /> +<TGConnectingPoint num="1" id="567" /> +<TGConnectingPoint num="2" id="568" /> +<TGConnectingPoint num="3" id="569" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="563" > +<father id="570" num="0" /> +<cdparam x="949" y="793" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="564" > +<father id="570" num="1" /> +<cdparam x="1028" y="790" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="565" > +<father id="570" num="2" /> +<cdparam x="1013" y="825" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="574" > +<cdparam x="1003" y="701" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="572" /> +<TGConnectingPoint num="1" id="573" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="571" > +<father id="574" num="0" /> +<cdparam x="1018" y="721" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="578" > +<cdparam x="434" y="783" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="576" /> +<TGConnectingPoint num="1" id="577" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="575" > +<father id="578" num="0" /> +<cdparam x="449" y="802" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="582" > +<cdparam x="225" y="863" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="580" /> +<TGConnectingPoint num="1" id="581" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="579" > +<father id="582" num="0" /> +<cdparam x="245" y="885" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1013" id="586" > +<cdparam x="1044" y="1057" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="584" /> +<TGConnectingPoint num="1" id="585" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="583" > +<father id="586" num="0" /> +<cdparam x="1059" y="1077" /> +<sizeparam width="8" height="15" minWidth="10" minHeight="0" 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="b" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="594" > +<cdparam x="173" y="486" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="590" /> +<TGConnectingPoint num="1" id="591" /> +<TGConnectingPoint num="2" id="592" /> +<TGConnectingPoint num="3" id="593" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="587" > +<father id="594" num="0" /> +<cdparam x="98" y="496" /> +<sizeparam width="123" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state==0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="588" > +<father id="594" num="1" /> +<cdparam x="208" y="496" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="589" > +<father id="594" num="2" /> +<cdparam x="193" y="531" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="602" > +<cdparam x="359" y="192" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="598" /> +<TGConnectingPoint num="1" id="599" /> +<TGConnectingPoint num="2" id="600" /> +<TGConnectingPoint num="3" id="601" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="595" > +<father id="602" num="0" /> +<cdparam x="317" y="202" /> +<sizeparam width="88" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.a>0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="596" > +<father id="602" num="1" /> +<cdparam x="394" y="202" /> +<sizeparam width="98" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ tcpctrl.a==0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="597" > +<father id="602" num="2" /> +<cdparam x="379" y="237" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="610" > +<cdparam x="449" y="582" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="606" /> +<TGConnectingPoint num="1" id="607" /> +<TGConnectingPoint num="2" id="608" /> +<TGConnectingPoint num="3" id="609" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="603" > +<father id="610" num="0" /> +<cdparam x="398" y="592" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state ==9 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="604" > +<father id="610" num="1" /> +<cdparam x="500" y="599" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="605" > +<father id="610" num="2" /> +<cdparam x="469" y="627" /> +<sizeparam width="277" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ (tcpctrl.state ==2) or (tcpctrl.state ==4) ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1012" id="618" > +<cdparam x="274" y="564" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="614" /> +<TGConnectingPoint num="1" id="615" /> +<TGConnectingPoint num="2" id="616" /> +<TGConnectingPoint num="3" id="617" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="611" > +<father id="618" num="0" /> +<cdparam x="228" y="574" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ tcpctrl.state == 1]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="612" > +<father id="618" num="1" /> +<cdparam x="317" y="584" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ else ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="613" > +<father id="618" num="2" /> +<cdparam x="294" y="613" /> +<sizeparam width="127" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ tcpctrl.state ==4 ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1000" id="620" > +<cdparam x="227" y="27" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="619" /> +</COMPONENT> + +<COMPONENT type="301" id="637" > +<cdparam x="10" y="30" /> +<sizeparam width="98" height="135" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="0: closed +1: Listen +2: SYN rcvd +3: SYN sent +4: Estab +5: Fin wait1 +6: Fin wait2 +7: closing +8: Time wait +9: close wait +10:last ack +" /> +<TGConnectingPoint num="0" id="621" /> +<TGConnectingPoint num="1" id="622" /> +<TGConnectingPoint num="2" id="623" /> +<TGConnectingPoint num="3" id="624" /> +<TGConnectingPoint num="4" id="625" /> +<TGConnectingPoint num="5" id="626" /> +<TGConnectingPoint num="6" id="627" /> +<TGConnectingPoint num="7" id="628" /> +<TGConnectingPoint num="8" id="629" /> +<TGConnectingPoint num="9" id="630" /> +<TGConnectingPoint num="10" id="631" /> +<TGConnectingPoint num="11" id="632" /> +<TGConnectingPoint num="12" id="633" /> +<TGConnectingPoint num="13" id="634" /> +<TGConnectingPoint num="14" id="635" /> +<TGConnectingPoint num="15" id="636" /> +<extraparam> +<Line value="0: closed" /> +<Line value="1: Listen" /> +<Line value="2: SYN rcvd" /> +<Line value="3: SYN sent" /> +<Line value="4: Estab" /> +<Line value="5: Fin wait1" /> +<Line value="6: Fin wait2" /> +<Line value="7: closing" /> +<Line value="8: Time wait" /> +<Line value="9: close wait" /> +<Line value="10:last ack" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="640" > +<cdparam x="72" y="549" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =1" /> +<TGConnectingPoint num="0" id="638" /> +<TGConnectingPoint num="1" id="639" /> +</COMPONENT> + +<COMPONENT type="1001" id="642" > +<cdparam x="116" y="615" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="641" /> +</COMPONENT> + +<COMPONENT type="1009" id="645" > +<cdparam x="964" y="585" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="read channel" value="fromPtoT(1) " /> +<TGConnectingPoint num="0" id="643" /> +<TGConnectingPoint num="1" id="644" /> +<extraparam> +<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1014" id="649" > +<cdparam x="145" y="85" /> +<sizeparam width="180" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="for loop" value="for(i=0;(tcpctrl.a==0);i = i)" /> +<TGConnectingPoint num="0" id="646" /> +<TGConnectingPoint num="1" id="647" /> +<TGConnectingPoint num="2" id="648" /> +<extraparam> +<Data init="i=0" condition="(tcpctrl.a==0)" increment="i = i" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="651" > +<cdparam x="224" y="207" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="650" /> +</COMPONENT> + +<COMPONENT type="1011" id="654" > +<cdparam x="182" y="144" /> +<sizeparam width="105" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state=0" /> +<TGConnectingPoint num="0" id="652" /> +<TGConnectingPoint num="1" id="653" /> +</COMPONENT> + +<COMPONENT type="1017" id="657" > +<cdparam x="311" y="133" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="notified event" value="tcpctrl.a=?abort()" /> +<TGConnectingPoint num="0" id="655" /> +<TGConnectingPoint num="1" id="656" /> +<extraparam> +<Data eventName="abort" variable="tcpctrl.a" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1009" id="660" > +<cdparam x="690" y="589" /> +<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="read channel" value="temp(1) " /> +<TGConnectingPoint num="0" id="658" /> +<TGConnectingPoint num="1" id="659" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="663" > +<cdparam x="686" y="534" /> +<sizeparam width="73" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="wait event" value="timeOut() " /> +<TGConnectingPoint num="0" id="661" /> +<TGConnectingPoint num="1" id="662" /> +<extraparam> +<Data eventName="timeOut" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="666" > +<cdparam x="974" y="528" /> +<sizeparam width="69" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="wait event" value="receive() " /> +<TGConnectingPoint num="0" id="664" /> +<TGConnectingPoint num="1" id="665" /> +<extraparam> +<Data eventName="receive" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="669" > +<cdparam x="436" y="492" /> +<sizeparam width="57" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="wait event" value="close() " /> +<TGConnectingPoint num="0" id="667" /> +<TGConnectingPoint num="1" id="668" /> +<extraparam> +<Data eventName="close" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="672" > +<cdparam x="247" y="468" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="wait event" value="send_TCP() " /> +<TGConnectingPoint num="0" id="670" /> +<TGConnectingPoint num="1" id="671" /> +<extraparam> +<Data eventName="send_TCP" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="675" > +<cdparam x="160" y="419" /> +<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="wait event" value="open() " /> +<TGConnectingPoint num="0" id="673" /> +<TGConnectingPoint num="1" id="674" /> +<breakpoint /> +<extraparam> +<Data eventName="open" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1018" id="686" > +<cdparam x="449" y="267" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="select" value="null" /> +<TGConnectingPoint num="0" id="676" /> +<TGConnectingPoint num="1" id="677" /> +<TGConnectingPoint num="2" id="678" /> +<TGConnectingPoint num="3" id="679" /> +<TGConnectingPoint num="4" id="680" /> +<TGConnectingPoint num="5" id="681" /> +<TGConnectingPoint num="6" id="682" /> +<TGConnectingPoint num="7" id="683" /> +<TGConnectingPoint num="8" id="684" /> +<TGConnectingPoint num="9" id="685" /> +<breakpoint /> +</COMPONENT> + +<COMPONENT type="1001" id="688" > +<cdparam x="226" y="529" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="687" /> +</COMPONENT> + +<COMPONENT type="1001" id="690" > +<cdparam x="343" y="614" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="689" /> +</COMPONENT> + +<COMPONENT type="1010" id="693" > +<cdparam x="272" y="228" /> +<sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="wait event" value="abort() " /> +<TGConnectingPoint num="0" id="691" /> +<TGConnectingPoint num="1" id="692" /> +<extraparam> +<Data eventName="abort" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="695" > +<cdparam x="291" y="290" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="694" /> +</COMPONENT> + +<COMPONENT type="301" id="712" > +<cdparam x="602" y="86" /> +<sizeparam width="393" height="51" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="b est le nombre d'instructions necessaires pour paquetiser +ou depaquitiser un paquet TCP + +On prend b=1 comme exemple +" /> +<TGConnectingPoint num="0" id="696" /> +<TGConnectingPoint num="1" id="697" /> +<TGConnectingPoint num="2" id="698" /> +<TGConnectingPoint num="3" id="699" /> +<TGConnectingPoint num="4" id="700" /> +<TGConnectingPoint num="5" id="701" /> +<TGConnectingPoint num="6" id="702" /> +<TGConnectingPoint num="7" id="703" /> +<TGConnectingPoint num="8" id="704" /> +<TGConnectingPoint num="9" id="705" /> +<TGConnectingPoint num="10" id="706" /> +<TGConnectingPoint num="11" id="707" /> +<TGConnectingPoint num="12" id="708" /> +<TGConnectingPoint num="13" id="709" /> +<TGConnectingPoint num="14" id="710" /> +<TGConnectingPoint num="15" id="711" /> +<extraparam> +<Line value="b est le nombre d'instructions necessaires pour paquetiser" /> +<Line value="ou depaquitiser un paquet TCP" /> +<Line value="" /> +<Line value="On prend b=1 comme exemple" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1009" id="715" > +<cdparam x="186" y="808" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="read channel" value="fromAtoT(1) " /> +<TGConnectingPoint num="0" id="713" /> +<TGConnectingPoint num="1" id="714" /> +<extraparam> +<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="718" > +<cdparam x="188" y="1002" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="716" /> +<TGConnectingPoint num="1" id="717" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="720" > +<cdparam x="219" y="1237" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="719" /> +</COMPONENT> + +<COMPONENT type="1011" id="723" > +<cdparam x="384" y="1032" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =5" /> +<TGConnectingPoint num="0" id="721" /> +<TGConnectingPoint num="1" id="722" /> +</COMPONENT> + +<COMPONENT type="1001" id="725" > +<cdparam x="428" y="1213" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="724" /> +</COMPONENT> + +<COMPONENT type="1011" id="728" > +<cdparam x="80" y="1041" /> +<sizeparam width="105" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state=3" /> +<TGConnectingPoint num="0" id="726" /> +<TGConnectingPoint num="1" id="727" /> +</COMPONENT> + +<COMPONENT type="1006" id="731" > +<cdparam x="90" y="938" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="729" /> +<TGConnectingPoint num="1" id="730" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="734" > +<cdparam x="288" y="1026" /> +<sizeparam width="117" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =10" /> +<TGConnectingPoint num="0" id="732" /> +<TGConnectingPoint num="1" id="733" /> +</COMPONENT> + +<COMPONENT type="1001" id="736" > +<cdparam x="334" y="1229" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="735" /> +</COMPONENT> + +<COMPONENT type="1006" id="739" > +<cdparam x="397" y="941" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="737" /> +<TGConnectingPoint num="1" id="738" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="742" > +<cdparam x="304" y="900" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="740" /> +<TGConnectingPoint num="1" id="741" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="744" > +<cdparam x="789" y="1270" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="743" /> +</COMPONENT> + +<COMPONENT type="301" id="761" > +<cdparam x="998" y="850" /> +<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="Fin +" /> +<TGConnectingPoint num="0" id="745" /> +<TGConnectingPoint num="1" id="746" /> +<TGConnectingPoint num="2" id="747" /> +<TGConnectingPoint num="3" id="748" /> +<TGConnectingPoint num="4" id="749" /> +<TGConnectingPoint num="5" id="750" /> +<TGConnectingPoint num="6" id="751" /> +<TGConnectingPoint num="7" id="752" /> +<TGConnectingPoint num="8" id="753" /> +<TGConnectingPoint num="9" id="754" /> +<TGConnectingPoint num="10" id="755" /> +<TGConnectingPoint num="11" id="756" /> +<TGConnectingPoint num="12" id="757" /> +<TGConnectingPoint num="13" id="758" /> +<TGConnectingPoint num="14" id="759" /> +<TGConnectingPoint num="15" id="760" /> +<extraparam> +<Line value="Fin" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="764" > +<cdparam x="674" y="965" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =1" /> +<TGConnectingPoint num="0" id="762" /> +<TGConnectingPoint num="1" id="763" /> +</COMPONENT> + +<COMPONENT type="1001" id="766" > +<cdparam x="718" y="1032" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="765" /> +</COMPONENT> + +<COMPONENT type="1006" id="769" > +<cdparam x="758" y="1086" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="767" /> +<TGConnectingPoint num="1" id="768" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="786" > +<cdparam x="781" y="950" /> +<sizeparam width="94" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="Active Open +" /> +<TGConnectingPoint num="0" id="770" /> +<TGConnectingPoint num="1" id="771" /> +<TGConnectingPoint num="2" id="772" /> +<TGConnectingPoint num="3" id="773" /> +<TGConnectingPoint num="4" id="774" /> +<TGConnectingPoint num="5" id="775" /> +<TGConnectingPoint num="6" id="776" /> +<TGConnectingPoint num="7" id="777" /> +<TGConnectingPoint num="8" id="778" /> +<TGConnectingPoint num="9" id="779" /> +<TGConnectingPoint num="10" id="780" /> +<TGConnectingPoint num="11" id="781" /> +<TGConnectingPoint num="12" id="782" /> +<TGConnectingPoint num="13" id="783" /> +<TGConnectingPoint num="14" id="784" /> +<TGConnectingPoint num="15" id="785" /> +<extraparam> +<Line value="Active Open" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="803" > +<cdparam x="715" y="907" /> +<sizeparam width="104" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="Passive Open +" /> +<TGConnectingPoint num="0" id="787" /> +<TGConnectingPoint num="1" id="788" /> +<TGConnectingPoint num="2" id="789" /> +<TGConnectingPoint num="3" id="790" /> +<TGConnectingPoint num="4" id="791" /> +<TGConnectingPoint num="5" id="792" /> +<TGConnectingPoint num="6" id="793" /> +<TGConnectingPoint num="7" id="794" /> +<TGConnectingPoint num="8" id="795" /> +<TGConnectingPoint num="9" id="796" /> +<TGConnectingPoint num="10" id="797" /> +<TGConnectingPoint num="11" id="798" /> +<TGConnectingPoint num="12" id="799" /> +<TGConnectingPoint num="13" id="800" /> +<TGConnectingPoint num="14" id="801" /> +<TGConnectingPoint num="15" id="802" /> +<extraparam> +<Line value="Passive Open" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="806" > +<cdparam x="745" y="1193" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =3" /> +<TGConnectingPoint num="0" id="804" /> +<TGConnectingPoint num="1" id="805" /> +</COMPONENT> + +<COMPONENT type="1011" id="809" > +<cdparam x="442" y="768" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =0" /> +<TGConnectingPoint num="0" id="807" /> +<TGConnectingPoint num="1" id="808" /> +</COMPONENT> + +<COMPONENT type="1001" id="811" > +<cdparam x="486" y="830" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="810" /> +</COMPONENT> + +<COMPONENT type="1006" id="814" > +<cdparam x="901" y="1123" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="812" /> +<TGConnectingPoint num="1" id="813" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="831" > +<cdparam x="884" y="1068" /> +<sizeparam width="115" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="send Ack of Fin +" /> +<TGConnectingPoint num="0" id="815" /> +<TGConnectingPoint num="1" id="816" /> +<TGConnectingPoint num="2" id="817" /> +<TGConnectingPoint num="3" id="818" /> +<TGConnectingPoint num="4" id="819" /> +<TGConnectingPoint num="5" id="820" /> +<TGConnectingPoint num="6" id="821" /> +<TGConnectingPoint num="7" id="822" /> +<TGConnectingPoint num="8" id="823" /> +<TGConnectingPoint num="9" id="824" /> +<TGConnectingPoint num="10" id="825" /> +<TGConnectingPoint num="11" id="826" /> +<TGConnectingPoint num="12" id="827" /> +<TGConnectingPoint num="13" id="828" /> +<TGConnectingPoint num="14" id="829" /> +<TGConnectingPoint num="15" id="830" /> +<extraparam> +<Line value="send Ack of Fin" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="834" > +<cdparam x="889" y="1234" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =9" /> +<TGConnectingPoint num="0" id="832" /> +<TGConnectingPoint num="1" id="833" /> +</COMPONENT> + +<COMPONENT type="1001" id="836" > +<cdparam x="933" y="1311" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="835" /> +</COMPONENT> + +<COMPONENT type="1006" id="839" > +<cdparam x="1007" y="1155" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="837" /> +<TGConnectingPoint num="1" id="838" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="856" > +<cdparam x="1000" y="1094" /> +<sizeparam width="115" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="send Ack of Fin +" /> +<TGConnectingPoint num="0" id="840" /> +<TGConnectingPoint num="1" id="841" /> +<TGConnectingPoint num="2" id="842" /> +<TGConnectingPoint num="3" id="843" /> +<TGConnectingPoint num="4" id="844" /> +<TGConnectingPoint num="5" id="845" /> +<TGConnectingPoint num="6" id="846" /> +<TGConnectingPoint num="7" id="847" /> +<TGConnectingPoint num="8" id="848" /> +<TGConnectingPoint num="9" id="849" /> +<TGConnectingPoint num="10" id="850" /> +<TGConnectingPoint num="11" id="851" /> +<TGConnectingPoint num="12" id="852" /> +<TGConnectingPoint num="13" id="853" /> +<TGConnectingPoint num="14" id="854" /> +<TGConnectingPoint num="15" id="855" /> +<extraparam> +<Line value="send Ack of Fin" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="859" > +<cdparam x="995" y="1266" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =7" /> +<TGConnectingPoint num="0" id="857" /> +<TGConnectingPoint num="1" id="858" /> +</COMPONENT> + +<COMPONENT type="1001" id="861" > +<cdparam x="1039" y="1341" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="860" /> +</COMPONENT> + +<COMPONENT type="1006" id="864" > +<cdparam x="680" y="758" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="862" /> +<TGConnectingPoint num="1" id="863" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="866" > +<cdparam x="712" y="865" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="865" /> +</COMPONENT> + +<COMPONENT type="1007" id="869" > +<cdparam x="92" y="1100" /> +<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send request" value="req_Timer()" /> +<TGConnectingPoint num="0" id="867" /> +<TGConnectingPoint num="1" id="868" /> +<extraparam> +<Data requestName="req_Timer" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="872" > +<cdparam x="102" y="1167" /> +<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="temp(1)" /> +<TGConnectingPoint num="0" id="870" /> +<TGConnectingPoint num="1" id="871" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="874" > +<cdparam x="122" y="1236" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="873" /> +</COMPONENT> + +<COMPONENT type="1007" id="877" > +<cdparam x="189" y="1102" /> +<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send request" value="req_Timer()" /> +<TGConnectingPoint num="0" id="875" /> +<TGConnectingPoint num="1" id="876" /> +<extraparam> +<Data requestName="req_Timer" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="880" > +<cdparam x="199" y="1169" /> +<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="temp(1)" /> +<TGConnectingPoint num="0" id="878" /> +<TGConnectingPoint num="1" id="879" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="883" > +<cdparam x="306" y="1106" /> +<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send request" value="req_Timer()" /> +<TGConnectingPoint num="0" id="881" /> +<TGConnectingPoint num="1" id="882" /> +<extraparam> +<Data requestName="req_Timer" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="886" > +<cdparam x="316" y="1173" /> +<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="temp(1)" /> +<TGConnectingPoint num="0" id="884" /> +<TGConnectingPoint num="1" id="885" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="889" > +<cdparam x="398" y="1090" /> +<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send request" value="req_Timer()" /> +<TGConnectingPoint num="0" id="887" /> +<TGConnectingPoint num="1" id="888" /> +<extraparam> +<Data requestName="req_Timer" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="892" > +<cdparam x="408" y="1159" /> +<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="temp(1)" /> +<TGConnectingPoint num="0" id="890" /> +<TGConnectingPoint num="1" id="891" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="895" > +<cdparam x="52" y="861" /> +<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="seqNum=seqNum+wind" /> +<TGConnectingPoint num="0" id="893" /> +<TGConnectingPoint num="1" id="894" /> +</COMPONENT> + +<COMPONENT type="1011" id="898" > +<cdparam x="150" y="940" /> +<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="seqNum=seqNum+wind" /> +<TGConnectingPoint num="0" id="896" /> +<TGConnectingPoint num="1" id="897" /> +</COMPONENT> + +<COMPONENT type="1011" id="901" > +<cdparam x="359" y="865" /> +<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="seqNum=seqNum+wind" /> +<TGConnectingPoint num="0" id="899" /> +<TGConnectingPoint num="1" id="900" /> +</COMPONENT> + +<COMPONENT type="1011" id="904" > +<cdparam x="266" y="831" /> +<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="seqNum=seqNum+wind" /> +<TGConnectingPoint num="0" id="902" /> +<TGConnectingPoint num="1" id="903" /> +</COMPONENT> + +<COMPONENT type="1008" id="907" > +<cdparam x="204" y="1052" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="905" /> +<TGConnectingPoint num="1" id="906" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="910" > +<cdparam x="321" y="962" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="908" /> +<TGConnectingPoint num="1" id="909" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="913" > +<cdparam x="413" y="983" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="911" /> +<TGConnectingPoint num="1" id="912" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="916" > +<cdparam x="107" y="986" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="914" /> +<TGConnectingPoint num="1" id="915" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="919" > +<cdparam x="697" y="813" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="917" /> +<TGConnectingPoint num="1" id="918" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="922" > +<cdparam x="773" y="1141" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="920" /> +<TGConnectingPoint num="1" id="921" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="925" > +<cdparam x="918" y="1178" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="923" /> +<TGConnectingPoint num="1" id="924" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="928" > +<cdparam x="1024" y="1211" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="926" /> +<TGConnectingPoint num="1" id="927" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="930" > +<cdparam x="612" y="762" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="929" /> +</COMPONENT> + +<COMPONENT type="1001" id="932" > +<cdparam x="899" y="922" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="931" /> +</COMPONENT> + +<COMPONENT type="1006" id="935" > +<cdparam x="1166" y="1214" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="933" /> +<TGConnectingPoint num="1" id="934" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="952" > +<cdparam x="1159" y="1153" /> +<sizeparam width="115" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="send Ack of Fin +" /> +<TGConnectingPoint num="0" id="936" /> +<TGConnectingPoint num="1" id="937" /> +<TGConnectingPoint num="2" id="938" /> +<TGConnectingPoint num="3" id="939" /> +<TGConnectingPoint num="4" id="940" /> +<TGConnectingPoint num="5" id="941" /> +<TGConnectingPoint num="6" id="942" /> +<TGConnectingPoint num="7" id="943" /> +<TGConnectingPoint num="8" id="944" /> +<TGConnectingPoint num="9" id="945" /> +<TGConnectingPoint num="10" id="946" /> +<TGConnectingPoint num="11" id="947" /> +<TGConnectingPoint num="12" id="948" /> +<TGConnectingPoint num="13" id="949" /> +<TGConnectingPoint num="14" id="950" /> +<TGConnectingPoint num="15" id="951" /> +<extraparam> +<Line value="send Ack of Fin" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="955" > +<cdparam x="1154" y="1295" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =8" /> +<TGConnectingPoint num="0" id="953" /> +<TGConnectingPoint num="1" id="954" /> +</COMPONENT> + +<COMPONENT type="1001" id="957" > +<cdparam x="1197" y="1471" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="956" /> +</COMPONENT> + +<COMPONENT type="1011" id="960" > +<cdparam x="1153" y="1402" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =0" /> +<TGConnectingPoint num="0" id="958" /> +<TGConnectingPoint num="1" id="959" /> +</COMPONENT> + +<COMPONENT type="1008" id="963" > +<cdparam x="1183" y="1351" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="961" /> +<TGConnectingPoint num="1" id="962" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="965" > +<cdparam x="1277" y="1070" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="964" /> +</COMPONENT> + +<COMPONENT type="1001" id="967" > +<cdparam x="1519" y="1457" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="966" /> +</COMPONENT> + +<COMPONENT type="1006" id="970" > +<cdparam x="1487" y="1132" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoA(1)" /> +<TGConnectingPoint num="0" id="968" /> +<TGConnectingPoint num="1" id="969" /> +<extraparam> +<Data channelName="fromTtoA" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="973" > +<cdparam x="1487" y="1348" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="971" /> +<TGConnectingPoint num="1" id="972" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="976" > +<cdparam x="1707" y="1026" /> +<sizeparam width="48" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="stop()" /> +<TGConnectingPoint num="0" id="974" /> +<TGConnectingPoint num="1" id="975" /> +<extraparam> +<Data eventName="stop" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="993" > +<cdparam x="1759" y="1192" /> +<sizeparam width="92" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="Correct ack +" /> +<TGConnectingPoint num="0" id="977" /> +<TGConnectingPoint num="1" id="978" /> +<TGConnectingPoint num="2" id="979" /> +<TGConnectingPoint num="3" id="980" /> +<TGConnectingPoint num="4" id="981" /> +<TGConnectingPoint num="5" id="982" /> +<TGConnectingPoint num="6" id="983" /> +<TGConnectingPoint num="7" id="984" /> +<TGConnectingPoint num="8" id="985" /> +<TGConnectingPoint num="9" id="986" /> +<TGConnectingPoint num="10" id="987" /> +<TGConnectingPoint num="11" id="988" /> +<TGConnectingPoint num="12" id="989" /> +<TGConnectingPoint num="13" id="990" /> +<TGConnectingPoint num="14" id="991" /> +<TGConnectingPoint num="15" id="992" /> +<extraparam> +<Line value="Correct ack" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="1010" > +<cdparam x="1635" y="1168" /> +<sizeparam width="76" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="false ack +" /> +<TGConnectingPoint num="0" id="994" /> +<TGConnectingPoint num="1" id="995" /> +<TGConnectingPoint num="2" id="996" /> +<TGConnectingPoint num="3" id="997" /> +<TGConnectingPoint num="4" id="998" /> +<TGConnectingPoint num="5" id="999" /> +<TGConnectingPoint num="6" id="1000" /> +<TGConnectingPoint num="7" id="1001" /> +<TGConnectingPoint num="8" id="1002" /> +<TGConnectingPoint num="9" id="1003" /> +<TGConnectingPoint num="10" id="1004" /> +<TGConnectingPoint num="11" id="1005" /> +<TGConnectingPoint num="12" id="1006" /> +<TGConnectingPoint num="13" id="1007" /> +<TGConnectingPoint num="14" id="1008" /> +<TGConnectingPoint num="15" id="1009" /> +<extraparam> +<Line value="false ack" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="1013" > +<cdparam x="1599" y="1299" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="1011" /> +<TGConnectingPoint num="1" id="1012" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1015" > +<cdparam x="1632" y="1468" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1014" /> +</COMPONENT> + +<COMPONENT type="301" id="1032" > +<cdparam x="1469" y="1295" /> +<sizeparam width="137" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="return acknowldge +" /> +<TGConnectingPoint num="0" id="1016" /> +<TGConnectingPoint num="1" id="1017" /> +<TGConnectingPoint num="2" id="1018" /> +<TGConnectingPoint num="3" id="1019" /> +<TGConnectingPoint num="4" id="1020" /> +<TGConnectingPoint num="5" id="1021" /> +<TGConnectingPoint num="6" id="1022" /> +<TGConnectingPoint num="7" id="1023" /> +<TGConnectingPoint num="8" id="1024" /> +<TGConnectingPoint num="9" id="1025" /> +<TGConnectingPoint num="10" id="1026" /> +<TGConnectingPoint num="11" id="1027" /> +<TGConnectingPoint num="12" id="1028" /> +<TGConnectingPoint num="13" id="1029" /> +<TGConnectingPoint num="14" id="1030" /> +<TGConnectingPoint num="15" id="1031" /> +<extraparam> +<Line value="return acknowldge" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="1049" > +<cdparam x="1620" y="927" /> +<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="data +" /> +<TGConnectingPoint num="0" id="1033" /> +<TGConnectingPoint num="1" id="1034" /> +<TGConnectingPoint num="2" id="1035" /> +<TGConnectingPoint num="3" id="1036" /> +<TGConnectingPoint num="4" id="1037" /> +<TGConnectingPoint num="5" id="1038" /> +<TGConnectingPoint num="6" id="1039" /> +<TGConnectingPoint num="7" id="1040" /> +<TGConnectingPoint num="8" id="1041" /> +<TGConnectingPoint num="9" id="1042" /> +<TGConnectingPoint num="10" id="1043" /> +<TGConnectingPoint num="11" id="1044" /> +<TGConnectingPoint num="12" id="1045" /> +<TGConnectingPoint num="13" id="1046" /> +<TGConnectingPoint num="14" id="1047" /> +<TGConnectingPoint num="15" id="1048" /> +<extraparam> +<Line value="data" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="1052" > +<cdparam x="1504" y="1405" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="1050" /> +<TGConnectingPoint num="1" id="1051" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="1055" > +<cdparam x="1617" y="1348" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="1053" /> +<TGConnectingPoint num="1" id="1054" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="1058" > +<cdparam x="1612" y="1404" /> +<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="temp(1)" /> +<TGConnectingPoint num="0" id="1056" /> +<TGConnectingPoint num="1" id="1057" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1060" > +<cdparam x="1730" y="1335" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1059" /> +</COMPONENT> + +<COMPONENT type="1011" id="1063" > +<cdparam x="1772" y="1349" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =4" /> +<TGConnectingPoint num="0" id="1061" /> +<TGConnectingPoint num="1" id="1062" /> +</COMPONENT> + +<COMPONENT type="1001" id="1065" > +<cdparam x="1818" y="1457" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1064" /> +</COMPONENT> + +<COMPONENT type="1011" id="1068" > +<cdparam x="1866" y="1411" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =6" /> +<TGConnectingPoint num="0" id="1066" /> +<TGConnectingPoint num="1" id="1067" /> +</COMPONENT> + +<COMPONENT type="1001" id="1070" > +<cdparam x="1910" y="1481" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1069" /> +</COMPONENT> + +<COMPONENT type="1001" id="1072" > +<cdparam x="1986" y="1543" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1071" /> +</COMPONENT> + +<COMPONENT type="1011" id="1075" > +<cdparam x="2047" y="1466" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =0" /> +<TGConnectingPoint num="0" id="1073" /> +<TGConnectingPoint num="1" id="1074" /> +</COMPONENT> + +<COMPONENT type="1001" id="1077" > +<cdparam x="2091" y="1537" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1076" /> +</COMPONENT> + +<COMPONENT type="1011" id="1080" > +<cdparam x="1942" y="1493" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =0" /> +<TGConnectingPoint num="0" id="1078" /> +<TGConnectingPoint num="1" id="1079" /> +</COMPONENT> + +<COMPONENT type="1011" id="1083" > +<cdparam x="1942" y="1434" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =8" /> +<TGConnectingPoint num="0" id="1081" /> +<TGConnectingPoint num="1" id="1082" /> +</COMPONENT> + +<COMPONENT type="301" id="1100" > +<cdparam x="1825" y="889" /> +<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="Syn +" /> +<TGConnectingPoint num="0" id="1084" /> +<TGConnectingPoint num="1" id="1085" /> +<TGConnectingPoint num="2" id="1086" /> +<TGConnectingPoint num="3" id="1087" /> +<TGConnectingPoint num="4" id="1088" /> +<TGConnectingPoint num="5" id="1089" /> +<TGConnectingPoint num="6" id="1090" /> +<TGConnectingPoint num="7" id="1091" /> +<TGConnectingPoint num="8" id="1092" /> +<TGConnectingPoint num="9" id="1093" /> +<TGConnectingPoint num="10" id="1094" /> +<TGConnectingPoint num="11" id="1095" /> +<TGConnectingPoint num="12" id="1096" /> +<TGConnectingPoint num="13" id="1097" /> +<TGConnectingPoint num="14" id="1098" /> +<TGConnectingPoint num="15" id="1099" /> +<extraparam> +<Line value="Syn" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="1117" > +<cdparam x="1707" y="945" /> +<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="ack +" /> +<TGConnectingPoint num="0" id="1101" /> +<TGConnectingPoint num="1" id="1102" /> +<TGConnectingPoint num="2" id="1103" /> +<TGConnectingPoint num="3" id="1104" /> +<TGConnectingPoint num="4" id="1105" /> +<TGConnectingPoint num="5" id="1106" /> +<TGConnectingPoint num="6" id="1107" /> +<TGConnectingPoint num="7" id="1108" /> +<TGConnectingPoint num="8" id="1109" /> +<TGConnectingPoint num="9" id="1110" /> +<TGConnectingPoint num="10" id="1111" /> +<TGConnectingPoint num="11" id="1112" /> +<TGConnectingPoint num="12" id="1113" /> +<TGConnectingPoint num="13" id="1114" /> +<TGConnectingPoint num="14" id="1115" /> +<TGConnectingPoint num="15" id="1116" /> +<extraparam> +<Line value="ack" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="1120" > +<cdparam x="2176" y="1198" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="1118" /> +<TGConnectingPoint num="1" id="1119" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1122" > +<cdparam x="2207" y="1483" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1121" /> +</COMPONENT> + +<COMPONENT type="1007" id="1125" > +<cdparam x="2177" y="1298" /> +<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send request" value="req_Timer()" /> +<TGConnectingPoint num="0" id="1123" /> +<TGConnectingPoint num="1" id="1124" /> +<extraparam> +<Data requestName="req_Timer" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="1128" > +<cdparam x="2187" y="1365" /> +<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="temp(1)" /> +<TGConnectingPoint num="0" id="1126" /> +<TGConnectingPoint num="1" id="1127" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="1131" > +<cdparam x="2138" y="1136" /> +<sizeparam width="160" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="seqNum=seqNum+wind" /> +<TGConnectingPoint num="0" id="1129" /> +<TGConnectingPoint num="1" id="1130" /> +</COMPONENT> + +<COMPONENT type="1008" id="1134" > +<cdparam x="2192" y="1248" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="1132" /> +<TGConnectingPoint num="1" id="1133" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="1137" > +<cdparam x="2163" y="1424" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =2" /> +<TGConnectingPoint num="0" id="1135" /> +<TGConnectingPoint num="1" id="1136" /> +</COMPONENT> + +<COMPONENT type="1006" id="1140" > +<cdparam x="2299" y="1122" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="write channel" value="fromTtoP(1)" /> +<TGConnectingPoint num="0" id="1138" /> +<TGConnectingPoint num="1" id="1139" /> +<extraparam> +<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="1157" > +<cdparam x="2283" y="1065" /> +<sizeparam width="121" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="UML Note" value="send Ack of SYN +" /> +<TGConnectingPoint num="0" id="1141" /> +<TGConnectingPoint num="1" id="1142" /> +<TGConnectingPoint num="2" id="1143" /> +<TGConnectingPoint num="3" id="1144" /> +<TGConnectingPoint num="4" id="1145" /> +<TGConnectingPoint num="5" id="1146" /> +<TGConnectingPoint num="6" id="1147" /> +<TGConnectingPoint num="7" id="1148" /> +<TGConnectingPoint num="8" id="1149" /> +<TGConnectingPoint num="9" id="1150" /> +<TGConnectingPoint num="10" id="1151" /> +<TGConnectingPoint num="11" id="1152" /> +<TGConnectingPoint num="12" id="1153" /> +<TGConnectingPoint num="13" id="1154" /> +<TGConnectingPoint num="14" id="1155" /> +<TGConnectingPoint num="15" id="1156" /> +<extraparam> +<Line value="send Ack of SYN" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="1160" > +<cdparam x="2287" y="1267" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="action state" value="tcpctrl.state =2" /> +<TGConnectingPoint num="0" id="1158" /> +<TGConnectingPoint num="1" id="1159" /> +</COMPONENT> + +<COMPONENT type="1001" id="1162" > +<cdparam x="2330" y="1324" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1161" /> +</COMPONENT> + +<COMPONENT type="1008" id="1165" > +<cdparam x="2316" y="1199" /> +<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="send()" /> +<TGConnectingPoint num="0" id="1163" /> +<TGConnectingPoint num="1" id="1164" /> +<extraparam> +<Data eventName="send" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1167" > +<cdparam x="1649" y="1057" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1166" /> +</COMPONENT> + +<COMPONENT type="1001" id="1169" > +<cdparam x="2168" y="1421" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1168" /> +</COMPONENT> + +<COMPONENT type="1001" id="1171" > +<cdparam x="2268" y="1039" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1170" /> +</COMPONENT> + +<COMPONENT type="1008" id="1174" > +<cdparam x="1459" y="1192" /> +<sizeparam width="140" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="send event" value="receive_Application()" /> +<TGConnectingPoint num="0" id="1172" /> +<TGConnectingPoint num="1" id="1173" /> +<extraparam> +<Data eventName="receive_Application" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1009" id="1177" > +<cdparam x="1699" y="1086" /> +<sizeparam width="64" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" /> +<infoparam name="read channel" value="temp(1) " /> +<TGConnectingPoint num="0" id="1175" /> +<TGConnectingPoint num="1" id="1176" /> +<extraparam> +<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="115" id="1178" > +<cdparam x="1048" y="795" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1048" y="795" id="568" /> +<P2 x="1728" y="865" id="490" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1179" > +<cdparam x="1048" y="795" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1089" y="954" id="540" /> +<P2 x="1208" y="1010" id="510" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1180" > +<cdparam x="1008" y="610" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to execI" value="null" /> +<P1 x="1008" y="610" id="644" /> +<P2 x="1008" y="696" id="572" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1181" > +<cdparam x="722" y="614" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to execI" value="null" /> +<P1 x="722" y="614" id="659" /> +<P2 x="722" y="689" id="528" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1182" > +<cdparam x="504" y="597" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="504" y="597" id="608" /> +<P2 x="572" y="702" id="522" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1183" > +<cdparam x="464" y="637" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="464" y="637" id="609" /> +<P2 x="439" y="778" id="576" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1184" > +<cdparam x="424" y="597" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="424" y="597" id="607" /> +<P2 x="346" y="759" id="556" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1185" > +<cdparam x="289" y="619" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to read channel" value="null" /> +<P1 x="289" y="619" id="617" /> +<P2 x="230" y="803" id="713" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1186" > +<cdparam x="249" y="579" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="249" y="579" id="615" /> +<P2 x="132" y="789" id="560" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1187" > +<cdparam x="371" y="93" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from for loop to notified event" value="null" /> +<P1 x="325" y="99" id="647" /> +<P2 x="374" y="128" id="655" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1188" > +<cdparam x="234" y="169" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="234" y="169" id="653" /> +<P2 x="234" y="202" id="650" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1189" > +<cdparam x="234" y="104" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from for loop to action state" value="null" /> +<P1 x="235" y="110" id="648" /> +<P2 x="234" y="139" id="652" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1190" > +<cdparam x="234" y="47" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to for loop" value="null" /> +<P1 x="234" y="47" id="619" /> +<P2 x="235" y="80" id="646" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1191" > +<cdparam x="425" y="162" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from notified event to choice" value="null" /> +<P1 x="374" y="158" id="656" /> +<P2 x="374" y="182" id="598" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1192" > +<cdparam x="564" y="482" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="464" y="322" id="682" /> +<P2 x="722" y="529" id="661" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1193" > +<cdparam x="722" y="559" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to read channel" value="null" /> +<P1 x="722" y="559" id="662" /> +<P2 x="722" y="584" id="658" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1194" > +<cdparam x="604" y="442" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="504" y="282" id="678" /> +<P2 x="1008" y="523" id="664" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1195" > +<cdparam x="1007" y="553" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to read channel" value="null" /> +<P1 x="1008" y="553" id="665" /> +<P2 x="1008" y="580" id="643" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1196" > +<cdparam x="524" y="442" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="464" y="322" id="679" /> +<P2 x="464" y="487" id="667" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1197" > +<cdparam x="330" y="428" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="424" y="282" id="680" /> +<P2 x="289" y="463" id="670" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1198" > +<cdparam x="318" y="520" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to choice" value="null" /> +<P1 x="289" y="493" id="671" /> +<P2 x="289" y="554" id="614" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1199" > +<cdparam x="160" y="481" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="148" y="501" id="591" /> +<P2 x="126" y="544" id="638" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1200" > +<cdparam x="290" y="388" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="424" y="282" id="677" /> +<P2 x="188" y="414" id="673" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1201" > +<cdparam x="229" y="467" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to choice" value="null" /> +<P1 x="188" y="444" id="674" /> +<P2 x="188" y="476" id="590" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1202" > +<cdparam x="228" y="501" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="228" y="501" id="592" /> +<P2 x="236" y="524" id="687" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1203" > +<cdparam x="334" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="334" y="207" id="599" /> +<P2 x="301" y="223" id="691" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1204" > +<cdparam x="301" y="253" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to stop state" value="null" /> +<P1 x="301" y="253" id="692" /> +<P2 x="301" y="285" id="694" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1205" > +<cdparam x="464" y="517" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to choice" value="null" /> +<P1 x="464" y="517" id="668" /> +<P2 x="464" y="572" id="606" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1206" > +<cdparam x="329" y="579" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="329" y="579" id="616" /> +<P2 x="353" y="609" id="689" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1207" > +<cdparam x="126" y="574" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="126" y="574" id="639" /> +<P2 x="126" y="610" id="641" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1208" > +<cdparam x="414" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to select" value="null" /> +<P1 x="414" y="207" id="600" /> +<P2 x="464" y="257" id="676" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1209" > +<cdparam x="230" y="833" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to execI" value="null" /> +<P1 x="230" y="833" id="714" /> +<P2 x="230" y="858" id="580" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1210" > +<cdparam x="716" y="749" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="968" y="795" id="567" /> +<P2 x="843" y="859" id="550" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1211" > +<cdparam x="720" y="1074" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="728" y="990" id="763" /> +<P2 x="728" y="1027" id="765" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1212" > +<cdparam x="733" y="899" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="803" y="884" id="551" /> +<P2 x="728" y="960" id="762" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1213" > +<cdparam x="800" y="938" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="843" y="924" id="553" /> +<P2 x="800" y="1004" id="544" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1214" > +<cdparam x="800" y="1057" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="800" y="1044" id="545" /> +<P2 x="800" y="1081" id="767" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1215" > +<cdparam x="132" y="886" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to write channel" value="null" /> +<P1 x="132" y="886" id="894" /> +<P2 x="132" y="933" id="729" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1216" > +<cdparam x="943" y="1061" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="943" y="1060" id="533" /> +<P2 x="943" y="1118" id="812" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1217" > +<cdparam x="1049" y="1093" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="1049" y="1092" id="585" /> +<P2 x="1049" y="1150" id="837" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1218" > +<cdparam x="1049" y="994" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="1049" y="994" id="541" /> +<P2 x="1049" y="1052" id="584" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1219" > +<cdparam x="696" y="742" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="722" y="729" id="529" /> +<P2 x="722" y="753" id="862" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1220" > +<cdparam x="132" y="1125" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to write channel" value="null" /> +<P1 x="132" y="1125" id="868" /> +<P2 x="132" y="1162" id="870" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1221" > +<cdparam x="132" y="1192" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="132" y="1192" id="871" /> +<P2 x="132" y="1231" id="873" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1222" > +<cdparam x="132" y="1066" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to send request" value="null" /> +<P1 x="132" y="1066" id="727" /> +<P2 x="132" y="1095" id="867" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1223" > +<cdparam x="229" y="1127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to write channel" value="null" /> +<P1 x="229" y="1127" id="876" /> +<P2 x="229" y="1164" id="878" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1224" > +<cdparam x="346" y="1131" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to write channel" value="null" /> +<P1 x="346" y="1131" id="882" /> +<P2 x="346" y="1168" id="884" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1225" > +<cdparam x="346" y="1051" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to send request" value="null" /> +<P1 x="346" y="1051" id="733" /> +<P2 x="346" y="1101" id="881" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1226" > +<cdparam x="437" y="1118" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to write channel" value="null" /> +<P1 x="438" y="1115" id="888" /> +<P2 x="438" y="1154" id="890" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1227" > +<cdparam x="438" y="1057" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to send request" value="null" /> +<P1 x="438" y="1057" id="722" /> +<P2 x="438" y="1085" id="887" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1228" > +<cdparam x="132" y="808" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to action state" value="null" /> +<P1 x="132" y="829" id="561" /> +<P2 x="132" y="856" id="893" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1229" > +<cdparam x="230" y="898" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to action state" value="null" /> +<P1 x="230" y="898" id="581" /> +<P2 x="230" y="935" id="896" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1230" > +<cdparam x="230" y="965" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to write channel" value="null" /> +<P1 x="230" y="965" id="897" /> +<P2 x="230" y="997" id="716" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1231" > +<cdparam x="346" y="799" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to action state" value="null" /> +<P1 x="346" y="799" id="557" /> +<P2 x="346" y="826" id="902" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1232" > +<cdparam x="346" y="856" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to write channel" value="null" /> +<P1 x="346" y="856" id="903" /> +<P2 x="346" y="895" id="740" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1233" > +<cdparam x="439" y="818" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to action state" value="null" /> +<P1 x="439" y="818" id="577" /> +<P2 x="439" y="860" id="899" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1234" > +<cdparam x="439" y="890" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to write channel" value="null" /> +<P1 x="439" y="890" id="900" /> +<P2 x="439" y="936" id="737" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1235" > +<cdparam x="132" y="963" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="132" y="963" id="730" /> +<P2 x="132" y="981" id="914" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1236" > +<cdparam x="132" y="1011" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="132" y="1011" id="915" /> +<P2 x="132" y="1036" id="726" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1237" > +<cdparam x="230" y="1027" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="230" y="1027" id="717" /> +<P2 x="229" y="1047" id="905" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1238" > +<cdparam x="228" y="1088" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to send request" value="null" /> +<P1 x="229" y="1077" id="906" /> +<P2 x="229" y="1097" id="875" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1239" > +<cdparam x="346" y="925" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="346" y="925" id="741" /> +<P2 x="346" y="957" id="908" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1240" > +<cdparam x="348" y="987" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="346" y="987" id="909" /> +<P2 x="346" y="1021" id="732" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1241" > +<cdparam x="439" y="966" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="439" y="966" id="738" /> +<P2 x="438" y="978" id="911" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1242" > +<cdparam x="438" y="1008" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="438" y="1008" id="912" /> +<P2 x="438" y="1027" id="721" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1243" > +<cdparam x="722" y="783" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="722" y="783" id="863" /> +<P2 x="722" y="808" id="917" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1244" > +<cdparam x="722" y="838" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to stop state" value="null" /> +<P1 x="722" y="838" id="918" /> +<P2 x="722" y="860" id="865" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1245" > +<cdparam x="800" y="1111" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="800" y="1111" id="768" /> +<P2 x="798" y="1136" id="920" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1246" > +<cdparam x="798" y="1166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="798" y="1166" id="921" /> +<P2 x="799" y="1188" id="804" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1247" > +<cdparam x="943" y="1148" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="943" y="1148" id="813" /> +<P2 x="943" y="1173" id="923" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1248" > +<cdparam x="950" y="1201" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="943" y="1203" id="924" /> +<P2 x="943" y="1229" id="832" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1249" > +<cdparam x="1049" y="1180" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="1049" y="1180" id="838" /> +<P2 x="1049" y="1206" id="926" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1250" > +<cdparam x="1049" y="1223" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="1049" y="1236" id="927" /> +<P2 x="1049" y="1261" id="857" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1251" > +<cdparam x="883" y="884" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="883" y="884" id="552" /> +<P2 x="909" y="917" id="931" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1252" > +<cdparam x="612" y="727" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="612" y="727" id="524" /> +<P2 x="622" y="757" id="929" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1253" > +<cdparam x="532" y="727" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="532" y="727" id="523" /> +<P2 x="496" y="763" id="807" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1254" > +<cdparam x="799" y="1218" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="799" y="1218" id="805" /> +<P2 x="799" y="1265" id="743" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1255" > +<cdparam x="1009" y="954" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="1009" y="954" id="539" /> +<P2 x="943" y="1020" id="532" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1256" > +<cdparam x="229" y="1194" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="229" y="1194" id="879" /> +<P2 x="229" y="1232" id="719" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1257" > +<cdparam x="346" y="1198" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="346" y="1198" id="885" /> +<P2 x="344" y="1224" id="735" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1258" > +<cdparam x="438" y="1184" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="438" y="1184" id="891" /> +<P2 x="438" y="1208" id="724" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1259" > +<cdparam x="496" y="793" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="496" y="793" id="808" /> +<P2 x="496" y="825" id="810" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1260" > +<cdparam x="943" y="1259" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="943" y="1259" id="833" /> +<P2 x="943" y="1306" id="835" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1261" > +<cdparam x="1008" y="736" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to choice" value="null" /> +<P1 x="1008" y="736" id="573" /> +<P2 x="1008" y="770" id="566" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1262" > +<cdparam x="1008" y="835" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1008" y="835" id="569" /> +<P2 x="1049" y="929" id="538" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1263" > +<cdparam x="1049" y="1291" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="1049" y="1291" id="858" /> +<P2 x="1049" y="1336" id="860" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1264" > +<cdparam x="1208" y="1152" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="1208" y="1142" id="517" /> +<P2 x="1208" y="1209" id="933" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1265" > +<cdparam x="1208" y="1239" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to action state" value="null" /> +<P1 x="1208" y="1239" id="934" /> +<P2 x="1208" y="1290" id="953" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1266" > +<cdparam x="1208" y="1320" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to send event" value="null" /> +<P1 x="1208" y="1320" id="954" /> +<P2 x="1208" y="1346" id="961" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1267" > +<cdparam x="1206" y="1385" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to action state" value="null" /> +<P1 x="1208" y="1376" id="962" /> +<P2 x="1207" y="1397" id="958" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1268" > +<cdparam x="1206" y="1088" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="1208" y="1075" id="513" /> +<P2 x="1208" y="1102" id="516" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1269" > +<cdparam x="1248" y="1035" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="1248" y="1035" id="512" /> +<P2 x="1287" y="1065" id="964" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1270" > +<cdparam x="1207" y="1427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="1207" y="1427" id="959" /> +<P2 x="1207" y="1466" id="956" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1271" > +<cdparam x="1553" y="1019" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="1567" y="1021" id="483" /> +<P2 x="1529" y="1059" id="476" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1272" > +<cdparam x="1529" y="1324" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="1529" y="1289" id="473" /> +<P2 x="1529" y="1343" id="971" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1273" > +<cdparam x="1684" y="929" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to send event" value="null" /> +<P1 x="1728" y="930" id="493" /> +<P2 x="1731" y="1021" id="974" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1274" > +<cdparam x="1615" y="1283" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="1641" y="1270" id="497" /> +<P2 x="1641" y="1294" id="1011" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1275" > +<cdparam x="1641" y="1324" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="1641" y="1324" id="1012" /> +<P2 x="1642" y="1343" id="1053" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1276" > +<cdparam x="1529" y="1373" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="1529" y="1373" id="972" /> +<P2 x="1529" y="1400" id="1050" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1277" > +<cdparam x="1529" y="1422" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to stop state" value="null" /> +<P1 x="1529" y="1430" id="1051" /> +<P2 x="1529" y="1452" id="966" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1278" > +<cdparam x="1642" y="1373" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to write channel" value="null" /> +<P1 x="1642" y="1373" id="1054" /> +<P2 x="1642" y="1399" id="1056" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1279" > +<cdparam x="1956" y="1361" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="1956" y="1361" id="451" /> +<P2 x="1920" y="1406" id="1066" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1280" > +<cdparam x="2100" y="1490" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="2101" y="1491" id="1074" /> +<P2 x="2101" y="1532" id="1076" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1281" > +<cdparam x="1996" y="1401" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="1996" y="1401" id="453" /> +<P2 x="1996" y="1429" id="1081" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1282" > +<cdparam x="1996" y="1459" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to action state" value="null" /> +<P1 x="1996" y="1459" id="1082" /> +<P2 x="1996" y="1488" id="1078" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1283" > +<cdparam x="2021" y="1038" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="2237" y="966" id="443" /> +<P2 x="2218" y="1054" id="500" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1284" > +<cdparam x="2217" y="1323" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send request to write channel" value="null" /> +<P1 x="2217" y="1323" id="1124" /> +<P2 x="2217" y="1360" id="1126" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1285" > +<cdparam x="2218" y="1094" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to action state" value="null" /> +<P1 x="2218" y="1094" id="501" /> +<P2 x="2218" y="1131" id="1129" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1286" > +<cdparam x="2218" y="1161" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to write channel" value="null" /> +<P1 x="2218" y="1161" id="1130" /> +<P2 x="2218" y="1193" id="1118" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1287" > +<cdparam x="2218" y="1223" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="2218" y="1223" id="1119" /> +<P2 x="2217" y="1243" id="1132" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1288" > +<cdparam x="2216" y="1284" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to send request" value="null" /> +<P1 x="2217" y="1273" id="1133" /> +<P2 x="2217" y="1293" id="1123" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1289" > +<cdparam x="2217" y="1390" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to action state" value="null" /> +<P1 x="2217" y="1390" id="1127" /> +<P2 x="2217" y="1419" id="1135" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1290" > +<cdparam x="2341" y="1060" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="2341" y="1059" id="505" /> +<P2 x="2341" y="1117" id="1138" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1291" > +<cdparam x="1529" y="1099" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from execI to write channel" value="null" /> +<P1 x="1529" y="1099" id="477" /> +<P2 x="1529" y="1127" id="968" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1292" > +<cdparam x="2101" y="1433" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="2101" y="1433" id="437" /> +<P2 x="2101" y="1461" id="1073" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1293" > +<cdparam x="2158" y="1460" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="2141" y="1393" id="436" /> +<P2 x="2178" y="1416" id="1168" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1294" > +<cdparam x="1688" y="890" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1688" y="890" id="491" /> +<P2 x="1607" y="996" id="482" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1295" > +<cdparam x="1768" y="890" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1768" y="890" id="492" /> +<P2 x="2277" y="941" id="442" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1296" > +<cdparam x="2317" y="966" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="2317" y="966" id="444" /> +<P2 x="2341" y="1019" id="504" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1297" > +<cdparam x="2341" y="1147" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="2341" y="1147" id="1139" /> +<P2 x="2341" y="1194" id="1163" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1298" > +<cdparam x="2341" y="1224" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to send event" value="null" /> +<P1 x="2341" y="1224" id="1164" /> +<P2 x="2341" y="1262" id="1158" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1299" > +<cdparam x="1731" y="1051" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to choice" value="null" /> +<P1 x="1731" y="1051" id="975" /> +<P2 x="1731" y="1081" id="1175" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1300" > +<cdparam x="1647" y="1021" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="1647" y="1021" id="484" /> +<P2 x="1659" y="1052" id="1166" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1301" > +<cdparam x="1826" y="1324" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to action state" value="null" /> +<P1 x="1826" y="1324" id="461" /> +<P2 x="1826" y="1344" id="1061" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1302" > +<cdparam x="1826" y="1374" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="1826" y="1374" id="1062" /> +<P2 x="1828" y="1452" id="1064" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1303" > +<cdparam x="1786" y="1284" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="1786" y="1284" id="459" /> +<P2 x="1740" y="1330" id="1059" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1304" > +<cdparam x="1920" y="1436" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="1920" y="1436" id="1067" /> +<P2 x="1920" y="1476" id="1069" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1305" > +<cdparam x="1996" y="1518" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="1996" y="1518" id="1079" /> +<P2 x="1996" y="1538" id="1071" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1306" > +<cdparam x="2036" y="1361" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="2036" y="1361" id="452" /> +<P2 x="2101" y="1368" id="434" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1307" > +<cdparam x="1866" y="1284" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1866" y="1284" id="460" /> +<P2 x="1996" y="1336" id="450" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1308" > +<cdparam x="2341" y="1292" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="2341" y="1292" id="1159" /> +<P2 x="2340" y="1319" id="1161" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1309" > +<cdparam x="2217" y="1449" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from action state to stop state" value="null" /> +<P1 x="2217" y="1449" id="1136" /> +<P2 x="2217" y="1478" id="1121" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1310" > +<cdparam x="2277" y="1006" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to stop state" value="null" /> +<P1 x="2277" y="1006" id="445" /> +<P2 x="2278" y="1034" id="1170" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1311" > +<cdparam x="1642" y="1429" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to stop state" value="null" /> +<P1 x="1642" y="1429" id="1057" /> +<P2 x="1642" y="1463" id="1014" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1312" > +<cdparam x="1529" y="1157" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="1529" y="1157" id="969" /> +<P2 x="1529" y="1187" id="1172" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1313" > +<cdparam x="1529" y="1217" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to execI" value="null" /> +<P1 x="1529" y="1217" id="1173" /> +<P2 x="1529" y="1249" id="472" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1314" > +<cdparam x="1691" y="1156" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to execI" value="null" /> +<P1 x="1691" y="1156" id="467" /> +<P2 x="1641" y="1230" id="496" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1315" > +<cdparam x="1771" y="1156" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to choice" value="null" /> +<P1 x="1771" y="1156" id="468" /> +<P2 x="1826" y="1259" id="458" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1316" > +<cdparam x="1731" y="1111" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from read channel to choice" value="null" /> +<P1 x="1731" y="1111" id="1176" /> +<P2 x="1731" y="1131" id="466" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="Timer" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1012" id="1324" > +<cdparam x="509" y="222" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="1320" /> +<TGConnectingPoint num="1" id="1321" /> +<TGConnectingPoint num="2" id="1322" /> +<TGConnectingPoint num="3" id="1323" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="1317" > +<father id="1324" num="0" /> +<cdparam x="464" y="232" /> +<sizeparam width="52" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ x==0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1318" > +<father id="1324" num="1" /> +<cdparam x="544" y="234" /> +<sizeparam width="42" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ x>0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1319" > +<father id="1324" num="2" /> +<cdparam x="529" y="267" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1000" id="1326" > +<cdparam x="517" y="87" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1325" /> +</COMPONENT> + +<COMPONENT type="1001" id="1328" > +<cdparam x="417" y="367" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1327" /> +</COMPONENT> + +<COMPONENT type="1008" id="1331" > +<cdparam x="393" y="299" /> +<sizeparam width="69" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="timeOut()" /> +<TGConnectingPoint num="0" id="1329" /> +<TGConnectingPoint num="1" id="1330" /> +<extraparam> +<Data eventName="timeOut" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="1334" > +<cdparam x="596" y="300" /> +<sizeparam width="52" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="stop() " /> +<TGConnectingPoint num="0" id="1332" /> +<TGConnectingPoint num="1" id="1333" /> +<extraparam> +<Data eventName="stop" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1336" > +<cdparam x="612" y="365" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1335" /> +</COMPONENT> + +<COMPONENT type="1017" id="1339" > +<cdparam x="487" y="150" /> +<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="notified event" value="x=?stop()" /> +<TGConnectingPoint num="0" id="1337" /> +<TGConnectingPoint num="1" id="1338" /> +<extraparam> +<Data eventName="stop" variable="x" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="115" id="1340" > +<cdparam x="427" y="324" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to stop state" value="null" /> +<P1 x="427" y="324" id="1330" /> +<P2 x="427" y="362" id="1327" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1341" > +<cdparam x="622" y="325" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from wait event to stop state" value="null" /> +<P1 x="622" y="325" id="1333" /> +<P2 x="622" y="360" id="1335" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1342" > +<cdparam x="524" y="107" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to notified event" value="null" /> +<P1 x="524" y="107" id="1325" /> +<P2 x="524" y="145" id="1337" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1343" > +<cdparam x="524" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from notified event to choice" value="null" /> +<P1 x="524" y="175" id="1338" /> +<P2 x="524" y="212" id="1320" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1344" > +<cdparam x="484" y="237" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to send event" value="null" /> +<P1 x="484" y="237" id="1321" /> +<P2 x="427" y="294" id="1329" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1345" > +<cdparam x="564" y="237" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to wait event" value="null" /> +<P1 x="564" y="237" id="1322" /> +<P2 x="622" y="295" id="1332" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="Application" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1012" id="1353" > +<cdparam x="491" y="277" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice" value="null" /> +<TGConnectingPoint num="0" id="1349" /> +<TGConnectingPoint num="1" id="1350" /> +<TGConnectingPoint num="2" id="1351" /> +<TGConnectingPoint num="3" id="1352" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="1346" > +<father id="1353" num="0" /> +<cdparam x="466" y="287" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1347" > +<father id="1353" num="1" /> +<cdparam x="526" y="287" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1348" > +<father id="1353" num="2" /> +<cdparam x="511" y="322" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1000" id="1355" > +<cdparam x="501" y="91" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1354" /> +</COMPONENT> + +<COMPONENT type="1008" id="1358" > +<cdparam x="482" y="129" /> +<sizeparam width="52" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="open()" /> +<TGConnectingPoint num="0" id="1356" /> +<TGConnectingPoint num="1" id="1357" /> +<extraparam> +<Data eventName="open" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1006" id="1361" > +<cdparam x="466" y="178" /> +<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="fromAtoT(1)" /> +<TGConnectingPoint num="0" id="1359" /> +<TGConnectingPoint num="1" id="1360" /> +<extraparam> +<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="1364" > +<cdparam x="467" y="226" /> +<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="send_TCP()" /> +<TGConnectingPoint num="0" id="1362" /> +<TGConnectingPoint num="1" id="1363" /> +<extraparam> +<Data eventName="send_TCP" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1366" > +<cdparam x="576" y="388" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1365" /> +</COMPONENT> + +<COMPONENT type="1008" id="1369" > +<cdparam x="559" y="329" /> +<sizeparam width="54" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="abort()" /> +<TGConnectingPoint num="0" id="1367" /> +<TGConnectingPoint num="1" id="1368" /> +<extraparam> +<Data eventName="abort" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="1372" > +<cdparam x="406" y="337" /> +<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<enabled value="true" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="close()" /> +<TGConnectingPoint num="0" id="1370" /> +<TGConnectingPoint num="1" id="1371" /> +<extraparam> +<Data eventName="close" nbOfParams="5" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1374" > +<cdparam x="422" y="386" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1373" /> +</COMPONENT> + +<CONNECTOR type="115" id="1375" > +<cdparam x="509" y="94" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to send event" value="null" /> +<P1 x="508" y="111" id="1354" /> +<P2 x="508" y="124" id="1356" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1376" > +<cdparam x="508" y="154" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to write channel" value="null" /> +<P1 x="508" y="154" id="1357" /> +<P2 x="508" y="173" id="1359" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1377" > +<cdparam x="508" y="222" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from write channel to send event" value="null" /> +<P1 x="508" y="203" id="1360" /> +<P2 x="507" y="221" id="1362" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1378" > +<cdparam x="586" y="354" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to stop state" value="null" /> +<P1 x="586" y="354" id="1368" /> +<P2 x="586" y="383" id="1365" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1379" > +<cdparam x="508" y="298" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to choice" value="null" /> +<P1 x="507" y="251" id="1363" /> +<P2 x="506" y="267" id="1349" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1380" > +<cdparam x="470" y="348" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to send event" value="null" /> +<P1 x="466" y="292" id="1350" /> +<P2 x="432" y="332" id="1370" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1381" > +<cdparam x="432" y="362" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from send event to stop state" value="null" /> +<P1 x="432" y="362" id="1371" /> +<P2 x="432" y="381" id="1373" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1382" > +<cdparam x="550" y="348" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from choice to send event" value="null" /> +<P1 x="546" y="292" id="1351" /> +<P2 x="586" y="324" id="1367" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Mapping1" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" > +<COMPONENT type="1100" id="1452" > +<cdparam x="51" y="90" /> +<sizeparam width="459" height="321" minWidth="150" minHeight="150" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="cpu0" value="name" /> +<TGConnectingPoint num="0" id="1428" /> +<TGConnectingPoint num="1" id="1429" /> +<TGConnectingPoint num="2" id="1430" /> +<TGConnectingPoint num="3" id="1431" /> +<TGConnectingPoint num="4" id="1432" /> +<TGConnectingPoint num="5" id="1433" /> +<TGConnectingPoint num="6" id="1434" /> +<TGConnectingPoint num="7" id="1435" /> +<TGConnectingPoint num="8" id="1436" /> +<TGConnectingPoint num="9" id="1437" /> +<TGConnectingPoint num="10" id="1438" /> +<TGConnectingPoint num="11" id="1439" /> +<TGConnectingPoint num="12" id="1440" /> +<TGConnectingPoint num="13" id="1441" /> +<TGConnectingPoint num="14" id="1442" /> +<TGConnectingPoint num="15" id="1443" /> +<TGConnectingPoint num="16" id="1444" /> +<TGConnectingPoint num="17" id="1445" /> +<TGConnectingPoint num="18" id="1446" /> +<TGConnectingPoint num="19" id="1447" /> +<TGConnectingPoint num="20" id="1448" /> +<TGConnectingPoint num="21" id="1449" /> +<TGConnectingPoint num="22" id="1450" /> +<TGConnectingPoint num="23" id="1451" /> +<extraparam> +<info stereotype="CPURRPB" nodeName="cpu0" /> +<attributes nbOfCores="1" byteDataSize="4" schedulingPolicy="1" sliceTime="10000" goIdleTime="10" maxConsecutiveIdleCycles="10" pipelineSize="5" taskSwitchingTime="20" branchingPredictionPenalty="99" cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="1391" > +<father id="1452" num="0" /> +<cdparam x="226" y="304" /> +<sizeparam width="109" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="350" minY="0" maxY="271" /> +<infoparam name="TGComponent" value="AppC::Timer" /> +<TGConnectingPoint num="0" id="1383" /> +<TGConnectingPoint num="1" id="1384" /> +<TGConnectingPoint num="2" id="1385" /> +<TGConnectingPoint num="3" id="1386" /> +<TGConnectingPoint num="4" id="1387" /> +<TGConnectingPoint num="5" id="1388" /> +<TGConnectingPoint num="6" id="1389" /> +<TGConnectingPoint num="7" id="1390" /> +<extraparam> +<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="1400" > +<father id="1452" num="1" /> +<cdparam x="290" y="234" /> +<sizeparam width="144" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="315" minY="0" maxY="271" /> +<infoparam name="TGComponent" value="AppC::Application" /> +<TGConnectingPoint num="0" id="1392" /> +<TGConnectingPoint num="1" id="1393" /> +<TGConnectingPoint num="2" id="1394" /> +<TGConnectingPoint num="3" id="1395" /> +<TGConnectingPoint num="4" id="1396" /> +<TGConnectingPoint num="5" id="1397" /> +<TGConnectingPoint num="6" id="1398" /> +<TGConnectingPoint num="7" id="1399" /> +<extraparam> +<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="1409" > +<father id="1452" num="2" /> +<cdparam x="96" y="246" /> +<sizeparam width="109" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="350" minY="0" maxY="271" /> +<infoparam name="TGComponent" value="AppC::TCPIP" /> +<TGConnectingPoint num="0" id="1401" /> +<TGConnectingPoint num="1" id="1402" /> +<TGConnectingPoint num="2" id="1403" /> +<TGConnectingPoint num="3" id="1404" /> +<TGConnectingPoint num="4" id="1405" /> +<TGConnectingPoint num="5" id="1406" /> +<TGConnectingPoint num="6" id="1407" /> +<TGConnectingPoint num="7" id="1408" /> +<extraparam> +<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="1418" > +<father id="1452" num="3" /> +<cdparam x="291" y="153" /> +<sizeparam width="141" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="318" minY="0" maxY="271" /> +<infoparam name="TGComponent" value="AppC::SmartCard" /> +<TGConnectingPoint num="0" id="1410" /> +<TGConnectingPoint num="1" id="1411" /> +<TGConnectingPoint num="2" id="1412" /> +<TGConnectingPoint num="3" id="1413" /> +<TGConnectingPoint num="4" id="1414" /> +<TGConnectingPoint num="5" id="1415" /> +<TGConnectingPoint num="6" id="1416" /> +<TGConnectingPoint num="7" id="1417" /> +<extraparam> +<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="1427" > +<father id="1452" num="4" /> +<cdparam x="92" y="154" /> +<sizeparam width="172" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="287" minY="0" maxY="271" /> +<infoparam name="TGComponent" value="AppC::InterfaceDevice" /> +<TGConnectingPoint num="0" id="1419" /> +<TGConnectingPoint num="1" id="1420" /> +<TGConnectingPoint num="2" id="1421" /> +<TGConnectingPoint num="3" id="1422" /> +<TGConnectingPoint num="4" id="1423" /> +<TGConnectingPoint num="5" id="1424" /> +<TGConnectingPoint num="6" id="1425" /> +<TGConnectingPoint num="7" id="1426" /> +<extraparam> +<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Mapping2" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" > +<COMPONENT type="1105" id="1477" > +<cdparam x="420" y="527" /> +<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Memory0" value="name" /> +<TGConnectingPoint num="0" id="1453" /> +<TGConnectingPoint num="1" id="1454" /> +<TGConnectingPoint num="2" id="1455" /> +<TGConnectingPoint num="3" id="1456" /> +<TGConnectingPoint num="4" id="1457" /> +<TGConnectingPoint num="5" id="1458" /> +<TGConnectingPoint num="6" id="1459" /> +<TGConnectingPoint num="7" id="1460" /> +<TGConnectingPoint num="8" id="1461" /> +<TGConnectingPoint num="9" id="1462" /> +<TGConnectingPoint num="10" id="1463" /> +<TGConnectingPoint num="11" id="1464" /> +<TGConnectingPoint num="12" id="1465" /> +<TGConnectingPoint num="13" id="1466" /> +<TGConnectingPoint num="14" id="1467" /> +<TGConnectingPoint num="15" id="1468" /> +<TGConnectingPoint num="16" id="1469" /> +<TGConnectingPoint num="17" id="1470" /> +<TGConnectingPoint num="18" id="1471" /> +<TGConnectingPoint num="19" id="1472" /> +<TGConnectingPoint num="20" id="1473" /> +<TGConnectingPoint num="21" id="1474" /> +<TGConnectingPoint num="22" id="1475" /> +<TGConnectingPoint num="23" id="1476" /> +<extraparam> +<info stereotype="MEMORY" nodeName="Memory0" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="1502" > +<cdparam x="389" y="438" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Bus0" value="name" /> +<TGConnectingPoint num="0" id="1478" /> +<TGConnectingPoint num="1" id="1479" /> +<TGConnectingPoint num="2" id="1480" /> +<TGConnectingPoint num="3" id="1481" /> +<TGConnectingPoint num="4" id="1482" /> +<TGConnectingPoint num="5" id="1483" /> +<TGConnectingPoint num="6" id="1484" /> +<TGConnectingPoint num="7" id="1485" /> +<TGConnectingPoint num="8" id="1486" /> +<TGConnectingPoint num="9" id="1487" /> +<TGConnectingPoint num="10" id="1488" /> +<TGConnectingPoint num="11" id="1489" /> +<TGConnectingPoint num="12" id="1490" /> +<TGConnectingPoint num="13" id="1491" /> +<TGConnectingPoint num="14" id="1492" /> +<TGConnectingPoint num="15" id="1493" /> +<TGConnectingPoint num="16" id="1494" /> +<TGConnectingPoint num="17" id="1495" /> +<TGConnectingPoint num="18" id="1496" /> +<TGConnectingPoint num="19" id="1497" /> +<TGConnectingPoint num="20" id="1498" /> +<TGConnectingPoint num="21" id="1499" /> +<TGConnectingPoint num="22" id="1500" /> +<TGConnectingPoint num="23" id="1501" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="Bus0" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="5" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="1536" > +<cdparam x="685" y="396" /> +<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU2" value="name" /> +<TGConnectingPoint num="0" id="1512" /> +<TGConnectingPoint num="1" id="1513" /> +<TGConnectingPoint num="2" id="1514" /> +<TGConnectingPoint num="3" id="1515" /> +<TGConnectingPoint num="4" id="1516" /> +<TGConnectingPoint num="5" id="1517" /> +<TGConnectingPoint num="6" id="1518" /> +<TGConnectingPoint num="7" id="1519" /> +<TGConnectingPoint num="8" id="1520" /> +<TGConnectingPoint num="9" id="1521" /> +<TGConnectingPoint num="10" id="1522" /> +<TGConnectingPoint num="11" id="1523" /> +<TGConnectingPoint num="12" id="1524" /> +<TGConnectingPoint num="13" id="1525" /> +<TGConnectingPoint num="14" id="1526" /> +<TGConnectingPoint num="15" id="1527" /> +<TGConnectingPoint num="16" id="1528" /> +<TGConnectingPoint num="17" id="1529" /> +<TGConnectingPoint num="18" id="1530" /> +<TGConnectingPoint num="19" id="1531" /> +<TGConnectingPoint num="20" id="1532" /> +<TGConnectingPoint num="21" id="1533" /> +<TGConnectingPoint num="22" id="1534" /> +<TGConnectingPoint num="23" id="1535" /> +<extraparam> +<info stereotype="CPURR" nodeName="CPU2" /> +<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="4" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="1511" > +<father id="1536" num="0" /> +<cdparam x="715" y="448" /> +<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="65" minY="0" maxY="95" /> +<infoparam name="TGComponent" value="AppC::Timer" /> +<TGConnectingPoint num="0" id="1503" /> +<TGConnectingPoint num="1" id="1504" /> +<TGConnectingPoint num="2" id="1505" /> +<TGConnectingPoint num="3" id="1506" /> +<TGConnectingPoint num="4" id="1507" /> +<TGConnectingPoint num="5" id="1508" /> +<TGConnectingPoint num="6" id="1509" /> +<TGConnectingPoint num="7" id="1510" /> +<extraparam> +<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1100" id="1570" > +<cdparam x="167" y="400" /> +<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU1" value="name" /> +<TGConnectingPoint num="0" id="1546" /> +<TGConnectingPoint num="1" id="1547" /> +<TGConnectingPoint num="2" id="1548" /> +<TGConnectingPoint num="3" id="1549" /> +<TGConnectingPoint num="4" id="1550" /> +<TGConnectingPoint num="5" id="1551" /> +<TGConnectingPoint num="6" id="1552" /> +<TGConnectingPoint num="7" id="1553" /> +<TGConnectingPoint num="8" id="1554" /> +<TGConnectingPoint num="9" id="1555" /> +<TGConnectingPoint num="10" id="1556" /> +<TGConnectingPoint num="11" id="1557" /> +<TGConnectingPoint num="12" id="1558" /> +<TGConnectingPoint num="13" id="1559" /> +<TGConnectingPoint num="14" id="1560" /> +<TGConnectingPoint num="15" id="1561" /> +<TGConnectingPoint num="16" id="1562" /> +<TGConnectingPoint num="17" id="1563" /> +<TGConnectingPoint num="18" id="1564" /> +<TGConnectingPoint num="19" id="1565" /> +<TGConnectingPoint num="20" id="1566" /> +<TGConnectingPoint num="21" id="1567" /> +<TGConnectingPoint num="22" id="1568" /> +<TGConnectingPoint num="23" id="1569" /> +<extraparam> +<info stereotype="CPURR" nodeName="CPU1" /> +<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="2" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="1545" > +<father id="1570" num="0" /> +<cdparam x="167" y="445" /> +<sizeparam width="163" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2" minY="0" maxY="86" /> +<infoparam name="TGComponent" value="AppC::InterfaceDevice" /> +<TGConnectingPoint num="0" id="1537" /> +<TGConnectingPoint num="1" id="1538" /> +<TGConnectingPoint num="2" id="1539" /> +<TGConnectingPoint num="3" id="1540" /> +<TGConnectingPoint num="4" id="1541" /> +<TGConnectingPoint num="5" id="1542" /> +<TGConnectingPoint num="6" id="1543" /> +<TGConnectingPoint num="7" id="1544" /> +<extraparam> +<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1100" id="1622" > +<cdparam x="389" y="243" /> +<sizeparam width="250" height="146" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU0" value="name" /> +<TGConnectingPoint num="0" id="1598" /> +<TGConnectingPoint num="1" id="1599" /> +<TGConnectingPoint num="2" id="1600" /> +<TGConnectingPoint num="3" id="1601" /> +<TGConnectingPoint num="4" id="1602" /> +<TGConnectingPoint num="5" id="1603" /> +<TGConnectingPoint num="6" id="1604" /> +<TGConnectingPoint num="7" id="1605" /> +<TGConnectingPoint num="8" id="1606" /> +<TGConnectingPoint num="9" id="1607" /> +<TGConnectingPoint num="10" id="1608" /> +<TGConnectingPoint num="11" id="1609" /> +<TGConnectingPoint num="12" id="1610" /> +<TGConnectingPoint num="13" id="1611" /> +<TGConnectingPoint num="14" id="1612" /> +<TGConnectingPoint num="15" id="1613" /> +<TGConnectingPoint num="16" id="1614" /> +<TGConnectingPoint num="17" id="1615" /> +<TGConnectingPoint num="18" id="1616" /> +<TGConnectingPoint num="19" id="1617" /> +<TGConnectingPoint num="20" id="1618" /> +<TGConnectingPoint num="21" id="1619" /> +<TGConnectingPoint num="22" id="1620" /> +<TGConnectingPoint num="23" id="1621" /> +<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="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="1579" > +<father id="1622" num="0" /> +<cdparam x="486" y="303" /> +<sizeparam width="136" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="114" minY="0" maxY="106" /> +<infoparam name="TGComponent" value="AppC::SmartCard" /> +<TGConnectingPoint num="0" id="1571" /> +<TGConnectingPoint num="1" id="1572" /> +<TGConnectingPoint num="2" id="1573" /> +<TGConnectingPoint num="3" id="1574" /> +<TGConnectingPoint num="4" id="1575" /> +<TGConnectingPoint num="5" id="1576" /> +<TGConnectingPoint num="6" id="1577" /> +<TGConnectingPoint num="7" id="1578" /> +<extraparam> +<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="1588" > +<father id="1622" num="1" /> +<cdparam x="415" y="349" /> +<sizeparam width="139" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="111" minY="0" maxY="106" /> +<infoparam name="TGComponent" value="AppC::Application" /> +<TGConnectingPoint num="0" id="1580" /> +<TGConnectingPoint num="1" id="1581" /> +<TGConnectingPoint num="2" id="1582" /> +<TGConnectingPoint num="3" id="1583" /> +<TGConnectingPoint num="4" id="1584" /> +<TGConnectingPoint num="5" id="1585" /> +<TGConnectingPoint num="6" id="1586" /> +<TGConnectingPoint num="7" id="1587" /> +<extraparam> +<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="1597" > +<father id="1622" num="2" /> +<cdparam x="396" y="258" /> +<sizeparam width="108" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="142" minY="0" maxY="106" /> +<infoparam name="TGComponent" value="AppC::TCPIP" /> +<TGConnectingPoint num="0" id="1589" /> +<TGConnectingPoint num="1" id="1590" /> +<TGConnectingPoint num="2" id="1591" /> +<TGConnectingPoint num="3" id="1592" /> +<TGConnectingPoint num="4" id="1593" /> +<TGConnectingPoint num="5" id="1594" /> +<TGConnectingPoint num="6" id="1595" /> +<TGConnectingPoint num="7" id="1596" /> +<extraparam> +<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="125" id="1623" > +<cdparam x="513" y="536" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Memory0 to Bus0" value="{info}" /> +<P1 x="514" y="527" id="1454" /> +<P2 x="514" y="488" id="1484" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="1624" > +<cdparam x="301" y="469" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from CPU1 to Bus0" value="{info}" /> +<P1 x="332" y="463" id="1550" /> +<P2 x="389" y="463" id="1481" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="1625" > +<cdparam x="773" y="479" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from CPU2 to Bus0" value="{info}" /> +<P1 x="685" y="463" id="1515" /> +<P2 x="639" y="463" id="1482" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="1626" > +<cdparam x="499" y="331" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from CPU0 to Bus0" value="{info}" /> +<P1 x="514" y="389" id="1604" /> +<P2 x="514" y="438" id="1479" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +<Modeling type="Diplodocus Methodology" nameTab="DIPLODOCUS_Methodology" > +<DiplodocusMethodologyDiagramPanel name="DIPLODOCUS_Methodology" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="6003" id="1631" > +<cdparam x="60" y="417" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Requirements" /> +<TGConnectingPoint num="0" id="1627" /> +<TGConnectingPoint num="1" id="1628" /> +<TGConnectingPoint num="2" id="1629" /> +<TGConnectingPoint num="3" id="1630" /> +</COMPONENT> + +<COMPONENT type="6006" id="1636" > +<cdparam x="600" y="100" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Com. Patterns" /> +<TGConnectingPoint num="0" id="1632" /> +<TGConnectingPoint num="1" id="1633" /> +<TGConnectingPoint num="2" id="1634" /> +<TGConnectingPoint num="3" id="1635" /> +</COMPONENT> + +<COMPONENT type="6002" id="1645" > +<cdparam x="518" y="306" /> +<sizeparam width="318" height="136" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Mapping" /> +<TGConnectingPoint num="0" id="1639" /> +<TGConnectingPoint num="1" id="1640" /> +<TGConnectingPoint num="2" id="1641" /> +<TGConnectingPoint num="3" id="1642" /> +<TGConnectingPoint num="4" id="1643" /> +<TGConnectingPoint num="5" id="1644" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="1637" > +<father id="1645" num="0" /> +<cdparam x="523" y="361" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="355" maxY="355" /> +<infoparam name="value " value="Mapping2" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="6005" id="1638" > +<father id="1645" num="1" /> +<cdparam x="523" y="346" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" /> +<infoparam name="value " value="Mapping1" /> +</SUBCOMPONENT> + +<COMPONENT type="6001" id="1652" > +<cdparam x="850" y="100" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Architecture" /> +<TGConnectingPoint num="0" id="1648" /> +<TGConnectingPoint num="1" id="1649" /> +<TGConnectingPoint num="2" id="1650" /> +<TGConnectingPoint num="3" id="1651" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="1646" > +<father id="1652" num="0" /> +<cdparam x="855" y="155" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="855" maxX="855" minY="155" maxY="155" /> +<infoparam name="value " value="Mapping2" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="6005" id="1647" > +<father id="1652" num="1" /> +<cdparam x="855" y="140" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="855" maxX="855" minY="140" maxY="140" /> +<infoparam name="value " value="Mapping1" /> +</SUBCOMPONENT> + +<COMPONENT type="6000" id="1658" > +<cdparam x="233" y="101" /> +<sizeparam width="334" height="161" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Application" /> +<TGConnectingPoint num="0" id="1654" /> +<TGConnectingPoint num="1" id="1655" /> +<TGConnectingPoint num="2" id="1656" /> +<TGConnectingPoint num="3" id="1657" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="1653" > +<father id="1658" num="0" /> +<cdparam x="238" y="141" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="355" maxX="355" minY="140" maxY="140" /> +<infoparam name="value " value="AppC" /> +</SUBCOMPONENT> + +<CONNECTOR type="6004" id="1660" > +<cdparam x="950" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="1659" /> +<P1 x="950" y="220" id="1648" /> +<P2 x="740" y="306" id="1640" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="6004" id="1662" > +<cdparam x="700" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="1661" /> +<P1 x="700" y="220" id="1632" /> +<P2 x="677" y="306" id="1641" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="6004" id="1664" > +<cdparam x="450" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="1663" /> +<P1 x="400" y="262" id="1654" /> +<P2 x="613" y="306" id="1639" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</DiplodocusMethodologyDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/ttool/src/test/resources/ui/generateccode/models/ZigBeeTutorial.xml b/ttool/src/test/resources/ui/diagram2tml/input/ZigBeeTutorial.xml similarity index 99% rename from ttool/src/test/resources/ui/generateccode/models/ZigBeeTutorial.xml rename to ttool/src/test/resources/ui/diagram2tml/input/ZigBeeTutorial.xml index ab65b34d37b0fa0253202101f22b732d2ad68a46..88b4b46794d09a5f5169b0b1669bf5bdc8ecc40d 100644 --- a/ttool/src/test/resources/ui/generateccode/models/ZigBeeTutorial.xml +++ b/ttool/src/test/resources/ui/diagram2tml/input/ZigBeeTutorial.xml @@ -6235,7 +6235,7 @@ POLLING <TGConnectingPoint num="0" id="2490" /> </COMPONENT> -<COMPONENT type="1508" id="2496" > +<!-- Issue #69 COMPONENT type="1508" id="2496" > <cdparam x="360" y="163" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6245,7 +6245,7 @@ POLLING <TGConnectingPoint num="1" id="2493" /> <TGConnectingPoint num="2" id="2494" /> <TGConnectingPoint num="3" id="2495" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2507" > <cdparam x="182" y="332" /> @@ -6911,7 +6911,7 @@ POLLING <infoparam name="guard 3" value="[ transferTerminated == true ]" /> </SUBCOMPONENT> -<COMPONENT type="1508" id="2866" > +<!-- Issue #69 COMPONENT type="1508" id="2866" > <cdparam x="279" y="127" /> <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -6921,7 +6921,7 @@ POLLING <TGConnectingPoint num="1" id="2863" /> <TGConnectingPoint num="2" id="2864" /> <TGConnectingPoint num="3" id="2865" /> -</COMPONENT> +</COMPONENT--> <COMPONENT type="1505" id="2877" > <cdparam x="101" y="296" /> diff --git a/ttool/src/test/resources/ui/generateccode/input/ZigBeeTutorial.xml b/ttool/src/test/resources/ui/generateccode/input/ZigBeeTutorial.xml new file mode 100644 index 0000000000000000000000000000000000000000..88b4b46794d09a5f5169b0b1669bf5bdc8ecc40d --- /dev/null +++ b/ttool/src/test/resources/ui/generateccode/input/ZigBeeTutorial.xml @@ -0,0 +1,15816 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="0.99-beta4"> + +<Modeling type="Diplodocus Methodology" nameTab="DIPLODOCUS_Methodology" > +<DiplodocusMethodologyDiagramPanel name="DIPLODOCUS_Methodology" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="6003" id="5" > +<cdparam x="63" y="99" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Requirements" /> +<TGConnectingPoint num="0" id="1" /> +<TGConnectingPoint num="1" id="2" /> +<TGConnectingPoint num="2" id="3" /> +<TGConnectingPoint num="3" id="4" /> +</COMPONENT> + +<COMPONENT type="6006" id="13" > +<cdparam x="600" y="100" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Com. Patterns" /> +<TGConnectingPoint num="0" id="9" /> +<TGConnectingPoint num="1" id="10" /> +<TGConnectingPoint num="2" id="11" /> +<TGConnectingPoint num="3" id="12" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="6" > +<father id="13" num="0" /> +<cdparam x="605" y="140" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="140" maxY="140" /> +<infoparam name="value " value="DMA_transfer" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="6005" id="7" > +<father id="13" num="1" /> +<cdparam x="605" y="155" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="155" maxY="155" /> +<infoparam name="value " value="Double_DMA_transfer" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="6005" id="8" > +<father id="13" num="2" /> +<cdparam x="605" y="170" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="170" maxY="170" /> +<infoparam name="value " value="CP_Memory_Copy" /> +</SUBCOMPONENT> + +<COMPONENT type="6002" id="23" > +<cdparam x="600" y="300" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Mapping" /> +<TGConnectingPoint num="0" id="17" /> +<TGConnectingPoint num="1" id="18" /> +<TGConnectingPoint num="2" id="19" /> +<TGConnectingPoint num="3" id="20" /> +<TGConnectingPoint num="4" id="21" /> +<TGConnectingPoint num="5" id="22" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="14" > +<father id="23" num="0" /> +<cdparam x="605" y="340" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" /> +<infoparam name="value " value="Mapping_0" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="6005" id="15" > +<father id="23" num="1" /> +<cdparam x="605" y="355" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="355" maxY="355" /> +<infoparam name="value " value="Mapping_1" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="6005" id="16" > +<father id="23" num="2" /> +<cdparam x="605" y="370" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="605" maxX="605" minY="370" maxY="370" /> +<infoparam name="value " value="Mapping_2" /> +</SUBCOMPONENT> + +<COMPONENT type="6001" id="29" > +<cdparam x="850" y="100" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Architecture" /> +<TGConnectingPoint num="0" id="25" /> +<TGConnectingPoint num="1" id="26" /> +<TGConnectingPoint num="2" id="27" /> +<TGConnectingPoint num="3" id="28" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="24" > +<father id="29" num="0" /> +<cdparam x="855" y="140" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="855" maxX="855" minY="140" maxY="140" /> +<infoparam name="value " value="Embb" /> +</SUBCOMPONENT> + +<COMPONENT type="6000" id="35" > +<cdparam x="350" y="100" /> +<sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="TGComponent" value="Application" /> +<TGConnectingPoint num="0" id="31" /> +<TGConnectingPoint num="1" id="32" /> +<TGConnectingPoint num="2" id="33" /> +<TGConnectingPoint num="3" id="34" /> +</COMPONENT> +<SUBCOMPONENT type="6005" id="30" > +<father id="35" num="0" /> +<cdparam x="355" y="140" /> +<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="355" maxX="355" minY="140" maxY="140" /> +<infoparam name="value " value="Zigbee_TX" /> +</SUBCOMPONENT> + +<CONNECTOR type="6004" id="37" > +<cdparam x="950" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="36" /> +<P1 x="950" y="220" id="25" /> +<P2 x="740" y="300" id="18" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="6004" id="39" > +<cdparam x="700" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="38" /> +<P1 x="700" y="220" id="9" /> +<P2 x="700" y="300" id="19" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="6004" id="41" > +<cdparam x="450" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="<<deriveReqt>>" /> +<TGConnectingPoint num="0" id="40" /> +<P1 x="450" y="220" id="31" /> +<P2 x="660" y="300" id="17" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</DiplodocusMethodologyDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Component Design" nameTab="Zigbee_TX" > +<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="0" maxX="1702" minY="0" maxY="563" channels="true" events="true" requests="true" zoom="1.0000000000000007" > +<CONNECTOR type="126" id="43" > +<cdparam x="1409" y="343" /> +<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="1397" y="380" id="772" /> +<P2 x="1446" y="258" id="125" /> +<Point x="1446" y="393" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="42" > +<father id="43" num="0" /> +<cdparam x="1446" y="393" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="44" > +<cdparam x="1383" y="381" /> +<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="1364" y="380" id="723" /> +<P2 x="1397" y="406" id="777" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="45" > +<cdparam x="1507" y="228" /> +<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="1494" y="263" id="662" /> +<P2 x="1535" y="237" id="608" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="46" > +<cdparam x="1462" y="247" /> +<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="1463" y="250" id="120" /> +<P2 x="1494" y="237" id="657" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="47" > +<cdparam x="1507" y="420" /> +<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="1494" y="423" id="643" /> +<P2 x="1536" y="397" id="591" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="50" > +<cdparam x="1409" y="471" /> +<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="1397" y="510" id="753" /> +<P2 x="1494" y="397" id="638" /> +<Point x="1432" y="523" /> +<Point x="1432" y="410" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="48" > +<father id="50" num="0" /> +<cdparam x="1432" y="523" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="49" > +<father id="50" num="1" /> +<cdparam x="1432" y="410" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="51" > +<cdparam x="1379" y="511" /> +<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="1362" y="510" id="708" /> +<P2 x="1397" y="536" id="758" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="52" > +<cdparam x="1507" y="344" /> +<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="1494" y="367" id="624" /> +<P2 x="1536" y="341" id="595" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="55" > +<cdparam x="1413" y="226" /> +<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="1400" y="249" id="887" /> +<P2 x="1494" y="341" id="619" /> +<Point x="1430" y="262" /> +<Point x="1430" y="354" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="53" > +<father id="55" num="0" /> +<cdparam x="1430" y="262" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="54" > +<father id="55" num="1" /> +<cdparam x="1430" y="354" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="56" > +<cdparam x="1388" y="262" /> +<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="1365" y="249" id="823" /> +<P2 x="1400" y="275" id="892" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="58" > +<cdparam x="1413" y="97" /> +<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="1400" y="111" id="800" /> +<P2 x="1446" y="241" id="123" /> +<Point x="1446" y="124" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="57" > +<father id="58" num="0" /> +<cdparam x="1446" y="124" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="59" > +<cdparam x="1384" y="124" /> +<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="1364" y="111" id="838" /> +<P2 x="1400" y="137" id="805" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="60" > +<cdparam x="1208" y="347" /> +<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="1186" y="401" id="690" /> +<P2 x="1220" y="375" id="721" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="62" > +<cdparam x="1133" y="246" /> +<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="1133" y="251" id="141" /> +<P2 x="1186" y="375" id="685" /> +<Point x="1133" y="388" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="61" > +<father id="62" num="0" /> +<cdparam x="1133" y="388" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="63" > +<cdparam x="1105" y="254" /> +<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="1046" y="230" id="455" /> +<P2 x="1117" y="243" id="136" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="64" > +<cdparam x="1068" y="239" /> +<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="1010" y="230" id="531" /> +<P2 x="1046" y="256" id="460" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="67" > +<cdparam x="1105" y="374" /> +<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="1046" y="363" id="563" /> +<P2 x="1186" y="249" id="849" /> +<Point x="1103" y="376" /> +<Point x="1103" y="262" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="65" > +<father id="67" num="0" /> +<cdparam x="1103" y="376" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="66" > +<father id="67" num="1" /> +<cdparam x="1103" y="262" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="68" > +<cdparam x="1065" y="372" /> +<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="1008" y="363" id="516" /> +<P2 x="1046" y="389" id="568" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="69" > +<cdparam x="1208" y="499" /> +<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="1186" y="513" id="739" /> +<P2 x="1224" y="487" id="706" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="72" > +<cdparam x="1105" y="408" /> +<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="1046" y="395" id="544" /> +<P2 x="1186" y="487" id="734" /> +<Point x="1101" y="408" /> +<Point x="1101" y="500" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="70" > +<father id="72" num="0" /> +<cdparam x="1101" y="408" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="71" > +<father id="72" num="1" /> +<cdparam x="1101" y="500" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="2489" minY="0" maxY="1569" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="73" > +<cdparam x="1065" y="404" /> +<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="1008" y="395" id="512" /> +<P2 x="1046" y="421" id="549" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="74" > +<cdparam x="907" y="352" /> +<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="838" y="400" id="479" /> +<P2 x="874" y="374" id="518" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="75" > +<cdparam x="867" y="334" /> +<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="799" y="374" id="340" /> +<P2 x="838" y="374" id="474" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="76" > +<cdparam x="840" y="380" /> +<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="756" y="374" id="382" /> +<P2 x="799" y="400" id="345" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="77" > +<cdparam x="915" y="228" /> +<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="838" y="274" id="498" /> +<P2 x="876" y="248" id="533" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="78" > +<cdparam x="867" y="229" /> +<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="799" y="248" id="359" /> +<P2 x="838" y="248" id="493" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="79" > +<cdparam x="829" y="257" /> +<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="754" y="248" id="397" /> +<P2 x="799" y="274" id="364" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="80" > +<cdparam x="669" y="349" /> +<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="555" y="399" id="432" /> +<P2 x="597" y="373" id="380" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="81" > +<cdparam x="586" y="350" /> +<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="516" y="373" id="312" /> +<P2 x="555" y="373" id="427" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="82" > +<cdparam x="550" y="379" /> +<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="470" y="373" id="267" /> +<P2 x="516" y="399" id="317" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="83" > +<cdparam x="687" y="234" /> +<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="555" y="282" id="413" /> +<P2 x="598" y="256" id="395" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="84" > +<cdparam x="586" y="233" /> +<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="516" y="256" id="293" /> +<P2 x="555" y="256" id="408" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="85" > +<cdparam x="549" y="263" /> +<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="473" y="256" id="282" /> +<P2 x="516" y="282" id="298" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="86" > +<cdparam x="364" y="356" /> +<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="275" y="394" id="230" /> +<P2 x="316" y="368" id="265" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="87" > +<cdparam x="321" y="350" /> +<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="231" y="368" id="152" /> +<P2 x="275" y="368" id="225" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="88" > +<cdparam x="200" y="373" /> +<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="187" y="368" id="173" /> +<P2 x="231" y="394" id="157" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="89" > +<cdparam x="356" y="223" /> +<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="275" y="271" id="249" /> +<P2 x="317" y="245" id="280" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="90" > +<cdparam x="314" y="221" /> +<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="231" y="245" id="197" /> +<P2 x="275" y="245" id="244" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="91" > +<cdparam x="175" y="251" /> +<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="154" y="245" id="186" /> +<P2 x="231" y="271" id="202" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="92" > +<cdparam x="1792" y="148" /> +<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="1186" y="275" id="854" /> +<P2 x="1222" y="249" id="821" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="94" > +<cdparam x="1750" y="240" /> +<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="1133" y="234" id="139" /> +<P2 x="1186" y="110" id="868" /> +<Point x="1133" y="123" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="93" > +<father id="94" num="0" /> +<cdparam x="1133" y="123" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="3161" minY="0" maxY="1161" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="126" id="95" > +<cdparam x="1792" y="8" /> +<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="1186" y="136" id="873" /> +<P2 x="1220" y="110" id="836" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="96" > +<cdparam x="280" y="67" /> +<sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="Connector between ports" /> +<P1 x="1657" y="318" id="593" /> +<P2 x="1562" y="278" id="606" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="97" > +<cdparam x="390" y="97" /> +<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="1333" y="181" id="819" /> +<P2 x="1257" y="145" id="834" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="98" > +<cdparam x="390" y="507" /> +<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="1335" y="458" id="704" /> +<P2 x="1249" y="424" id="719" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="99" > +<cdparam x="1161" y="396" /> +<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="989" y="321" id="514" /> +<P2 x="912" y="285" id="529" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="100" > +<cdparam x="1160" y="500" /> +<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="729" y="327" id="378" /> +<P2 x="639" y="286" id="393" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="101" > +<cdparam x="755" y="498" /> +<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="442" y="319" id="263" /> +<P2 x="350" y="277" id="278" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="102" > +<cdparam x="217" y="495" /> +<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="108" y="320" id="171" /> +<P2 x="53" y="276" id="184" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="301" id="119" > +<cdparam x="18" y="45" /> +<sizeparam width="237" height="51" minWidth="60" minHeight="23" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="UML Note" value="In this model THE PARAMETER SIZE +IS NOT MODIFIED according to the +operations performed by the +processing tasks +" /> +<TGConnectingPoint num="0" id="103" /> +<TGConnectingPoint num="1" id="104" /> +<TGConnectingPoint num="2" id="105" /> +<TGConnectingPoint num="3" id="106" /> +<TGConnectingPoint num="4" id="107" /> +<TGConnectingPoint num="5" id="108" /> +<TGConnectingPoint num="6" id="109" /> +<TGConnectingPoint num="7" id="110" /> +<TGConnectingPoint num="8" id="111" /> +<TGConnectingPoint num="9" id="112" /> +<TGConnectingPoint num="10" id="113" /> +<TGConnectingPoint num="11" id="114" /> +<TGConnectingPoint num="12" id="115" /> +<TGConnectingPoint num="13" id="116" /> +<TGConnectingPoint num="14" id="117" /> +<TGConnectingPoint num="15" id="118" /> +<extraparam> +<Line value="In this model THE PARAMETER SIZE" /> +<Line value="IS NOT MODIFIED according to the" /> +<Line value="operations performed by the" /> +<Line value="processing tasks" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1208" id="135" > +<cdparam x="1441" y="239" /> +<sizeparam width="22" height="22" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite port" value="J" /> +<TGConnectingPoint num="0" id="120" /> +<TGConnectingPoint num="1" id="121" /> +<TGConnectingPoint num="2" id="122" /> +<TGConnectingPoint num="3" id="123" /> +<TGConnectingPoint num="4" id="124" /> +<TGConnectingPoint num="5" id="125" /> +<TGConnectingPoint num="6" id="126" /> +<TGConnectingPoint num="7" id="127" /> +<TGConnectingPoint num="8" id="128" /> +<TGConnectingPoint num="9" id="129" /> +<TGConnectingPoint num="10" id="130" /> +<TGConnectingPoint num="11" id="131" /> +<TGConnectingPoint num="12" id="132" /> +<TGConnectingPoint num="13" id="133" /> +<TGConnectingPoint num="14" id="134" /> +</COMPONENT> + +<COMPONENT type="1207" id="151" > +<cdparam x="1117" y="232" /> +<sizeparam width="22" height="22" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite port" value="F" /> +<TGConnectingPoint num="0" id="136" /> +<TGConnectingPoint num="1" id="137" /> +<TGConnectingPoint num="2" id="138" /> +<TGConnectingPoint num="3" id="139" /> +<TGConnectingPoint num="4" id="140" /> +<TGConnectingPoint num="5" id="141" /> +<TGConnectingPoint num="6" id="142" /> +<TGConnectingPoint num="7" id="143" /> +<TGConnectingPoint num="8" id="144" /> +<TGConnectingPoint num="9" id="145" /> +<TGConnectingPoint num="10" id="146" /> +<TGConnectingPoint num="11" id="147" /> +<TGConnectingPoint num="12" id="148" /> +<TGConnectingPoint num="13" id="149" /> +<TGConnectingPoint num="14" id="150" /> +</COMPONENT> + +<COMPONENT type="1200" id="224" > +<cdparam x="0" y="164" /> +<sizeparam width="231" height="254" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="Source" /> +<TGConnectingPoint num="0" id="216" /> +<TGConnectingPoint num="1" id="217" /> +<TGConnectingPoint num="2" id="218" /> +<TGConnectingPoint num="3" id="219" /> +<TGConnectingPoint num="4" id="220" /> +<TGConnectingPoint num="5" id="221" /> +<TGConnectingPoint num="6" id="222" /> +<TGConnectingPoint num="7" id="223" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="170" > +<father id="224" num="0" /> +<cdparam x="218" y="368" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="218" minY="-13" maxY="241" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="152" /> +<TGConnectingPoint num="1" id="153" /> +<TGConnectingPoint num="2" id="154" /> +<TGConnectingPoint num="3" id="155" /> +<TGConnectingPoint num="4" id="156" /> +<TGConnectingPoint num="5" id="157" /> +<TGConnectingPoint num="6" id="158" /> +<TGConnectingPoint num="7" id="159" /> +<TGConnectingPoint num="8" id="160" /> +<TGConnectingPoint num="9" id="161" /> +<TGConnectingPoint num="10" id="162" /> +<TGConnectingPoint num="11" id="163" /> +<TGConnectingPoint num="12" id="164" /> +<TGConnectingPoint num="13" id="165" /> +<TGConnectingPoint num="14" id="166" /> +<TGConnectingPoint num="15" id="167" /> +<TGConnectingPoint num="16" id="168" /> +<TGConnectingPoint num="17" id="169" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="183" > +<father id="224" num="1" /> +<cdparam x="2" y="333" /> +<sizeparam width="185" height="74" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="46" minY="0" maxY="180" /> +<infoparam name="Primitive component" value="F_Source" /> +<TGConnectingPoint num="0" id="175" /> +<TGConnectingPoint num="1" id="176" /> +<TGConnectingPoint num="2" id="177" /> +<TGConnectingPoint num="3" id="178" /> +<TGConnectingPoint num="4" id="179" /> +<TGConnectingPoint num="5" id="180" /> +<TGConnectingPoint num="6" id="181" /> +<TGConnectingPoint num="7" id="182" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="127" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="172" > +<father id="183" num="0" /> +<cdparam x="95" y="320" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" /> +<infoparam name="Primitive port" value="Request source_req" /> +<TGConnectingPoint num="0" id="171" /> +<extraparam> +<Prop commName="source_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="174" > +<father id="183" num="1" /> +<cdparam x="174" y="368" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" /> +<infoparam name="Primitive port" value="Event Source_evt_out" /> +<TGConnectingPoint num="0" id="173" /> +<extraparam> +<Prop commName="Source_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="196" > +<father id="224" num="2" /> +<cdparam x="18" y="208" /> +<sizeparam width="136" height="81" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="95" minY="0" maxY="173" /> +<infoparam name="Primitive component" value="X_Source" /> +<TGConnectingPoint num="0" id="188" /> +<TGConnectingPoint num="1" id="189" /> +<TGConnectingPoint num="2" id="190" /> +<TGConnectingPoint num="3" id="191" /> +<TGConnectingPoint num="4" id="192" /> +<TGConnectingPoint num="5" id="193" /> +<TGConnectingPoint num="6" id="194" /> +<TGConnectingPoint num="7" id="195" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="185" > +<father id="196" num="0" /> +<cdparam x="40" y="276" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" /> +<infoparam name="Primitive port" value="Request source_req" /> +<TGConnectingPoint num="0" id="184" /> +<extraparam> +<Prop commName="source_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="187" > +<father id="196" num="1" /> +<cdparam x="141" y="245" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" /> +<infoparam name="Primitive port" value="Channel Source_ch_out" /> +<TGConnectingPoint num="0" id="186" /> +<extraparam> +<Prop commName="Source_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="true" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="Source_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="215" > +<father id="224" num="3" /> +<cdparam x="218" y="245" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="218" minY="-13" maxY="241" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="197" /> +<TGConnectingPoint num="1" id="198" /> +<TGConnectingPoint num="2" id="199" /> +<TGConnectingPoint num="3" id="200" /> +<TGConnectingPoint num="4" id="201" /> +<TGConnectingPoint num="5" id="202" /> +<TGConnectingPoint num="6" id="203" /> +<TGConnectingPoint num="7" id="204" /> +<TGConnectingPoint num="8" id="205" /> +<TGConnectingPoint num="9" id="206" /> +<TGConnectingPoint num="10" id="207" /> +<TGConnectingPoint num="11" id="208" /> +<TGConnectingPoint num="12" id="209" /> +<TGConnectingPoint num="13" id="210" /> +<TGConnectingPoint num="14" id="211" /> +<TGConnectingPoint num="15" id="212" /> +<TGConnectingPoint num="16" id="213" /> +<TGConnectingPoint num="17" id="214" /> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="339" > +<cdparam x="275" y="165" /> +<sizeparam width="241" height="259" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="331" /> +<TGConnectingPoint num="1" id="332" /> +<TGConnectingPoint num="2" id="333" /> +<TGConnectingPoint num="3" id="334" /> +<TGConnectingPoint num="4" id="335" /> +<TGConnectingPoint num="5" id="336" /> +<TGConnectingPoint num="6" id="337" /> +<TGConnectingPoint num="7" id="338" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="243" > +<father id="339" num="0" /> +<cdparam x="262" y="368" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="225" /> +<TGConnectingPoint num="1" id="226" /> +<TGConnectingPoint num="2" id="227" /> +<TGConnectingPoint num="3" id="228" /> +<TGConnectingPoint num="4" id="229" /> +<TGConnectingPoint num="5" id="230" /> +<TGConnectingPoint num="6" id="231" /> +<TGConnectingPoint num="7" id="232" /> +<TGConnectingPoint num="8" id="233" /> +<TGConnectingPoint num="9" id="234" /> +<TGConnectingPoint num="10" id="235" /> +<TGConnectingPoint num="11" id="236" /> +<TGConnectingPoint num="12" id="237" /> +<TGConnectingPoint num="13" id="238" /> +<TGConnectingPoint num="14" id="239" /> +<TGConnectingPoint num="15" id="240" /> +<TGConnectingPoint num="16" id="241" /> +<TGConnectingPoint num="17" id="242" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="262" > +<father id="339" num="1" /> +<cdparam x="262" y="245" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="244" /> +<TGConnectingPoint num="1" id="245" /> +<TGConnectingPoint num="2" id="246" /> +<TGConnectingPoint num="3" id="247" /> +<TGConnectingPoint num="4" id="248" /> +<TGConnectingPoint num="5" id="249" /> +<TGConnectingPoint num="6" id="250" /> +<TGConnectingPoint num="7" id="251" /> +<TGConnectingPoint num="8" id="252" /> +<TGConnectingPoint num="9" id="253" /> +<TGConnectingPoint num="10" id="254" /> +<TGConnectingPoint num="11" id="255" /> +<TGConnectingPoint num="12" id="256" /> +<TGConnectingPoint num="13" id="257" /> +<TGConnectingPoint num="14" id="258" /> +<TGConnectingPoint num="15" id="259" /> +<TGConnectingPoint num="16" id="260" /> +<TGConnectingPoint num="17" id="261" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="277" > +<father id="339" num="2" /> +<cdparam x="316" y="332" /> +<sizeparam width="154" height="81" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="87" minY="0" maxY="178" /> +<infoparam name="Primitive component" value="F_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="269" /> +<TGConnectingPoint num="1" id="270" /> +<TGConnectingPoint num="2" id="271" /> +<TGConnectingPoint num="3" id="272" /> +<TGConnectingPoint num="4" id="273" /> +<TGConnectingPoint num="5" id="274" /> +<TGConnectingPoint num="6" id="275" /> +<TGConnectingPoint num="7" id="276" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="264" > +<father id="277" num="0" /> +<cdparam x="429" y="319" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" /> +<infoparam name="Primitive port" value="Request bit2chip_req" /> +<TGConnectingPoint num="0" id="263" /> +<extraparam> +<Prop commName="bit2chip_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="266" > +<father id="277" num="1" /> +<cdparam x="303" y="368" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" /> +<infoparam name="Primitive port" value="Event bit2symbol_evt_in" /> +<TGConnectingPoint num="0" id="265" /> +<extraparam> +<Prop commName="bit2symbol_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="268" > +<father id="277" num="2" /> +<cdparam x="457" y="373" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" /> +<infoparam name="Primitive port" value="Event bit2symbol_evt_out" /> +<TGConnectingPoint num="0" id="267" /> +<extraparam> +<Prop commName="bit2symbol_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="292" > +<father id="339" num="3" /> +<cdparam x="317" y="208" /> +<sizeparam width="156" height="82" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="85" minY="0" maxY="177" /> +<infoparam name="Primitive component" value="X_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="284" /> +<TGConnectingPoint num="1" id="285" /> +<TGConnectingPoint num="2" id="286" /> +<TGConnectingPoint num="3" id="287" /> +<TGConnectingPoint num="4" id="288" /> +<TGConnectingPoint num="5" id="289" /> +<TGConnectingPoint num="6" id="290" /> +<TGConnectingPoint num="7" id="291" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="279" > +<father id="292" num="0" /> +<cdparam x="337" y="277" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" /> +<infoparam name="Primitive port" value="Request bit2chip_req" /> +<TGConnectingPoint num="0" id="278" /> +<extraparam> +<Prop commName="bit2chip_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="281" > +<father id="292" num="1" /> +<cdparam x="304" y="245" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" /> +<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_in" /> +<TGConnectingPoint num="0" id="280" /> +<extraparam> +<Prop commName="symbol2ChipSeq_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="283" > +<father id="292" num="2" /> +<cdparam x="460" y="256" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" /> +<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_out" /> +<TGConnectingPoint num="0" id="282" /> +<extraparam> +<Prop commName="symbol2ChipSeq_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="311" > +<father id="339" num="4" /> +<cdparam x="503" y="256" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="293" /> +<TGConnectingPoint num="1" id="294" /> +<TGConnectingPoint num="2" id="295" /> +<TGConnectingPoint num="3" id="296" /> +<TGConnectingPoint num="4" id="297" /> +<TGConnectingPoint num="5" id="298" /> +<TGConnectingPoint num="6" id="299" /> +<TGConnectingPoint num="7" id="300" /> +<TGConnectingPoint num="8" id="301" /> +<TGConnectingPoint num="9" id="302" /> +<TGConnectingPoint num="10" id="303" /> +<TGConnectingPoint num="11" id="304" /> +<TGConnectingPoint num="12" id="305" /> +<TGConnectingPoint num="13" id="306" /> +<TGConnectingPoint num="14" id="307" /> +<TGConnectingPoint num="15" id="308" /> +<TGConnectingPoint num="16" id="309" /> +<TGConnectingPoint num="17" id="310" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="330" > +<father id="339" num="5" /> +<cdparam x="503" y="373" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="312" /> +<TGConnectingPoint num="1" id="313" /> +<TGConnectingPoint num="2" id="314" /> +<TGConnectingPoint num="3" id="315" /> +<TGConnectingPoint num="4" id="316" /> +<TGConnectingPoint num="5" id="317" /> +<TGConnectingPoint num="6" id="318" /> +<TGConnectingPoint num="7" id="319" /> +<TGConnectingPoint num="8" id="320" /> +<TGConnectingPoint num="9" id="321" /> +<TGConnectingPoint num="10" id="322" /> +<TGConnectingPoint num="11" id="323" /> +<TGConnectingPoint num="12" id="324" /> +<TGConnectingPoint num="13" id="325" /> +<TGConnectingPoint num="14" id="326" /> +<TGConnectingPoint num="15" id="327" /> +<TGConnectingPoint num="16" id="328" /> +<TGConnectingPoint num="17" id="329" /> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="454" > +<cdparam x="555" y="168" /> +<sizeparam width="244" height="262" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="Chip2Octet" /> +<TGConnectingPoint num="0" id="446" /> +<TGConnectingPoint num="1" id="447" /> +<TGConnectingPoint num="2" id="448" /> +<TGConnectingPoint num="3" id="449" /> +<TGConnectingPoint num="4" id="450" /> +<TGConnectingPoint num="5" id="451" /> +<TGConnectingPoint num="6" id="452" /> +<TGConnectingPoint num="7" id="453" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="358" > +<father id="454" num="0" /> +<cdparam x="786" y="374" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="340" /> +<TGConnectingPoint num="1" id="341" /> +<TGConnectingPoint num="2" id="342" /> +<TGConnectingPoint num="3" id="343" /> +<TGConnectingPoint num="4" id="344" /> +<TGConnectingPoint num="5" id="345" /> +<TGConnectingPoint num="6" id="346" /> +<TGConnectingPoint num="7" id="347" /> +<TGConnectingPoint num="8" id="348" /> +<TGConnectingPoint num="9" id="349" /> +<TGConnectingPoint num="10" id="350" /> +<TGConnectingPoint num="11" id="351" /> +<TGConnectingPoint num="12" id="352" /> +<TGConnectingPoint num="13" id="353" /> +<TGConnectingPoint num="14" id="354" /> +<TGConnectingPoint num="15" id="355" /> +<TGConnectingPoint num="16" id="356" /> +<TGConnectingPoint num="17" id="357" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="377" > +<father id="454" num="1" /> +<cdparam x="786" y="248" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="359" /> +<TGConnectingPoint num="1" id="360" /> +<TGConnectingPoint num="2" id="361" /> +<TGConnectingPoint num="3" id="362" /> +<TGConnectingPoint num="4" id="363" /> +<TGConnectingPoint num="5" id="364" /> +<TGConnectingPoint num="6" id="365" /> +<TGConnectingPoint num="7" id="366" /> +<TGConnectingPoint num="8" id="367" /> +<TGConnectingPoint num="9" id="368" /> +<TGConnectingPoint num="10" id="369" /> +<TGConnectingPoint num="11" id="370" /> +<TGConnectingPoint num="12" id="371" /> +<TGConnectingPoint num="13" id="372" /> +<TGConnectingPoint num="14" id="373" /> +<TGConnectingPoint num="15" id="374" /> +<TGConnectingPoint num="16" id="375" /> +<TGConnectingPoint num="17" id="376" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="392" > +<father id="454" num="2" /> +<cdparam x="597" y="340" /> +<sizeparam width="159" height="73" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="85" minY="0" maxY="189" /> +<infoparam name="Primitive component" value="F_Chip2Octet" /> +<TGConnectingPoint num="0" id="384" /> +<TGConnectingPoint num="1" id="385" /> +<TGConnectingPoint num="2" id="386" /> +<TGConnectingPoint num="3" id="387" /> +<TGConnectingPoint num="4" id="388" /> +<TGConnectingPoint num="5" id="389" /> +<TGConnectingPoint num="6" id="390" /> +<TGConnectingPoint num="7" id="391" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="379" > +<father id="392" num="0" /> +<cdparam x="716" y="327" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" /> +<infoparam name="Primitive port" value="Request chip2octet_req" /> +<TGConnectingPoint num="0" id="378" /> +<extraparam> +<Prop commName="chip2octet_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="381" > +<father id="392" num="1" /> +<cdparam x="584" y="373" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" /> +<infoparam name="Primitive port" value="Event chip2octet_evt_in" /> +<TGConnectingPoint num="0" id="380" /> +<extraparam> +<Prop commName="chip2octet_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="383" > +<father id="392" num="2" /> +<cdparam x="743" y="374" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" /> +<infoparam name="Primitive port" value="Event chip2octet_evt_out" /> +<TGConnectingPoint num="0" id="382" /> +<extraparam> +<Prop commName="chip2octet_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="407" > +<father id="454" num="3" /> +<cdparam x="598" y="214" /> +<sizeparam width="156" height="85" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="88" minY="0" maxY="177" /> +<infoparam name="Primitive component" value="X_Chip2Octet" /> +<TGConnectingPoint num="0" id="399" /> +<TGConnectingPoint num="1" id="400" /> +<TGConnectingPoint num="2" id="401" /> +<TGConnectingPoint num="3" id="402" /> +<TGConnectingPoint num="4" id="403" /> +<TGConnectingPoint num="5" id="404" /> +<TGConnectingPoint num="6" id="405" /> +<TGConnectingPoint num="7" id="406" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="394" > +<father id="407" num="0" /> +<cdparam x="626" y="286" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" /> +<infoparam name="Primitive port" value="Request chip2octet_req" /> +<TGConnectingPoint num="0" id="393" /> +<extraparam> +<Prop commName="chip2octet_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="396" > +<father id="407" num="1" /> +<cdparam x="585" y="256" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" /> +<infoparam name="Primitive port" value="Channel chip2octet_ch_in" /> +<TGConnectingPoint num="0" id="395" /> +<extraparam> +<Prop commName="chip2octet_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="398" > +<father id="407" num="2" /> +<cdparam x="741" y="248" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" /> +<infoparam name="Primitive port" value="Channel chip2octet_ch_out" /> +<TGConnectingPoint num="0" id="397" /> +<extraparam> +<Prop commName="chip2octet_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="426" > +<father id="454" num="4" /> +<cdparam x="542" y="256" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="408" /> +<TGConnectingPoint num="1" id="409" /> +<TGConnectingPoint num="2" id="410" /> +<TGConnectingPoint num="3" id="411" /> +<TGConnectingPoint num="4" id="412" /> +<TGConnectingPoint num="5" id="413" /> +<TGConnectingPoint num="6" id="414" /> +<TGConnectingPoint num="7" id="415" /> +<TGConnectingPoint num="8" id="416" /> +<TGConnectingPoint num="9" id="417" /> +<TGConnectingPoint num="10" id="418" /> +<TGConnectingPoint num="11" id="419" /> +<TGConnectingPoint num="12" id="420" /> +<TGConnectingPoint num="13" id="421" /> +<TGConnectingPoint num="14" id="422" /> +<TGConnectingPoint num="15" id="423" /> +<TGConnectingPoint num="16" id="424" /> +<TGConnectingPoint num="17" id="425" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="445" > +<father id="454" num="5" /> +<cdparam x="542" y="373" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="427" /> +<TGConnectingPoint num="1" id="428" /> +<TGConnectingPoint num="2" id="429" /> +<TGConnectingPoint num="3" id="430" /> +<TGConnectingPoint num="4" id="431" /> +<TGConnectingPoint num="5" id="432" /> +<TGConnectingPoint num="6" id="433" /> +<TGConnectingPoint num="7" id="434" /> +<TGConnectingPoint num="8" id="435" /> +<TGConnectingPoint num="9" id="436" /> +<TGConnectingPoint num="10" id="437" /> +<TGConnectingPoint num="11" id="438" /> +<TGConnectingPoint num="12" id="439" /> +<TGConnectingPoint num="13" id="440" /> +<TGConnectingPoint num="14" id="441" /> +<TGConnectingPoint num="15" id="442" /> +<TGConnectingPoint num="16" id="443" /> +<TGConnectingPoint num="17" id="444" /> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="590" > +<cdparam x="838" y="154" /> +<sizeparam width="208" height="281" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="CWL" /> +<TGConnectingPoint num="0" id="582" /> +<TGConnectingPoint num="1" id="583" /> +<TGConnectingPoint num="2" id="584" /> +<TGConnectingPoint num="3" id="585" /> +<TGConnectingPoint num="4" id="586" /> +<TGConnectingPoint num="5" id="587" /> +<TGConnectingPoint num="6" id="588" /> +<TGConnectingPoint num="7" id="589" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="473" > +<father id="590" num="0" /> +<cdparam x="1033" y="230" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="455" /> +<TGConnectingPoint num="1" id="456" /> +<TGConnectingPoint num="2" id="457" /> +<TGConnectingPoint num="3" id="458" /> +<TGConnectingPoint num="4" id="459" /> +<TGConnectingPoint num="5" id="460" /> +<TGConnectingPoint num="6" id="461" /> +<TGConnectingPoint num="7" id="462" /> +<TGConnectingPoint num="8" id="463" /> +<TGConnectingPoint num="9" id="464" /> +<TGConnectingPoint num="10" id="465" /> +<TGConnectingPoint num="11" id="466" /> +<TGConnectingPoint num="12" id="467" /> +<TGConnectingPoint num="13" id="468" /> +<TGConnectingPoint num="14" id="469" /> +<TGConnectingPoint num="15" id="470" /> +<TGConnectingPoint num="16" id="471" /> +<TGConnectingPoint num="17" id="472" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="492" > +<father id="590" num="1" /> +<cdparam x="825" y="374" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="474" /> +<TGConnectingPoint num="1" id="475" /> +<TGConnectingPoint num="2" id="476" /> +<TGConnectingPoint num="3" id="477" /> +<TGConnectingPoint num="4" id="478" /> +<TGConnectingPoint num="5" id="479" /> +<TGConnectingPoint num="6" id="480" /> +<TGConnectingPoint num="7" id="481" /> +<TGConnectingPoint num="8" id="482" /> +<TGConnectingPoint num="9" id="483" /> +<TGConnectingPoint num="10" id="484" /> +<TGConnectingPoint num="11" id="485" /> +<TGConnectingPoint num="12" id="486" /> +<TGConnectingPoint num="13" id="487" /> +<TGConnectingPoint num="14" id="488" /> +<TGConnectingPoint num="15" id="489" /> +<TGConnectingPoint num="16" id="490" /> +<TGConnectingPoint num="17" id="491" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="511" > +<father id="590" num="2" /> +<cdparam x="825" y="248" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="493" /> +<TGConnectingPoint num="1" id="494" /> +<TGConnectingPoint num="2" id="495" /> +<TGConnectingPoint num="3" id="496" /> +<TGConnectingPoint num="4" id="497" /> +<TGConnectingPoint num="5" id="498" /> +<TGConnectingPoint num="6" id="499" /> +<TGConnectingPoint num="7" id="500" /> +<TGConnectingPoint num="8" id="501" /> +<TGConnectingPoint num="9" id="502" /> +<TGConnectingPoint num="10" id="503" /> +<TGConnectingPoint num="11" id="504" /> +<TGConnectingPoint num="12" id="505" /> +<TGConnectingPoint num="13" id="506" /> +<TGConnectingPoint num="14" id="507" /> +<TGConnectingPoint num="15" id="508" /> +<TGConnectingPoint num="16" id="509" /> +<TGConnectingPoint num="17" id="510" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="528" > +<father id="590" num="3" /> +<cdparam x="874" y="334" /> +<sizeparam width="134" height="92" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="74" minY="0" maxY="189" /> +<infoparam name="Primitive component" value="F_CWL" /> +<TGConnectingPoint num="0" id="520" /> +<TGConnectingPoint num="1" id="521" /> +<TGConnectingPoint num="2" id="522" /> +<TGConnectingPoint num="3" id="523" /> +<TGConnectingPoint num="4" id="524" /> +<TGConnectingPoint num="5" id="525" /> +<TGConnectingPoint num="6" id="526" /> +<TGConnectingPoint num="7" id="527" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="513" > +<father id="528" num="0" /> +<cdparam x="995" y="395" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" /> +<infoparam name="Primitive port" value="Event cwl_evt_out_1" /> +<TGConnectingPoint num="0" id="512" /> +<extraparam> +<Prop commName="cwl_evt_out_1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="515" > +<father id="528" num="1" /> +<cdparam x="976" y="321" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" /> +<infoparam name="Primitive port" value="Request cwl_req" /> +<TGConnectingPoint num="0" id="514" /> +<extraparam> +<Prop commName="cwl_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="517" > +<father id="528" num="2" /> +<cdparam x="995" y="363" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" /> +<infoparam name="Primitive port" value="Event cwl_evt_out" /> +<TGConnectingPoint num="0" id="516" /> +<extraparam> +<Prop commName="cwl_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="519" > +<father id="528" num="3" /> +<cdparam x="861" y="374" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" /> +<infoparam name="Primitive port" value="Event cwl_evt_in" /> +<TGConnectingPoint num="0" id="518" /> +<extraparam> +<Prop commName="cwl_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="543" > +<father id="590" num="4" /> +<cdparam x="876" y="202" /> +<sizeparam width="134" height="96" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="74" minY="0" maxY="185" /> +<infoparam name="Primitive component" value="X_CWL" /> +<TGConnectingPoint num="0" id="535" /> +<TGConnectingPoint num="1" id="536" /> +<TGConnectingPoint num="2" id="537" /> +<TGConnectingPoint num="3" id="538" /> +<TGConnectingPoint num="4" id="539" /> +<TGConnectingPoint num="5" id="540" /> +<TGConnectingPoint num="6" id="541" /> +<TGConnectingPoint num="7" id="542" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="530" > +<father id="543" num="0" /> +<cdparam x="899" y="285" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" /> +<infoparam name="Primitive port" value="Request cwl_req" /> +<TGConnectingPoint num="0" id="529" /> +<extraparam> +<Prop commName="cwl_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="532" > +<father id="543" num="1" /> +<cdparam x="997" y="230" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" /> +<infoparam name="Primitive port" value="Channel cwl_ch_out" /> +<TGConnectingPoint num="0" id="531" /> +<extraparam> +<Prop commName="cwl_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="534" > +<father id="543" num="2" /> +<cdparam x="863" y="248" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" /> +<infoparam name="Primitive port" value="Channel cwl_ch_in" /> +<TGConnectingPoint num="0" id="533" /> +<extraparam> +<Prop commName="cwl_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="562" > +<father id="590" num="5" /> +<cdparam x="1033" y="395" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="544" /> +<TGConnectingPoint num="1" id="545" /> +<TGConnectingPoint num="2" id="546" /> +<TGConnectingPoint num="3" id="547" /> +<TGConnectingPoint num="4" id="548" /> +<TGConnectingPoint num="5" id="549" /> +<TGConnectingPoint num="6" id="550" /> +<TGConnectingPoint num="7" id="551" /> +<TGConnectingPoint num="8" id="552" /> +<TGConnectingPoint num="9" id="553" /> +<TGConnectingPoint num="10" id="554" /> +<TGConnectingPoint num="11" id="555" /> +<TGConnectingPoint num="12" id="556" /> +<TGConnectingPoint num="13" id="557" /> +<TGConnectingPoint num="14" id="558" /> +<TGConnectingPoint num="15" id="559" /> +<TGConnectingPoint num="16" id="560" /> +<TGConnectingPoint num="17" id="561" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="581" > +<father id="590" num="6" /> +<cdparam x="1033" y="363" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="563" /> +<TGConnectingPoint num="1" id="564" /> +<TGConnectingPoint num="2" id="565" /> +<TGConnectingPoint num="3" id="566" /> +<TGConnectingPoint num="4" id="567" /> +<TGConnectingPoint num="5" id="568" /> +<TGConnectingPoint num="6" id="569" /> +<TGConnectingPoint num="7" id="570" /> +<TGConnectingPoint num="8" id="571" /> +<TGConnectingPoint num="9" id="572" /> +<TGConnectingPoint num="10" id="573" /> +<TGConnectingPoint num="11" id="574" /> +<TGConnectingPoint num="12" id="575" /> +<TGConnectingPoint num="13" id="576" /> +<TGConnectingPoint num="14" id="577" /> +<TGConnectingPoint num="15" id="578" /> +<TGConnectingPoint num="16" id="579" /> +<TGConnectingPoint num="17" id="580" /> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="684" > +<cdparam x="1494" y="155" /> +<sizeparam width="208" height="282" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="Sink" /> +<TGConnectingPoint num="0" id="676" /> +<TGConnectingPoint num="1" id="677" /> +<TGConnectingPoint num="2" id="678" /> +<TGConnectingPoint num="3" id="679" /> +<TGConnectingPoint num="4" id="680" /> +<TGConnectingPoint num="5" id="681" /> +<TGConnectingPoint num="6" id="682" /> +<TGConnectingPoint num="7" id="683" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1202" id="605" > +<father id="684" num="0" /> +<cdparam x="1536" y="331" /> +<sizeparam width="153" height="94" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="55" minY="0" maxY="188" /> +<infoparam name="Primitive component" value="F_Sink" /> +<TGConnectingPoint num="0" id="597" /> +<TGConnectingPoint num="1" id="598" /> +<TGConnectingPoint num="2" id="599" /> +<TGConnectingPoint num="3" id="600" /> +<TGConnectingPoint num="4" id="601" /> +<TGConnectingPoint num="5" id="602" /> +<TGConnectingPoint num="6" id="603" /> +<TGConnectingPoint num="7" id="604" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="size_1" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="592" > +<father id="605" num="0" /> +<cdparam x="1523" y="397" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" /> +<infoparam name="Primitive port" value="Event sink_evt_in_1" /> +<TGConnectingPoint num="0" id="591" /> +<extraparam> +<Prop commName="sink_evt_in_1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="594" > +<father id="605" num="1" /> +<cdparam x="1644" y="318" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" /> +<infoparam name="Primitive port" value="Request sink_req" /> +<TGConnectingPoint num="0" id="593" /> +<extraparam> +<Prop commName="sink_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="596" > +<father id="605" num="2" /> +<cdparam x="1523" y="341" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" /> +<infoparam name="Primitive port" value="Event sink_evt_in" /> +<TGConnectingPoint num="0" id="595" /> +<extraparam> +<Prop commName="sink_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="618" > +<father id="684" num="1" /> +<cdparam x="1535" y="205" /> +<sizeparam width="148" height="86" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="60" minY="0" maxY="196" /> +<infoparam name="Primitive component" value="X_Sink" /> +<TGConnectingPoint num="0" id="610" /> +<TGConnectingPoint num="1" id="611" /> +<TGConnectingPoint num="2" id="612" /> +<TGConnectingPoint num="3" id="613" /> +<TGConnectingPoint num="4" id="614" /> +<TGConnectingPoint num="5" id="615" /> +<TGConnectingPoint num="6" id="616" /> +<TGConnectingPoint num="7" id="617" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="607" > +<father id="618" num="0" /> +<cdparam x="1549" y="278" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" /> +<infoparam name="Primitive port" value="Request sink_req" /> +<TGConnectingPoint num="0" id="606" /> +<extraparam> +<Prop commName="sink_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="609" > +<father id="618" num="1" /> +<cdparam x="1522" y="237" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" /> +<infoparam name="Primitive port" value="Channel sink_ch_in" /> +<TGConnectingPoint num="0" id="608" /> +<extraparam> +<Prop commName="sink_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="true" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="sink_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="637" > +<father id="684" num="2" /> +<cdparam x="1481" y="341" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="619" /> +<TGConnectingPoint num="1" id="620" /> +<TGConnectingPoint num="2" id="621" /> +<TGConnectingPoint num="3" id="622" /> +<TGConnectingPoint num="4" id="623" /> +<TGConnectingPoint num="5" id="624" /> +<TGConnectingPoint num="6" id="625" /> +<TGConnectingPoint num="7" id="626" /> +<TGConnectingPoint num="8" id="627" /> +<TGConnectingPoint num="9" id="628" /> +<TGConnectingPoint num="10" id="629" /> +<TGConnectingPoint num="11" id="630" /> +<TGConnectingPoint num="12" id="631" /> +<TGConnectingPoint num="13" id="632" /> +<TGConnectingPoint num="14" id="633" /> +<TGConnectingPoint num="15" id="634" /> +<TGConnectingPoint num="16" id="635" /> +<TGConnectingPoint num="17" id="636" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="656" > +<father id="684" num="3" /> +<cdparam x="1481" y="397" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="638" /> +<TGConnectingPoint num="1" id="639" /> +<TGConnectingPoint num="2" id="640" /> +<TGConnectingPoint num="3" id="641" /> +<TGConnectingPoint num="4" id="642" /> +<TGConnectingPoint num="5" id="643" /> +<TGConnectingPoint num="6" id="644" /> +<TGConnectingPoint num="7" id="645" /> +<TGConnectingPoint num="8" id="646" /> +<TGConnectingPoint num="9" id="647" /> +<TGConnectingPoint num="10" id="648" /> +<TGConnectingPoint num="11" id="649" /> +<TGConnectingPoint num="12" id="650" /> +<TGConnectingPoint num="13" id="651" /> +<TGConnectingPoint num="14" id="652" /> +<TGConnectingPoint num="15" id="653" /> +<TGConnectingPoint num="16" id="654" /> +<TGConnectingPoint num="17" id="655" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="675" > +<father id="684" num="4" /> +<cdparam x="1481" y="237" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="657" /> +<TGConnectingPoint num="1" id="658" /> +<TGConnectingPoint num="2" id="659" /> +<TGConnectingPoint num="3" id="660" /> +<TGConnectingPoint num="4" id="661" /> +<TGConnectingPoint num="5" id="662" /> +<TGConnectingPoint num="6" id="663" /> +<TGConnectingPoint num="7" id="664" /> +<TGConnectingPoint num="8" id="665" /> +<TGConnectingPoint num="9" id="666" /> +<TGConnectingPoint num="10" id="667" /> +<TGConnectingPoint num="11" id="668" /> +<TGConnectingPoint num="12" id="669" /> +<TGConnectingPoint num="13" id="670" /> +<TGConnectingPoint num="14" id="671" /> +<TGConnectingPoint num="15" id="672" /> +<TGConnectingPoint num="16" id="673" /> +<TGConnectingPoint num="17" id="674" /> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="799" > +<cdparam x="1186" y="309" /> +<sizeparam width="211" height="254" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="CWP_Q" /> +<TGConnectingPoint num="0" id="791" /> +<TGConnectingPoint num="1" id="792" /> +<TGConnectingPoint num="2" id="793" /> +<TGConnectingPoint num="3" id="794" /> +<TGConnectingPoint num="4" id="795" /> +<TGConnectingPoint num="5" id="796" /> +<TGConnectingPoint num="6" id="797" /> +<TGConnectingPoint num="7" id="798" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="703" > +<father id="799" num="0" /> +<cdparam x="1173" y="375" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="685" /> +<TGConnectingPoint num="1" id="686" /> +<TGConnectingPoint num="2" id="687" /> +<TGConnectingPoint num="3" id="688" /> +<TGConnectingPoint num="4" id="689" /> +<TGConnectingPoint num="5" id="690" /> +<TGConnectingPoint num="6" id="691" /> +<TGConnectingPoint num="7" id="692" /> +<TGConnectingPoint num="8" id="693" /> +<TGConnectingPoint num="9" id="694" /> +<TGConnectingPoint num="10" id="695" /> +<TGConnectingPoint num="11" id="696" /> +<TGConnectingPoint num="12" id="697" /> +<TGConnectingPoint num="13" id="698" /> +<TGConnectingPoint num="14" id="699" /> +<TGConnectingPoint num="15" id="700" /> +<TGConnectingPoint num="16" id="701" /> +<TGConnectingPoint num="17" id="702" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="718" > +<father id="799" num="1" /> +<cdparam x="1224" y="471" /> +<sizeparam width="138" height="82" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="73" minY="0" maxY="172" /> +<infoparam name="Primitive component" value="F_CWP_Q" /> +<TGConnectingPoint num="0" id="710" /> +<TGConnectingPoint num="1" id="711" /> +<TGConnectingPoint num="2" id="712" /> +<TGConnectingPoint num="3" id="713" /> +<TGConnectingPoint num="4" id="714" /> +<TGConnectingPoint num="5" id="715" /> +<TGConnectingPoint num="6" id="716" /> +<TGConnectingPoint num="7" id="717" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="705" > +<father id="718" num="0" /> +<cdparam x="1322" y="458" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" /> +<infoparam name="Primitive port" value="Request cwpQ_req" /> +<TGConnectingPoint num="0" id="704" /> +<extraparam> +<Prop commName="cwpQ_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="707" > +<father id="718" num="1" /> +<cdparam x="1211" y="487" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" /> +<infoparam name="Primitive port" value="Event cwpQ_evt_in" /> +<TGConnectingPoint num="0" id="706" /> +<extraparam> +<Prop commName="cwpQ_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="709" > +<father id="718" num="2" /> +<cdparam x="1349" y="510" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" /> +<infoparam name="Primitive port" value="Event cwpQ_evt_out" /> +<TGConnectingPoint num="0" id="708" /> +<extraparam> +<Prop commName="cwpQ_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="733" > +<father id="799" num="2" /> +<cdparam x="1220" y="353" /> +<sizeparam width="144" height="84" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="67" minY="0" maxY="170" /> +<infoparam name="Primitive component" value="X_CWP_Q" /> +<TGConnectingPoint num="0" id="725" /> +<TGConnectingPoint num="1" id="726" /> +<TGConnectingPoint num="2" id="727" /> +<TGConnectingPoint num="3" id="728" /> +<TGConnectingPoint num="4" id="729" /> +<TGConnectingPoint num="5" id="730" /> +<TGConnectingPoint num="6" id="731" /> +<TGConnectingPoint num="7" id="732" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="720" > +<father id="733" num="0" /> +<cdparam x="1236" y="424" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" /> +<infoparam name="Primitive port" value="Request cwpQ_req" /> +<TGConnectingPoint num="0" id="719" /> +<extraparam> +<Prop commName="cwpQ_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="722" > +<father id="733" num="1" /> +<cdparam x="1207" y="375" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" /> +<infoparam name="Primitive port" value="Channel cwpQ_ch_in" /> +<TGConnectingPoint num="0" id="721" /> +<extraparam> +<Prop commName="cwpQ_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="724" > +<father id="733" num="2" /> +<cdparam x="1351" y="380" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" /> +<infoparam name="Primitive port" value="Channel cwpQ_ch_out" /> +<TGConnectingPoint num="0" id="723" /> +<extraparam> +<Prop commName="cwpQ_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="752" > +<father id="799" num="3" /> +<cdparam x="1173" y="487" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="734" /> +<TGConnectingPoint num="1" id="735" /> +<TGConnectingPoint num="2" id="736" /> +<TGConnectingPoint num="3" id="737" /> +<TGConnectingPoint num="4" id="738" /> +<TGConnectingPoint num="5" id="739" /> +<TGConnectingPoint num="6" id="740" /> +<TGConnectingPoint num="7" id="741" /> +<TGConnectingPoint num="8" id="742" /> +<TGConnectingPoint num="9" id="743" /> +<TGConnectingPoint num="10" id="744" /> +<TGConnectingPoint num="11" id="745" /> +<TGConnectingPoint num="12" id="746" /> +<TGConnectingPoint num="13" id="747" /> +<TGConnectingPoint num="14" id="748" /> +<TGConnectingPoint num="15" id="749" /> +<TGConnectingPoint num="16" id="750" /> +<TGConnectingPoint num="17" id="751" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="771" > +<father id="799" num="4" /> +<cdparam x="1384" y="510" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="753" /> +<TGConnectingPoint num="1" id="754" /> +<TGConnectingPoint num="2" id="755" /> +<TGConnectingPoint num="3" id="756" /> +<TGConnectingPoint num="4" id="757" /> +<TGConnectingPoint num="5" id="758" /> +<TGConnectingPoint num="6" id="759" /> +<TGConnectingPoint num="7" id="760" /> +<TGConnectingPoint num="8" id="761" /> +<TGConnectingPoint num="9" id="762" /> +<TGConnectingPoint num="10" id="763" /> +<TGConnectingPoint num="11" id="764" /> +<TGConnectingPoint num="12" id="765" /> +<TGConnectingPoint num="13" id="766" /> +<TGConnectingPoint num="14" id="767" /> +<TGConnectingPoint num="15" id="768" /> +<TGConnectingPoint num="16" id="769" /> +<TGConnectingPoint num="17" id="770" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="790" > +<father id="799" num="5" /> +<cdparam x="1384" y="380" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="772" /> +<TGConnectingPoint num="1" id="773" /> +<TGConnectingPoint num="2" id="774" /> +<TGConnectingPoint num="3" id="775" /> +<TGConnectingPoint num="4" id="776" /> +<TGConnectingPoint num="5" id="777" /> +<TGConnectingPoint num="6" id="778" /> +<TGConnectingPoint num="7" id="779" /> +<TGConnectingPoint num="8" id="780" /> +<TGConnectingPoint num="9" id="781" /> +<TGConnectingPoint num="10" id="782" /> +<TGConnectingPoint num="11" id="783" /> +<TGConnectingPoint num="12" id="784" /> +<TGConnectingPoint num="13" id="785" /> +<TGConnectingPoint num="14" id="786" /> +<TGConnectingPoint num="15" id="787" /> +<TGConnectingPoint num="16" id="788" /> +<TGConnectingPoint num="17" id="789" /> +</SUBCOMPONENT> + +<COMPONENT type="1200" id="914" > +<cdparam x="1186" y="17" /> +<sizeparam width="214" height="280" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="1703" minY="0" maxY="564" /> +<infoparam name="Composite component" value="CWP_I" /> +<TGConnectingPoint num="0" id="906" /> +<TGConnectingPoint num="1" id="907" /> +<TGConnectingPoint num="2" id="908" /> +<TGConnectingPoint num="3" id="909" /> +<TGConnectingPoint num="4" id="910" /> +<TGConnectingPoint num="5" id="911" /> +<TGConnectingPoint num="6" id="912" /> +<TGConnectingPoint num="7" id="913" /> +<extraparam> +<info hiddeni="false" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1201" id="818" > +<father id="914" num="0" /> +<cdparam x="1387" y="111" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="800" /> +<TGConnectingPoint num="1" id="801" /> +<TGConnectingPoint num="2" id="802" /> +<TGConnectingPoint num="3" id="803" /> +<TGConnectingPoint num="4" id="804" /> +<TGConnectingPoint num="5" id="805" /> +<TGConnectingPoint num="6" id="806" /> +<TGConnectingPoint num="7" id="807" /> +<TGConnectingPoint num="8" id="808" /> +<TGConnectingPoint num="9" id="809" /> +<TGConnectingPoint num="10" id="810" /> +<TGConnectingPoint num="11" id="811" /> +<TGConnectingPoint num="12" id="812" /> +<TGConnectingPoint num="13" id="813" /> +<TGConnectingPoint num="14" id="814" /> +<TGConnectingPoint num="15" id="815" /> +<TGConnectingPoint num="16" id="816" /> +<TGConnectingPoint num="17" id="817" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="833" > +<father id="914" num="1" /> +<cdparam x="1222" y="194" /> +<sizeparam width="143" height="86" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="71" minY="0" maxY="194" /> +<infoparam name="Primitive component" value="F_CWP_I" /> +<TGConnectingPoint num="0" id="825" /> +<TGConnectingPoint num="1" id="826" /> +<TGConnectingPoint num="2" id="827" /> +<TGConnectingPoint num="3" id="828" /> +<TGConnectingPoint num="4" id="829" /> +<TGConnectingPoint num="5" id="830" /> +<TGConnectingPoint num="6" id="831" /> +<TGConnectingPoint num="7" id="832" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="820" > +<father id="833" num="0" /> +<cdparam x="1320" y="181" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" /> +<infoparam name="Primitive port" value="Request cwpI_req" /> +<TGConnectingPoint num="0" id="819" /> +<extraparam> +<Prop commName="cwpI_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="822" > +<father id="833" num="1" /> +<cdparam x="1209" y="249" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" /> +<infoparam name="Primitive port" value="Event cwpI_evt_in" /> +<TGConnectingPoint num="0" id="821" /> +<extraparam> +<Prop commName="cwpI_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="824" > +<father id="833" num="2" /> +<cdparam x="1352" y="249" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" /> +<infoparam name="Primitive port" value="Event cwpI_evt_out" /> +<TGConnectingPoint num="0" id="823" /> +<extraparam> +<Prop commName="cwpI_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1202" id="848" > +<father id="914" num="2" /> +<cdparam x="1220" y="62" /> +<sizeparam width="144" height="96" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="70" minY="0" maxY="184" /> +<infoparam name="Primitive component" value="X_CWP_I" /> +<TGConnectingPoint num="0" id="840" /> +<TGConnectingPoint num="1" id="841" /> +<TGConnectingPoint num="2" id="842" /> +<TGConnectingPoint num="3" id="843" /> +<TGConnectingPoint num="4" id="844" /> +<TGConnectingPoint num="5" id="845" /> +<TGConnectingPoint num="6" id="846" /> +<TGConnectingPoint num="7" id="847" /> +<extraparam> +<Data isAttacker="No" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="835" > +<father id="848" num="0" /> +<cdparam x="1244" y="145" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" /> +<infoparam name="Primitive port" value="Request cwpI_req" /> +<TGConnectingPoint num="0" id="834" /> +<extraparam> +<Prop commName="cwpI_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="1" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="837" > +<father id="848" num="1" /> +<cdparam x="1207" y="110" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" /> +<infoparam name="Primitive port" value="Channel cwpI_ch_in" /> +<TGConnectingPoint num="0" id="836" /> +<extraparam> +<Prop commName="cwpI_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<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="839" > +<father id="848" num="2" /> +<cdparam x="1351" y="111" /> +<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" /> +<infoparam name="Primitive port" value="Channel cwpI_ch_out" /> +<TGConnectingPoint num="0" id="838" /> +<extraparam> +<Prop commName="cwpI_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" referenceReq="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="867" > +<father id="914" num="3" /> +<cdparam x="1173" y="249" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="849" /> +<TGConnectingPoint num="1" id="850" /> +<TGConnectingPoint num="2" id="851" /> +<TGConnectingPoint num="3" id="852" /> +<TGConnectingPoint num="4" id="853" /> +<TGConnectingPoint num="5" id="854" /> +<TGConnectingPoint num="6" id="855" /> +<TGConnectingPoint num="7" id="856" /> +<TGConnectingPoint num="8" id="857" /> +<TGConnectingPoint num="9" id="858" /> +<TGConnectingPoint num="10" id="859" /> +<TGConnectingPoint num="11" id="860" /> +<TGConnectingPoint num="12" id="861" /> +<TGConnectingPoint num="13" id="862" /> +<TGConnectingPoint num="14" id="863" /> +<TGConnectingPoint num="15" id="864" /> +<TGConnectingPoint num="16" id="865" /> +<TGConnectingPoint num="17" id="866" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="886" > +<father id="914" num="4" /> +<cdparam x="1173" y="110" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="868" /> +<TGConnectingPoint num="1" id="869" /> +<TGConnectingPoint num="2" id="870" /> +<TGConnectingPoint num="3" id="871" /> +<TGConnectingPoint num="4" id="872" /> +<TGConnectingPoint num="5" id="873" /> +<TGConnectingPoint num="6" id="874" /> +<TGConnectingPoint num="7" id="875" /> +<TGConnectingPoint num="8" id="876" /> +<TGConnectingPoint num="9" id="877" /> +<TGConnectingPoint num="10" id="878" /> +<TGConnectingPoint num="11" id="879" /> +<TGConnectingPoint num="12" id="880" /> +<TGConnectingPoint num="13" id="881" /> +<TGConnectingPoint num="14" id="882" /> +<TGConnectingPoint num="15" id="883" /> +<TGConnectingPoint num="16" id="884" /> +<TGConnectingPoint num="17" id="885" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="1201" id="905" > +<father id="914" num="5" /> +<cdparam x="1387" y="249" /> +<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" /> +<infoparam name="Composite port" value="" /> +<TGConnectingPoint num="0" id="887" /> +<TGConnectingPoint num="1" id="888" /> +<TGConnectingPoint num="2" id="889" /> +<TGConnectingPoint num="3" id="890" /> +<TGConnectingPoint num="4" id="891" /> +<TGConnectingPoint num="5" id="892" /> +<TGConnectingPoint num="6" id="893" /> +<TGConnectingPoint num="7" id="894" /> +<TGConnectingPoint num="8" id="895" /> +<TGConnectingPoint num="9" id="896" /> +<TGConnectingPoint num="10" id="897" /> +<TGConnectingPoint num="11" id="898" /> +<TGConnectingPoint num="12" id="899" /> +<TGConnectingPoint num="13" id="900" /> +<TGConnectingPoint num="14" id="901" /> +<TGConnectingPoint num="15" id="902" /> +<TGConnectingPoint num="16" id="903" /> +<TGConnectingPoint num="17" id="904" /> +</SUBCOMPONENT> + + +</TMLComponentTaskDiagramPanel> + +<TMLActivityDiagramPanel name="X_Source" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1013" id="918" > +<cdparam x="402" y="189" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="916" /> +<TGConnectingPoint num="1" id="917" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="915" > +<father id="918" num="0" /> +<cdparam x="417" y="209" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1001" id="920" > +<cdparam x="397" y="342" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="919" /> +</COMPONENT> + +<COMPONENT type="1006" id="923" > +<cdparam x="340" y="270" /> +<sizeparam width="135" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="Source_ch_out(size)" /> +<TGConnectingPoint num="0" id="921" /> +<TGConnectingPoint num="1" id="922" /> +<accessibility /> +<extraparam> +<Data channelName="Source_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1034" id="926" > +<cdparam x="351" y="113" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="924" /> +<TGConnectingPoint num="1" id="925" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="928" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="927" /> +</COMPONENT> + +<CONNECTOR type="115" id="929" > +<cdparam x="462" y="222" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="224" id="917" /> +<P2 x="407" y="265" id="921" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="930" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="70" id="927" /> +<P2 x="407" y="108" id="924" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="931" > +<cdparam x="402" y="256" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="295" id="922" /> +<P2 x="407" y="337" id="919" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="932" > +<cdparam x="407" y="155" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="138" id="925" /> +<P2 x="407" y="184" id="916" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_Source" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1001" id="934" > +<cdparam x="397" y="338" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="933" /> +</COMPONENT> + +<COMPONENT type="1008" id="937" > +<cdparam x="338" y="262" /> +<sizeparam width="139" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="Source_evt_out(size)" /> +<TGConnectingPoint num="0" id="935" /> +<TGConnectingPoint num="1" id="936" /> +<extraparam> +<Data eventName="Source_evt_out" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="940" > +<cdparam x="351" y="188" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="source_req(size)" /> +<TGConnectingPoint num="0" id="938" /> +<TGConnectingPoint num="1" id="939" /> +<extraparam> +<Data requestName="source_req" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1011" id="943" > +<cdparam x="370" y="116" /> +<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="action state" value="size = 127" /> +<TGConnectingPoint num="0" id="941" /> +<TGConnectingPoint num="1" id="942" /> +</COMPONENT> + +<COMPONENT type="1000" id="945" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="944" /> +</COMPONENT> + +<CONNECTOR type="115" id="946" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="70" id="944" /> +<P2 x="407" y="111" id="941" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="947" > +<cdparam x="407" y="141" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="141" id="942" /> +<P2 x="407" y="183" id="938" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="948" > +<cdparam x="407" y="213" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="213" id="939" /> +<P2 x="407" y="257" id="935" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="949" > +<cdparam x="407" y="287" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="287" id="936" /> +<P2 x="407" y="333" id="933" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="X_Symbol2ChipSeq" minX="10" maxX="495" minY="10" maxY="467" > +<COMPONENT type="1021" id="953" > +<cdparam x="393" y="289" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" /> +<infoparam name="execC" value="null" /> +<TGConnectingPoint num="0" id="951" /> +<TGConnectingPoint num="1" id="952" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="950" > +<father id="953" num="0" /> +<cdparam x="408" y="309" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="956" > +<cdparam x="305" y="213" /> +<sizeparam width="187" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" /> +<infoparam name="read channel" value="symbol2ChipSeq_ch_in(size) " /> +<TGConnectingPoint num="0" id="954" /> +<TGConnectingPoint num="1" id="955" /> +<extraparam> +<Data channelName="symbol2ChipSeq_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="958" > +<cdparam x="388" y="447" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="957" /> +</COMPONENT> + +<COMPONENT type="1006" id="961" > +<cdparam x="302" y="375" /> +<sizeparam width="193" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" /> +<infoparam name="write channel" value="symbol2ChipSeq_ch_out(size)" /> +<TGConnectingPoint num="0" id="959" /> +<TGConnectingPoint num="1" id="960" /> +<extraparam> +<Data channelName="symbol2ChipSeq_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1034" id="964" > +<cdparam x="342" y="137" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="962" /> +<TGConnectingPoint num="1" id="963" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="966" > +<cdparam x="391" y="74" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="495" minY="10" maxY="467" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="965" /> +</COMPONENT> + +<CONNECTOR type="115" id="967" > +<cdparam x="541" y="169" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="398" y="238" id="955" /> +<P2 x="398" y="284" id="951" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="968" > +<cdparam x="453" y="327" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="398" y="324" id="952" /> +<P2 x="398" y="370" id="959" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="969" > +<cdparam x="398" y="94" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="398" y="94" id="965" /> +<P2 x="398" y="132" id="962" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="970" > +<cdparam x="393" y="361" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="398" y="400" id="960" /> +<P2 x="398" y="442" id="957" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="971" > +<cdparam x="398" y="179" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="398" y="162" id="963" /> +<P2 x="398" y="208" id="954" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_Symbol2ChipSeq" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1010" id="974" > +<cdparam x="317" y="132" /> +<sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="bit2symbol_evt_in(size) " /> +<TGConnectingPoint num="0" id="972" /> +<TGConnectingPoint num="1" id="973" /> +<extraparam> +<Data eventName="bit2symbol_evt_in" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="976" > +<cdparam x="385" y="354" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="975" /> +</COMPONENT> + +<COMPONENT type="1008" id="979" > +<cdparam x="314" y="278" /> +<sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="bit2symbol_evt_out(size)" /> +<TGConnectingPoint num="0" id="977" /> +<TGConnectingPoint num="1" id="978" /> +<accessibility /> +<extraparam> +<Data eventName="bit2symbol_evt_out" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="982" > +<cdparam x="335" y="204" /> +<sizeparam width="120" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="bit2chip_req(size)" /> +<TGConnectingPoint num="0" id="980" /> +<TGConnectingPoint num="1" id="981" /> +<extraparam> +<Data requestName="bit2chip_req" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="984" > +<cdparam x="388" y="66" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="983" /> +</COMPONENT> + +<CONNECTOR type="115" id="985" > +<cdparam x="395" y="229" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="395" y="229" id="981" /> +<P2 x="395" y="273" id="977" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="986" > +<cdparam x="395" y="303" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="395" y="303" id="978" /> +<P2 x="395" y="349" id="975" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="987" > +<cdparam x="395" y="86" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="395" y="86" id="983" /> +<P2 x="395" y="127" id="972" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="988" > +<cdparam x="435" 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="395" y="157" id="973" /> +<P2 x="395" y="199" id="980" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="X_Chip2Octet" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1021" id="992" > +<cdparam x="377" y="300" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="execC" value="null" /> +<TGConnectingPoint num="0" id="990" /> +<TGConnectingPoint num="1" id="991" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="989" > +<father id="992" num="0" /> +<cdparam x="392" y="320" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="995" > +<cdparam x="306" y="215" /> +<sizeparam width="152" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="chip2octet_ch_in(size) " /> +<TGConnectingPoint num="0" id="993" /> +<TGConnectingPoint num="1" id="994" /> +<extraparam> +<Data channelName="chip2octet_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="997" > +<cdparam x="372" y="449" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="996" /> +</COMPONENT> + +<COMPONENT type="1006" id="1000" > +<cdparam x="303" y="377" /> +<sizeparam width="158" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="chip2octet_ch_out(size)" /> +<TGConnectingPoint num="0" id="998" /> +<TGConnectingPoint num="1" id="999" /> +<extraparam> +<Data channelName="chip2octet_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1034" id="1003" > +<cdparam x="326" y="139" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="1001" /> +<TGConnectingPoint num="1" id="1002" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1005" > +<cdparam x="375" y="76" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1004" /> +</COMPONENT> + +<CONNECTOR type="115" id="1006" > +<cdparam x="525" y="171" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="382" y="240" id="994" /> +<P2 x="382" y="295" id="990" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1007" > +<cdparam x="437" y="329" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="382" y="335" id="991" /> +<P2 x="382" y="372" id="998" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1008" > +<cdparam x="382" y="96" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="382" y="96" id="1004" /> +<P2 x="382" y="134" id="1001" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1009" > +<cdparam x="377" y="363" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="382" y="402" id="999" /> +<P2 x="382" y="444" id="996" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1010" > +<cdparam x="382" 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="382" y="164" id="1002" /> +<P2 x="382" y="210" id="993" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_Chip2Octet" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1010" id="1013" > +<cdparam x="333" y="128" /> +<sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="chip2octet_evt_in(size) " /> +<TGConnectingPoint num="0" id="1011" /> +<TGConnectingPoint num="1" id="1012" /> +<extraparam> +<Data eventName="chip2octet_evt_in" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1015" > +<cdparam x="401" y="350" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1014" /> +</COMPONENT> + +<COMPONENT type="1008" id="1018" > +<cdparam x="330" y="274" /> +<sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="chip2octet_evt_out(size)" /> +<TGConnectingPoint num="0" id="1016" /> +<TGConnectingPoint num="1" id="1017" /> +<extraparam> +<Data eventName="chip2octet_evt_out" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="1021" > +<cdparam x="343" y="200" /> +<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="chip2octet_req(size)" /> +<TGConnectingPoint num="0" id="1019" /> +<TGConnectingPoint num="1" id="1020" /> +<extraparam> +<Data requestName="chip2octet_req" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1023" > +<cdparam x="404" y="62" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1022" /> +</COMPONENT> + +<CONNECTOR type="115" id="1024" > +<cdparam x="411" y="225" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="411" y="225" id="1020" /> +<P2 x="411" y="269" id="1016" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1025" > +<cdparam x="411" y="299" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="411" y="299" id="1017" /> +<P2 x="411" y="345" id="1014" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1026" > +<cdparam x="411" y="82" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="411" y="82" id="1022" /> +<P2 x="411" y="123" id="1011" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1027" > +<cdparam x="451" y="145" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="411" y="153" id="1012" /> +<P2 x="411" y="195" id="1019" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="X_CWL" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1013" id="1031" > +<cdparam x="402" y="277" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="1029" /> +<TGConnectingPoint num="1" id="1030" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="1028" > +<father id="1031" num="0" /> +<cdparam x="417" y="297" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="1034" > +<cdparam x="355" y="196" /> +<sizeparam width="104" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="cwl_ch_in(size) " /> +<TGConnectingPoint num="0" id="1032" /> +<TGConnectingPoint num="1" id="1033" /> +<extraparam> +<Data channelName="cwl_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1036" > +<cdparam x="397" y="430" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1035" /> +</COMPONENT> + +<COMPONENT type="1006" id="1039" > +<cdparam x="352" y="358" /> +<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="cwl_ch_out(size)" /> +<TGConnectingPoint num="0" id="1037" /> +<TGConnectingPoint num="1" id="1038" /> +<extraparam> +<Data channelName="cwl_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1034" id="1042" > +<cdparam x="351" y="120" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="1040" /> +<TGConnectingPoint num="1" id="1041" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1044" > +<cdparam x="400" y="57" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1043" /> +</COMPONENT> + +<CONNECTOR type="115" id="1045" > +<cdparam x="550" y="152" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="221" id="1033" /> +<P2 x="407" y="272" id="1029" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1046" > +<cdparam x="462" y="310" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="312" id="1030" /> +<P2 x="407" y="353" id="1037" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1047" > +<cdparam x="407" y="77" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="77" id="1043" /> +<P2 x="407" y="115" id="1040" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1048" > +<cdparam x="402" y="344" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="383" id="1038" /> +<P2 x="407" y="425" id="1035" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1049" > +<cdparam x="407" y="162" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="145" id="1041" /> +<P2 x="407" y="191" id="1032" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_CWL" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1010" id="1052" > +<cdparam x="360" y="134" /> +<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="cwl_evt_in(size) " /> +<TGConnectingPoint num="0" id="1050" /> +<TGConnectingPoint num="1" id="1051" /> +<extraparam> +<Data eventName="cwl_evt_in" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1054" > +<cdparam x="407" y="397" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1053" /> +</COMPONENT> + +<COMPONENT type="1007" id="1057" > +<cdparam x="370" y="206" /> +<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="cwl_req(size)" /> +<TGConnectingPoint num="0" id="1055" /> +<TGConnectingPoint num="1" id="1056" /> +<extraparam> +<Data requestName="cwl_req" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1059" > +<cdparam x="407" y="68" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1058" /> +</COMPONENT> + +<COMPONENT type="1008" id="1062" > +<cdparam x="352" y="333" /> +<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="cwl_evt_out_1(size)" /> +<TGConnectingPoint num="0" id="1060" /> +<TGConnectingPoint num="1" id="1061" /> +<extraparam> +<Data eventName="cwl_evt_out_1" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="1065" > +<cdparam x="357" y="280" /> +<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="cwl_evt_out(size)" /> +<TGConnectingPoint num="0" id="1063" /> +<TGConnectingPoint num="1" id="1064" /> +<extraparam> +<Data eventName="cwl_evt_out" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="115" id="1066" > +<cdparam x="416" y="358" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="416" y="358" id="1061" /> +<P2 x="417" y="392" id="1053" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1067" > +<cdparam x="414" y="231" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="414" y="231" id="1056" /> +<P2 x="414" y="275" id="1063" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1068" > +<cdparam x="414" y="305" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="414" y="305" id="1064" /> +<P2 x="416" y="328" id="1060" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1069" > +<cdparam x="414" y="88" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="414" y="88" id="1058" /> +<P2 x="414" y="129" id="1050" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1070" > +<cdparam x="454" y="151" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="414" y="159" id="1051" /> +<P2 x="414" y="201" id="1055" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="X_Sink" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1013" id="1074" > +<cdparam x="445" y="298" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="1072" /> +<TGConnectingPoint num="1" id="1073" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="1071" > +<father id="1074" num="0" /> +<cdparam x="460" y="318" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="1077" > +<cdparam x="395" y="217" /> +<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="sink_ch_in(size) " /> +<TGConnectingPoint num="0" id="1075" /> +<TGConnectingPoint num="1" id="1076" /> +<extraparam> +<Data channelName="sink_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1079" > +<cdparam x="440" y="384" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1078" /> +</COMPONENT> + +<COMPONENT type="1034" id="1082" > +<cdparam x="394" y="141" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="1080" /> +<TGConnectingPoint num="1" id="1081" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1084" > +<cdparam x="443" y="78" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1083" /> +</COMPONENT> + +<CONNECTOR type="115" id="1085" > +<cdparam x="450" y="333" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="450" y="333" id="1073" /> +<P2 x="450" y="379" id="1078" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1086" > +<cdparam x="593" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="450" y="242" id="1076" /> +<P2 x="450" y="293" id="1072" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1087" > +<cdparam x="450" y="98" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="450" y="98" id="1083" /> +<P2 x="450" y="136" id="1080" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1088" > +<cdparam x="450" 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="450" y="166" id="1081" /> +<P2 x="450" y="212" id="1075" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_Sink" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1001" id="1090" > +<cdparam x="396" y="355" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1089" /> +</COMPONENT> + +<COMPONENT type="1007" id="1093" > +<cdparam x="331" y="265" /> +<sizeparam width="150" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="sink_req(size + size_1)" /> +<TGConnectingPoint num="0" id="1091" /> +<TGConnectingPoint num="1" id="1092" /> +<extraparam> +<Data requestName="sink_req" nbOfParams="5" /> +<Param index="0" value="size + size_1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1095" > +<cdparam x="400" y="73" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1094" /> +</COMPONENT> + +<COMPONENT type="1010" id="1098" > +<cdparam x="336" y="187" /> +<sizeparam width="142" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="sink_evt_in_1(size_1) " /> +<TGConnectingPoint num="0" id="1096" /> +<TGConnectingPoint num="1" id="1097" /> +<extraparam> +<Data eventName="sink_evt_in_1" nbOfParams="5" /> +<Param index="0" value="size_1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="1101" > +<cdparam x="350" y="139" /> +<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="sink_evt_in(size) " /> +<TGConnectingPoint num="0" id="1099" /> +<TGConnectingPoint num="1" id="1100" /> +<extraparam> +<Data eventName="sink_evt_in" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="115" id="1102" > +<cdparam x="407" y="212" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="212" id="1097" /> +<P2 x="406" y="260" id="1091" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1103" > +<cdparam x="406" y="290" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="406" y="290" id="1092" /> +<P2 x="406" y="350" id="1089" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1104" > +<cdparam x="407" y="93" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="93" id="1094" /> +<P2 x="407" y="134" id="1099" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1105" > +<cdparam x="447" y="156" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="407" y="164" id="1100" /> +<P2 x="407" y="182" id="1096" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="X_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1013" id="1109" > +<cdparam x="365" y="275" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="1107" /> +<TGConnectingPoint num="1" id="1108" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="1106" > +<father id="1109" num="0" /> +<cdparam x="380" y="295" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="1112" > +<cdparam x="311" y="194" /> +<sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="cwpQ_ch_in(size) " /> +<TGConnectingPoint num="0" id="1110" /> +<TGConnectingPoint num="1" id="1111" /> +<extraparam> +<Data channelName="cwpQ_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1114" > +<cdparam x="360" y="428" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1113" /> +</COMPONENT> + +<COMPONENT type="1006" id="1117" > +<cdparam x="308" y="356" /> +<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="cwpQ_ch_out(size)" /> +<TGConnectingPoint num="0" id="1115" /> +<TGConnectingPoint num="1" id="1116" /> +<extraparam> +<Data channelName="cwpQ_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1034" id="1120" > +<cdparam x="314" y="118" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="1118" /> +<TGConnectingPoint num="1" id="1119" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1122" > +<cdparam x="363" y="55" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1121" /> +</COMPONENT> + +<CONNECTOR type="115" id="1123" > +<cdparam x="513" y="150" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="370" y="219" id="1111" /> +<P2 x="370" y="270" id="1107" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1124" > +<cdparam x="425" y="308" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="370" y="310" id="1108" /> +<P2 x="370" y="351" id="1115" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1125" > +<cdparam x="370" y="75" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="370" y="75" id="1121" /> +<P2 x="370" y="113" id="1118" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1126" > +<cdparam x="365" y="342" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="370" y="381" id="1116" /> +<P2 x="370" y="423" id="1113" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1127" > +<cdparam x="370" y="160" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="370" y="143" id="1119" /> +<P2 x="370" y="189" id="1110" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1010" id="1130" > +<cdparam x="342" y="117" /> +<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="cwpQ_evt_in(size) " /> +<TGConnectingPoint num="0" id="1128" /> +<TGConnectingPoint num="1" id="1129" /> +<extraparam> +<Data eventName="cwpQ_evt_in" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1132" > +<cdparam x="393" y="339" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1131" /> +</COMPONENT> + +<COMPONENT type="1008" id="1135" > +<cdparam x="339" y="263" /> +<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="cwpQ_evt_out(size)" /> +<TGConnectingPoint num="0" id="1133" /> +<TGConnectingPoint num="1" id="1134" /> +<extraparam> +<Data eventName="cwpQ_evt_out" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="1138" > +<cdparam x="352" y="189" /> +<sizeparam width="103" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="cwpQ_req(size)" /> +<TGConnectingPoint num="0" id="1136" /> +<TGConnectingPoint num="1" id="1137" /> +<extraparam> +<Data requestName="cwpQ_req" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1140" > +<cdparam x="396" y="51" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1139" /> +</COMPONENT> + +<CONNECTOR type="115" id="1141" > +<cdparam x="403" y="214" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="403" y="214" id="1137" /> +<P2 x="403" y="258" id="1133" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1142" > +<cdparam x="403" y="288" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="403" y="288" id="1134" /> +<P2 x="403" y="334" id="1131" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1143" > +<cdparam x="403" y="71" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="403" y="71" id="1139" /> +<P2 x="403" y="112" id="1128" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1144" > +<cdparam x="443" y="134" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="403" y="142" id="1129" /> +<P2 x="403" y="184" id="1136" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="X_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1013" id="1148" > +<cdparam x="369" y="290" /> +<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="execI" value="null" /> +<TGConnectingPoint num="0" id="1146" /> +<TGConnectingPoint num="1" id="1147" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="1145" > +<father id="1148" num="0" /> +<cdparam x="384" y="310" /> +<sizeparam width="23" height="15" minWidth="10" minHeight="0" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="1151" > +<cdparam x="318" y="209" /> +<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read channel" value="cwpI_ch_in(size) " /> +<TGConnectingPoint num="0" id="1149" /> +<TGConnectingPoint num="1" id="1150" /> +<extraparam> +<Data channelName="cwpI_ch_in" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1153" > +<cdparam x="364" y="443" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1152" /> +</COMPONENT> + +<COMPONENT type="1006" id="1156" > +<cdparam x="315" y="371" /> +<sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="write channel" value="cwpI_ch_out(size)" /> +<TGConnectingPoint num="0" id="1154" /> +<TGConnectingPoint num="1" id="1155" /> +<extraparam> +<Data channelName="cwpI_ch_out" nbOfSamples="size" secPattern="" isAttacker="No" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1034" id="1159" > +<cdparam x="318" y="133" /> +<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="read args" value="getReqArg (size)" /> +<TGConnectingPoint num="0" id="1157" /> +<TGConnectingPoint num="1" id="1158" /> +<extraparam> +<Data nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1161" > +<cdparam x="367" y="70" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1160" /> +</COMPONENT> + +<CONNECTOR type="115" id="1162" > +<cdparam x="517" y="165" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="374" y="234" id="1150" /> +<P2 x="374" y="285" id="1146" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1163" > +<cdparam x="429" y="323" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="374" y="325" id="1147" /> +<P2 x="374" y="366" id="1154" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1164" > +<cdparam x="374" y="90" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="374" y="90" id="1160" /> +<P2 x="374" y="128" id="1157" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1165" > +<cdparam x="369" y="357" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="374" y="396" id="1155" /> +<P2 x="374" y="438" id="1152" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1166" > +<cdparam x="374" y="175" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="374" y="158" id="1158" /> +<P2 x="374" y="204" id="1149" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="F_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1010" id="1169" > +<cdparam x="321" y="132" /> +<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="wait event" value="cwpI_evt_in(size) " /> +<TGConnectingPoint num="0" id="1167" /> +<TGConnectingPoint num="1" id="1168" /> +<extraparam> +<Data eventName="cwpI_evt_in" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="1171" > +<cdparam x="369" y="354" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1170" /> +</COMPONENT> + +<COMPONENT type="1008" id="1174" > +<cdparam x="318" y="278" /> +<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send event" value="cwpI_evt_out(size)" /> +<TGConnectingPoint num="0" id="1172" /> +<TGConnectingPoint num="1" id="1173" /> +<extraparam> +<Data eventName="cwpI_evt_out" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1007" id="1177" > +<cdparam x="331" y="204" /> +<sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="send request" value="cwpI_req(size)" /> +<TGConnectingPoint num="0" id="1175" /> +<TGConnectingPoint num="1" id="1176" /> +<extraparam> +<Data requestName="cwpI_req" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="1179" > +<cdparam x="372" y="66" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1178" /> +</COMPONENT> + +<CONNECTOR type="115" id="1180" > +<cdparam x="379" y="229" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="379" y="229" id="1176" /> +<P2 x="379" y="273" id="1172" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1181" > +<cdparam x="379" y="303" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="379" y="303" id="1173" /> +<P2 x="379" y="349" id="1170" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1182" > +<cdparam x="379" y="86" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="379" y="86" id="1178" /> +<P2 x="379" y="127" id="1167" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="1183" > +<cdparam x="419" 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="379" y="157" id="1168" /> +<P2 x="379" y="199" id="1175" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML CP" nameTab="CP_Memory_Copy" > +<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1507" id="1185" > +<cdparam x="390" y="343" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1184" /> +</COMPONENT> + +<COMPONENT type="1510" id="1189" > +<cdparam x="141" y="185" /> +<sizeparam width="164" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="for loop" value="for(i=counter;i>0;i = i-1)" /> +<TGConnectingPoint num="0" id="1186" /> +<TGConnectingPoint num="1" id="1187" /> +<TGConnectingPoint num="2" id="1188" /> +<extraparam> +<Data init="i=counter" condition="i>0" increment="i = i-1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="1206" > +<cdparam x="559" y="109" /> +<sizeparam width="354" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="Some parameters are mapping dependent: +- samplesToLoad (depends on the application model) +- the source and destination addresses +" /> +<TGConnectingPoint num="0" id="1190" /> +<TGConnectingPoint num="1" id="1191" /> +<TGConnectingPoint num="2" id="1192" /> +<TGConnectingPoint num="3" id="1193" /> +<TGConnectingPoint num="4" id="1194" /> +<TGConnectingPoint num="5" id="1195" /> +<TGConnectingPoint num="6" id="1196" /> +<TGConnectingPoint num="7" id="1197" /> +<TGConnectingPoint num="8" id="1198" /> +<TGConnectingPoint num="9" id="1199" /> +<TGConnectingPoint num="10" id="1200" /> +<TGConnectingPoint num="11" id="1201" /> +<TGConnectingPoint num="12" id="1202" /> +<TGConnectingPoint num="13" id="1203" /> +<TGConnectingPoint num="14" id="1204" /> +<TGConnectingPoint num="15" id="1205" /> +<extraparam> +<Line value="Some parameters are mapping dependent:" /> +<Line value="- samplesToLoad (depends on the application model)" /> +<Line value="- the source and destination addresses" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1505" id="1217" > +<cdparam x="161" y="108" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Configure" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="1207" /> +<TGConnectingPoint num="1" id="1208" /> +<TGConnectingPoint num="2" id="1209" /> +<TGConnectingPoint num="3" id="1210" /> +<TGConnectingPoint num="4" id="1211" /> +<TGConnectingPoint num="5" id="1212" /> +<TGConnectingPoint num="6" id="1213" /> +<TGConnectingPoint num="7" id="1214" /> +<TGConnectingPoint num="8" id="1215" /> +<TGConnectingPoint num="9" id="1216" /> +</COMPONENT> + +<COMPONENT type="1507" id="1219" > +<cdparam x="213" y="280" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1218" /> +</COMPONENT> + +<COMPONENT type="1505" id="1230" > +<cdparam x="338" y="245" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TransferCycle" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="1220" /> +<TGConnectingPoint num="1" id="1221" /> +<TGConnectingPoint num="2" id="1222" /> +<TGConnectingPoint num="3" id="1223" /> +<TGConnectingPoint num="4" id="1224" /> +<TGConnectingPoint num="5" id="1225" /> +<TGConnectingPoint num="6" id="1226" /> +<TGConnectingPoint num="7" id="1227" /> +<TGConnectingPoint num="8" id="1228" /> +<TGConnectingPoint num="9" id="1229" /> +</COMPONENT> + +<COMPONENT type="1506" id="1232" > +<cdparam x="216" y="37" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1231" /> +</COMPONENT> + +<CONNECTOR type="1501" id="1234" > +<cdparam x="78" y="272" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="305" y="199" id="1187" /> +<P2 x="400" y="240" id="1220" /> +<Point x="400" y="199" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1233" > +<father id="1234" num="0" /> +<cdparam x="400" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="1235" > +<cdparam x="13" y="363" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="400" y="285" id="1221" /> +<P2 x="400" y="338" id="1184" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1236" > +<cdparam x="118" y="312" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="223" y="210" id="1188" /> +<P2 x="223" y="275" id="1218" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1237" > +<cdparam x="221" y="23" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="223" y="57" id="1231" /> +<P2 x="223" y="103" id="1207" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1238" > +<cdparam x="118" y="129" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="223" y="148" id="1208" /> +<P2 x="223" y="180" id="1186" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<TMLSDPanel name="Configure" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1522" id="1313" > +<cdparam x="220" y="55" /> +<sizeparam width="10" height="750" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="1239" /> +<TGConnectingPoint num="1" id="1240" /> +<TGConnectingPoint num="2" id="1241" /> +<TGConnectingPoint num="3" id="1242" /> +<TGConnectingPoint num="4" id="1243" /> +<TGConnectingPoint num="5" id="1244" /> +<TGConnectingPoint num="6" id="1245" /> +<TGConnectingPoint num="7" id="1246" /> +<TGConnectingPoint num="8" id="1247" /> +<TGConnectingPoint num="9" id="1248" /> +<TGConnectingPoint num="10" id="1249" /> +<TGConnectingPoint num="11" id="1250" /> +<TGConnectingPoint num="12" id="1251" /> +<TGConnectingPoint num="13" id="1252" /> +<TGConnectingPoint num="14" id="1253" /> +<TGConnectingPoint num="15" id="1254" /> +<TGConnectingPoint num="16" id="1255" /> +<TGConnectingPoint num="17" id="1256" /> +<TGConnectingPoint num="18" id="1257" /> +<TGConnectingPoint num="19" id="1258" /> +<TGConnectingPoint num="20" id="1259" /> +<TGConnectingPoint num="21" id="1260" /> +<TGConnectingPoint num="22" id="1261" /> +<TGConnectingPoint num="23" id="1262" /> +<TGConnectingPoint num="24" id="1263" /> +<TGConnectingPoint num="25" id="1264" /> +<TGConnectingPoint num="26" id="1265" /> +<TGConnectingPoint num="27" id="1266" /> +<TGConnectingPoint num="28" id="1267" /> +<TGConnectingPoint num="29" id="1268" /> +<TGConnectingPoint num="30" id="1269" /> +<TGConnectingPoint num="31" id="1270" /> +<TGConnectingPoint num="32" id="1271" /> +<TGConnectingPoint num="33" id="1272" /> +<TGConnectingPoint num="34" id="1273" /> +<TGConnectingPoint num="35" id="1274" /> +<TGConnectingPoint num="36" id="1275" /> +<TGConnectingPoint num="37" id="1276" /> +<TGConnectingPoint num="38" id="1277" /> +<TGConnectingPoint num="39" id="1278" /> +<TGConnectingPoint num="40" id="1279" /> +<TGConnectingPoint num="41" id="1280" /> +<TGConnectingPoint num="42" id="1281" /> +<TGConnectingPoint num="43" id="1282" /> +<TGConnectingPoint num="44" id="1283" /> +<TGConnectingPoint num="45" id="1284" /> +<TGConnectingPoint num="46" id="1285" /> +<TGConnectingPoint num="47" id="1286" /> +<TGConnectingPoint num="48" id="1287" /> +<TGConnectingPoint num="49" id="1288" /> +<TGConnectingPoint num="50" id="1289" /> +<TGConnectingPoint num="51" id="1290" /> +<TGConnectingPoint num="52" id="1291" /> +<TGConnectingPoint num="53" id="1292" /> +<TGConnectingPoint num="54" id="1293" /> +<TGConnectingPoint num="55" id="1294" /> +<TGConnectingPoint num="56" id="1295" /> +<TGConnectingPoint num="57" id="1296" /> +<TGConnectingPoint num="58" id="1297" /> +<TGConnectingPoint num="59" id="1298" /> +<TGConnectingPoint num="60" id="1299" /> +<TGConnectingPoint num="61" id="1300" /> +<TGConnectingPoint num="62" id="1301" /> +<TGConnectingPoint num="63" id="1302" /> +<TGConnectingPoint num="64" id="1303" /> +<TGConnectingPoint num="65" id="1304" /> +<TGConnectingPoint num="66" id="1305" /> +<TGConnectingPoint num="67" id="1306" /> +<TGConnectingPoint num="68" id="1307" /> +<TGConnectingPoint num="69" id="1308" /> +<TGConnectingPoint num="70" id="1309" /> +<TGConnectingPoint num="71" id="1310" /> +<TGConnectingPoint num="72" id="1311" /> +<TGConnectingPoint num="73" id="1312" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + + +</TMLSDPanel> + +<TMLSDPanel name="TransferCycle" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1520" id="1363" > +<cdparam x="1079" y="58" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Dst_Storage_Instance" value="Storage instance name" /> +<TGConnectingPoint num="0" id="1314" /> +<TGConnectingPoint num="1" id="1315" /> +<TGConnectingPoint num="2" id="1316" /> +<TGConnectingPoint num="3" id="1317" /> +<TGConnectingPoint num="4" id="1318" /> +<TGConnectingPoint num="5" id="1319" /> +<TGConnectingPoint num="6" id="1320" /> +<TGConnectingPoint num="7" id="1321" /> +<TGConnectingPoint num="8" id="1322" /> +<TGConnectingPoint num="9" id="1323" /> +<TGConnectingPoint num="10" id="1324" /> +<TGConnectingPoint num="11" id="1325" /> +<TGConnectingPoint num="12" id="1326" /> +<TGConnectingPoint num="13" id="1327" /> +<TGConnectingPoint num="14" id="1328" /> +<TGConnectingPoint num="15" id="1329" /> +<TGConnectingPoint num="16" id="1330" /> +<TGConnectingPoint num="17" id="1331" /> +<TGConnectingPoint num="18" id="1332" /> +<TGConnectingPoint num="19" id="1333" /> +<TGConnectingPoint num="20" id="1334" /> +<TGConnectingPoint num="21" id="1335" /> +<TGConnectingPoint num="22" id="1336" /> +<TGConnectingPoint num="23" id="1337" /> +<TGConnectingPoint num="24" id="1338" /> +<TGConnectingPoint num="25" id="1339" /> +<TGConnectingPoint num="26" id="1340" /> +<TGConnectingPoint num="27" id="1341" /> +<TGConnectingPoint num="28" id="1342" /> +<TGConnectingPoint num="29" id="1343" /> +<TGConnectingPoint num="30" id="1344" /> +<TGConnectingPoint num="31" id="1345" /> +<TGConnectingPoint num="32" id="1346" /> +<TGConnectingPoint num="33" id="1347" /> +<TGConnectingPoint num="34" id="1348" /> +<TGConnectingPoint num="35" id="1349" /> +<TGConnectingPoint num="36" id="1350" /> +<TGConnectingPoint num="37" id="1351" /> +<TGConnectingPoint num="38" id="1352" /> +<TGConnectingPoint num="39" id="1353" /> +<TGConnectingPoint num="40" id="1354" /> +<TGConnectingPoint num="41" id="1355" /> +<TGConnectingPoint num="42" id="1356" /> +<TGConnectingPoint num="43" id="1357" /> +<TGConnectingPoint num="44" id="1358" /> +<TGConnectingPoint num="45" id="1359" /> +<TGConnectingPoint num="46" id="1360" /> +<TGConnectingPoint num="47" id="1361" /> +<TGConnectingPoint num="48" id="1362" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="numData" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="1413" > +<cdparam x="832" y="58" /> +<sizeparam width="10" height="501" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance2" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="1364" /> +<TGConnectingPoint num="1" id="1365" /> +<TGConnectingPoint num="2" id="1366" /> +<TGConnectingPoint num="3" id="1367" /> +<TGConnectingPoint num="4" id="1368" /> +<TGConnectingPoint num="5" id="1369" /> +<TGConnectingPoint num="6" id="1370" /> +<TGConnectingPoint num="7" id="1371" /> +<TGConnectingPoint num="8" id="1372" /> +<TGConnectingPoint num="9" id="1373" /> +<TGConnectingPoint num="10" id="1374" /> +<TGConnectingPoint num="11" id="1375" /> +<TGConnectingPoint num="12" id="1376" /> +<TGConnectingPoint num="13" id="1377" /> +<TGConnectingPoint num="14" id="1378" /> +<TGConnectingPoint num="15" id="1379" /> +<TGConnectingPoint num="16" id="1380" /> +<TGConnectingPoint num="17" id="1381" /> +<TGConnectingPoint num="18" id="1382" /> +<TGConnectingPoint num="19" id="1383" /> +<TGConnectingPoint num="20" id="1384" /> +<TGConnectingPoint num="21" id="1385" /> +<TGConnectingPoint num="22" id="1386" /> +<TGConnectingPoint num="23" id="1387" /> +<TGConnectingPoint num="24" id="1388" /> +<TGConnectingPoint num="25" id="1389" /> +<TGConnectingPoint num="26" id="1390" /> +<TGConnectingPoint num="27" id="1391" /> +<TGConnectingPoint num="28" id="1392" /> +<TGConnectingPoint num="29" id="1393" /> +<TGConnectingPoint num="30" id="1394" /> +<TGConnectingPoint num="31" id="1395" /> +<TGConnectingPoint num="32" id="1396" /> +<TGConnectingPoint num="33" id="1397" /> +<TGConnectingPoint num="34" id="1398" /> +<TGConnectingPoint num="35" id="1399" /> +<TGConnectingPoint num="36" id="1400" /> +<TGConnectingPoint num="37" id="1401" /> +<TGConnectingPoint num="38" id="1402" /> +<TGConnectingPoint num="39" id="1403" /> +<TGConnectingPoint num="40" id="1404" /> +<TGConnectingPoint num="41" id="1405" /> +<TGConnectingPoint num="42" id="1406" /> +<TGConnectingPoint num="43" id="1407" /> +<TGConnectingPoint num="44" id="1408" /> +<TGConnectingPoint num="45" id="1409" /> +<TGConnectingPoint num="46" id="1410" /> +<TGConnectingPoint num="47" id="1411" /> +<TGConnectingPoint num="48" id="1412" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="numData" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="1463" > +<cdparam x="367" y="58" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_1" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="1414" /> +<TGConnectingPoint num="1" id="1415" /> +<TGConnectingPoint num="2" id="1416" /> +<TGConnectingPoint num="3" id="1417" /> +<TGConnectingPoint num="4" id="1418" /> +<TGConnectingPoint num="5" id="1419" /> +<TGConnectingPoint num="6" id="1420" /> +<TGConnectingPoint num="7" id="1421" /> +<TGConnectingPoint num="8" id="1422" /> +<TGConnectingPoint num="9" id="1423" /> +<TGConnectingPoint num="10" id="1424" /> +<TGConnectingPoint num="11" id="1425" /> +<TGConnectingPoint num="12" id="1426" /> +<TGConnectingPoint num="13" id="1427" /> +<TGConnectingPoint num="14" id="1428" /> +<TGConnectingPoint num="15" id="1429" /> +<TGConnectingPoint num="16" id="1430" /> +<TGConnectingPoint num="17" id="1431" /> +<TGConnectingPoint num="18" id="1432" /> +<TGConnectingPoint num="19" id="1433" /> +<TGConnectingPoint num="20" id="1434" /> +<TGConnectingPoint num="21" id="1435" /> +<TGConnectingPoint num="22" id="1436" /> +<TGConnectingPoint num="23" id="1437" /> +<TGConnectingPoint num="24" id="1438" /> +<TGConnectingPoint num="25" id="1439" /> +<TGConnectingPoint num="26" id="1440" /> +<TGConnectingPoint num="27" id="1441" /> +<TGConnectingPoint num="28" id="1442" /> +<TGConnectingPoint num="29" id="1443" /> +<TGConnectingPoint num="30" id="1444" /> +<TGConnectingPoint num="31" id="1445" /> +<TGConnectingPoint num="32" id="1446" /> +<TGConnectingPoint num="33" id="1447" /> +<TGConnectingPoint num="34" id="1448" /> +<TGConnectingPoint num="35" id="1449" /> +<TGConnectingPoint num="36" id="1450" /> +<TGConnectingPoint num="37" id="1451" /> +<TGConnectingPoint num="38" id="1452" /> +<TGConnectingPoint num="39" id="1453" /> +<TGConnectingPoint num="40" id="1454" /> +<TGConnectingPoint num="41" id="1455" /> +<TGConnectingPoint num="42" id="1456" /> +<TGConnectingPoint num="43" id="1457" /> +<TGConnectingPoint num="44" id="1458" /> +<TGConnectingPoint num="45" id="1459" /> +<TGConnectingPoint num="46" id="1460" /> +<TGConnectingPoint num="47" id="1461" /> +<TGConnectingPoint num="48" id="1462" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="numData" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1520" id="1513" > +<cdparam x="608" y="58" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Src_Storage_Instance" value="Storage instance name" /> +<TGConnectingPoint num="0" id="1464" /> +<TGConnectingPoint num="1" id="1465" /> +<TGConnectingPoint num="2" id="1466" /> +<TGConnectingPoint num="3" id="1467" /> +<TGConnectingPoint num="4" id="1468" /> +<TGConnectingPoint num="5" id="1469" /> +<TGConnectingPoint num="6" id="1470" /> +<TGConnectingPoint num="7" id="1471" /> +<TGConnectingPoint num="8" id="1472" /> +<TGConnectingPoint num="9" id="1473" /> +<TGConnectingPoint num="10" id="1474" /> +<TGConnectingPoint num="11" id="1475" /> +<TGConnectingPoint num="12" id="1476" /> +<TGConnectingPoint num="13" id="1477" /> +<TGConnectingPoint num="14" id="1478" /> +<TGConnectingPoint num="15" id="1479" /> +<TGConnectingPoint num="16" id="1480" /> +<TGConnectingPoint num="17" id="1481" /> +<TGConnectingPoint num="18" id="1482" /> +<TGConnectingPoint num="19" id="1483" /> +<TGConnectingPoint num="20" id="1484" /> +<TGConnectingPoint num="21" id="1485" /> +<TGConnectingPoint num="22" id="1486" /> +<TGConnectingPoint num="23" id="1487" /> +<TGConnectingPoint num="24" id="1488" /> +<TGConnectingPoint num="25" id="1489" /> +<TGConnectingPoint num="26" id="1490" /> +<TGConnectingPoint num="27" id="1491" /> +<TGConnectingPoint num="28" id="1492" /> +<TGConnectingPoint num="29" id="1493" /> +<TGConnectingPoint num="30" id="1494" /> +<TGConnectingPoint num="31" id="1495" /> +<TGConnectingPoint num="32" id="1496" /> +<TGConnectingPoint num="33" id="1497" /> +<TGConnectingPoint num="34" id="1498" /> +<TGConnectingPoint num="35" id="1499" /> +<TGConnectingPoint num="36" id="1500" /> +<TGConnectingPoint num="37" id="1501" /> +<TGConnectingPoint num="38" id="1502" /> +<TGConnectingPoint num="39" id="1503" /> +<TGConnectingPoint num="40" id="1504" /> +<TGConnectingPoint num="41" id="1505" /> +<TGConnectingPoint num="42" id="1506" /> +<TGConnectingPoint num="43" id="1507" /> +<TGConnectingPoint num="44" id="1508" /> +<TGConnectingPoint num="45" id="1509" /> +<TGConnectingPoint num="46" id="1510" /> +<TGConnectingPoint num="47" id="1511" /> +<TGConnectingPoint num="48" id="1512" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="numData" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="1563" > +<cdparam x="136" y="58" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="1514" /> +<TGConnectingPoint num="1" id="1515" /> +<TGConnectingPoint num="2" id="1516" /> +<TGConnectingPoint num="3" id="1517" /> +<TGConnectingPoint num="4" id="1518" /> +<TGConnectingPoint num="5" id="1519" /> +<TGConnectingPoint num="6" id="1520" /> +<TGConnectingPoint num="7" id="1521" /> +<TGConnectingPoint num="8" id="1522" /> +<TGConnectingPoint num="9" id="1523" /> +<TGConnectingPoint num="10" id="1524" /> +<TGConnectingPoint num="11" id="1525" /> +<TGConnectingPoint num="12" id="1526" /> +<TGConnectingPoint num="13" id="1527" /> +<TGConnectingPoint num="14" id="1528" /> +<TGConnectingPoint num="15" id="1529" /> +<TGConnectingPoint num="16" id="1530" /> +<TGConnectingPoint num="17" id="1531" /> +<TGConnectingPoint num="18" id="1532" /> +<TGConnectingPoint num="19" id="1533" /> +<TGConnectingPoint num="20" id="1534" /> +<TGConnectingPoint num="21" id="1535" /> +<TGConnectingPoint num="22" id="1536" /> +<TGConnectingPoint num="23" id="1537" /> +<TGConnectingPoint num="24" id="1538" /> +<TGConnectingPoint num="25" id="1539" /> +<TGConnectingPoint num="26" id="1540" /> +<TGConnectingPoint num="27" id="1541" /> +<TGConnectingPoint num="28" id="1542" /> +<TGConnectingPoint num="29" id="1543" /> +<TGConnectingPoint num="30" id="1544" /> +<TGConnectingPoint num="31" id="1545" /> +<TGConnectingPoint num="32" id="1546" /> +<TGConnectingPoint num="33" id="1547" /> +<TGConnectingPoint num="34" id="1548" /> +<TGConnectingPoint num="35" id="1549" /> +<TGConnectingPoint num="36" id="1550" /> +<TGConnectingPoint num="37" id="1551" /> +<TGConnectingPoint num="38" id="1552" /> +<TGConnectingPoint num="39" id="1553" /> +<TGConnectingPoint num="40" id="1554" /> +<TGConnectingPoint num="41" id="1555" /> +<TGConnectingPoint num="42" id="1556" /> +<TGConnectingPoint num="43" id="1557" /> +<TGConnectingPoint num="44" id="1558" /> +<TGConnectingPoint num="45" id="1559" /> +<TGConnectingPoint num="46" id="1560" /> +<TGConnectingPoint num="47" id="1561" /> +<TGConnectingPoint num="48" id="1562" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="numData" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="1564" > +<cdparam x="846" y="309" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress, numData)" /> +<P1 x="837" y="208" id="1378" /> +<P2 x="1084" y="208" id="1328" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress" /> +<Param index="1" id="numData" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="1565" > +<cdparam x="141" y="278" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress, numData)" /> +<P1 x="141" y="178" id="1525" /> +<P2 x="837" y="178" id="1375" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress" /> +<Param index="1" id="numData" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="1566" > +<cdparam x="372" y="118" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress, numData)" /> +<P1 x="372" y="148" id="1422" /> +<P2 x="613" y="148" id="1472" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress" /> +<Param index="1" id="numData" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="1567" > +<cdparam x="158" y="87" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress, numData)" /> +<P1 x="141" y="118" id="1519" /> +<P2 x="372" y="118" id="1419" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress" /> +<Param index="1" id="numData" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +</Modeling> + + + + +<Modeling type="TML CP" nameTab="DMA_transfer" > +<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="583" minY="10" maxY="412" > +<COMPONENT type="1507" id="1569" > +<cdparam x="381" y="392" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1568" /> +</COMPONENT> + +<COMPONENT type="1510" id="1573" > +<cdparam x="107" y="220" /> +<sizeparam width="164" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="for loop" value="for(i=counter;i>0;i = i-1)" /> +<TGConnectingPoint num="0" id="1570" /> +<TGConnectingPoint num="1" id="1571" /> +<TGConnectingPoint num="2" id="1572" /> +<extraparam> +<Data init="i=counter" condition="i>0" increment="i = i-1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="301" id="1590" > +<cdparam x="270" y="67" /> +<sizeparam width="313" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="UML Note" value="Some parameters are mapping dependent: +- counter (depends on the application) +- the source and destination addresses + +This model supposes that the DMA informs the +CPU via interrupts (no polling messages) +" /> +<TGConnectingPoint num="0" id="1574" /> +<TGConnectingPoint num="1" id="1575" /> +<TGConnectingPoint num="2" id="1576" /> +<TGConnectingPoint num="3" id="1577" /> +<TGConnectingPoint num="4" id="1578" /> +<TGConnectingPoint num="5" id="1579" /> +<TGConnectingPoint num="6" id="1580" /> +<TGConnectingPoint num="7" id="1581" /> +<TGConnectingPoint num="8" id="1582" /> +<TGConnectingPoint num="9" id="1583" /> +<TGConnectingPoint num="10" id="1584" /> +<TGConnectingPoint num="11" id="1585" /> +<TGConnectingPoint num="12" id="1586" /> +<TGConnectingPoint num="13" id="1587" /> +<TGConnectingPoint num="14" id="1588" /> +<TGConnectingPoint num="15" id="1589" /> +<extraparam> +<Line value="Some parameters are mapping dependent:" /> +<Line value="- counter (depends on the application)" /> +<Line value="- the source and destination addresses" /> +<Line value="" /> +<Line value="This model supposes that the DMA informs the" /> +<Line value="CPU via interrupts (no polling messages)" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1507" id="1592" > +<cdparam x="179" y="374" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1591" /> +</COMPONENT> + +<COMPONENT type="1505" id="1603" > +<cdparam x="329" y="300" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="DMACycle_SD" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="1593" /> +<TGConnectingPoint num="1" id="1594" /> +<TGConnectingPoint num="2" id="1595" /> +<TGConnectingPoint num="3" id="1596" /> +<TGConnectingPoint num="4" id="1597" /> +<TGConnectingPoint num="5" id="1598" /> +<TGConnectingPoint num="6" id="1599" /> +<TGConnectingPoint num="7" id="1600" /> +<TGConnectingPoint num="8" id="1601" /> +<TGConnectingPoint num="9" id="1602" /> +</COMPONENT> + +<COMPONENT type="1505" id="1614" > +<cdparam x="127" y="299" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="TerminateDMA_SD" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="1604" /> +<TGConnectingPoint num="1" id="1605" /> +<TGConnectingPoint num="2" id="1606" /> +<TGConnectingPoint num="3" id="1607" /> +<TGConnectingPoint num="4" id="1608" /> +<TGConnectingPoint num="5" id="1609" /> +<TGConnectingPoint num="6" id="1610" /> +<TGConnectingPoint num="7" id="1611" /> +<TGConnectingPoint num="8" id="1612" /> +<TGConnectingPoint num="9" id="1613" /> +</COMPONENT> + +<COMPONENT type="1505" id="1625" > +<cdparam x="127" y="129" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="ConfigureDMA_SD" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="1615" /> +<TGConnectingPoint num="1" id="1616" /> +<TGConnectingPoint num="2" id="1617" /> +<TGConnectingPoint num="3" id="1618" /> +<TGConnectingPoint num="4" id="1619" /> +<TGConnectingPoint num="5" id="1620" /> +<TGConnectingPoint num="6" id="1621" /> +<TGConnectingPoint num="7" id="1622" /> +<TGConnectingPoint num="8" id="1623" /> +<TGConnectingPoint num="9" id="1624" /> +</COMPONENT> + +<COMPONENT type="1506" id="1627" > +<cdparam x="182" y="65" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="583" minY="10" maxY="412" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1626" /> +</COMPONENT> + +<CONNECTOR type="1501" id="1628" > +<cdparam x="189" y="339" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="189" y="339" id="1605" /> +<P2 x="189" y="369" id="1591" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1629" > +<cdparam x="10" y="379" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="391" y="340" id="1594" /> +<P2 x="391" y="387" id="1568" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1631" > +<cdparam x="10" y="293" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="271" y="234" id="1571" /> +<P2 x="391" y="295" id="1593" /> +<Point x="391" y="234" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1630" > +<father id="1631" num="0" /> +<cdparam x="391" y="234" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="1632" > +<cdparam x="37" y="293" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="189" y="245" id="1572" /> +<P2 x="189" y="294" id="1604" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1633" > +<cdparam x="10" y="124" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="189" y="169" id="1616" /> +<P2 x="189" y="215" id="1570" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="1634" > +<cdparam x="187" y="61" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="189" y="85" id="1626" /> +<P2 x="189" y="124" id="1615" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<TMLSDPanel name="ConfigureDMA_SD" minX="10" maxX="926" minY="10" maxY="556" > +<COMPONENT type="1521" id="1684" > +<cdparam x="466" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="926" minY="10" maxY="556" /> +<infoparam name="Transfer_Instance_1" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="1635" /> +<TGConnectingPoint num="1" id="1636" /> +<TGConnectingPoint num="2" id="1637" /> +<TGConnectingPoint num="3" id="1638" /> +<TGConnectingPoint num="4" id="1639" /> +<TGConnectingPoint num="5" id="1640" /> +<TGConnectingPoint num="6" id="1641" /> +<TGConnectingPoint num="7" id="1642" /> +<TGConnectingPoint num="8" id="1643" /> +<TGConnectingPoint num="9" id="1644" /> +<TGConnectingPoint num="10" id="1645" /> +<TGConnectingPoint num="11" id="1646" /> +<TGConnectingPoint num="12" id="1647" /> +<TGConnectingPoint num="13" id="1648" /> +<TGConnectingPoint num="14" id="1649" /> +<TGConnectingPoint num="15" id="1650" /> +<TGConnectingPoint num="16" id="1651" /> +<TGConnectingPoint num="17" id="1652" /> +<TGConnectingPoint num="18" id="1653" /> +<TGConnectingPoint num="19" id="1654" /> +<TGConnectingPoint num="20" id="1655" /> +<TGConnectingPoint num="21" id="1656" /> +<TGConnectingPoint num="22" id="1657" /> +<TGConnectingPoint num="23" id="1658" /> +<TGConnectingPoint num="24" id="1659" /> +<TGConnectingPoint num="25" id="1660" /> +<TGConnectingPoint num="26" id="1661" /> +<TGConnectingPoint num="27" id="1662" /> +<TGConnectingPoint num="28" id="1663" /> +<TGConnectingPoint num="29" id="1664" /> +<TGConnectingPoint num="30" id="1665" /> +<TGConnectingPoint num="31" id="1666" /> +<TGConnectingPoint num="32" id="1667" /> +<TGConnectingPoint num="33" id="1668" /> +<TGConnectingPoint num="34" id="1669" /> +<TGConnectingPoint num="35" id="1670" /> +<TGConnectingPoint num="36" id="1671" /> +<TGConnectingPoint num="37" id="1672" /> +<TGConnectingPoint num="38" id="1673" /> +<TGConnectingPoint num="39" id="1674" /> +<TGConnectingPoint num="40" id="1675" /> +<TGConnectingPoint num="41" id="1676" /> +<TGConnectingPoint num="42" id="1677" /> +<TGConnectingPoint num="43" id="1678" /> +<TGConnectingPoint num="44" id="1679" /> +<TGConnectingPoint num="45" id="1680" /> +<TGConnectingPoint num="46" id="1681" /> +<TGConnectingPoint num="47" id="1682" /> +<TGConnectingPoint num="48" id="1683" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="1734" > +<cdparam x="867" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="926" minY="10" maxY="556" /> +<infoparam name="DMA_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="1685" /> +<TGConnectingPoint num="1" id="1686" /> +<TGConnectingPoint num="2" id="1687" /> +<TGConnectingPoint num="3" id="1688" /> +<TGConnectingPoint num="4" id="1689" /> +<TGConnectingPoint num="5" id="1690" /> +<TGConnectingPoint num="6" id="1691" /> +<TGConnectingPoint num="7" id="1692" /> +<TGConnectingPoint num="8" id="1693" /> +<TGConnectingPoint num="9" id="1694" /> +<TGConnectingPoint num="10" id="1695" /> +<TGConnectingPoint num="11" id="1696" /> +<TGConnectingPoint num="12" id="1697" /> +<TGConnectingPoint num="13" id="1698" /> +<TGConnectingPoint num="14" id="1699" /> +<TGConnectingPoint num="15" id="1700" /> +<TGConnectingPoint num="16" id="1701" /> +<TGConnectingPoint num="17" id="1702" /> +<TGConnectingPoint num="18" id="1703" /> +<TGConnectingPoint num="19" id="1704" /> +<TGConnectingPoint num="20" id="1705" /> +<TGConnectingPoint num="21" id="1706" /> +<TGConnectingPoint num="22" id="1707" /> +<TGConnectingPoint num="23" id="1708" /> +<TGConnectingPoint num="24" id="1709" /> +<TGConnectingPoint num="25" id="1710" /> +<TGConnectingPoint num="26" id="1711" /> +<TGConnectingPoint num="27" id="1712" /> +<TGConnectingPoint num="28" id="1713" /> +<TGConnectingPoint num="29" id="1714" /> +<TGConnectingPoint num="30" id="1715" /> +<TGConnectingPoint num="31" id="1716" /> +<TGConnectingPoint num="32" id="1717" /> +<TGConnectingPoint num="33" id="1718" /> +<TGConnectingPoint num="34" id="1719" /> +<TGConnectingPoint num="35" id="1720" /> +<TGConnectingPoint num="36" id="1721" /> +<TGConnectingPoint num="37" id="1722" /> +<TGConnectingPoint num="38" id="1723" /> +<TGConnectingPoint num="39" id="1724" /> +<TGConnectingPoint num="40" id="1725" /> +<TGConnectingPoint num="41" id="1726" /> +<TGConnectingPoint num="42" id="1727" /> +<TGConnectingPoint num="43" id="1728" /> +<TGConnectingPoint num="44" id="1729" /> +<TGConnectingPoint num="45" id="1730" /> +<TGConnectingPoint num="46" id="1731" /> +<TGConnectingPoint num="47" id="1732" /> +<TGConnectingPoint num="48" id="1733" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="1784" > +<cdparam x="58" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="926" minY="10" maxY="556" /> +<infoparam name="CPU_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="1735" /> +<TGConnectingPoint num="1" id="1736" /> +<TGConnectingPoint num="2" id="1737" /> +<TGConnectingPoint num="3" id="1738" /> +<TGConnectingPoint num="4" id="1739" /> +<TGConnectingPoint num="5" id="1740" /> +<TGConnectingPoint num="6" id="1741" /> +<TGConnectingPoint num="7" id="1742" /> +<TGConnectingPoint num="8" id="1743" /> +<TGConnectingPoint num="9" id="1744" /> +<TGConnectingPoint num="10" id="1745" /> +<TGConnectingPoint num="11" id="1746" /> +<TGConnectingPoint num="12" id="1747" /> +<TGConnectingPoint num="13" id="1748" /> +<TGConnectingPoint num="14" id="1749" /> +<TGConnectingPoint num="15" id="1750" /> +<TGConnectingPoint num="16" id="1751" /> +<TGConnectingPoint num="17" id="1752" /> +<TGConnectingPoint num="18" id="1753" /> +<TGConnectingPoint num="19" id="1754" /> +<TGConnectingPoint num="20" id="1755" /> +<TGConnectingPoint num="21" id="1756" /> +<TGConnectingPoint num="22" id="1757" /> +<TGConnectingPoint num="23" id="1758" /> +<TGConnectingPoint num="24" id="1759" /> +<TGConnectingPoint num="25" id="1760" /> +<TGConnectingPoint num="26" id="1761" /> +<TGConnectingPoint num="27" id="1762" /> +<TGConnectingPoint num="28" id="1763" /> +<TGConnectingPoint num="29" id="1764" /> +<TGConnectingPoint num="30" id="1765" /> +<TGConnectingPoint num="31" id="1766" /> +<TGConnectingPoint num="32" id="1767" /> +<TGConnectingPoint num="33" id="1768" /> +<TGConnectingPoint num="34" id="1769" /> +<TGConnectingPoint num="35" id="1770" /> +<TGConnectingPoint num="36" id="1771" /> +<TGConnectingPoint num="37" id="1772" /> +<TGConnectingPoint num="38" id="1773" /> +<TGConnectingPoint num="39" id="1774" /> +<TGConnectingPoint num="40" id="1775" /> +<TGConnectingPoint num="41" id="1776" /> +<TGConnectingPoint num="42" id="1777" /> +<TGConnectingPoint num="43" id="1778" /> +<TGConnectingPoint num="44" id="1779" /> +<TGConnectingPoint num="45" id="1780" /> +<TGConnectingPoint num="46" id="1781" /> +<TGConnectingPoint num="47" id="1782" /> +<TGConnectingPoint num="48" id="1783" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="1785" > +<cdparam x="391" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(counter, sourceAddress, destinationAddress)" /> +<P1 x="471" y="126" id="1641" /> +<P2 x="872" y="126" id="1691" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="counter" /> +<Param index="1" id="sourceAddress" /> +<Param index="2" id="destinationAddress" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="1786" > +<cdparam x="172" y="136" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(counter, sourceAddress, destinationAddress)" /> +<P1 x="63" y="96" id="1738" /> +<P2 x="471" y="96" id="1638" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="counter" /> +<Param index="1" id="sourceAddress" /> +<Param index="2" id="destinationAddress" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="DMACycle_SD" minX="10" maxX="912" minY="10" maxY="540" > +<COMPONENT type="1520" id="1836" > +<cdparam x="832" y="39" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" /> +<infoparam name="Dst_Storage_Instance_1" value="Storage instance name" /> +<TGConnectingPoint num="0" id="1787" /> +<TGConnectingPoint num="1" id="1788" /> +<TGConnectingPoint num="2" id="1789" /> +<TGConnectingPoint num="3" id="1790" /> +<TGConnectingPoint num="4" id="1791" /> +<TGConnectingPoint num="5" id="1792" /> +<TGConnectingPoint num="6" id="1793" /> +<TGConnectingPoint num="7" id="1794" /> +<TGConnectingPoint num="8" id="1795" /> +<TGConnectingPoint num="9" id="1796" /> +<TGConnectingPoint num="10" id="1797" /> +<TGConnectingPoint num="11" id="1798" /> +<TGConnectingPoint num="12" id="1799" /> +<TGConnectingPoint num="13" id="1800" /> +<TGConnectingPoint num="14" id="1801" /> +<TGConnectingPoint num="15" id="1802" /> +<TGConnectingPoint num="16" id="1803" /> +<TGConnectingPoint num="17" id="1804" /> +<TGConnectingPoint num="18" id="1805" /> +<TGConnectingPoint num="19" id="1806" /> +<TGConnectingPoint num="20" id="1807" /> +<TGConnectingPoint num="21" id="1808" /> +<TGConnectingPoint num="22" id="1809" /> +<TGConnectingPoint num="23" id="1810" /> +<TGConnectingPoint num="24" id="1811" /> +<TGConnectingPoint num="25" id="1812" /> +<TGConnectingPoint num="26" id="1813" /> +<TGConnectingPoint num="27" id="1814" /> +<TGConnectingPoint num="28" id="1815" /> +<TGConnectingPoint num="29" id="1816" /> +<TGConnectingPoint num="30" id="1817" /> +<TGConnectingPoint num="31" id="1818" /> +<TGConnectingPoint num="32" id="1819" /> +<TGConnectingPoint num="33" id="1820" /> +<TGConnectingPoint num="34" id="1821" /> +<TGConnectingPoint num="35" id="1822" /> +<TGConnectingPoint num="36" id="1823" /> +<TGConnectingPoint num="37" id="1824" /> +<TGConnectingPoint num="38" id="1825" /> +<TGConnectingPoint num="39" id="1826" /> +<TGConnectingPoint num="40" id="1827" /> +<TGConnectingPoint num="41" id="1828" /> +<TGConnectingPoint num="42" id="1829" /> +<TGConnectingPoint num="43" id="1830" /> +<TGConnectingPoint num="44" id="1831" /> +<TGConnectingPoint num="45" id="1832" /> +<TGConnectingPoint num="46" id="1833" /> +<TGConnectingPoint num="47" id="1834" /> +<TGConnectingPoint num="48" id="1835" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="1886" > +<cdparam x="624" y="39" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" /> +<infoparam name="Transfer_Instance_3" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="1837" /> +<TGConnectingPoint num="1" id="1838" /> +<TGConnectingPoint num="2" id="1839" /> +<TGConnectingPoint num="3" id="1840" /> +<TGConnectingPoint num="4" id="1841" /> +<TGConnectingPoint num="5" id="1842" /> +<TGConnectingPoint num="6" id="1843" /> +<TGConnectingPoint num="7" id="1844" /> +<TGConnectingPoint num="8" id="1845" /> +<TGConnectingPoint num="9" id="1846" /> +<TGConnectingPoint num="10" id="1847" /> +<TGConnectingPoint num="11" id="1848" /> +<TGConnectingPoint num="12" id="1849" /> +<TGConnectingPoint num="13" id="1850" /> +<TGConnectingPoint num="14" id="1851" /> +<TGConnectingPoint num="15" id="1852" /> +<TGConnectingPoint num="16" id="1853" /> +<TGConnectingPoint num="17" id="1854" /> +<TGConnectingPoint num="18" id="1855" /> +<TGConnectingPoint num="19" id="1856" /> +<TGConnectingPoint num="20" id="1857" /> +<TGConnectingPoint num="21" id="1858" /> +<TGConnectingPoint num="22" id="1859" /> +<TGConnectingPoint num="23" id="1860" /> +<TGConnectingPoint num="24" id="1861" /> +<TGConnectingPoint num="25" id="1862" /> +<TGConnectingPoint num="26" id="1863" /> +<TGConnectingPoint num="27" id="1864" /> +<TGConnectingPoint num="28" id="1865" /> +<TGConnectingPoint num="29" id="1866" /> +<TGConnectingPoint num="30" id="1867" /> +<TGConnectingPoint num="31" id="1868" /> +<TGConnectingPoint num="32" id="1869" /> +<TGConnectingPoint num="33" id="1870" /> +<TGConnectingPoint num="34" id="1871" /> +<TGConnectingPoint num="35" id="1872" /> +<TGConnectingPoint num="36" id="1873" /> +<TGConnectingPoint num="37" id="1874" /> +<TGConnectingPoint num="38" id="1875" /> +<TGConnectingPoint num="39" id="1876" /> +<TGConnectingPoint num="40" id="1877" /> +<TGConnectingPoint num="41" id="1878" /> +<TGConnectingPoint num="42" id="1879" /> +<TGConnectingPoint num="43" id="1880" /> +<TGConnectingPoint num="44" id="1881" /> +<TGConnectingPoint num="45" id="1882" /> +<TGConnectingPoint num="46" id="1883" /> +<TGConnectingPoint num="47" id="1884" /> +<TGConnectingPoint num="48" id="1885" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="1936" > +<cdparam x="249" y="39" /> +<sizeparam width="10" height="501" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" /> +<infoparam name="Transfer_Instance_2" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="1887" /> +<TGConnectingPoint num="1" id="1888" /> +<TGConnectingPoint num="2" id="1889" /> +<TGConnectingPoint num="3" id="1890" /> +<TGConnectingPoint num="4" id="1891" /> +<TGConnectingPoint num="5" id="1892" /> +<TGConnectingPoint num="6" id="1893" /> +<TGConnectingPoint num="7" id="1894" /> +<TGConnectingPoint num="8" id="1895" /> +<TGConnectingPoint num="9" id="1896" /> +<TGConnectingPoint num="10" id="1897" /> +<TGConnectingPoint num="11" id="1898" /> +<TGConnectingPoint num="12" id="1899" /> +<TGConnectingPoint num="13" id="1900" /> +<TGConnectingPoint num="14" id="1901" /> +<TGConnectingPoint num="15" id="1902" /> +<TGConnectingPoint num="16" id="1903" /> +<TGConnectingPoint num="17" id="1904" /> +<TGConnectingPoint num="18" id="1905" /> +<TGConnectingPoint num="19" id="1906" /> +<TGConnectingPoint num="20" id="1907" /> +<TGConnectingPoint num="21" id="1908" /> +<TGConnectingPoint num="22" id="1909" /> +<TGConnectingPoint num="23" id="1910" /> +<TGConnectingPoint num="24" id="1911" /> +<TGConnectingPoint num="25" id="1912" /> +<TGConnectingPoint num="26" id="1913" /> +<TGConnectingPoint num="27" id="1914" /> +<TGConnectingPoint num="28" id="1915" /> +<TGConnectingPoint num="29" id="1916" /> +<TGConnectingPoint num="30" id="1917" /> +<TGConnectingPoint num="31" id="1918" /> +<TGConnectingPoint num="32" id="1919" /> +<TGConnectingPoint num="33" id="1920" /> +<TGConnectingPoint num="34" id="1921" /> +<TGConnectingPoint num="35" id="1922" /> +<TGConnectingPoint num="36" id="1923" /> +<TGConnectingPoint num="37" id="1924" /> +<TGConnectingPoint num="38" id="1925" /> +<TGConnectingPoint num="39" id="1926" /> +<TGConnectingPoint num="40" id="1927" /> +<TGConnectingPoint num="41" id="1928" /> +<TGConnectingPoint num="42" id="1929" /> +<TGConnectingPoint num="43" id="1930" /> +<TGConnectingPoint num="44" id="1931" /> +<TGConnectingPoint num="45" id="1932" /> +<TGConnectingPoint num="46" id="1933" /> +<TGConnectingPoint num="47" id="1934" /> +<TGConnectingPoint num="48" id="1935" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1520" id="1986" > +<cdparam x="454" y="39" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" /> +<infoparam name="Src_Storage_Instance_1" value="Storage instance name" /> +<TGConnectingPoint num="0" id="1937" /> +<TGConnectingPoint num="1" id="1938" /> +<TGConnectingPoint num="2" id="1939" /> +<TGConnectingPoint num="3" id="1940" /> +<TGConnectingPoint num="4" id="1941" /> +<TGConnectingPoint num="5" id="1942" /> +<TGConnectingPoint num="6" id="1943" /> +<TGConnectingPoint num="7" id="1944" /> +<TGConnectingPoint num="8" id="1945" /> +<TGConnectingPoint num="9" id="1946" /> +<TGConnectingPoint num="10" id="1947" /> +<TGConnectingPoint num="11" id="1948" /> +<TGConnectingPoint num="12" id="1949" /> +<TGConnectingPoint num="13" id="1950" /> +<TGConnectingPoint num="14" id="1951" /> +<TGConnectingPoint num="15" id="1952" /> +<TGConnectingPoint num="16" id="1953" /> +<TGConnectingPoint num="17" id="1954" /> +<TGConnectingPoint num="18" id="1955" /> +<TGConnectingPoint num="19" id="1956" /> +<TGConnectingPoint num="20" id="1957" /> +<TGConnectingPoint num="21" id="1958" /> +<TGConnectingPoint num="22" id="1959" /> +<TGConnectingPoint num="23" id="1960" /> +<TGConnectingPoint num="24" id="1961" /> +<TGConnectingPoint num="25" id="1962" /> +<TGConnectingPoint num="26" id="1963" /> +<TGConnectingPoint num="27" id="1964" /> +<TGConnectingPoint num="28" id="1965" /> +<TGConnectingPoint num="29" id="1966" /> +<TGConnectingPoint num="30" id="1967" /> +<TGConnectingPoint num="31" id="1968" /> +<TGConnectingPoint num="32" id="1969" /> +<TGConnectingPoint num="33" id="1970" /> +<TGConnectingPoint num="34" id="1971" /> +<TGConnectingPoint num="35" id="1972" /> +<TGConnectingPoint num="36" id="1973" /> +<TGConnectingPoint num="37" id="1974" /> +<TGConnectingPoint num="38" id="1975" /> +<TGConnectingPoint num="39" id="1976" /> +<TGConnectingPoint num="40" id="1977" /> +<TGConnectingPoint num="41" id="1978" /> +<TGConnectingPoint num="42" id="1979" /> +<TGConnectingPoint num="43" id="1980" /> +<TGConnectingPoint num="44" id="1981" /> +<TGConnectingPoint num="45" id="1982" /> +<TGConnectingPoint num="46" id="1983" /> +<TGConnectingPoint num="47" id="1984" /> +<TGConnectingPoint num="48" id="1985" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="2045" > +<cdparam x="79" y="39" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="912" minY="10" maxY="540" /> +<infoparam name="DMA_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="1996" /> +<TGConnectingPoint num="1" id="1997" /> +<TGConnectingPoint num="2" id="1998" /> +<TGConnectingPoint num="3" id="1999" /> +<TGConnectingPoint num="4" id="2000" /> +<TGConnectingPoint num="5" id="2001" /> +<TGConnectingPoint num="6" id="2002" /> +<TGConnectingPoint num="7" id="2003" /> +<TGConnectingPoint num="8" id="2004" /> +<TGConnectingPoint num="9" id="2005" /> +<TGConnectingPoint num="10" id="2006" /> +<TGConnectingPoint num="11" id="2007" /> +<TGConnectingPoint num="12" id="2008" /> +<TGConnectingPoint num="13" id="2009" /> +<TGConnectingPoint num="14" id="2010" /> +<TGConnectingPoint num="15" id="2011" /> +<TGConnectingPoint num="16" id="2012" /> +<TGConnectingPoint num="17" id="2013" /> +<TGConnectingPoint num="18" id="2014" /> +<TGConnectingPoint num="19" id="2015" /> +<TGConnectingPoint num="20" id="2016" /> +<TGConnectingPoint num="21" id="2017" /> +<TGConnectingPoint num="22" id="2018" /> +<TGConnectingPoint num="23" id="2019" /> +<TGConnectingPoint num="24" id="2020" /> +<TGConnectingPoint num="25" id="2021" /> +<TGConnectingPoint num="26" id="2022" /> +<TGConnectingPoint num="27" id="2023" /> +<TGConnectingPoint num="28" id="2024" /> +<TGConnectingPoint num="29" id="2025" /> +<TGConnectingPoint num="30" id="2026" /> +<TGConnectingPoint num="31" id="2027" /> +<TGConnectingPoint num="32" id="2028" /> +<TGConnectingPoint num="33" id="2029" /> +<TGConnectingPoint num="34" id="2030" /> +<TGConnectingPoint num="35" id="2031" /> +<TGConnectingPoint num="36" id="2032" /> +<TGConnectingPoint num="37" id="2033" /> +<TGConnectingPoint num="38" id="2034" /> +<TGConnectingPoint num="39" id="2035" /> +<TGConnectingPoint num="40" id="2036" /> +<TGConnectingPoint num="41" id="2037" /> +<TGConnectingPoint num="42" id="2038" /> +<TGConnectingPoint num="43" id="2039" /> +<TGConnectingPoint num="44" id="2040" /> +<TGConnectingPoint num="45" id="2041" /> +<TGConnectingPoint num="46" id="2042" /> +<TGConnectingPoint num="47" id="2043" /> +<TGConnectingPoint num="48" id="2044" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="1995" > +<father id="2045" num="0" /> +<cdparam x="84" y="180" /> +<sizeparam width="146" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="counter = counter - 1" /> +<TGConnectingPoint num="0" id="1987" /> +<TGConnectingPoint num="1" id="1988" /> +<TGConnectingPoint num="2" id="1989" /> +<TGConnectingPoint num="3" id="1990" /> +<TGConnectingPoint num="4" id="1991" /> +<TGConnectingPoint num="5" id="1992" /> +<TGConnectingPoint num="6" id="1993" /> +<TGConnectingPoint num="7" id="1994" /> +</SUBCOMPONENT> + +<CONNECTOR type="1523" id="2046" > +<cdparam x="784" y="229" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress, size)" /> +<P1 x="629" y="189" id="1851" /> +<P2 x="837" y="189" id="1801" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2047" > +<cdparam x="84" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress, size)" /> +<P1 x="84" y="159" id="2007" /> +<P2 x="629" y="159" id="1848" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2048" > +<cdparam x="315" y="109" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress, size)" /> +<P1 x="254" y="129" id="1895" /> +<P2 x="459" y="129" id="1945" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2049" > +<cdparam x="101" y="78" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress, size)" /> +<P1 x="84" y="99" id="2001" /> +<P2 x="254" y="99" id="1892" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="TerminateDMA_SD" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1521" id="2099" > +<cdparam x="332" y="52" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_4" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="2050" /> +<TGConnectingPoint num="1" id="2051" /> +<TGConnectingPoint num="2" id="2052" /> +<TGConnectingPoint num="3" id="2053" /> +<TGConnectingPoint num="4" id="2054" /> +<TGConnectingPoint num="5" id="2055" /> +<TGConnectingPoint num="6" id="2056" /> +<TGConnectingPoint num="7" id="2057" /> +<TGConnectingPoint num="8" id="2058" /> +<TGConnectingPoint num="9" id="2059" /> +<TGConnectingPoint num="10" id="2060" /> +<TGConnectingPoint num="11" id="2061" /> +<TGConnectingPoint num="12" id="2062" /> +<TGConnectingPoint num="13" id="2063" /> +<TGConnectingPoint num="14" id="2064" /> +<TGConnectingPoint num="15" id="2065" /> +<TGConnectingPoint num="16" id="2066" /> +<TGConnectingPoint num="17" id="2067" /> +<TGConnectingPoint num="18" id="2068" /> +<TGConnectingPoint num="19" id="2069" /> +<TGConnectingPoint num="20" id="2070" /> +<TGConnectingPoint num="21" id="2071" /> +<TGConnectingPoint num="22" id="2072" /> +<TGConnectingPoint num="23" id="2073" /> +<TGConnectingPoint num="24" id="2074" /> +<TGConnectingPoint num="25" id="2075" /> +<TGConnectingPoint num="26" id="2076" /> +<TGConnectingPoint num="27" id="2077" /> +<TGConnectingPoint num="28" id="2078" /> +<TGConnectingPoint num="29" id="2079" /> +<TGConnectingPoint num="30" id="2080" /> +<TGConnectingPoint num="31" id="2081" /> +<TGConnectingPoint num="32" id="2082" /> +<TGConnectingPoint num="33" id="2083" /> +<TGConnectingPoint num="34" id="2084" /> +<TGConnectingPoint num="35" id="2085" /> +<TGConnectingPoint num="36" id="2086" /> +<TGConnectingPoint num="37" id="2087" /> +<TGConnectingPoint num="38" id="2088" /> +<TGConnectingPoint num="39" id="2089" /> +<TGConnectingPoint num="40" id="2090" /> +<TGConnectingPoint num="41" id="2091" /> +<TGConnectingPoint num="42" id="2092" /> +<TGConnectingPoint num="43" id="2093" /> +<TGConnectingPoint num="44" id="2094" /> +<TGConnectingPoint num="45" id="2095" /> +<TGConnectingPoint num="46" id="2096" /> +<TGConnectingPoint num="47" id="2097" /> +<TGConnectingPoint num="48" id="2098" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="2149" > +<cdparam x="557" y="52" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2100" /> +<TGConnectingPoint num="1" id="2101" /> +<TGConnectingPoint num="2" id="2102" /> +<TGConnectingPoint num="3" id="2103" /> +<TGConnectingPoint num="4" id="2104" /> +<TGConnectingPoint num="5" id="2105" /> +<TGConnectingPoint num="6" id="2106" /> +<TGConnectingPoint num="7" id="2107" /> +<TGConnectingPoint num="8" id="2108" /> +<TGConnectingPoint num="9" id="2109" /> +<TGConnectingPoint num="10" id="2110" /> +<TGConnectingPoint num="11" id="2111" /> +<TGConnectingPoint num="12" id="2112" /> +<TGConnectingPoint num="13" id="2113" /> +<TGConnectingPoint num="14" id="2114" /> +<TGConnectingPoint num="15" id="2115" /> +<TGConnectingPoint num="16" id="2116" /> +<TGConnectingPoint num="17" id="2117" /> +<TGConnectingPoint num="18" id="2118" /> +<TGConnectingPoint num="19" id="2119" /> +<TGConnectingPoint num="20" id="2120" /> +<TGConnectingPoint num="21" id="2121" /> +<TGConnectingPoint num="22" id="2122" /> +<TGConnectingPoint num="23" id="2123" /> +<TGConnectingPoint num="24" id="2124" /> +<TGConnectingPoint num="25" id="2125" /> +<TGConnectingPoint num="26" id="2126" /> +<TGConnectingPoint num="27" id="2127" /> +<TGConnectingPoint num="28" id="2128" /> +<TGConnectingPoint num="29" id="2129" /> +<TGConnectingPoint num="30" id="2130" /> +<TGConnectingPoint num="31" id="2131" /> +<TGConnectingPoint num="32" id="2132" /> +<TGConnectingPoint num="33" id="2133" /> +<TGConnectingPoint num="34" id="2134" /> +<TGConnectingPoint num="35" id="2135" /> +<TGConnectingPoint num="36" id="2136" /> +<TGConnectingPoint num="37" id="2137" /> +<TGConnectingPoint num="38" id="2138" /> +<TGConnectingPoint num="39" id="2139" /> +<TGConnectingPoint num="40" id="2140" /> +<TGConnectingPoint num="41" id="2141" /> +<TGConnectingPoint num="42" id="2142" /> +<TGConnectingPoint num="43" id="2143" /> +<TGConnectingPoint num="44" id="2144" /> +<TGConnectingPoint num="45" id="2145" /> +<TGConnectingPoint num="46" id="2146" /> +<TGConnectingPoint num="47" id="2147" /> +<TGConnectingPoint num="48" id="2148" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter" value="" type="10" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="2199" > +<cdparam x="113" y="52" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2150" /> +<TGConnectingPoint num="1" id="2151" /> +<TGConnectingPoint num="2" id="2152" /> +<TGConnectingPoint num="3" id="2153" /> +<TGConnectingPoint num="4" id="2154" /> +<TGConnectingPoint num="5" id="2155" /> +<TGConnectingPoint num="6" id="2156" /> +<TGConnectingPoint num="7" id="2157" /> +<TGConnectingPoint num="8" id="2158" /> +<TGConnectingPoint num="9" id="2159" /> +<TGConnectingPoint num="10" id="2160" /> +<TGConnectingPoint num="11" id="2161" /> +<TGConnectingPoint num="12" id="2162" /> +<TGConnectingPoint num="13" id="2163" /> +<TGConnectingPoint num="14" id="2164" /> +<TGConnectingPoint num="15" id="2165" /> +<TGConnectingPoint num="16" id="2166" /> +<TGConnectingPoint num="17" id="2167" /> +<TGConnectingPoint num="18" id="2168" /> +<TGConnectingPoint num="19" id="2169" /> +<TGConnectingPoint num="20" id="2170" /> +<TGConnectingPoint num="21" id="2171" /> +<TGConnectingPoint num="22" id="2172" /> +<TGConnectingPoint num="23" id="2173" /> +<TGConnectingPoint num="24" id="2174" /> +<TGConnectingPoint num="25" id="2175" /> +<TGConnectingPoint num="26" id="2176" /> +<TGConnectingPoint num="27" id="2177" /> +<TGConnectingPoint num="28" id="2178" /> +<TGConnectingPoint num="29" id="2179" /> +<TGConnectingPoint num="30" id="2180" /> +<TGConnectingPoint num="31" id="2181" /> +<TGConnectingPoint num="32" id="2182" /> +<TGConnectingPoint num="33" id="2183" /> +<TGConnectingPoint num="34" id="2184" /> +<TGConnectingPoint num="35" id="2185" /> +<TGConnectingPoint num="36" id="2186" /> +<TGConnectingPoint num="37" id="2187" /> +<TGConnectingPoint num="38" id="2188" /> +<TGConnectingPoint num="39" id="2189" /> +<TGConnectingPoint num="40" id="2190" /> +<TGConnectingPoint num="41" id="2191" /> +<TGConnectingPoint num="42" id="2192" /> +<TGConnectingPoint num="43" id="2193" /> +<TGConnectingPoint num="44" id="2194" /> +<TGConnectingPoint num="45" id="2195" /> +<TGConnectingPoint num="46" id="2196" /> +<TGConnectingPoint num="47" id="2197" /> +<TGConnectingPoint num="48" id="2198" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="2200" > +<cdparam x="337" y="112" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferTerminated" value="TransferTerminated()" /> +<P1 x="337" y="112" id="2055" /> +<P2 x="118" y="112" id="2155" /> +<AutomaticDrawing data="true" /> +<extraparam> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2201" > +<cdparam x="562" y="82" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferTerminated" value="TransferTerminated()" /> +<P1 x="562" y="82" id="2102" /> +<P2 x="337" y="82" id="2052" /> +<AutomaticDrawing data="true" /> +<extraparam> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +</Modeling> + + + + +<Modeling type="TML CP" nameTab="DMATransferPolling" > +<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1504" id="2212" > +<cdparam x="86" y="250" /> +<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TransferCycleAD" value="Reference to a CP" /> +<TGConnectingPoint num="0" id="2202" /> +<TGConnectingPoint num="1" id="2203" /> +<TGConnectingPoint num="2" id="2204" /> +<TGConnectingPoint num="3" id="2205" /> +<TGConnectingPoint num="4" id="2206" /> +<TGConnectingPoint num="5" id="2207" /> +<TGConnectingPoint num="6" id="2208" /> +<TGConnectingPoint num="7" id="2209" /> +<TGConnectingPoint num="8" id="2210" /> +<TGConnectingPoint num="9" id="2211" /> +</COMPONENT> + +<COMPONENT type="1504" id="2223" > +<cdparam x="319" y="250" /> +<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="PollingCycleAD" value="Reference to a CP" /> +<TGConnectingPoint num="0" id="2213" /> +<TGConnectingPoint num="1" id="2214" /> +<TGConnectingPoint num="2" id="2215" /> +<TGConnectingPoint num="3" id="2216" /> +<TGConnectingPoint num="4" id="2217" /> +<TGConnectingPoint num="5" id="2218" /> +<TGConnectingPoint num="6" id="2219" /> +<TGConnectingPoint num="7" id="2220" /> +<TGConnectingPoint num="8" id="2221" /> +<TGConnectingPoint num="9" id="2222" /> +</COMPONENT> + +<COMPONENT type="1503" id="2238" > +<cdparam x="181" y="347" /> +<sizeparam width="150" height="5" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="join2" value="null" /> +<TGConnectingPoint num="0" id="2224" /> +<TGConnectingPoint num="1" id="2225" /> +<TGConnectingPoint num="2" id="2226" /> +<TGConnectingPoint num="3" id="2227" /> +<TGConnectingPoint num="4" id="2228" /> +<TGConnectingPoint num="5" id="2229" /> +<TGConnectingPoint num="6" id="2230" /> +<TGConnectingPoint num="7" id="2231" /> +<TGConnectingPoint num="8" id="2232" /> +<TGConnectingPoint num="9" id="2233" /> +<TGConnectingPoint num="10" id="2234" /> +<TGConnectingPoint num="11" id="2235" /> +<TGConnectingPoint num="12" id="2236" /> +<TGConnectingPoint num="13" id="2237" /> +</COMPONENT> + +<COMPONENT type="1502" id="2253" > +<cdparam x="177" y="186" /> +<sizeparam width="150" height="5" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="fork2" value="null" /> +<TGConnectingPoint num="0" id="2239" /> +<TGConnectingPoint num="1" id="2240" /> +<TGConnectingPoint num="2" id="2241" /> +<TGConnectingPoint num="3" id="2242" /> +<TGConnectingPoint num="4" id="2243" /> +<TGConnectingPoint num="5" id="2244" /> +<TGConnectingPoint num="6" id="2245" /> +<TGConnectingPoint num="7" id="2246" /> +<TGConnectingPoint num="8" id="2247" /> +<TGConnectingPoint num="9" id="2248" /> +<TGConnectingPoint num="10" id="2249" /> +<TGConnectingPoint num="11" id="2250" /> +<TGConnectingPoint num="12" id="2251" /> +<TGConnectingPoint num="13" id="2252" /> +</COMPONENT> + +<COMPONENT type="301" id="2270" > +<cdparam x="339" y="69" /> +<sizeparam width="305" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="Some parameters are mapping dependent: +- size in ExecuteTransfer +- the source and destination addresses + +This model supposes that the DMA replies via +POLLING +" /> +<TGConnectingPoint num="0" id="2254" /> +<TGConnectingPoint num="1" id="2255" /> +<TGConnectingPoint num="2" id="2256" /> +<TGConnectingPoint num="3" id="2257" /> +<TGConnectingPoint num="4" id="2258" /> +<TGConnectingPoint num="5" id="2259" /> +<TGConnectingPoint num="6" id="2260" /> +<TGConnectingPoint num="7" id="2261" /> +<TGConnectingPoint num="8" id="2262" /> +<TGConnectingPoint num="9" id="2263" /> +<TGConnectingPoint num="10" id="2264" /> +<TGConnectingPoint num="11" id="2265" /> +<TGConnectingPoint num="12" id="2266" /> +<TGConnectingPoint num="13" id="2267" /> +<TGConnectingPoint num="14" id="2268" /> +<TGConnectingPoint num="15" id="2269" /> +<extraparam> +<Line value="Some parameters are mapping dependent:" /> +<Line value="- size in ExecuteTransfer " /> +<Line value="- the source and destination addresses" /> +<Line value="" /> +<Line value="This model supposes that the DMA replies via" /> +<Line value="POLLING" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1507" id="2272" > +<cdparam x="246" y="399" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="2271" /> +</COMPONENT> + +<COMPONENT type="1505" id="2283" > +<cdparam x="190" y="105" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="ConfigureTransfer" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="2273" /> +<TGConnectingPoint num="1" id="2274" /> +<TGConnectingPoint num="2" id="2275" /> +<TGConnectingPoint num="3" id="2276" /> +<TGConnectingPoint num="4" id="2277" /> +<TGConnectingPoint num="5" id="2278" /> +<TGConnectingPoint num="6" id="2279" /> +<TGConnectingPoint num="7" id="2280" /> +<TGConnectingPoint num="8" id="2281" /> +<TGConnectingPoint num="9" id="2282" /> +</COMPONENT> + +<COMPONENT type="1506" id="2285" > +<cdparam x="245" y="42" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2284" /> +</COMPONENT> + +<CONNECTOR type="1501" id="2286" > +<cdparam x="256" y="352" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="256" y="352" id="2229" /> +<P2 x="256" y="394" id="2271" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2287" > +<cdparam x="145" y="291" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="147" y="290" id="2203" /> +<P2 x="206" y="347" id="2224" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2288" > +<cdparam x="301" y="191" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="301" y="191" id="2243" /> +<P2 x="380" y="245" id="2213" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2289" > +<cdparam x="202" y="191" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="202" y="191" id="2239" /> +<P2 x="147" y="245" id="2202" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2290" > +<cdparam x="252" y="62" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="252" y="62" id="2284" /> +<P2 x="252" y="100" id="2273" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2291" > +<cdparam x="252" y="145" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="252" y="145" id="2274" /> +<P2 x="252" y="186" id="2244" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2292" > +<cdparam x="381" y="290" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="380" y="290" id="2214" /> +<P2 x="305" y="347" id="2228" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<TMLSDPanel name="ConfigureTransfer" minX="10" maxX="1259" minY="10" maxY="543" > +<COMPONENT type="1521" id="2342" > +<cdparam x="600" y="43" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1259" minY="10" maxY="543" /> +<infoparam name="TransferInstance_1" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="2293" /> +<TGConnectingPoint num="1" id="2294" /> +<TGConnectingPoint num="2" id="2295" /> +<TGConnectingPoint num="3" id="2296" /> +<TGConnectingPoint num="4" id="2297" /> +<TGConnectingPoint num="5" id="2298" /> +<TGConnectingPoint num="6" id="2299" /> +<TGConnectingPoint num="7" id="2300" /> +<TGConnectingPoint num="8" id="2301" /> +<TGConnectingPoint num="9" id="2302" /> +<TGConnectingPoint num="10" id="2303" /> +<TGConnectingPoint num="11" id="2304" /> +<TGConnectingPoint num="12" id="2305" /> +<TGConnectingPoint num="13" id="2306" /> +<TGConnectingPoint num="14" id="2307" /> +<TGConnectingPoint num="15" id="2308" /> +<TGConnectingPoint num="16" id="2309" /> +<TGConnectingPoint num="17" id="2310" /> +<TGConnectingPoint num="18" id="2311" /> +<TGConnectingPoint num="19" id="2312" /> +<TGConnectingPoint num="20" id="2313" /> +<TGConnectingPoint num="21" id="2314" /> +<TGConnectingPoint num="22" id="2315" /> +<TGConnectingPoint num="23" id="2316" /> +<TGConnectingPoint num="24" id="2317" /> +<TGConnectingPoint num="25" id="2318" /> +<TGConnectingPoint num="26" id="2319" /> +<TGConnectingPoint num="27" id="2320" /> +<TGConnectingPoint num="28" id="2321" /> +<TGConnectingPoint num="29" id="2322" /> +<TGConnectingPoint num="30" id="2323" /> +<TGConnectingPoint num="31" id="2324" /> +<TGConnectingPoint num="32" id="2325" /> +<TGConnectingPoint num="33" id="2326" /> +<TGConnectingPoint num="34" id="2327" /> +<TGConnectingPoint num="35" id="2328" /> +<TGConnectingPoint num="36" id="2329" /> +<TGConnectingPoint num="37" id="2330" /> +<TGConnectingPoint num="38" id="2331" /> +<TGConnectingPoint num="39" id="2332" /> +<TGConnectingPoint num="40" id="2333" /> +<TGConnectingPoint num="41" id="2334" /> +<TGConnectingPoint num="42" id="2335" /> +<TGConnectingPoint num="43" id="2336" /> +<TGConnectingPoint num="44" id="2337" /> +<TGConnectingPoint num="45" id="2338" /> +<TGConnectingPoint num="46" id="2339" /> +<TGConnectingPoint num="47" id="2340" /> +<TGConnectingPoint num="48" id="2341" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="2401" > +<cdparam x="1076" y="43" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1259" minY="10" maxY="543" /> +<infoparam name="DMA_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2352" /> +<TGConnectingPoint num="1" id="2353" /> +<TGConnectingPoint num="2" id="2354" /> +<TGConnectingPoint num="3" id="2355" /> +<TGConnectingPoint num="4" id="2356" /> +<TGConnectingPoint num="5" id="2357" /> +<TGConnectingPoint num="6" id="2358" /> +<TGConnectingPoint num="7" id="2359" /> +<TGConnectingPoint num="8" id="2360" /> +<TGConnectingPoint num="9" id="2361" /> +<TGConnectingPoint num="10" id="2362" /> +<TGConnectingPoint num="11" id="2363" /> +<TGConnectingPoint num="12" id="2364" /> +<TGConnectingPoint num="13" id="2365" /> +<TGConnectingPoint num="14" id="2366" /> +<TGConnectingPoint num="15" id="2367" /> +<TGConnectingPoint num="16" id="2368" /> +<TGConnectingPoint num="17" id="2369" /> +<TGConnectingPoint num="18" id="2370" /> +<TGConnectingPoint num="19" id="2371" /> +<TGConnectingPoint num="20" id="2372" /> +<TGConnectingPoint num="21" id="2373" /> +<TGConnectingPoint num="22" id="2374" /> +<TGConnectingPoint num="23" id="2375" /> +<TGConnectingPoint num="24" id="2376" /> +<TGConnectingPoint num="25" id="2377" /> +<TGConnectingPoint num="26" id="2378" /> +<TGConnectingPoint num="27" id="2379" /> +<TGConnectingPoint num="28" id="2380" /> +<TGConnectingPoint num="29" id="2381" /> +<TGConnectingPoint num="30" id="2382" /> +<TGConnectingPoint num="31" id="2383" /> +<TGConnectingPoint num="32" id="2384" /> +<TGConnectingPoint num="33" id="2385" /> +<TGConnectingPoint num="34" id="2386" /> +<TGConnectingPoint num="35" id="2387" /> +<TGConnectingPoint num="36" id="2388" /> +<TGConnectingPoint num="37" id="2389" /> +<TGConnectingPoint num="38" id="2390" /> +<TGConnectingPoint num="39" id="2391" /> +<TGConnectingPoint num="40" id="2392" /> +<TGConnectingPoint num="41" id="2393" /> +<TGConnectingPoint num="42" id="2394" /> +<TGConnectingPoint num="43" id="2395" /> +<TGConnectingPoint num="44" id="2396" /> +<TGConnectingPoint num="45" id="2397" /> +<TGConnectingPoint num="46" id="2398" /> +<TGConnectingPoint num="47" id="2399" /> +<TGConnectingPoint num="48" id="2400" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferTerminated" value="false" type="4" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="2351" > +<father id="2401" num="0" /> +<cdparam x="1081" y="150" /> +<sizeparam width="178" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="counter = bytesToTransfer" /> +<TGConnectingPoint num="0" id="2343" /> +<TGConnectingPoint num="1" id="2344" /> +<TGConnectingPoint num="2" id="2345" /> +<TGConnectingPoint num="3" id="2346" /> +<TGConnectingPoint num="4" id="2347" /> +<TGConnectingPoint num="5" id="2348" /> +<TGConnectingPoint num="6" id="2349" /> +<TGConnectingPoint num="7" id="2350" /> +</SUBCOMPONENT> + +<COMPONENT type="1522" id="2460" > +<cdparam x="129" y="43" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1259" minY="10" maxY="543" /> +<infoparam name="CPU_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2411" /> +<TGConnectingPoint num="1" id="2412" /> +<TGConnectingPoint num="2" id="2413" /> +<TGConnectingPoint num="3" id="2414" /> +<TGConnectingPoint num="4" id="2415" /> +<TGConnectingPoint num="5" id="2416" /> +<TGConnectingPoint num="6" id="2417" /> +<TGConnectingPoint num="7" id="2418" /> +<TGConnectingPoint num="8" id="2419" /> +<TGConnectingPoint num="9" id="2420" /> +<TGConnectingPoint num="10" id="2421" /> +<TGConnectingPoint num="11" id="2422" /> +<TGConnectingPoint num="12" id="2423" /> +<TGConnectingPoint num="13" id="2424" /> +<TGConnectingPoint num="14" id="2425" /> +<TGConnectingPoint num="15" id="2426" /> +<TGConnectingPoint num="16" id="2427" /> +<TGConnectingPoint num="17" id="2428" /> +<TGConnectingPoint num="18" id="2429" /> +<TGConnectingPoint num="19" id="2430" /> +<TGConnectingPoint num="20" id="2431" /> +<TGConnectingPoint num="21" id="2432" /> +<TGConnectingPoint num="22" id="2433" /> +<TGConnectingPoint num="23" id="2434" /> +<TGConnectingPoint num="24" id="2435" /> +<TGConnectingPoint num="25" id="2436" /> +<TGConnectingPoint num="26" id="2437" /> +<TGConnectingPoint num="27" id="2438" /> +<TGConnectingPoint num="28" id="2439" /> +<TGConnectingPoint num="29" id="2440" /> +<TGConnectingPoint num="30" id="2441" /> +<TGConnectingPoint num="31" id="2442" /> +<TGConnectingPoint num="32" id="2443" /> +<TGConnectingPoint num="33" id="2444" /> +<TGConnectingPoint num="34" id="2445" /> +<TGConnectingPoint num="35" id="2446" /> +<TGConnectingPoint num="36" id="2447" /> +<TGConnectingPoint num="37" id="2448" /> +<TGConnectingPoint num="38" id="2449" /> +<TGConnectingPoint num="39" id="2450" /> +<TGConnectingPoint num="40" id="2451" /> +<TGConnectingPoint num="41" id="2452" /> +<TGConnectingPoint num="42" id="2453" /> +<TGConnectingPoint num="43" id="2454" /> +<TGConnectingPoint num="44" id="2455" /> +<TGConnectingPoint num="45" id="2456" /> +<TGConnectingPoint num="46" id="2457" /> +<TGConnectingPoint num="47" id="2458" /> +<TGConnectingPoint num="48" id="2459" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferTrerminated" value="" type="4" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferTerminated" value="" type="4" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="2410" > +<father id="2460" num="0" /> +<cdparam x="134" y="139" /> +<sizeparam width="179" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="transferTerminated = false" /> +<TGConnectingPoint num="0" id="2402" /> +<TGConnectingPoint num="1" id="2403" /> +<TGConnectingPoint num="2" id="2404" /> +<TGConnectingPoint num="3" id="2405" /> +<TGConnectingPoint num="4" id="2406" /> +<TGConnectingPoint num="5" id="2407" /> +<TGConnectingPoint num="6" id="2408" /> +<TGConnectingPoint num="7" id="2409" /> +</SUBCOMPONENT> + +<CONNECTOR type="1523" id="2461" > +<cdparam x="358" y="151" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(bytesToTransfer, sourceAddress, destinationAddress, ID)" /> +<P1 x="605" y="123" id="2300" /> +<P2 x="1081" y="123" id="2359" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="bytesToTransfer" /> +<Param index="1" id="sourceAddress" /> +<Param index="2" id="destinationAddress" /> +<Param index="3" id="ID" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2462" > +<cdparam x="139" y="121" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(bytesToTransfer, sourceAddress, destinationAddress, ID)" /> +<P1 x="134" y="83" id="2414" /> +<P2 x="605" y="83" id="2296" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="bytesToTransfer" /> +<Param index="1" id="sourceAddress" /> +<Param index="2" id="destinationAddress" /> +<Param index="3" id="ID" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<CommunicationPatternDiagramPanel name="TransferCycleAD" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1505" id="2473" > +<cdparam x="313" y="391" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="EnableFlag" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="2463" /> +<TGConnectingPoint num="1" id="2464" /> +<TGConnectingPoint num="2" id="2465" /> +<TGConnectingPoint num="3" id="2466" /> +<TGConnectingPoint num="4" id="2467" /> +<TGConnectingPoint num="5" id="2468" /> +<TGConnectingPoint num="6" id="2469" /> +<TGConnectingPoint num="7" id="2470" /> +<TGConnectingPoint num="8" id="2471" /> +<TGConnectingPoint num="9" id="2472" /> +</COMPONENT> + +<COMPONENT type="1500" id="2489" > +<cdparam x="360" y="259" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice6" value="null" /> +<TGConnectingPoint num="0" id="2477" /> +<TGConnectingPoint num="1" id="2478" /> +<TGConnectingPoint num="2" id="2479" /> +<TGConnectingPoint num="3" id="2480" /> +<TGConnectingPoint num="4" id="2481" /> +<TGConnectingPoint num="5" id="2482" /> +<TGConnectingPoint num="6" id="2483" /> +<TGConnectingPoint num="7" id="2484" /> +<TGConnectingPoint num="8" id="2485" /> +<TGConnectingPoint num="9" id="2486" /> +<TGConnectingPoint num="10" id="2487" /> +<TGConnectingPoint num="11" id="2488" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="2474" > +<father id="2489" num="0" /> +<cdparam x="285" y="269" /> +<sizeparam width="93" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ counter > 0 ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2475" > +<father id="2489" num="1" /> +<cdparam x="395" y="269" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2476" > +<father id="2489" num="2" /> +<cdparam x="380" y="304" /> +<sizeparam width="44" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ else ]" /> +</SUBCOMPONENT> + +<COMPONENT type="1507" id="2491" > +<cdparam x="365" y="470" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="2490" /> +</COMPONENT> + +<!-- Issue #69 COMPONENT type="1508" id="2496" > +<cdparam x="360" y="163" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="junction6" value="" /> +<TGConnectingPoint num="0" id="2492" /> +<TGConnectingPoint num="1" id="2493" /> +<TGConnectingPoint num="2" id="2494" /> +<TGConnectingPoint num="3" id="2495" /> +</COMPONENT--> + +<COMPONENT type="1505" id="2507" > +<cdparam x="182" y="332" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TransferCycleSD" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="2497" /> +<TGConnectingPoint num="1" id="2498" /> +<TGConnectingPoint num="2" id="2499" /> +<TGConnectingPoint num="3" id="2500" /> +<TGConnectingPoint num="4" id="2501" /> +<TGConnectingPoint num="5" id="2502" /> +<TGConnectingPoint num="6" id="2503" /> +<TGConnectingPoint num="7" id="2504" /> +<TGConnectingPoint num="8" id="2505" /> +<TGConnectingPoint num="9" id="2506" /> +</COMPONENT> + +<COMPONENT type="1506" id="2509" > +<cdparam x="368" y="95" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2508" /> +</COMPONENT> + +<CONNECTOR type="1501" id="2510" > +<cdparam x="375" y="431" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="375" y="431" id="2464" /> +<P2 x="375" y="465" id="2490" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2512" > +<cdparam x="335" y="274" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="335" y="274" id="2478" /> +<P2 x="244" y="327" id="2497" /> +<Point x="244" y="274" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2511" > +<father id="2512" num="0" /> +<cdparam x="244" y="274" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="2516" > +<cdparam x="244" y="372" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="244" y="372" id="2498" /> +<P2 x="360" y="178" id="2493" /> +<Point x="244" y="425" /> +<Point x="136" y="425" /> +<Point x="136" y="178" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2513" > +<father id="2516" num="0" /> +<cdparam x="244" y="425" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2514" > +<father id="2516" num="1" /> +<cdparam x="136" y="425" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2515" > +<father id="2516" num="2" /> +<cdparam x="136" y="178" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="2517" > +<cdparam x="375" y="314" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="375" y="314" id="2480" /> +<P2 x="375" y="386" id="2463" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2518" > +<cdparam x="375" y="193" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="375" y="193" id="2495" /> +<P2 x="375" y="249" id="2477" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2519" > +<cdparam x="375" y="115" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="375" y="115" id="2508" /> +<P2 x="375" y="163" id="2492" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<TMLSDPanel name="TransferCycleSD" minX="10" maxX="1102" minY="10" maxY="556" > +<COMPONENT type="1520" id="2569" > +<cdparam x="1029" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" /> +<infoparam name="DESTINATION_Storage" value="Storage instance name" /> +<TGConnectingPoint num="0" id="2520" /> +<TGConnectingPoint num="1" id="2521" /> +<TGConnectingPoint num="2" id="2522" /> +<TGConnectingPoint num="3" id="2523" /> +<TGConnectingPoint num="4" id="2524" /> +<TGConnectingPoint num="5" id="2525" /> +<TGConnectingPoint num="6" id="2526" /> +<TGConnectingPoint num="7" id="2527" /> +<TGConnectingPoint num="8" id="2528" /> +<TGConnectingPoint num="9" id="2529" /> +<TGConnectingPoint num="10" id="2530" /> +<TGConnectingPoint num="11" id="2531" /> +<TGConnectingPoint num="12" id="2532" /> +<TGConnectingPoint num="13" id="2533" /> +<TGConnectingPoint num="14" id="2534" /> +<TGConnectingPoint num="15" id="2535" /> +<TGConnectingPoint num="16" id="2536" /> +<TGConnectingPoint num="17" id="2537" /> +<TGConnectingPoint num="18" id="2538" /> +<TGConnectingPoint num="19" id="2539" /> +<TGConnectingPoint num="20" id="2540" /> +<TGConnectingPoint num="21" id="2541" /> +<TGConnectingPoint num="22" id="2542" /> +<TGConnectingPoint num="23" id="2543" /> +<TGConnectingPoint num="24" id="2544" /> +<TGConnectingPoint num="25" id="2545" /> +<TGConnectingPoint num="26" id="2546" /> +<TGConnectingPoint num="27" id="2547" /> +<TGConnectingPoint num="28" id="2548" /> +<TGConnectingPoint num="29" id="2549" /> +<TGConnectingPoint num="30" id="2550" /> +<TGConnectingPoint num="31" id="2551" /> +<TGConnectingPoint num="32" id="2552" /> +<TGConnectingPoint num="33" id="2553" /> +<TGConnectingPoint num="34" id="2554" /> +<TGConnectingPoint num="35" id="2555" /> +<TGConnectingPoint num="36" id="2556" /> +<TGConnectingPoint num="37" id="2557" /> +<TGConnectingPoint num="38" id="2558" /> +<TGConnectingPoint num="39" id="2559" /> +<TGConnectingPoint num="40" id="2560" /> +<TGConnectingPoint num="41" id="2561" /> +<TGConnectingPoint num="42" id="2562" /> +<TGConnectingPoint num="43" id="2563" /> +<TGConnectingPoint num="44" id="2564" /> +<TGConnectingPoint num="45" id="2565" /> +<TGConnectingPoint num="46" id="2566" /> +<TGConnectingPoint num="47" id="2567" /> +<TGConnectingPoint num="48" id="2568" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="2619" > +<cdparam x="818" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" /> +<infoparam name="TransferInstance_3" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="2570" /> +<TGConnectingPoint num="1" id="2571" /> +<TGConnectingPoint num="2" id="2572" /> +<TGConnectingPoint num="3" id="2573" /> +<TGConnectingPoint num="4" id="2574" /> +<TGConnectingPoint num="5" id="2575" /> +<TGConnectingPoint num="6" id="2576" /> +<TGConnectingPoint num="7" id="2577" /> +<TGConnectingPoint num="8" id="2578" /> +<TGConnectingPoint num="9" id="2579" /> +<TGConnectingPoint num="10" id="2580" /> +<TGConnectingPoint num="11" id="2581" /> +<TGConnectingPoint num="12" id="2582" /> +<TGConnectingPoint num="13" id="2583" /> +<TGConnectingPoint num="14" id="2584" /> +<TGConnectingPoint num="15" id="2585" /> +<TGConnectingPoint num="16" id="2586" /> +<TGConnectingPoint num="17" id="2587" /> +<TGConnectingPoint num="18" id="2588" /> +<TGConnectingPoint num="19" id="2589" /> +<TGConnectingPoint num="20" id="2590" /> +<TGConnectingPoint num="21" id="2591" /> +<TGConnectingPoint num="22" id="2592" /> +<TGConnectingPoint num="23" id="2593" /> +<TGConnectingPoint num="24" id="2594" /> +<TGConnectingPoint num="25" id="2595" /> +<TGConnectingPoint num="26" id="2596" /> +<TGConnectingPoint num="27" id="2597" /> +<TGConnectingPoint num="28" id="2598" /> +<TGConnectingPoint num="29" id="2599" /> +<TGConnectingPoint num="30" id="2600" /> +<TGConnectingPoint num="31" id="2601" /> +<TGConnectingPoint num="32" id="2602" /> +<TGConnectingPoint num="33" id="2603" /> +<TGConnectingPoint num="34" id="2604" /> +<TGConnectingPoint num="35" id="2605" /> +<TGConnectingPoint num="36" id="2606" /> +<TGConnectingPoint num="37" id="2607" /> +<TGConnectingPoint num="38" id="2608" /> +<TGConnectingPoint num="39" id="2609" /> +<TGConnectingPoint num="40" id="2610" /> +<TGConnectingPoint num="41" id="2611" /> +<TGConnectingPoint num="42" id="2612" /> +<TGConnectingPoint num="43" id="2613" /> +<TGConnectingPoint num="44" id="2614" /> +<TGConnectingPoint num="45" id="2615" /> +<TGConnectingPoint num="46" id="2616" /> +<TGConnectingPoint num="47" id="2617" /> +<TGConnectingPoint num="48" id="2618" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="2669" > +<cdparam x="392" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" /> +<infoparam name="TransferInstance_2" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="2620" /> +<TGConnectingPoint num="1" id="2621" /> +<TGConnectingPoint num="2" id="2622" /> +<TGConnectingPoint num="3" id="2623" /> +<TGConnectingPoint num="4" id="2624" /> +<TGConnectingPoint num="5" id="2625" /> +<TGConnectingPoint num="6" id="2626" /> +<TGConnectingPoint num="7" id="2627" /> +<TGConnectingPoint num="8" id="2628" /> +<TGConnectingPoint num="9" id="2629" /> +<TGConnectingPoint num="10" id="2630" /> +<TGConnectingPoint num="11" id="2631" /> +<TGConnectingPoint num="12" id="2632" /> +<TGConnectingPoint num="13" id="2633" /> +<TGConnectingPoint num="14" id="2634" /> +<TGConnectingPoint num="15" id="2635" /> +<TGConnectingPoint num="16" id="2636" /> +<TGConnectingPoint num="17" id="2637" /> +<TGConnectingPoint num="18" id="2638" /> +<TGConnectingPoint num="19" id="2639" /> +<TGConnectingPoint num="20" id="2640" /> +<TGConnectingPoint num="21" id="2641" /> +<TGConnectingPoint num="22" id="2642" /> +<TGConnectingPoint num="23" id="2643" /> +<TGConnectingPoint num="24" id="2644" /> +<TGConnectingPoint num="25" id="2645" /> +<TGConnectingPoint num="26" id="2646" /> +<TGConnectingPoint num="27" id="2647" /> +<TGConnectingPoint num="28" id="2648" /> +<TGConnectingPoint num="29" id="2649" /> +<TGConnectingPoint num="30" id="2650" /> +<TGConnectingPoint num="31" id="2651" /> +<TGConnectingPoint num="32" id="2652" /> +<TGConnectingPoint num="33" id="2653" /> +<TGConnectingPoint num="34" id="2654" /> +<TGConnectingPoint num="35" id="2655" /> +<TGConnectingPoint num="36" id="2656" /> +<TGConnectingPoint num="37" id="2657" /> +<TGConnectingPoint num="38" id="2658" /> +<TGConnectingPoint num="39" id="2659" /> +<TGConnectingPoint num="40" id="2660" /> +<TGConnectingPoint num="41" id="2661" /> +<TGConnectingPoint num="42" id="2662" /> +<TGConnectingPoint num="43" id="2663" /> +<TGConnectingPoint num="44" id="2664" /> +<TGConnectingPoint num="45" id="2665" /> +<TGConnectingPoint num="46" id="2666" /> +<TGConnectingPoint num="47" id="2667" /> +<TGConnectingPoint num="48" id="2668" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1520" id="2719" > +<cdparam x="643" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" /> +<infoparam name="SOURCE_Storage" value="Storage instance name" /> +<TGConnectingPoint num="0" id="2670" /> +<TGConnectingPoint num="1" id="2671" /> +<TGConnectingPoint num="2" id="2672" /> +<TGConnectingPoint num="3" id="2673" /> +<TGConnectingPoint num="4" id="2674" /> +<TGConnectingPoint num="5" id="2675" /> +<TGConnectingPoint num="6" id="2676" /> +<TGConnectingPoint num="7" id="2677" /> +<TGConnectingPoint num="8" id="2678" /> +<TGConnectingPoint num="9" id="2679" /> +<TGConnectingPoint num="10" id="2680" /> +<TGConnectingPoint num="11" id="2681" /> +<TGConnectingPoint num="12" id="2682" /> +<TGConnectingPoint num="13" id="2683" /> +<TGConnectingPoint num="14" id="2684" /> +<TGConnectingPoint num="15" id="2685" /> +<TGConnectingPoint num="16" id="2686" /> +<TGConnectingPoint num="17" id="2687" /> +<TGConnectingPoint num="18" id="2688" /> +<TGConnectingPoint num="19" id="2689" /> +<TGConnectingPoint num="20" id="2690" /> +<TGConnectingPoint num="21" id="2691" /> +<TGConnectingPoint num="22" id="2692" /> +<TGConnectingPoint num="23" id="2693" /> +<TGConnectingPoint num="24" id="2694" /> +<TGConnectingPoint num="25" id="2695" /> +<TGConnectingPoint num="26" id="2696" /> +<TGConnectingPoint num="27" id="2697" /> +<TGConnectingPoint num="28" id="2698" /> +<TGConnectingPoint num="29" id="2699" /> +<TGConnectingPoint num="30" id="2700" /> +<TGConnectingPoint num="31" id="2701" /> +<TGConnectingPoint num="32" id="2702" /> +<TGConnectingPoint num="33" id="2703" /> +<TGConnectingPoint num="34" id="2704" /> +<TGConnectingPoint num="35" id="2705" /> +<TGConnectingPoint num="36" id="2706" /> +<TGConnectingPoint num="37" id="2707" /> +<TGConnectingPoint num="38" id="2708" /> +<TGConnectingPoint num="39" id="2709" /> +<TGConnectingPoint num="40" id="2710" /> +<TGConnectingPoint num="41" id="2711" /> +<TGConnectingPoint num="42" id="2712" /> +<TGConnectingPoint num="43" id="2713" /> +<TGConnectingPoint num="44" id="2714" /> +<TGConnectingPoint num="45" id="2715" /> +<TGConnectingPoint num="46" id="2716" /> +<TGConnectingPoint num="47" id="2717" /> +<TGConnectingPoint num="48" id="2718" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="2778" > +<cdparam x="161" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1102" minY="10" maxY="556" /> +<infoparam name="DMA_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2729" /> +<TGConnectingPoint num="1" id="2730" /> +<TGConnectingPoint num="2" id="2731" /> +<TGConnectingPoint num="3" id="2732" /> +<TGConnectingPoint num="4" id="2733" /> +<TGConnectingPoint num="5" id="2734" /> +<TGConnectingPoint num="6" id="2735" /> +<TGConnectingPoint num="7" id="2736" /> +<TGConnectingPoint num="8" id="2737" /> +<TGConnectingPoint num="9" id="2738" /> +<TGConnectingPoint num="10" id="2739" /> +<TGConnectingPoint num="11" id="2740" /> +<TGConnectingPoint num="12" id="2741" /> +<TGConnectingPoint num="13" id="2742" /> +<TGConnectingPoint num="14" id="2743" /> +<TGConnectingPoint num="15" id="2744" /> +<TGConnectingPoint num="16" id="2745" /> +<TGConnectingPoint num="17" id="2746" /> +<TGConnectingPoint num="18" id="2747" /> +<TGConnectingPoint num="19" id="2748" /> +<TGConnectingPoint num="20" id="2749" /> +<TGConnectingPoint num="21" id="2750" /> +<TGConnectingPoint num="22" id="2751" /> +<TGConnectingPoint num="23" id="2752" /> +<TGConnectingPoint num="24" id="2753" /> +<TGConnectingPoint num="25" id="2754" /> +<TGConnectingPoint num="26" id="2755" /> +<TGConnectingPoint num="27" id="2756" /> +<TGConnectingPoint num="28" id="2757" /> +<TGConnectingPoint num="29" id="2758" /> +<TGConnectingPoint num="30" id="2759" /> +<TGConnectingPoint num="31" id="2760" /> +<TGConnectingPoint num="32" id="2761" /> +<TGConnectingPoint num="33" id="2762" /> +<TGConnectingPoint num="34" id="2763" /> +<TGConnectingPoint num="35" id="2764" /> +<TGConnectingPoint num="36" id="2765" /> +<TGConnectingPoint num="37" id="2766" /> +<TGConnectingPoint num="38" id="2767" /> +<TGConnectingPoint num="39" id="2768" /> +<TGConnectingPoint num="40" id="2769" /> +<TGConnectingPoint num="41" id="2770" /> +<TGConnectingPoint num="42" id="2771" /> +<TGConnectingPoint num="43" id="2772" /> +<TGConnectingPoint num="44" id="2773" /> +<TGConnectingPoint num="45" id="2774" /> +<TGConnectingPoint num="46" id="2775" /> +<TGConnectingPoint num="47" id="2776" /> +<TGConnectingPoint num="48" id="2777" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="10" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferCompleted" value="false" type="4" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="2728" > +<father id="2778" num="0" /> +<cdparam x="166" y="252" /> +<sizeparam width="161" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="counter = counter - size" /> +<TGConnectingPoint num="0" id="2720" /> +<TGConnectingPoint num="1" id="2721" /> +<TGConnectingPoint num="2" id="2722" /> +<TGConnectingPoint num="3" id="2723" /> +<TGConnectingPoint num="4" id="2724" /> +<TGConnectingPoint num="5" id="2725" /> +<TGConnectingPoint num="6" id="2726" /> +<TGConnectingPoint num="7" id="2727" /> +</SUBCOMPONENT> + +<CONNECTOR type="1523" id="2779" > +<cdparam x="823" y="244" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress, size)" /> +<P1 x="823" y="266" id="2590" /> +<P2 x="1034" y="266" id="2540" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2780" > +<cdparam x="166" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress, size)" /> +<P1 x="166" y="236" id="2746" /> +<P2 x="823" y="236" id="2587" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2781" > +<cdparam x="397" y="186" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Transfer" value="Transfer(size)" /> +<P1 x="397" y="206" id="2634" /> +<P2 x="166" y="206" id="2743" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2782" > +<cdparam x="648" y="155" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Transfer" value="Transfer(size)" /> +<P1 x="648" y="176" id="2681" /> +<P2 x="397" y="176" id="2631" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2783" > +<cdparam x="397" y="126" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress, size)" /> +<P1 x="397" y="146" id="2628" /> +<P2 x="648" y="146" id="2678" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="2784" > +<cdparam x="183" y="95" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress, size)" /> +<P1 x="166" y="116" id="2734" /> +<P2 x="397" y="116" id="2625" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress" /> +<Param index="1" id="size" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="EnableFlag" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1522" id="2843" > +<cdparam x="354" y="61" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2794" /> +<TGConnectingPoint num="1" id="2795" /> +<TGConnectingPoint num="2" id="2796" /> +<TGConnectingPoint num="3" id="2797" /> +<TGConnectingPoint num="4" id="2798" /> +<TGConnectingPoint num="5" id="2799" /> +<TGConnectingPoint num="6" id="2800" /> +<TGConnectingPoint num="7" id="2801" /> +<TGConnectingPoint num="8" id="2802" /> +<TGConnectingPoint num="9" id="2803" /> +<TGConnectingPoint num="10" id="2804" /> +<TGConnectingPoint num="11" id="2805" /> +<TGConnectingPoint num="12" id="2806" /> +<TGConnectingPoint num="13" id="2807" /> +<TGConnectingPoint num="14" id="2808" /> +<TGConnectingPoint num="15" id="2809" /> +<TGConnectingPoint num="16" id="2810" /> +<TGConnectingPoint num="17" id="2811" /> +<TGConnectingPoint num="18" id="2812" /> +<TGConnectingPoint num="19" id="2813" /> +<TGConnectingPoint num="20" id="2814" /> +<TGConnectingPoint num="21" id="2815" /> +<TGConnectingPoint num="22" id="2816" /> +<TGConnectingPoint num="23" id="2817" /> +<TGConnectingPoint num="24" id="2818" /> +<TGConnectingPoint num="25" id="2819" /> +<TGConnectingPoint num="26" id="2820" /> +<TGConnectingPoint num="27" id="2821" /> +<TGConnectingPoint num="28" id="2822" /> +<TGConnectingPoint num="29" id="2823" /> +<TGConnectingPoint num="30" id="2824" /> +<TGConnectingPoint num="31" id="2825" /> +<TGConnectingPoint num="32" id="2826" /> +<TGConnectingPoint num="33" id="2827" /> +<TGConnectingPoint num="34" id="2828" /> +<TGConnectingPoint num="35" id="2829" /> +<TGConnectingPoint num="36" id="2830" /> +<TGConnectingPoint num="37" id="2831" /> +<TGConnectingPoint num="38" id="2832" /> +<TGConnectingPoint num="39" id="2833" /> +<TGConnectingPoint num="40" id="2834" /> +<TGConnectingPoint num="41" id="2835" /> +<TGConnectingPoint num="42" id="2836" /> +<TGConnectingPoint num="43" id="2837" /> +<TGConnectingPoint num="44" id="2838" /> +<TGConnectingPoint num="45" id="2839" /> +<TGConnectingPoint num="46" id="2840" /> +<TGConnectingPoint num="47" id="2841" /> +<TGConnectingPoint num="48" id="2842" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="transferCompleted" value="false" type="4" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="2793" > +<father id="2843" num="0" /> +<cdparam x="359" y="94" /> +<sizeparam width="171" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="transferCompleted = true" /> +<TGConnectingPoint num="0" id="2785" /> +<TGConnectingPoint num="1" id="2786" /> +<TGConnectingPoint num="2" id="2787" /> +<TGConnectingPoint num="3" id="2788" /> +<TGConnectingPoint num="4" id="2789" /> +<TGConnectingPoint num="5" id="2790" /> +<TGConnectingPoint num="6" id="2791" /> +<TGConnectingPoint num="7" id="2792" /> +</SUBCOMPONENT> + + +</TMLSDPanel> + +<CommunicationPatternDiagramPanel name="PollingCycleAD" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1507" id="2845" > +<cdparam x="284" y="342" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="2844" /> +</COMPONENT> + +<COMPONENT type="1500" id="2861" > +<cdparam x="279" y="223" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="choice6" value="null" /> +<TGConnectingPoint num="0" id="2849" /> +<TGConnectingPoint num="1" id="2850" /> +<TGConnectingPoint num="2" id="2851" /> +<TGConnectingPoint num="3" id="2852" /> +<TGConnectingPoint num="4" id="2853" /> +<TGConnectingPoint num="5" id="2854" /> +<TGConnectingPoint num="6" id="2855" /> +<TGConnectingPoint num="7" id="2856" /> +<TGConnectingPoint num="8" id="2857" /> +<TGConnectingPoint num="9" id="2858" /> +<TGConnectingPoint num="10" id="2859" /> +<TGConnectingPoint num="11" id="2860" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="2846" > +<father id="2861" num="0" /> +<cdparam x="204" y="233" /> +<sizeparam width="197" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" /> +<infoparam name="guard 1" value="[ transferTerminated == false ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2847" > +<father id="2861" num="1" /> +<cdparam x="314" y="233" /> +<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" /> +<infoparam name="guard 2" value="[ ]" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2848" > +<father id="2861" num="2" /> +<cdparam x="299" y="268" /> +<sizeparam width="193" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" /> +<infoparam name="guard 3" value="[ transferTerminated == true ]" /> +</SUBCOMPONENT> + +<!-- Issue #69 COMPONENT type="1508" id="2866" > +<cdparam x="279" y="127" /> +<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="junction6" value="" /> +<TGConnectingPoint num="0" id="2862" /> +<TGConnectingPoint num="1" id="2863" /> +<TGConnectingPoint num="2" id="2864" /> +<TGConnectingPoint num="3" id="2865" /> +</COMPONENT--> + +<COMPONENT type="1505" id="2877" > +<cdparam x="101" y="296" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="PollingCycleSD" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="2867" /> +<TGConnectingPoint num="1" id="2868" /> +<TGConnectingPoint num="2" id="2869" /> +<TGConnectingPoint num="3" id="2870" /> +<TGConnectingPoint num="4" id="2871" /> +<TGConnectingPoint num="5" id="2872" /> +<TGConnectingPoint num="6" id="2873" /> +<TGConnectingPoint num="7" id="2874" /> +<TGConnectingPoint num="8" id="2875" /> +<TGConnectingPoint num="9" id="2876" /> +</COMPONENT> + +<COMPONENT type="1506" id="2879" > +<cdparam x="287" y="59" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2878" /> +</COMPONENT> + +<CONNECTOR type="1501" id="2880" > +<cdparam x="294" y="278" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="294" y="278" id="2852" /> +<P2 x="294" y="337" id="2844" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2884" > +<cdparam x="163" y="336" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="163" y="336" id="2868" /> +<P2 x="279" y="142" id="2863" /> +<Point x="163" y="389" /> +<Point x="55" y="389" /> +<Point x="55" y="142" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2881" > +<father id="2884" num="0" /> +<cdparam x="163" y="389" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2882" > +<father id="2884" num="1" /> +<cdparam x="55" y="389" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2883" > +<father id="2884" num="2" /> +<cdparam x="55" y="142" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="2886" > +<cdparam x="254" y="238" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="254" y="238" id="2850" /> +<P2 x="163" y="291" id="2867" /> +<Point x="163" y="238" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2885" > +<father id="2886" num="0" /> +<cdparam x="163" y="238" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="2887" > +<cdparam x="294" y="157" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="294" y="157" id="2865" /> +<P2 x="294" y="213" id="2849" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="2888" > +<cdparam x="294" y="79" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="294" y="79" id="2878" /> +<P2 x="294" y="127" id="2862" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<TMLSDPanel name="PollingCycleSD" minX="10" maxX="720" minY="10" maxY="563" > +<COMPONENT type="1521" id="2938" > +<cdparam x="414" y="63" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="720" minY="10" maxY="563" /> +<infoparam name="TransferInstance_4" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="2889" /> +<TGConnectingPoint num="1" id="2890" /> +<TGConnectingPoint num="2" id="2891" /> +<TGConnectingPoint num="3" id="2892" /> +<TGConnectingPoint num="4" id="2893" /> +<TGConnectingPoint num="5" id="2894" /> +<TGConnectingPoint num="6" id="2895" /> +<TGConnectingPoint num="7" id="2896" /> +<TGConnectingPoint num="8" id="2897" /> +<TGConnectingPoint num="9" id="2898" /> +<TGConnectingPoint num="10" id="2899" /> +<TGConnectingPoint num="11" id="2900" /> +<TGConnectingPoint num="12" id="2901" /> +<TGConnectingPoint num="13" id="2902" /> +<TGConnectingPoint num="14" id="2903" /> +<TGConnectingPoint num="15" id="2904" /> +<TGConnectingPoint num="16" id="2905" /> +<TGConnectingPoint num="17" id="2906" /> +<TGConnectingPoint num="18" id="2907" /> +<TGConnectingPoint num="19" id="2908" /> +<TGConnectingPoint num="20" id="2909" /> +<TGConnectingPoint num="21" id="2910" /> +<TGConnectingPoint num="22" id="2911" /> +<TGConnectingPoint num="23" id="2912" /> +<TGConnectingPoint num="24" id="2913" /> +<TGConnectingPoint num="25" id="2914" /> +<TGConnectingPoint num="26" id="2915" /> +<TGConnectingPoint num="27" id="2916" /> +<TGConnectingPoint num="28" id="2917" /> +<TGConnectingPoint num="29" id="2918" /> +<TGConnectingPoint num="30" id="2919" /> +<TGConnectingPoint num="31" id="2920" /> +<TGConnectingPoint num="32" id="2921" /> +<TGConnectingPoint num="33" id="2922" /> +<TGConnectingPoint num="34" id="2923" /> +<TGConnectingPoint num="35" id="2924" /> +<TGConnectingPoint num="36" id="2925" /> +<TGConnectingPoint num="37" id="2926" /> +<TGConnectingPoint num="38" id="2927" /> +<TGConnectingPoint num="39" id="2928" /> +<TGConnectingPoint num="40" id="2929" /> +<TGConnectingPoint num="41" id="2930" /> +<TGConnectingPoint num="42" id="2931" /> +<TGConnectingPoint num="43" id="2932" /> +<TGConnectingPoint num="44" id="2933" /> +<TGConnectingPoint num="45" id="2934" /> +<TGConnectingPoint num="46" id="2935" /> +<TGConnectingPoint num="47" id="2936" /> +<TGConnectingPoint num="48" id="2937" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferTerminated" value="" type="4" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="2988" > +<cdparam x="668" y="63" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="720" minY="10" maxY="563" /> +<infoparam name="DMA_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2939" /> +<TGConnectingPoint num="1" id="2940" /> +<TGConnectingPoint num="2" id="2941" /> +<TGConnectingPoint num="3" id="2942" /> +<TGConnectingPoint num="4" id="2943" /> +<TGConnectingPoint num="5" id="2944" /> +<TGConnectingPoint num="6" id="2945" /> +<TGConnectingPoint num="7" id="2946" /> +<TGConnectingPoint num="8" id="2947" /> +<TGConnectingPoint num="9" id="2948" /> +<TGConnectingPoint num="10" id="2949" /> +<TGConnectingPoint num="11" id="2950" /> +<TGConnectingPoint num="12" id="2951" /> +<TGConnectingPoint num="13" id="2952" /> +<TGConnectingPoint num="14" id="2953" /> +<TGConnectingPoint num="15" id="2954" /> +<TGConnectingPoint num="16" id="2955" /> +<TGConnectingPoint num="17" id="2956" /> +<TGConnectingPoint num="18" id="2957" /> +<TGConnectingPoint num="19" id="2958" /> +<TGConnectingPoint num="20" id="2959" /> +<TGConnectingPoint num="21" id="2960" /> +<TGConnectingPoint num="22" id="2961" /> +<TGConnectingPoint num="23" id="2962" /> +<TGConnectingPoint num="24" id="2963" /> +<TGConnectingPoint num="25" id="2964" /> +<TGConnectingPoint num="26" id="2965" /> +<TGConnectingPoint num="27" id="2966" /> +<TGConnectingPoint num="28" id="2967" /> +<TGConnectingPoint num="29" id="2968" /> +<TGConnectingPoint num="30" id="2969" /> +<TGConnectingPoint num="31" id="2970" /> +<TGConnectingPoint num="32" id="2971" /> +<TGConnectingPoint num="33" id="2972" /> +<TGConnectingPoint num="34" id="2973" /> +<TGConnectingPoint num="35" id="2974" /> +<TGConnectingPoint num="36" id="2975" /> +<TGConnectingPoint num="37" id="2976" /> +<TGConnectingPoint num="38" id="2977" /> +<TGConnectingPoint num="39" id="2978" /> +<TGConnectingPoint num="40" id="2979" /> +<TGConnectingPoint num="41" id="2980" /> +<TGConnectingPoint num="42" id="2981" /> +<TGConnectingPoint num="43" id="2982" /> +<TGConnectingPoint num="44" id="2983" /> +<TGConnectingPoint num="45" id="2984" /> +<TGConnectingPoint num="46" id="2985" /> +<TGConnectingPoint num="47" id="2986" /> +<TGConnectingPoint num="48" id="2987" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +<Attribute access="2" id="size" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferTerminated" value="false" type="4" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3047" > +<cdparam x="153" y="63" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="720" minY="10" maxY="563" /> +<infoparam name="CPU_Controller" value="Controller instance name" /> +<TGConnectingPoint num="0" id="2998" /> +<TGConnectingPoint num="1" id="2999" /> +<TGConnectingPoint num="2" id="3000" /> +<TGConnectingPoint num="3" id="3001" /> +<TGConnectingPoint num="4" id="3002" /> +<TGConnectingPoint num="5" id="3003" /> +<TGConnectingPoint num="6" id="3004" /> +<TGConnectingPoint num="7" id="3005" /> +<TGConnectingPoint num="8" id="3006" /> +<TGConnectingPoint num="9" id="3007" /> +<TGConnectingPoint num="10" id="3008" /> +<TGConnectingPoint num="11" id="3009" /> +<TGConnectingPoint num="12" id="3010" /> +<TGConnectingPoint num="13" id="3011" /> +<TGConnectingPoint num="14" id="3012" /> +<TGConnectingPoint num="15" id="3013" /> +<TGConnectingPoint num="16" id="3014" /> +<TGConnectingPoint num="17" id="3015" /> +<TGConnectingPoint num="18" id="3016" /> +<TGConnectingPoint num="19" id="3017" /> +<TGConnectingPoint num="20" id="3018" /> +<TGConnectingPoint num="21" id="3019" /> +<TGConnectingPoint num="22" id="3020" /> +<TGConnectingPoint num="23" id="3021" /> +<TGConnectingPoint num="24" id="3022" /> +<TGConnectingPoint num="25" id="3023" /> +<TGConnectingPoint num="26" id="3024" /> +<TGConnectingPoint num="27" id="3025" /> +<TGConnectingPoint num="28" id="3026" /> +<TGConnectingPoint num="29" id="3027" /> +<TGConnectingPoint num="30" id="3028" /> +<TGConnectingPoint num="31" id="3029" /> +<TGConnectingPoint num="32" id="3030" /> +<TGConnectingPoint num="33" id="3031" /> +<TGConnectingPoint num="34" id="3032" /> +<TGConnectingPoint num="35" id="3033" /> +<TGConnectingPoint num="36" id="3034" /> +<TGConnectingPoint num="37" id="3035" /> +<TGConnectingPoint num="38" id="3036" /> +<TGConnectingPoint num="39" id="3037" /> +<TGConnectingPoint num="40" id="3038" /> +<TGConnectingPoint num="41" id="3039" /> +<TGConnectingPoint num="42" id="3040" /> +<TGConnectingPoint num="43" id="3041" /> +<TGConnectingPoint num="44" id="3042" /> +<TGConnectingPoint num="45" id="3043" /> +<TGConnectingPoint num="46" id="3044" /> +<TGConnectingPoint num="47" id="3045" /> +<TGConnectingPoint num="48" id="3046" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="bytesToTransfer" value="" type="0" typeOther="" /> +<Attribute access="2" id="transferTerminated" value="" type="4" typeOther="" /> +<Attribute access="2" id="sourceAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="destinationAddress" value="" type="0" typeOther="" /> +<Attribute access="2" id="ID" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="2997" > +<father id="3047" num="0" /> +<cdparam x="158" y="79" /> +<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="wait(waiting_time)" /> +<TGConnectingPoint num="0" id="2989" /> +<TGConnectingPoint num="1" id="2990" /> +<TGConnectingPoint num="2" id="2991" /> +<TGConnectingPoint num="3" id="2992" /> +<TGConnectingPoint num="4" id="2993" /> +<TGConnectingPoint num="5" id="2994" /> +<TGConnectingPoint num="6" id="2995" /> +<TGConnectingPoint num="7" id="2996" /> +</SUBCOMPONENT> + +<CONNECTOR type="1523" id="3048" > +<cdparam x="419" y="223" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Polling" value="Polling(ID, transferTerminated)" /> +<P1 x="419" y="223" id="2904" /> +<P2 x="158" y="223" id="3013" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="ID" /> +<Param index="1" id="transferTerminated" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3049" > +<cdparam x="644" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Polling" value="Polling(ID, transferTerminated)" /> +<P1 x="673" y="183" id="2950" /> +<P2 x="419" y="183" id="2900" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="ID" /> +<Param index="1" id="transferTerminated" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3050" > +<cdparam x="419" y="173" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="PollingRequest" value="PollingRequest(ID, transferTerminated)" /> +<P1 x="419" y="143" id="2896" /> +<P2 x="673" y="143" id="2946" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="ID" /> +<Param index="1" id="transferTerminated" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3051" > +<cdparam x="200" y="143" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="PollingRequest" value="PollingRequest(ID, transferTerminated)" /> +<P1 x="158" y="123" id="3003" /> +<P2 x="419" y="123" id="2894" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="ID" /> +<Param index="1" id="transferTerminated" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +</Modeling> + + + + +<Modeling type="TML CP" nameTab="Double_DMA_transfer" > +<CommunicationPatternDiagramPanel name="MainCP" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1507" id="3053" > +<cdparam x="234" y="316" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="3052" /> +</COMPONENT> + +<COMPONENT type="1506" id="3055" > +<cdparam x="237" y="80" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="3054" /> +</COMPONENT> + +<COMPONENT type="301" id="3072" > +<cdparam x="448" y="98" /> +<sizeparam width="396" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="Some parameters are mapping dependent: +- counter1 and counter2 (depend on the application model) +- the source and destination addresses + +This model supposes that the DMA replies via +INTERRUPTS +" /> +<TGConnectingPoint num="0" id="3056" /> +<TGConnectingPoint num="1" id="3057" /> +<TGConnectingPoint num="2" id="3058" /> +<TGConnectingPoint num="3" id="3059" /> +<TGConnectingPoint num="4" id="3060" /> +<TGConnectingPoint num="5" id="3061" /> +<TGConnectingPoint num="6" id="3062" /> +<TGConnectingPoint num="7" id="3063" /> +<TGConnectingPoint num="8" id="3064" /> +<TGConnectingPoint num="9" id="3065" /> +<TGConnectingPoint num="10" id="3066" /> +<TGConnectingPoint num="11" id="3067" /> +<TGConnectingPoint num="12" id="3068" /> +<TGConnectingPoint num="13" id="3069" /> +<TGConnectingPoint num="14" id="3070" /> +<TGConnectingPoint num="15" id="3071" /> +<extraparam> +<Line value="Some parameters are mapping dependent:" /> +<Line value="- counter1 and counter2 (depend on the application model)" /> +<Line value="- the source and destination addresses" /> +<Line value="" /> +<Line value="This model supposes that the DMA replies via" /> +<Line value="INTERRUPTS" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1504" id="3083" > +<cdparam x="183" y="230" /> +<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMATransfer2" value="Reference to a CP" /> +<TGConnectingPoint num="0" id="3073" /> +<TGConnectingPoint num="1" id="3074" /> +<TGConnectingPoint num="2" id="3075" /> +<TGConnectingPoint num="3" id="3076" /> +<TGConnectingPoint num="4" id="3077" /> +<TGConnectingPoint num="5" id="3078" /> +<TGConnectingPoint num="6" id="3079" /> +<TGConnectingPoint num="7" id="3080" /> +<TGConnectingPoint num="8" id="3081" /> +<TGConnectingPoint num="9" id="3082" /> +</COMPONENT> + +<COMPONENT type="1504" id="3094" > +<cdparam x="183" y="139" /> +<sizeparam width="123" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMATransfer1" value="Reference to a CP" /> +<TGConnectingPoint num="0" id="3084" /> +<TGConnectingPoint num="1" id="3085" /> +<TGConnectingPoint num="2" id="3086" /> +<TGConnectingPoint num="3" id="3087" /> +<TGConnectingPoint num="4" id="3088" /> +<TGConnectingPoint num="5" id="3089" /> +<TGConnectingPoint num="6" id="3090" /> +<TGConnectingPoint num="7" id="3091" /> +<TGConnectingPoint num="8" id="3092" /> +<TGConnectingPoint num="9" id="3093" /> +</COMPONENT> + +<CONNECTOR type="1501" id="3095" > +<cdparam x="246" y="268" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="244" y="270" id="3074" /> +<P2 x="244" y="311" id="3052" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3096" > +<cdparam x="244" y="179" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="244" y="179" id="3085" /> +<P2 x="244" y="225" id="3073" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3097" > +<cdparam x="242" y="116" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="244" y="100" id="3054" /> +<P2 x="244" y="134" id="3084" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<CommunicationPatternDiagramPanel name="DMATransfer1" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1507" id="3099" > +<cdparam x="437" y="337" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="3098" /> +</COMPONENT> + +<COMPONENT type="1510" id="3103" > +<cdparam x="184" y="193" /> +<sizeparam width="164" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="for loop" value="for(i=counter1;i>0;i=i-1)" /> +<TGConnectingPoint num="0" id="3100" /> +<TGConnectingPoint num="1" id="3101" /> +<TGConnectingPoint num="2" id="3102" /> +<extraparam> +<Data init="i=counter1" condition="i>0" increment="i=i-1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1507" id="3105" > +<cdparam x="256" y="350" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="3104" /> +</COMPONENT> + +<COMPONENT type="1505" id="3116" > +<cdparam x="385" y="250" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMACycle_SD1" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="3106" /> +<TGConnectingPoint num="1" id="3107" /> +<TGConnectingPoint num="2" id="3108" /> +<TGConnectingPoint num="3" id="3109" /> +<TGConnectingPoint num="4" id="3110" /> +<TGConnectingPoint num="5" id="3111" /> +<TGConnectingPoint num="6" id="3112" /> +<TGConnectingPoint num="7" id="3113" /> +<TGConnectingPoint num="8" id="3114" /> +<TGConnectingPoint num="9" id="3115" /> +</COMPONENT> + +<COMPONENT type="1505" id="3127" > +<cdparam x="204" y="275" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TerminateDMA_SD1" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="3117" /> +<TGConnectingPoint num="1" id="3118" /> +<TGConnectingPoint num="2" id="3119" /> +<TGConnectingPoint num="3" id="3120" /> +<TGConnectingPoint num="4" id="3121" /> +<TGConnectingPoint num="5" id="3122" /> +<TGConnectingPoint num="6" id="3123" /> +<TGConnectingPoint num="7" id="3124" /> +<TGConnectingPoint num="8" id="3125" /> +<TGConnectingPoint num="9" id="3126" /> +</COMPONENT> + +<COMPONENT type="1505" id="3138" > +<cdparam x="203" y="99" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="ConfigureDMA_SD1" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="3128" /> +<TGConnectingPoint num="1" id="3129" /> +<TGConnectingPoint num="2" id="3130" /> +<TGConnectingPoint num="3" id="3131" /> +<TGConnectingPoint num="4" id="3132" /> +<TGConnectingPoint num="5" id="3133" /> +<TGConnectingPoint num="6" id="3134" /> +<TGConnectingPoint num="7" id="3135" /> +<TGConnectingPoint num="8" id="3136" /> +<TGConnectingPoint num="9" id="3137" /> +</COMPONENT> + +<COMPONENT type="1506" id="3140" > +<cdparam x="258" y="35" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="3139" /> +</COMPONENT> + +<CONNECTOR type="1501" id="3142" > +<cdparam x="331" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="348" y="207" id="3101" /> +<P2 x="447" y="245" id="3106" /> +<Point x="447" y="207" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3141" > +<father id="3142" num="0" /> +<cdparam x="447" y="207" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="3143" > +<cdparam x="99" y="298" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="266" y="218" id="3102" /> +<P2 x="266" y="270" id="3117" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3144" > +<cdparam x="77" y="391" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="447" y="290" id="3107" /> +<P2 x="447" y="332" id="3098" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3145" > +<cdparam x="266" y="315" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="266" y="315" id="3118" /> +<P2 x="266" y="345" id="3104" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3146" > +<cdparam x="265" y="139" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="265" y="139" id="3129" /> +<P2 x="266" y="188" id="3100" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3147" > +<cdparam x="263" y="31" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="265" y="55" id="3139" /> +<P2 x="265" y="94" id="3128" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<CommunicationPatternDiagramPanel name="DMATransfer2" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1507" id="3149" > +<cdparam x="416" y="344" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="3148" /> +</COMPONENT> + +<COMPONENT type="1510" id="3153" > +<cdparam x="154" y="195" /> +<sizeparam width="172" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="for loop" value="for(i=counter2;i>0;i = i-1)" /> +<TGConnectingPoint num="0" id="3150" /> +<TGConnectingPoint num="1" id="3151" /> +<TGConnectingPoint num="2" id="3152" /> +<extraparam> +<Data init="i=counter2" condition="i>0" increment="i = i-1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1507" id="3155" > +<cdparam x="230" y="371" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="3154" /> +</COMPONENT> + +<COMPONENT type="1505" id="3166" > +<cdparam x="364" y="256" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMACycle_SD2" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="3156" /> +<TGConnectingPoint num="1" id="3157" /> +<TGConnectingPoint num="2" id="3158" /> +<TGConnectingPoint num="3" id="3159" /> +<TGConnectingPoint num="4" id="3160" /> +<TGConnectingPoint num="5" id="3161" /> +<TGConnectingPoint num="6" id="3162" /> +<TGConnectingPoint num="7" id="3163" /> +<TGConnectingPoint num="8" id="3164" /> +<TGConnectingPoint num="9" id="3165" /> +</COMPONENT> + +<COMPONENT type="1505" id="3177" > +<cdparam x="178" y="296" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="TerminateDMA_SD2" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="3167" /> +<TGConnectingPoint num="1" id="3168" /> +<TGConnectingPoint num="2" id="3169" /> +<TGConnectingPoint num="3" id="3170" /> +<TGConnectingPoint num="4" id="3171" /> +<TGConnectingPoint num="5" id="3172" /> +<TGConnectingPoint num="6" id="3173" /> +<TGConnectingPoint num="7" id="3174" /> +<TGConnectingPoint num="8" id="3175" /> +<TGConnectingPoint num="9" id="3176" /> +</COMPONENT> + +<COMPONENT type="1505" id="3188" > +<cdparam x="178" y="103" /> +<sizeparam width="124" height="35" minWidth="70" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="ConfigureDMA_SD2" value="Reference to a SD" /> +<TGConnectingPoint num="0" id="3178" /> +<TGConnectingPoint num="1" id="3179" /> +<TGConnectingPoint num="2" id="3180" /> +<TGConnectingPoint num="3" id="3181" /> +<TGConnectingPoint num="4" id="3182" /> +<TGConnectingPoint num="5" id="3183" /> +<TGConnectingPoint num="6" id="3184" /> +<TGConnectingPoint num="7" id="3185" /> +<TGConnectingPoint num="8" id="3186" /> +<TGConnectingPoint num="9" id="3187" /> +</COMPONENT> + +<COMPONENT type="1506" id="3190" > +<cdparam x="233" y="39" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="3189" /> +</COMPONENT> + +<CONNECTOR type="1501" id="3192" > +<cdparam x="322" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="326" y="209" id="3151" /> +<P2 x="426" y="251" id="3156" /> +<Point x="426" y="209" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="3191" > +<father id="3192" num="0" /> +<cdparam x="426" y="209" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<CONNECTOR type="1501" id="3193" > +<cdparam x="12" y="432" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="426" y="296" id="3157" /> +<P2 x="426" y="339" id="3148" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3194" > +<cdparam x="58" y="331" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="240" y="220" id="3152" /> +<P2 x="240" y="291" id="3167" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3195" > +<cdparam x="240" y="336" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="240" y="336" id="3168" /> +<P2 x="240" y="366" id="3154" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3196" > +<cdparam x="240" y="143" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="240" y="143" id="3179" /> +<P2 x="240" y="190" id="3150" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="1501" id="3197" > +<cdparam x="238" y="35" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<P1 x="240" y="59" id="3189" /> +<P2 x="240" y="98" id="3178" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</CommunicationPatternDiagramPanel> + +<TMLSDPanel name="ConfigureDMA_SD1" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1521" id="3247" > +<cdparam x="386" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_1" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="3198" /> +<TGConnectingPoint num="1" id="3199" /> +<TGConnectingPoint num="2" id="3200" /> +<TGConnectingPoint num="3" id="3201" /> +<TGConnectingPoint num="4" id="3202" /> +<TGConnectingPoint num="5" id="3203" /> +<TGConnectingPoint num="6" id="3204" /> +<TGConnectingPoint num="7" id="3205" /> +<TGConnectingPoint num="8" id="3206" /> +<TGConnectingPoint num="9" id="3207" /> +<TGConnectingPoint num="10" id="3208" /> +<TGConnectingPoint num="11" id="3209" /> +<TGConnectingPoint num="12" id="3210" /> +<TGConnectingPoint num="13" id="3211" /> +<TGConnectingPoint num="14" id="3212" /> +<TGConnectingPoint num="15" id="3213" /> +<TGConnectingPoint num="16" id="3214" /> +<TGConnectingPoint num="17" id="3215" /> +<TGConnectingPoint num="18" id="3216" /> +<TGConnectingPoint num="19" id="3217" /> +<TGConnectingPoint num="20" id="3218" /> +<TGConnectingPoint num="21" id="3219" /> +<TGConnectingPoint num="22" id="3220" /> +<TGConnectingPoint num="23" id="3221" /> +<TGConnectingPoint num="24" id="3222" /> +<TGConnectingPoint num="25" id="3223" /> +<TGConnectingPoint num="26" id="3224" /> +<TGConnectingPoint num="27" id="3225" /> +<TGConnectingPoint num="28" id="3226" /> +<TGConnectingPoint num="29" id="3227" /> +<TGConnectingPoint num="30" id="3228" /> +<TGConnectingPoint num="31" id="3229" /> +<TGConnectingPoint num="32" id="3230" /> +<TGConnectingPoint num="33" id="3231" /> +<TGConnectingPoint num="34" id="3232" /> +<TGConnectingPoint num="35" id="3233" /> +<TGConnectingPoint num="36" id="3234" /> +<TGConnectingPoint num="37" id="3235" /> +<TGConnectingPoint num="38" id="3236" /> +<TGConnectingPoint num="39" id="3237" /> +<TGConnectingPoint num="40" id="3238" /> +<TGConnectingPoint num="41" id="3239" /> +<TGConnectingPoint num="42" id="3240" /> +<TGConnectingPoint num="43" id="3241" /> +<TGConnectingPoint num="44" id="3242" /> +<TGConnectingPoint num="45" id="3243" /> +<TGConnectingPoint num="46" id="3244" /> +<TGConnectingPoint num="47" id="3245" /> +<TGConnectingPoint num="48" id="3246" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3306" > +<cdparam x="611" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3257" /> +<TGConnectingPoint num="1" id="3258" /> +<TGConnectingPoint num="2" id="3259" /> +<TGConnectingPoint num="3" id="3260" /> +<TGConnectingPoint num="4" id="3261" /> +<TGConnectingPoint num="5" id="3262" /> +<TGConnectingPoint num="6" id="3263" /> +<TGConnectingPoint num="7" id="3264" /> +<TGConnectingPoint num="8" id="3265" /> +<TGConnectingPoint num="9" id="3266" /> +<TGConnectingPoint num="10" id="3267" /> +<TGConnectingPoint num="11" id="3268" /> +<TGConnectingPoint num="12" id="3269" /> +<TGConnectingPoint num="13" id="3270" /> +<TGConnectingPoint num="14" id="3271" /> +<TGConnectingPoint num="15" id="3272" /> +<TGConnectingPoint num="16" id="3273" /> +<TGConnectingPoint num="17" id="3274" /> +<TGConnectingPoint num="18" id="3275" /> +<TGConnectingPoint num="19" id="3276" /> +<TGConnectingPoint num="20" id="3277" /> +<TGConnectingPoint num="21" id="3278" /> +<TGConnectingPoint num="22" id="3279" /> +<TGConnectingPoint num="23" id="3280" /> +<TGConnectingPoint num="24" id="3281" /> +<TGConnectingPoint num="25" id="3282" /> +<TGConnectingPoint num="26" id="3283" /> +<TGConnectingPoint num="27" id="3284" /> +<TGConnectingPoint num="28" id="3285" /> +<TGConnectingPoint num="29" id="3286" /> +<TGConnectingPoint num="30" id="3287" /> +<TGConnectingPoint num="31" id="3288" /> +<TGConnectingPoint num="32" id="3289" /> +<TGConnectingPoint num="33" id="3290" /> +<TGConnectingPoint num="34" id="3291" /> +<TGConnectingPoint num="35" id="3292" /> +<TGConnectingPoint num="36" id="3293" /> +<TGConnectingPoint num="37" id="3294" /> +<TGConnectingPoint num="38" id="3295" /> +<TGConnectingPoint num="39" id="3296" /> +<TGConnectingPoint num="40" id="3297" /> +<TGConnectingPoint num="41" id="3298" /> +<TGConnectingPoint num="42" id="3299" /> +<TGConnectingPoint num="43" id="3300" /> +<TGConnectingPoint num="44" id="3301" /> +<TGConnectingPoint num="45" id="3302" /> +<TGConnectingPoint num="46" id="3303" /> +<TGConnectingPoint num="47" id="3304" /> +<TGConnectingPoint num="48" id="3305" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="3256" > +<father id="3306" num="0" /> +<cdparam x="616" y="151" /> +<sizeparam width="194" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="counter1 = bytesToTransfer1" /> +<TGConnectingPoint num="0" id="3248" /> +<TGConnectingPoint num="1" id="3249" /> +<TGConnectingPoint num="2" id="3250" /> +<TGConnectingPoint num="3" id="3251" /> +<TGConnectingPoint num="4" id="3252" /> +<TGConnectingPoint num="5" id="3253" /> +<TGConnectingPoint num="6" id="3254" /> +<TGConnectingPoint num="7" id="3255" /> +</SUBCOMPONENT> + +<COMPONENT type="1522" id="3356" > +<cdparam x="167" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3307" /> +<TGConnectingPoint num="1" id="3308" /> +<TGConnectingPoint num="2" id="3309" /> +<TGConnectingPoint num="3" id="3310" /> +<TGConnectingPoint num="4" id="3311" /> +<TGConnectingPoint num="5" id="3312" /> +<TGConnectingPoint num="6" id="3313" /> +<TGConnectingPoint num="7" id="3314" /> +<TGConnectingPoint num="8" id="3315" /> +<TGConnectingPoint num="9" id="3316" /> +<TGConnectingPoint num="10" id="3317" /> +<TGConnectingPoint num="11" id="3318" /> +<TGConnectingPoint num="12" id="3319" /> +<TGConnectingPoint num="13" id="3320" /> +<TGConnectingPoint num="14" id="3321" /> +<TGConnectingPoint num="15" id="3322" /> +<TGConnectingPoint num="16" id="3323" /> +<TGConnectingPoint num="17" id="3324" /> +<TGConnectingPoint num="18" id="3325" /> +<TGConnectingPoint num="19" id="3326" /> +<TGConnectingPoint num="20" id="3327" /> +<TGConnectingPoint num="21" id="3328" /> +<TGConnectingPoint num="22" id="3329" /> +<TGConnectingPoint num="23" id="3330" /> +<TGConnectingPoint num="24" id="3331" /> +<TGConnectingPoint num="25" id="3332" /> +<TGConnectingPoint num="26" id="3333" /> +<TGConnectingPoint num="27" id="3334" /> +<TGConnectingPoint num="28" id="3335" /> +<TGConnectingPoint num="29" id="3336" /> +<TGConnectingPoint num="30" id="3337" /> +<TGConnectingPoint num="31" id="3338" /> +<TGConnectingPoint num="32" id="3339" /> +<TGConnectingPoint num="33" id="3340" /> +<TGConnectingPoint num="34" id="3341" /> +<TGConnectingPoint num="35" id="3342" /> +<TGConnectingPoint num="36" id="3343" /> +<TGConnectingPoint num="37" id="3344" /> +<TGConnectingPoint num="38" id="3345" /> +<TGConnectingPoint num="39" id="3346" /> +<TGConnectingPoint num="40" id="3347" /> +<TGConnectingPoint num="41" id="3348" /> +<TGConnectingPoint num="42" id="3349" /> +<TGConnectingPoint num="43" id="3350" /> +<TGConnectingPoint num="44" id="3351" /> +<TGConnectingPoint num="45" id="3352" /> +<TGConnectingPoint num="46" id="3353" /> +<TGConnectingPoint num="47" id="3354" /> +<TGConnectingPoint num="48" id="3355" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="3357" > +<cdparam x="391" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(counter1, sourceAddress1, destinationAddress1)" /> +<P1 x="391" y="126" id="3204" /> +<P2 x="616" y="126" id="3263" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="counter1" /> +<Param index="1" id="sourceAddress1" /> +<Param index="2" id="destinationAddress1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3358" > +<cdparam x="172" y="136" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(counter1, sourceAddress1, destinationAddress1)" /> +<P1 x="172" y="96" id="3310" /> +<P2 x="391" y="96" id="3201" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="counter1" /> +<Param index="1" id="sourceAddress1" /> +<Param index="2" id="destinationAddress1" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="DMACycle_SD1" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1520" id="3408" > +<cdparam x="1072" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Dst_Storage_Instance_1" value="Storage instance name" /> +<TGConnectingPoint num="0" id="3359" /> +<TGConnectingPoint num="1" id="3360" /> +<TGConnectingPoint num="2" id="3361" /> +<TGConnectingPoint num="3" id="3362" /> +<TGConnectingPoint num="4" id="3363" /> +<TGConnectingPoint num="5" id="3364" /> +<TGConnectingPoint num="6" id="3365" /> +<TGConnectingPoint num="7" id="3366" /> +<TGConnectingPoint num="8" id="3367" /> +<TGConnectingPoint num="9" id="3368" /> +<TGConnectingPoint num="10" id="3369" /> +<TGConnectingPoint num="11" id="3370" /> +<TGConnectingPoint num="12" id="3371" /> +<TGConnectingPoint num="13" id="3372" /> +<TGConnectingPoint num="14" id="3373" /> +<TGConnectingPoint num="15" id="3374" /> +<TGConnectingPoint num="16" id="3375" /> +<TGConnectingPoint num="17" id="3376" /> +<TGConnectingPoint num="18" id="3377" /> +<TGConnectingPoint num="19" id="3378" /> +<TGConnectingPoint num="20" id="3379" /> +<TGConnectingPoint num="21" id="3380" /> +<TGConnectingPoint num="22" id="3381" /> +<TGConnectingPoint num="23" id="3382" /> +<TGConnectingPoint num="24" id="3383" /> +<TGConnectingPoint num="25" id="3384" /> +<TGConnectingPoint num="26" id="3385" /> +<TGConnectingPoint num="27" id="3386" /> +<TGConnectingPoint num="28" id="3387" /> +<TGConnectingPoint num="29" id="3388" /> +<TGConnectingPoint num="30" id="3389" /> +<TGConnectingPoint num="31" id="3390" /> +<TGConnectingPoint num="32" id="3391" /> +<TGConnectingPoint num="33" id="3392" /> +<TGConnectingPoint num="34" id="3393" /> +<TGConnectingPoint num="35" id="3394" /> +<TGConnectingPoint num="36" id="3395" /> +<TGConnectingPoint num="37" id="3396" /> +<TGConnectingPoint num="38" id="3397" /> +<TGConnectingPoint num="39" id="3398" /> +<TGConnectingPoint num="40" id="3399" /> +<TGConnectingPoint num="41" id="3400" /> +<TGConnectingPoint num="42" id="3401" /> +<TGConnectingPoint num="43" id="3402" /> +<TGConnectingPoint num="44" id="3403" /> +<TGConnectingPoint num="45" id="3404" /> +<TGConnectingPoint num="46" id="3405" /> +<TGConnectingPoint num="47" id="3406" /> +<TGConnectingPoint num="48" id="3407" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="3458" > +<cdparam x="861" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_3" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="3409" /> +<TGConnectingPoint num="1" id="3410" /> +<TGConnectingPoint num="2" id="3411" /> +<TGConnectingPoint num="3" id="3412" /> +<TGConnectingPoint num="4" id="3413" /> +<TGConnectingPoint num="5" id="3414" /> +<TGConnectingPoint num="6" id="3415" /> +<TGConnectingPoint num="7" id="3416" /> +<TGConnectingPoint num="8" id="3417" /> +<TGConnectingPoint num="9" id="3418" /> +<TGConnectingPoint num="10" id="3419" /> +<TGConnectingPoint num="11" id="3420" /> +<TGConnectingPoint num="12" id="3421" /> +<TGConnectingPoint num="13" id="3422" /> +<TGConnectingPoint num="14" id="3423" /> +<TGConnectingPoint num="15" id="3424" /> +<TGConnectingPoint num="16" id="3425" /> +<TGConnectingPoint num="17" id="3426" /> +<TGConnectingPoint num="18" id="3427" /> +<TGConnectingPoint num="19" id="3428" /> +<TGConnectingPoint num="20" id="3429" /> +<TGConnectingPoint num="21" id="3430" /> +<TGConnectingPoint num="22" id="3431" /> +<TGConnectingPoint num="23" id="3432" /> +<TGConnectingPoint num="24" id="3433" /> +<TGConnectingPoint num="25" id="3434" /> +<TGConnectingPoint num="26" id="3435" /> +<TGConnectingPoint num="27" id="3436" /> +<TGConnectingPoint num="28" id="3437" /> +<TGConnectingPoint num="29" id="3438" /> +<TGConnectingPoint num="30" id="3439" /> +<TGConnectingPoint num="31" id="3440" /> +<TGConnectingPoint num="32" id="3441" /> +<TGConnectingPoint num="33" id="3442" /> +<TGConnectingPoint num="34" id="3443" /> +<TGConnectingPoint num="35" id="3444" /> +<TGConnectingPoint num="36" id="3445" /> +<TGConnectingPoint num="37" id="3446" /> +<TGConnectingPoint num="38" id="3447" /> +<TGConnectingPoint num="39" id="3448" /> +<TGConnectingPoint num="40" id="3449" /> +<TGConnectingPoint num="41" id="3450" /> +<TGConnectingPoint num="42" id="3451" /> +<TGConnectingPoint num="43" id="3452" /> +<TGConnectingPoint num="44" id="3453" /> +<TGConnectingPoint num="45" id="3454" /> +<TGConnectingPoint num="46" id="3455" /> +<TGConnectingPoint num="47" id="3456" /> +<TGConnectingPoint num="48" id="3457" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="3508" > +<cdparam x="392" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_2" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="3459" /> +<TGConnectingPoint num="1" id="3460" /> +<TGConnectingPoint num="2" id="3461" /> +<TGConnectingPoint num="3" id="3462" /> +<TGConnectingPoint num="4" id="3463" /> +<TGConnectingPoint num="5" id="3464" /> +<TGConnectingPoint num="6" id="3465" /> +<TGConnectingPoint num="7" id="3466" /> +<TGConnectingPoint num="8" id="3467" /> +<TGConnectingPoint num="9" id="3468" /> +<TGConnectingPoint num="10" id="3469" /> +<TGConnectingPoint num="11" id="3470" /> +<TGConnectingPoint num="12" id="3471" /> +<TGConnectingPoint num="13" id="3472" /> +<TGConnectingPoint num="14" id="3473" /> +<TGConnectingPoint num="15" id="3474" /> +<TGConnectingPoint num="16" id="3475" /> +<TGConnectingPoint num="17" id="3476" /> +<TGConnectingPoint num="18" id="3477" /> +<TGConnectingPoint num="19" id="3478" /> +<TGConnectingPoint num="20" id="3479" /> +<TGConnectingPoint num="21" id="3480" /> +<TGConnectingPoint num="22" id="3481" /> +<TGConnectingPoint num="23" id="3482" /> +<TGConnectingPoint num="24" id="3483" /> +<TGConnectingPoint num="25" id="3484" /> +<TGConnectingPoint num="26" id="3485" /> +<TGConnectingPoint num="27" id="3486" /> +<TGConnectingPoint num="28" id="3487" /> +<TGConnectingPoint num="29" id="3488" /> +<TGConnectingPoint num="30" id="3489" /> +<TGConnectingPoint num="31" id="3490" /> +<TGConnectingPoint num="32" id="3491" /> +<TGConnectingPoint num="33" id="3492" /> +<TGConnectingPoint num="34" id="3493" /> +<TGConnectingPoint num="35" id="3494" /> +<TGConnectingPoint num="36" id="3495" /> +<TGConnectingPoint num="37" id="3496" /> +<TGConnectingPoint num="38" id="3497" /> +<TGConnectingPoint num="39" id="3498" /> +<TGConnectingPoint num="40" id="3499" /> +<TGConnectingPoint num="41" id="3500" /> +<TGConnectingPoint num="42" id="3501" /> +<TGConnectingPoint num="43" id="3502" /> +<TGConnectingPoint num="44" id="3503" /> +<TGConnectingPoint num="45" id="3504" /> +<TGConnectingPoint num="46" id="3505" /> +<TGConnectingPoint num="47" id="3506" /> +<TGConnectingPoint num="48" id="3507" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1520" id="3558" > +<cdparam x="643" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Src_Storage_Instance_1" value="Storage instance name" /> +<TGConnectingPoint num="0" id="3509" /> +<TGConnectingPoint num="1" id="3510" /> +<TGConnectingPoint num="2" id="3511" /> +<TGConnectingPoint num="3" id="3512" /> +<TGConnectingPoint num="4" id="3513" /> +<TGConnectingPoint num="5" id="3514" /> +<TGConnectingPoint num="6" id="3515" /> +<TGConnectingPoint num="7" id="3516" /> +<TGConnectingPoint num="8" id="3517" /> +<TGConnectingPoint num="9" id="3518" /> +<TGConnectingPoint num="10" id="3519" /> +<TGConnectingPoint num="11" id="3520" /> +<TGConnectingPoint num="12" id="3521" /> +<TGConnectingPoint num="13" id="3522" /> +<TGConnectingPoint num="14" id="3523" /> +<TGConnectingPoint num="15" id="3524" /> +<TGConnectingPoint num="16" id="3525" /> +<TGConnectingPoint num="17" id="3526" /> +<TGConnectingPoint num="18" id="3527" /> +<TGConnectingPoint num="19" id="3528" /> +<TGConnectingPoint num="20" id="3529" /> +<TGConnectingPoint num="21" id="3530" /> +<TGConnectingPoint num="22" id="3531" /> +<TGConnectingPoint num="23" id="3532" /> +<TGConnectingPoint num="24" id="3533" /> +<TGConnectingPoint num="25" id="3534" /> +<TGConnectingPoint num="26" id="3535" /> +<TGConnectingPoint num="27" id="3536" /> +<TGConnectingPoint num="28" id="3537" /> +<TGConnectingPoint num="29" id="3538" /> +<TGConnectingPoint num="30" id="3539" /> +<TGConnectingPoint num="31" id="3540" /> +<TGConnectingPoint num="32" id="3541" /> +<TGConnectingPoint num="33" id="3542" /> +<TGConnectingPoint num="34" id="3543" /> +<TGConnectingPoint num="35" id="3544" /> +<TGConnectingPoint num="36" id="3545" /> +<TGConnectingPoint num="37" id="3546" /> +<TGConnectingPoint num="38" id="3547" /> +<TGConnectingPoint num="39" id="3548" /> +<TGConnectingPoint num="40" id="3549" /> +<TGConnectingPoint num="41" id="3550" /> +<TGConnectingPoint num="42" id="3551" /> +<TGConnectingPoint num="43" id="3552" /> +<TGConnectingPoint num="44" id="3553" /> +<TGConnectingPoint num="45" id="3554" /> +<TGConnectingPoint num="46" id="3555" /> +<TGConnectingPoint num="47" id="3556" /> +<TGConnectingPoint num="48" id="3557" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3617" > +<cdparam x="161" y="56" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3568" /> +<TGConnectingPoint num="1" id="3569" /> +<TGConnectingPoint num="2" id="3570" /> +<TGConnectingPoint num="3" id="3571" /> +<TGConnectingPoint num="4" id="3572" /> +<TGConnectingPoint num="5" id="3573" /> +<TGConnectingPoint num="6" id="3574" /> +<TGConnectingPoint num="7" id="3575" /> +<TGConnectingPoint num="8" id="3576" /> +<TGConnectingPoint num="9" id="3577" /> +<TGConnectingPoint num="10" id="3578" /> +<TGConnectingPoint num="11" id="3579" /> +<TGConnectingPoint num="12" id="3580" /> +<TGConnectingPoint num="13" id="3581" /> +<TGConnectingPoint num="14" id="3582" /> +<TGConnectingPoint num="15" id="3583" /> +<TGConnectingPoint num="16" id="3584" /> +<TGConnectingPoint num="17" id="3585" /> +<TGConnectingPoint num="18" id="3586" /> +<TGConnectingPoint num="19" id="3587" /> +<TGConnectingPoint num="20" id="3588" /> +<TGConnectingPoint num="21" id="3589" /> +<TGConnectingPoint num="22" id="3590" /> +<TGConnectingPoint num="23" id="3591" /> +<TGConnectingPoint num="24" id="3592" /> +<TGConnectingPoint num="25" id="3593" /> +<TGConnectingPoint num="26" id="3594" /> +<TGConnectingPoint num="27" id="3595" /> +<TGConnectingPoint num="28" id="3596" /> +<TGConnectingPoint num="29" id="3597" /> +<TGConnectingPoint num="30" id="3598" /> +<TGConnectingPoint num="31" id="3599" /> +<TGConnectingPoint num="32" id="3600" /> +<TGConnectingPoint num="33" id="3601" /> +<TGConnectingPoint num="34" id="3602" /> +<TGConnectingPoint num="35" id="3603" /> +<TGConnectingPoint num="36" id="3604" /> +<TGConnectingPoint num="37" id="3605" /> +<TGConnectingPoint num="38" id="3606" /> +<TGConnectingPoint num="39" id="3607" /> +<TGConnectingPoint num="40" id="3608" /> +<TGConnectingPoint num="41" id="3609" /> +<TGConnectingPoint num="42" id="3610" /> +<TGConnectingPoint num="43" id="3611" /> +<TGConnectingPoint num="44" id="3612" /> +<TGConnectingPoint num="45" id="3613" /> +<TGConnectingPoint num="46" id="3614" /> +<TGConnectingPoint num="47" id="3615" /> +<TGConnectingPoint num="48" id="3616" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="3567" > +<father id="3617" num="0" /> +<cdparam x="166" y="252" /> +<sizeparam width="146" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="counter = counter - 1" /> +<TGConnectingPoint num="0" id="3559" /> +<TGConnectingPoint num="1" id="3560" /> +<TGConnectingPoint num="2" id="3561" /> +<TGConnectingPoint num="3" id="3562" /> +<TGConnectingPoint num="4" id="3563" /> +<TGConnectingPoint num="5" id="3564" /> +<TGConnectingPoint num="6" id="3565" /> +<TGConnectingPoint num="7" id="3566" /> +</SUBCOMPONENT> + +<CONNECTOR type="1523" id="3618" > +<cdparam x="866" y="246" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress1, 1)" /> +<P1 x="866" y="266" id="3429" /> +<P2 x="1077" y="266" id="3379" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress1" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3619" > +<cdparam x="166" y="216" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress1, 1)" /> +<P1 x="166" y="236" id="3585" /> +<P2 x="866" y="236" id="3426" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress1" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3620" > +<cdparam x="397" y="126" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress1, 1)" /> +<P1 x="397" y="146" id="3467" /> +<P2 x="648" y="146" id="3517" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress1" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3621" > +<cdparam x="183" y="95" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress1, 1)" /> +<P1 x="166" y="116" id="3573" /> +<P2 x="397" y="116" id="3464" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress1" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="TerminateDMA_SD1" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="301" id="3638" > +<cdparam x="716" y="60" /> +<sizeparam width="344" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="The transfer instance is different w.r.t. the +transfer instance of the ConfigureTransfer +sequence diagram. +" /> +<TGConnectingPoint num="0" id="3622" /> +<TGConnectingPoint num="1" id="3623" /> +<TGConnectingPoint num="2" id="3624" /> +<TGConnectingPoint num="3" id="3625" /> +<TGConnectingPoint num="4" id="3626" /> +<TGConnectingPoint num="5" id="3627" /> +<TGConnectingPoint num="6" id="3628" /> +<TGConnectingPoint num="7" id="3629" /> +<TGConnectingPoint num="8" id="3630" /> +<TGConnectingPoint num="9" id="3631" /> +<TGConnectingPoint num="10" id="3632" /> +<TGConnectingPoint num="11" id="3633" /> +<TGConnectingPoint num="12" id="3634" /> +<TGConnectingPoint num="13" id="3635" /> +<TGConnectingPoint num="14" id="3636" /> +<TGConnectingPoint num="15" id="3637" /> +<extraparam> +<Line value="The transfer instance is different w.r.t. the" /> +<Line value="transfer instance of the ConfigureTransfer" /> +<Line value="sequence diagram." /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="3688" > +<cdparam x="332" y="52" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_4" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="3639" /> +<TGConnectingPoint num="1" id="3640" /> +<TGConnectingPoint num="2" id="3641" /> +<TGConnectingPoint num="3" id="3642" /> +<TGConnectingPoint num="4" id="3643" /> +<TGConnectingPoint num="5" id="3644" /> +<TGConnectingPoint num="6" id="3645" /> +<TGConnectingPoint num="7" id="3646" /> +<TGConnectingPoint num="8" id="3647" /> +<TGConnectingPoint num="9" id="3648" /> +<TGConnectingPoint num="10" id="3649" /> +<TGConnectingPoint num="11" id="3650" /> +<TGConnectingPoint num="12" id="3651" /> +<TGConnectingPoint num="13" id="3652" /> +<TGConnectingPoint num="14" id="3653" /> +<TGConnectingPoint num="15" id="3654" /> +<TGConnectingPoint num="16" id="3655" /> +<TGConnectingPoint num="17" id="3656" /> +<TGConnectingPoint num="18" id="3657" /> +<TGConnectingPoint num="19" id="3658" /> +<TGConnectingPoint num="20" id="3659" /> +<TGConnectingPoint num="21" id="3660" /> +<TGConnectingPoint num="22" id="3661" /> +<TGConnectingPoint num="23" id="3662" /> +<TGConnectingPoint num="24" id="3663" /> +<TGConnectingPoint num="25" id="3664" /> +<TGConnectingPoint num="26" id="3665" /> +<TGConnectingPoint num="27" id="3666" /> +<TGConnectingPoint num="28" id="3667" /> +<TGConnectingPoint num="29" id="3668" /> +<TGConnectingPoint num="30" id="3669" /> +<TGConnectingPoint num="31" id="3670" /> +<TGConnectingPoint num="32" id="3671" /> +<TGConnectingPoint num="33" id="3672" /> +<TGConnectingPoint num="34" id="3673" /> +<TGConnectingPoint num="35" id="3674" /> +<TGConnectingPoint num="36" id="3675" /> +<TGConnectingPoint num="37" id="3676" /> +<TGConnectingPoint num="38" id="3677" /> +<TGConnectingPoint num="39" id="3678" /> +<TGConnectingPoint num="40" id="3679" /> +<TGConnectingPoint num="41" id="3680" /> +<TGConnectingPoint num="42" id="3681" /> +<TGConnectingPoint num="43" id="3682" /> +<TGConnectingPoint num="44" id="3683" /> +<TGConnectingPoint num="45" id="3684" /> +<TGConnectingPoint num="46" id="3685" /> +<TGConnectingPoint num="47" id="3686" /> +<TGConnectingPoint num="48" id="3687" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3738" > +<cdparam x="557" y="52" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3689" /> +<TGConnectingPoint num="1" id="3690" /> +<TGConnectingPoint num="2" id="3691" /> +<TGConnectingPoint num="3" id="3692" /> +<TGConnectingPoint num="4" id="3693" /> +<TGConnectingPoint num="5" id="3694" /> +<TGConnectingPoint num="6" id="3695" /> +<TGConnectingPoint num="7" id="3696" /> +<TGConnectingPoint num="8" id="3697" /> +<TGConnectingPoint num="9" id="3698" /> +<TGConnectingPoint num="10" id="3699" /> +<TGConnectingPoint num="11" id="3700" /> +<TGConnectingPoint num="12" id="3701" /> +<TGConnectingPoint num="13" id="3702" /> +<TGConnectingPoint num="14" id="3703" /> +<TGConnectingPoint num="15" id="3704" /> +<TGConnectingPoint num="16" id="3705" /> +<TGConnectingPoint num="17" id="3706" /> +<TGConnectingPoint num="18" id="3707" /> +<TGConnectingPoint num="19" id="3708" /> +<TGConnectingPoint num="20" id="3709" /> +<TGConnectingPoint num="21" id="3710" /> +<TGConnectingPoint num="22" id="3711" /> +<TGConnectingPoint num="23" id="3712" /> +<TGConnectingPoint num="24" id="3713" /> +<TGConnectingPoint num="25" id="3714" /> +<TGConnectingPoint num="26" id="3715" /> +<TGConnectingPoint num="27" id="3716" /> +<TGConnectingPoint num="28" id="3717" /> +<TGConnectingPoint num="29" id="3718" /> +<TGConnectingPoint num="30" id="3719" /> +<TGConnectingPoint num="31" id="3720" /> +<TGConnectingPoint num="32" id="3721" /> +<TGConnectingPoint num="33" id="3722" /> +<TGConnectingPoint num="34" id="3723" /> +<TGConnectingPoint num="35" id="3724" /> +<TGConnectingPoint num="36" id="3725" /> +<TGConnectingPoint num="37" id="3726" /> +<TGConnectingPoint num="38" id="3727" /> +<TGConnectingPoint num="39" id="3728" /> +<TGConnectingPoint num="40" id="3729" /> +<TGConnectingPoint num="41" id="3730" /> +<TGConnectingPoint num="42" id="3731" /> +<TGConnectingPoint num="43" id="3732" /> +<TGConnectingPoint num="44" id="3733" /> +<TGConnectingPoint num="45" id="3734" /> +<TGConnectingPoint num="46" id="3735" /> +<TGConnectingPoint num="47" id="3736" /> +<TGConnectingPoint num="48" id="3737" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3788" > +<cdparam x="113" y="52" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller_1" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3739" /> +<TGConnectingPoint num="1" id="3740" /> +<TGConnectingPoint num="2" id="3741" /> +<TGConnectingPoint num="3" id="3742" /> +<TGConnectingPoint num="4" id="3743" /> +<TGConnectingPoint num="5" id="3744" /> +<TGConnectingPoint num="6" id="3745" /> +<TGConnectingPoint num="7" id="3746" /> +<TGConnectingPoint num="8" id="3747" /> +<TGConnectingPoint num="9" id="3748" /> +<TGConnectingPoint num="10" id="3749" /> +<TGConnectingPoint num="11" id="3750" /> +<TGConnectingPoint num="12" id="3751" /> +<TGConnectingPoint num="13" id="3752" /> +<TGConnectingPoint num="14" id="3753" /> +<TGConnectingPoint num="15" id="3754" /> +<TGConnectingPoint num="16" id="3755" /> +<TGConnectingPoint num="17" id="3756" /> +<TGConnectingPoint num="18" id="3757" /> +<TGConnectingPoint num="19" id="3758" /> +<TGConnectingPoint num="20" id="3759" /> +<TGConnectingPoint num="21" id="3760" /> +<TGConnectingPoint num="22" id="3761" /> +<TGConnectingPoint num="23" id="3762" /> +<TGConnectingPoint num="24" id="3763" /> +<TGConnectingPoint num="25" id="3764" /> +<TGConnectingPoint num="26" id="3765" /> +<TGConnectingPoint num="27" id="3766" /> +<TGConnectingPoint num="28" id="3767" /> +<TGConnectingPoint num="29" id="3768" /> +<TGConnectingPoint num="30" id="3769" /> +<TGConnectingPoint num="31" id="3770" /> +<TGConnectingPoint num="32" id="3771" /> +<TGConnectingPoint num="33" id="3772" /> +<TGConnectingPoint num="34" id="3773" /> +<TGConnectingPoint num="35" id="3774" /> +<TGConnectingPoint num="36" id="3775" /> +<TGConnectingPoint num="37" id="3776" /> +<TGConnectingPoint num="38" id="3777" /> +<TGConnectingPoint num="39" id="3778" /> +<TGConnectingPoint num="40" id="3779" /> +<TGConnectingPoint num="41" id="3780" /> +<TGConnectingPoint num="42" id="3781" /> +<TGConnectingPoint num="43" id="3782" /> +<TGConnectingPoint num="44" id="3783" /> +<TGConnectingPoint num="45" id="3784" /> +<TGConnectingPoint num="46" id="3785" /> +<TGConnectingPoint num="47" id="3786" /> +<TGConnectingPoint num="48" id="3787" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress1" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter1" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="3789" > +<cdparam x="337" y="112" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferTerminated" value="TransferTerminated()" /> +<P1 x="337" y="112" id="3644" /> +<P2 x="118" y="112" id="3744" /> +<AutomaticDrawing data="true" /> +<extraparam> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3790" > +<cdparam x="562" y="82" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferTerminated" value="TransferTerminated()" /> +<P1 x="562" y="82" id="3691" /> +<P2 x="337" y="82" id="3641" /> +<AutomaticDrawing data="true" /> +<extraparam> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="ConfigureDMA_SD2" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1521" id="3840" > +<cdparam x="384" y="54" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_5" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="3791" /> +<TGConnectingPoint num="1" id="3792" /> +<TGConnectingPoint num="2" id="3793" /> +<TGConnectingPoint num="3" id="3794" /> +<TGConnectingPoint num="4" id="3795" /> +<TGConnectingPoint num="5" id="3796" /> +<TGConnectingPoint num="6" id="3797" /> +<TGConnectingPoint num="7" id="3798" /> +<TGConnectingPoint num="8" id="3799" /> +<TGConnectingPoint num="9" id="3800" /> +<TGConnectingPoint num="10" id="3801" /> +<TGConnectingPoint num="11" id="3802" /> +<TGConnectingPoint num="12" id="3803" /> +<TGConnectingPoint num="13" id="3804" /> +<TGConnectingPoint num="14" id="3805" /> +<TGConnectingPoint num="15" id="3806" /> +<TGConnectingPoint num="16" id="3807" /> +<TGConnectingPoint num="17" id="3808" /> +<TGConnectingPoint num="18" id="3809" /> +<TGConnectingPoint num="19" id="3810" /> +<TGConnectingPoint num="20" id="3811" /> +<TGConnectingPoint num="21" id="3812" /> +<TGConnectingPoint num="22" id="3813" /> +<TGConnectingPoint num="23" id="3814" /> +<TGConnectingPoint num="24" id="3815" /> +<TGConnectingPoint num="25" id="3816" /> +<TGConnectingPoint num="26" id="3817" /> +<TGConnectingPoint num="27" id="3818" /> +<TGConnectingPoint num="28" id="3819" /> +<TGConnectingPoint num="29" id="3820" /> +<TGConnectingPoint num="30" id="3821" /> +<TGConnectingPoint num="31" id="3822" /> +<TGConnectingPoint num="32" id="3823" /> +<TGConnectingPoint num="33" id="3824" /> +<TGConnectingPoint num="34" id="3825" /> +<TGConnectingPoint num="35" id="3826" /> +<TGConnectingPoint num="36" id="3827" /> +<TGConnectingPoint num="37" id="3828" /> +<TGConnectingPoint num="38" id="3829" /> +<TGConnectingPoint num="39" id="3830" /> +<TGConnectingPoint num="40" id="3831" /> +<TGConnectingPoint num="41" id="3832" /> +<TGConnectingPoint num="42" id="3833" /> +<TGConnectingPoint num="43" id="3834" /> +<TGConnectingPoint num="44" id="3835" /> +<TGConnectingPoint num="45" id="3836" /> +<TGConnectingPoint num="46" id="3837" /> +<TGConnectingPoint num="47" id="3838" /> +<TGConnectingPoint num="48" id="3839" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3890" > +<cdparam x="609" y="54" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_2" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3841" /> +<TGConnectingPoint num="1" id="3842" /> +<TGConnectingPoint num="2" id="3843" /> +<TGConnectingPoint num="3" id="3844" /> +<TGConnectingPoint num="4" id="3845" /> +<TGConnectingPoint num="5" id="3846" /> +<TGConnectingPoint num="6" id="3847" /> +<TGConnectingPoint num="7" id="3848" /> +<TGConnectingPoint num="8" id="3849" /> +<TGConnectingPoint num="9" id="3850" /> +<TGConnectingPoint num="10" id="3851" /> +<TGConnectingPoint num="11" id="3852" /> +<TGConnectingPoint num="12" id="3853" /> +<TGConnectingPoint num="13" id="3854" /> +<TGConnectingPoint num="14" id="3855" /> +<TGConnectingPoint num="15" id="3856" /> +<TGConnectingPoint num="16" id="3857" /> +<TGConnectingPoint num="17" id="3858" /> +<TGConnectingPoint num="18" id="3859" /> +<TGConnectingPoint num="19" id="3860" /> +<TGConnectingPoint num="20" id="3861" /> +<TGConnectingPoint num="21" id="3862" /> +<TGConnectingPoint num="22" id="3863" /> +<TGConnectingPoint num="23" id="3864" /> +<TGConnectingPoint num="24" id="3865" /> +<TGConnectingPoint num="25" id="3866" /> +<TGConnectingPoint num="26" id="3867" /> +<TGConnectingPoint num="27" id="3868" /> +<TGConnectingPoint num="28" id="3869" /> +<TGConnectingPoint num="29" id="3870" /> +<TGConnectingPoint num="30" id="3871" /> +<TGConnectingPoint num="31" id="3872" /> +<TGConnectingPoint num="32" id="3873" /> +<TGConnectingPoint num="33" id="3874" /> +<TGConnectingPoint num="34" id="3875" /> +<TGConnectingPoint num="35" id="3876" /> +<TGConnectingPoint num="36" id="3877" /> +<TGConnectingPoint num="37" id="3878" /> +<TGConnectingPoint num="38" id="3879" /> +<TGConnectingPoint num="39" id="3880" /> +<TGConnectingPoint num="40" id="3881" /> +<TGConnectingPoint num="41" id="3882" /> +<TGConnectingPoint num="42" id="3883" /> +<TGConnectingPoint num="43" id="3884" /> +<TGConnectingPoint num="44" id="3885" /> +<TGConnectingPoint num="45" id="3886" /> +<TGConnectingPoint num="46" id="3887" /> +<TGConnectingPoint num="47" id="3888" /> +<TGConnectingPoint num="48" id="3889" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="3940" > +<cdparam x="165" y="54" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller_2" value="Controller instance name" /> +<TGConnectingPoint num="0" id="3891" /> +<TGConnectingPoint num="1" id="3892" /> +<TGConnectingPoint num="2" id="3893" /> +<TGConnectingPoint num="3" id="3894" /> +<TGConnectingPoint num="4" id="3895" /> +<TGConnectingPoint num="5" id="3896" /> +<TGConnectingPoint num="6" id="3897" /> +<TGConnectingPoint num="7" id="3898" /> +<TGConnectingPoint num="8" id="3899" /> +<TGConnectingPoint num="9" id="3900" /> +<TGConnectingPoint num="10" id="3901" /> +<TGConnectingPoint num="11" id="3902" /> +<TGConnectingPoint num="12" id="3903" /> +<TGConnectingPoint num="13" id="3904" /> +<TGConnectingPoint num="14" id="3905" /> +<TGConnectingPoint num="15" id="3906" /> +<TGConnectingPoint num="16" id="3907" /> +<TGConnectingPoint num="17" id="3908" /> +<TGConnectingPoint num="18" id="3909" /> +<TGConnectingPoint num="19" id="3910" /> +<TGConnectingPoint num="20" id="3911" /> +<TGConnectingPoint num="21" id="3912" /> +<TGConnectingPoint num="22" id="3913" /> +<TGConnectingPoint num="23" id="3914" /> +<TGConnectingPoint num="24" id="3915" /> +<TGConnectingPoint num="25" id="3916" /> +<TGConnectingPoint num="26" id="3917" /> +<TGConnectingPoint num="27" id="3918" /> +<TGConnectingPoint num="28" id="3919" /> +<TGConnectingPoint num="29" id="3920" /> +<TGConnectingPoint num="30" id="3921" /> +<TGConnectingPoint num="31" id="3922" /> +<TGConnectingPoint num="32" id="3923" /> +<TGConnectingPoint num="33" id="3924" /> +<TGConnectingPoint num="34" id="3925" /> +<TGConnectingPoint num="35" id="3926" /> +<TGConnectingPoint num="36" id="3927" /> +<TGConnectingPoint num="37" id="3928" /> +<TGConnectingPoint num="38" id="3929" /> +<TGConnectingPoint num="39" id="3930" /> +<TGConnectingPoint num="40" id="3931" /> +<TGConnectingPoint num="41" id="3932" /> +<TGConnectingPoint num="42" id="3933" /> +<TGConnectingPoint num="43" id="3934" /> +<TGConnectingPoint num="44" id="3935" /> +<TGConnectingPoint num="45" id="3936" /> +<TGConnectingPoint num="46" id="3937" /> +<TGConnectingPoint num="47" id="3938" /> +<TGConnectingPoint num="48" id="3939" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="3941" > +<cdparam x="389" y="164" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(counter2, sourceAddress2, destinationAddress2)" /> +<P1 x="389" y="124" id="3797" /> +<P2 x="614" y="124" id="3847" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="counter2" /> +<Param index="1" id="sourceAddress2" /> +<Param index="2" id="destinationAddress2" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="3942" > +<cdparam x="170" y="134" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferRequest" value="TransferRequest(counter2, sourceAddress2, destinationAddress2)" /> +<P1 x="170" y="94" id="3894" /> +<P2 x="389" y="94" id="3794" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="counter2" /> +<Param index="1" id="sourceAddress2" /> +<Param index="2" id="destinationAddress2" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="DMACycle_SD2" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1520" id="3992" > +<cdparam x="1037" y="57" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Dst_Storage_Instance_2" value="Storage instance name" /> +<TGConnectingPoint num="0" id="3943" /> +<TGConnectingPoint num="1" id="3944" /> +<TGConnectingPoint num="2" id="3945" /> +<TGConnectingPoint num="3" id="3946" /> +<TGConnectingPoint num="4" id="3947" /> +<TGConnectingPoint num="5" id="3948" /> +<TGConnectingPoint num="6" id="3949" /> +<TGConnectingPoint num="7" id="3950" /> +<TGConnectingPoint num="8" id="3951" /> +<TGConnectingPoint num="9" id="3952" /> +<TGConnectingPoint num="10" id="3953" /> +<TGConnectingPoint num="11" id="3954" /> +<TGConnectingPoint num="12" id="3955" /> +<TGConnectingPoint num="13" id="3956" /> +<TGConnectingPoint num="14" id="3957" /> +<TGConnectingPoint num="15" id="3958" /> +<TGConnectingPoint num="16" id="3959" /> +<TGConnectingPoint num="17" id="3960" /> +<TGConnectingPoint num="18" id="3961" /> +<TGConnectingPoint num="19" id="3962" /> +<TGConnectingPoint num="20" id="3963" /> +<TGConnectingPoint num="21" id="3964" /> +<TGConnectingPoint num="22" id="3965" /> +<TGConnectingPoint num="23" id="3966" /> +<TGConnectingPoint num="24" id="3967" /> +<TGConnectingPoint num="25" id="3968" /> +<TGConnectingPoint num="26" id="3969" /> +<TGConnectingPoint num="27" id="3970" /> +<TGConnectingPoint num="28" id="3971" /> +<TGConnectingPoint num="29" id="3972" /> +<TGConnectingPoint num="30" id="3973" /> +<TGConnectingPoint num="31" id="3974" /> +<TGConnectingPoint num="32" id="3975" /> +<TGConnectingPoint num="33" id="3976" /> +<TGConnectingPoint num="34" id="3977" /> +<TGConnectingPoint num="35" id="3978" /> +<TGConnectingPoint num="36" id="3979" /> +<TGConnectingPoint num="37" id="3980" /> +<TGConnectingPoint num="38" id="3981" /> +<TGConnectingPoint num="39" id="3982" /> +<TGConnectingPoint num="40" id="3983" /> +<TGConnectingPoint num="41" id="3984" /> +<TGConnectingPoint num="42" id="3985" /> +<TGConnectingPoint num="43" id="3986" /> +<TGConnectingPoint num="44" id="3987" /> +<TGConnectingPoint num="45" id="3988" /> +<TGConnectingPoint num="46" id="3989" /> +<TGConnectingPoint num="47" id="3990" /> +<TGConnectingPoint num="48" id="3991" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="4042" > +<cdparam x="826" y="57" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_7" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="3993" /> +<TGConnectingPoint num="1" id="3994" /> +<TGConnectingPoint num="2" id="3995" /> +<TGConnectingPoint num="3" id="3996" /> +<TGConnectingPoint num="4" id="3997" /> +<TGConnectingPoint num="5" id="3998" /> +<TGConnectingPoint num="6" id="3999" /> +<TGConnectingPoint num="7" id="4000" /> +<TGConnectingPoint num="8" id="4001" /> +<TGConnectingPoint num="9" id="4002" /> +<TGConnectingPoint num="10" id="4003" /> +<TGConnectingPoint num="11" id="4004" /> +<TGConnectingPoint num="12" id="4005" /> +<TGConnectingPoint num="13" id="4006" /> +<TGConnectingPoint num="14" id="4007" /> +<TGConnectingPoint num="15" id="4008" /> +<TGConnectingPoint num="16" id="4009" /> +<TGConnectingPoint num="17" id="4010" /> +<TGConnectingPoint num="18" id="4011" /> +<TGConnectingPoint num="19" id="4012" /> +<TGConnectingPoint num="20" id="4013" /> +<TGConnectingPoint num="21" id="4014" /> +<TGConnectingPoint num="22" id="4015" /> +<TGConnectingPoint num="23" id="4016" /> +<TGConnectingPoint num="24" id="4017" /> +<TGConnectingPoint num="25" id="4018" /> +<TGConnectingPoint num="26" id="4019" /> +<TGConnectingPoint num="27" id="4020" /> +<TGConnectingPoint num="28" id="4021" /> +<TGConnectingPoint num="29" id="4022" /> +<TGConnectingPoint num="30" id="4023" /> +<TGConnectingPoint num="31" id="4024" /> +<TGConnectingPoint num="32" id="4025" /> +<TGConnectingPoint num="33" id="4026" /> +<TGConnectingPoint num="34" id="4027" /> +<TGConnectingPoint num="35" id="4028" /> +<TGConnectingPoint num="36" id="4029" /> +<TGConnectingPoint num="37" id="4030" /> +<TGConnectingPoint num="38" id="4031" /> +<TGConnectingPoint num="39" id="4032" /> +<TGConnectingPoint num="40" id="4033" /> +<TGConnectingPoint num="41" id="4034" /> +<TGConnectingPoint num="42" id="4035" /> +<TGConnectingPoint num="43" id="4036" /> +<TGConnectingPoint num="44" id="4037" /> +<TGConnectingPoint num="45" id="4038" /> +<TGConnectingPoint num="46" id="4039" /> +<TGConnectingPoint num="47" id="4040" /> +<TGConnectingPoint num="48" id="4041" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1521" id="4092" > +<cdparam x="357" y="57" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_6" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="4043" /> +<TGConnectingPoint num="1" id="4044" /> +<TGConnectingPoint num="2" id="4045" /> +<TGConnectingPoint num="3" id="4046" /> +<TGConnectingPoint num="4" id="4047" /> +<TGConnectingPoint num="5" id="4048" /> +<TGConnectingPoint num="6" id="4049" /> +<TGConnectingPoint num="7" id="4050" /> +<TGConnectingPoint num="8" id="4051" /> +<TGConnectingPoint num="9" id="4052" /> +<TGConnectingPoint num="10" id="4053" /> +<TGConnectingPoint num="11" id="4054" /> +<TGConnectingPoint num="12" id="4055" /> +<TGConnectingPoint num="13" id="4056" /> +<TGConnectingPoint num="14" id="4057" /> +<TGConnectingPoint num="15" id="4058" /> +<TGConnectingPoint num="16" id="4059" /> +<TGConnectingPoint num="17" id="4060" /> +<TGConnectingPoint num="18" id="4061" /> +<TGConnectingPoint num="19" id="4062" /> +<TGConnectingPoint num="20" id="4063" /> +<TGConnectingPoint num="21" id="4064" /> +<TGConnectingPoint num="22" id="4065" /> +<TGConnectingPoint num="23" id="4066" /> +<TGConnectingPoint num="24" id="4067" /> +<TGConnectingPoint num="25" id="4068" /> +<TGConnectingPoint num="26" id="4069" /> +<TGConnectingPoint num="27" id="4070" /> +<TGConnectingPoint num="28" id="4071" /> +<TGConnectingPoint num="29" id="4072" /> +<TGConnectingPoint num="30" id="4073" /> +<TGConnectingPoint num="31" id="4074" /> +<TGConnectingPoint num="32" id="4075" /> +<TGConnectingPoint num="33" id="4076" /> +<TGConnectingPoint num="34" id="4077" /> +<TGConnectingPoint num="35" id="4078" /> +<TGConnectingPoint num="36" id="4079" /> +<TGConnectingPoint num="37" id="4080" /> +<TGConnectingPoint num="38" id="4081" /> +<TGConnectingPoint num="39" id="4082" /> +<TGConnectingPoint num="40" id="4083" /> +<TGConnectingPoint num="41" id="4084" /> +<TGConnectingPoint num="42" id="4085" /> +<TGConnectingPoint num="43" id="4086" /> +<TGConnectingPoint num="44" id="4087" /> +<TGConnectingPoint num="45" id="4088" /> +<TGConnectingPoint num="46" id="4089" /> +<TGConnectingPoint num="47" id="4090" /> +<TGConnectingPoint num="48" id="4091" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1520" id="4142" > +<cdparam x="608" y="57" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Src_Storage_Instance_2" value="Storage instance name" /> +<TGConnectingPoint num="0" id="4093" /> +<TGConnectingPoint num="1" id="4094" /> +<TGConnectingPoint num="2" id="4095" /> +<TGConnectingPoint num="3" id="4096" /> +<TGConnectingPoint num="4" id="4097" /> +<TGConnectingPoint num="5" id="4098" /> +<TGConnectingPoint num="6" id="4099" /> +<TGConnectingPoint num="7" id="4100" /> +<TGConnectingPoint num="8" id="4101" /> +<TGConnectingPoint num="9" id="4102" /> +<TGConnectingPoint num="10" id="4103" /> +<TGConnectingPoint num="11" id="4104" /> +<TGConnectingPoint num="12" id="4105" /> +<TGConnectingPoint num="13" id="4106" /> +<TGConnectingPoint num="14" id="4107" /> +<TGConnectingPoint num="15" id="4108" /> +<TGConnectingPoint num="16" id="4109" /> +<TGConnectingPoint num="17" id="4110" /> +<TGConnectingPoint num="18" id="4111" /> +<TGConnectingPoint num="19" id="4112" /> +<TGConnectingPoint num="20" id="4113" /> +<TGConnectingPoint num="21" id="4114" /> +<TGConnectingPoint num="22" id="4115" /> +<TGConnectingPoint num="23" id="4116" /> +<TGConnectingPoint num="24" id="4117" /> +<TGConnectingPoint num="25" id="4118" /> +<TGConnectingPoint num="26" id="4119" /> +<TGConnectingPoint num="27" id="4120" /> +<TGConnectingPoint num="28" id="4121" /> +<TGConnectingPoint num="29" id="4122" /> +<TGConnectingPoint num="30" id="4123" /> +<TGConnectingPoint num="31" id="4124" /> +<TGConnectingPoint num="32" id="4125" /> +<TGConnectingPoint num="33" id="4126" /> +<TGConnectingPoint num="34" id="4127" /> +<TGConnectingPoint num="35" id="4128" /> +<TGConnectingPoint num="36" id="4129" /> +<TGConnectingPoint num="37" id="4130" /> +<TGConnectingPoint num="38" id="4131" /> +<TGConnectingPoint num="39" id="4132" /> +<TGConnectingPoint num="40" id="4133" /> +<TGConnectingPoint num="41" id="4134" /> +<TGConnectingPoint num="42" id="4135" /> +<TGConnectingPoint num="43" id="4136" /> +<TGConnectingPoint num="44" id="4137" /> +<TGConnectingPoint num="45" id="4138" /> +<TGConnectingPoint num="46" id="4139" /> +<TGConnectingPoint num="47" id="4140" /> +<TGConnectingPoint num="48" id="4141" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="4201" > +<cdparam x="126" y="57" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_2" value="Controller instance name" /> +<TGConnectingPoint num="0" id="4152" /> +<TGConnectingPoint num="1" id="4153" /> +<TGConnectingPoint num="2" id="4154" /> +<TGConnectingPoint num="3" id="4155" /> +<TGConnectingPoint num="4" id="4156" /> +<TGConnectingPoint num="5" id="4157" /> +<TGConnectingPoint num="6" id="4158" /> +<TGConnectingPoint num="7" id="4159" /> +<TGConnectingPoint num="8" id="4160" /> +<TGConnectingPoint num="9" id="4161" /> +<TGConnectingPoint num="10" id="4162" /> +<TGConnectingPoint num="11" id="4163" /> +<TGConnectingPoint num="12" id="4164" /> +<TGConnectingPoint num="13" id="4165" /> +<TGConnectingPoint num="14" id="4166" /> +<TGConnectingPoint num="15" id="4167" /> +<TGConnectingPoint num="16" id="4168" /> +<TGConnectingPoint num="17" id="4169" /> +<TGConnectingPoint num="18" id="4170" /> +<TGConnectingPoint num="19" id="4171" /> +<TGConnectingPoint num="20" id="4172" /> +<TGConnectingPoint num="21" id="4173" /> +<TGConnectingPoint num="22" id="4174" /> +<TGConnectingPoint num="23" id="4175" /> +<TGConnectingPoint num="24" id="4176" /> +<TGConnectingPoint num="25" id="4177" /> +<TGConnectingPoint num="26" id="4178" /> +<TGConnectingPoint num="27" id="4179" /> +<TGConnectingPoint num="28" id="4180" /> +<TGConnectingPoint num="29" id="4181" /> +<TGConnectingPoint num="30" id="4182" /> +<TGConnectingPoint num="31" id="4183" /> +<TGConnectingPoint num="32" id="4184" /> +<TGConnectingPoint num="33" id="4185" /> +<TGConnectingPoint num="34" id="4186" /> +<TGConnectingPoint num="35" id="4187" /> +<TGConnectingPoint num="36" id="4188" /> +<TGConnectingPoint num="37" id="4189" /> +<TGConnectingPoint num="38" id="4190" /> +<TGConnectingPoint num="39" id="4191" /> +<TGConnectingPoint num="40" id="4192" /> +<TGConnectingPoint num="41" id="4193" /> +<TGConnectingPoint num="42" id="4194" /> +<TGConnectingPoint num="43" id="4195" /> +<TGConnectingPoint num="44" id="4196" /> +<TGConnectingPoint num="45" id="4197" /> +<TGConnectingPoint num="46" id="4198" /> +<TGConnectingPoint num="47" id="4199" /> +<TGConnectingPoint num="48" id="4200" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1524" id="4151" > +<father id="4201" num="0" /> +<cdparam x="131" y="253" /> +<sizeparam width="146" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="5" maxX="5" minY="10" maxY="470" /> +<infoparam name="action state" value="counter = counter - 1" /> +<TGConnectingPoint num="0" id="4143" /> +<TGConnectingPoint num="1" id="4144" /> +<TGConnectingPoint num="2" id="4145" /> +<TGConnectingPoint num="3" id="4146" /> +<TGConnectingPoint num="4" id="4147" /> +<TGConnectingPoint num="5" id="4148" /> +<TGConnectingPoint num="6" id="4149" /> +<TGConnectingPoint num="7" id="4150" /> +</SUBCOMPONENT> + +<CONNECTOR type="1523" id="4202" > +<cdparam x="831" y="247" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress2, 1)" /> +<P1 x="831" y="267" id="4013" /> +<P2 x="1042" y="267" id="3963" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress2" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="4203" > +<cdparam x="131" y="217" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Write" value="Write(destinationAddress2, 1)" /> +<P1 x="131" y="237" id="4169" /> +<P2 x="831" y="237" id="4010" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="destinationAddress2" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="4204" > +<cdparam x="362" y="127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress2, 1)" /> +<P1 x="362" y="147" id="4051" /> +<P2 x="613" y="147" id="4101" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress2" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="4205" > +<cdparam x="148" y="96" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Read" value="Read(sourceAddress2, 1)" /> +<P1 x="131" y="117" id="4157" /> +<P2 x="362" y="117" id="4048" /> +<AutomaticDrawing data="true" /> +<extraparam> +<Param index="0" id="sourceAddress2" /> +<Param index="1" id="1" /> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +<TMLSDPanel name="TerminateDMA_SD2" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="1521" id="4255" > +<cdparam x="280" y="53" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Transfer_Instance_8" value="Transfer instance name" /> +<TGConnectingPoint num="0" id="4206" /> +<TGConnectingPoint num="1" id="4207" /> +<TGConnectingPoint num="2" id="4208" /> +<TGConnectingPoint num="3" id="4209" /> +<TGConnectingPoint num="4" id="4210" /> +<TGConnectingPoint num="5" id="4211" /> +<TGConnectingPoint num="6" id="4212" /> +<TGConnectingPoint num="7" id="4213" /> +<TGConnectingPoint num="8" id="4214" /> +<TGConnectingPoint num="9" id="4215" /> +<TGConnectingPoint num="10" id="4216" /> +<TGConnectingPoint num="11" id="4217" /> +<TGConnectingPoint num="12" id="4218" /> +<TGConnectingPoint num="13" id="4219" /> +<TGConnectingPoint num="14" id="4220" /> +<TGConnectingPoint num="15" id="4221" /> +<TGConnectingPoint num="16" id="4222" /> +<TGConnectingPoint num="17" id="4223" /> +<TGConnectingPoint num="18" id="4224" /> +<TGConnectingPoint num="19" id="4225" /> +<TGConnectingPoint num="20" id="4226" /> +<TGConnectingPoint num="21" id="4227" /> +<TGConnectingPoint num="22" id="4228" /> +<TGConnectingPoint num="23" id="4229" /> +<TGConnectingPoint num="24" id="4230" /> +<TGConnectingPoint num="25" id="4231" /> +<TGConnectingPoint num="26" id="4232" /> +<TGConnectingPoint num="27" id="4233" /> +<TGConnectingPoint num="28" id="4234" /> +<TGConnectingPoint num="29" id="4235" /> +<TGConnectingPoint num="30" id="4236" /> +<TGConnectingPoint num="31" id="4237" /> +<TGConnectingPoint num="32" id="4238" /> +<TGConnectingPoint num="33" id="4239" /> +<TGConnectingPoint num="34" id="4240" /> +<TGConnectingPoint num="35" id="4241" /> +<TGConnectingPoint num="36" id="4242" /> +<TGConnectingPoint num="37" id="4243" /> +<TGConnectingPoint num="38" id="4244" /> +<TGConnectingPoint num="39" id="4245" /> +<TGConnectingPoint num="40" id="4246" /> +<TGConnectingPoint num="41" id="4247" /> +<TGConnectingPoint num="42" id="4248" /> +<TGConnectingPoint num="43" id="4249" /> +<TGConnectingPoint num="44" id="4250" /> +<TGConnectingPoint num="45" id="4251" /> +<TGConnectingPoint num="46" id="4252" /> +<TGConnectingPoint num="47" id="4253" /> +<TGConnectingPoint num="48" id="4254" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="4305" > +<cdparam x="505" y="53" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DMA_Controller_2" value="Controller instance name" /> +<TGConnectingPoint num="0" id="4256" /> +<TGConnectingPoint num="1" id="4257" /> +<TGConnectingPoint num="2" id="4258" /> +<TGConnectingPoint num="3" id="4259" /> +<TGConnectingPoint num="4" id="4260" /> +<TGConnectingPoint num="5" id="4261" /> +<TGConnectingPoint num="6" id="4262" /> +<TGConnectingPoint num="7" id="4263" /> +<TGConnectingPoint num="8" id="4264" /> +<TGConnectingPoint num="9" id="4265" /> +<TGConnectingPoint num="10" id="4266" /> +<TGConnectingPoint num="11" id="4267" /> +<TGConnectingPoint num="12" id="4268" /> +<TGConnectingPoint num="13" id="4269" /> +<TGConnectingPoint num="14" id="4270" /> +<TGConnectingPoint num="15" id="4271" /> +<TGConnectingPoint num="16" id="4272" /> +<TGConnectingPoint num="17" id="4273" /> +<TGConnectingPoint num="18" id="4274" /> +<TGConnectingPoint num="19" id="4275" /> +<TGConnectingPoint num="20" id="4276" /> +<TGConnectingPoint num="21" id="4277" /> +<TGConnectingPoint num="22" id="4278" /> +<TGConnectingPoint num="23" id="4279" /> +<TGConnectingPoint num="24" id="4280" /> +<TGConnectingPoint num="25" id="4281" /> +<TGConnectingPoint num="26" id="4282" /> +<TGConnectingPoint num="27" id="4283" /> +<TGConnectingPoint num="28" id="4284" /> +<TGConnectingPoint num="29" id="4285" /> +<TGConnectingPoint num="30" id="4286" /> +<TGConnectingPoint num="31" id="4287" /> +<TGConnectingPoint num="32" id="4288" /> +<TGConnectingPoint num="33" id="4289" /> +<TGConnectingPoint num="34" id="4290" /> +<TGConnectingPoint num="35" id="4291" /> +<TGConnectingPoint num="36" id="4292" /> +<TGConnectingPoint num="37" id="4293" /> +<TGConnectingPoint num="38" id="4294" /> +<TGConnectingPoint num="39" id="4295" /> +<TGConnectingPoint num="40" id="4296" /> +<TGConnectingPoint num="41" id="4297" /> +<TGConnectingPoint num="42" id="4298" /> +<TGConnectingPoint num="43" id="4299" /> +<TGConnectingPoint num="44" id="4300" /> +<TGConnectingPoint num="45" id="4301" /> +<TGConnectingPoint num="46" id="4302" /> +<TGConnectingPoint num="47" id="4303" /> +<TGConnectingPoint num="48" id="4304" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1522" id="4355" > +<cdparam x="61" y="53" /> +<sizeparam width="10" height="500" minWidth="10" minHeight="250" maxWidth="10" maxHeight="1500" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="CPU_Controller_2" value="Controller instance name" /> +<TGConnectingPoint num="0" id="4306" /> +<TGConnectingPoint num="1" id="4307" /> +<TGConnectingPoint num="2" id="4308" /> +<TGConnectingPoint num="3" id="4309" /> +<TGConnectingPoint num="4" id="4310" /> +<TGConnectingPoint num="5" id="4311" /> +<TGConnectingPoint num="6" id="4312" /> +<TGConnectingPoint num="7" id="4313" /> +<TGConnectingPoint num="8" id="4314" /> +<TGConnectingPoint num="9" id="4315" /> +<TGConnectingPoint num="10" id="4316" /> +<TGConnectingPoint num="11" id="4317" /> +<TGConnectingPoint num="12" id="4318" /> +<TGConnectingPoint num="13" id="4319" /> +<TGConnectingPoint num="14" id="4320" /> +<TGConnectingPoint num="15" id="4321" /> +<TGConnectingPoint num="16" id="4322" /> +<TGConnectingPoint num="17" id="4323" /> +<TGConnectingPoint num="18" id="4324" /> +<TGConnectingPoint num="19" id="4325" /> +<TGConnectingPoint num="20" id="4326" /> +<TGConnectingPoint num="21" id="4327" /> +<TGConnectingPoint num="22" id="4328" /> +<TGConnectingPoint num="23" id="4329" /> +<TGConnectingPoint num="24" id="4330" /> +<TGConnectingPoint num="25" id="4331" /> +<TGConnectingPoint num="26" id="4332" /> +<TGConnectingPoint num="27" id="4333" /> +<TGConnectingPoint num="28" id="4334" /> +<TGConnectingPoint num="29" id="4335" /> +<TGConnectingPoint num="30" id="4336" /> +<TGConnectingPoint num="31" id="4337" /> +<TGConnectingPoint num="32" id="4338" /> +<TGConnectingPoint num="33" id="4339" /> +<TGConnectingPoint num="34" id="4340" /> +<TGConnectingPoint num="35" id="4341" /> +<TGConnectingPoint num="36" id="4342" /> +<TGConnectingPoint num="37" id="4343" /> +<TGConnectingPoint num="38" id="4344" /> +<TGConnectingPoint num="39" id="4345" /> +<TGConnectingPoint num="40" id="4346" /> +<TGConnectingPoint num="41" id="4347" /> +<TGConnectingPoint num="42" id="4348" /> +<TGConnectingPoint num="43" id="4349" /> +<TGConnectingPoint num="44" id="4350" /> +<TGConnectingPoint num="45" id="4351" /> +<TGConnectingPoint num="46" id="4352" /> +<TGConnectingPoint num="47" id="4353" /> +<TGConnectingPoint num="48" id="4354" /> +<extraparam> +<Mapping mappedOn="" /> +<Actor data="false" /> +<Attribute access="2" id="sourceAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="destinationAddress2" value="" type="10" typeOther="" /> +<Attribute access="2" id="counter2" value="" type="0" typeOther="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="1523" id="4356" > +<cdparam x="285" y="113" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferTerminated" value="TransferTerminated()" /> +<P1 x="285" y="113" id="4211" /> +<P2 x="66" y="113" id="4311" /> +<AutomaticDrawing data="true" /> +<extraparam> +</extraparam> +</CONNECTOR> +<CONNECTOR type="1523" id="4357" > +<cdparam x="510" y="83" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="TransferTerminated" value="TransferTerminated()" /> +<P1 x="510" y="83" id="4258" /> +<P2 x="285" y="83" id="4208" /> +<AutomaticDrawing data="true" /> +<extraparam> +</extraparam> +</CONNECTOR> + +</TMLSDPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Embb" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="200" > +<COMPONENT type="1100" id="4382" > +<cdparam x="560" y="807" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_DMA" value="name" /> +<TGConnectingPoint num="0" id="4358" /> +<TGConnectingPoint num="1" id="4359" /> +<TGConnectingPoint num="2" id="4360" /> +<TGConnectingPoint num="3" id="4361" /> +<TGConnectingPoint num="4" id="4362" /> +<TGConnectingPoint num="5" id="4363" /> +<TGConnectingPoint num="6" id="4364" /> +<TGConnectingPoint num="7" id="4365" /> +<TGConnectingPoint num="8" id="4366" /> +<TGConnectingPoint num="9" id="4367" /> +<TGConnectingPoint num="10" id="4368" /> +<TGConnectingPoint num="11" id="4369" /> +<TGConnectingPoint num="12" id="4370" /> +<TGConnectingPoint num="13" id="4371" /> +<TGConnectingPoint num="14" id="4372" /> +<TGConnectingPoint num="15" id="4373" /> +<TGConnectingPoint num="16" id="4374" /> +<TGConnectingPoint num="17" id="4375" /> +<TGConnectingPoint num="18" id="4376" /> +<TGConnectingPoint num="19" id="4377" /> +<TGConnectingPoint num="20" id="4378" /> +<TGConnectingPoint num="21" id="4379" /> +<TGConnectingPoint num="22" id="4380" /> +<TGConnectingPoint num="23" id="4381" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4407" > +<cdparam x="543" y="422" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_DMA" value="name" /> +<TGConnectingPoint num="0" id="4383" /> +<TGConnectingPoint num="1" id="4384" /> +<TGConnectingPoint num="2" id="4385" /> +<TGConnectingPoint num="3" id="4386" /> +<TGConnectingPoint num="4" id="4387" /> +<TGConnectingPoint num="5" id="4388" /> +<TGConnectingPoint num="6" id="4389" /> +<TGConnectingPoint num="7" id="4390" /> +<TGConnectingPoint num="8" id="4391" /> +<TGConnectingPoint num="9" id="4392" /> +<TGConnectingPoint num="10" id="4393" /> +<TGConnectingPoint num="11" id="4394" /> +<TGConnectingPoint num="12" id="4395" /> +<TGConnectingPoint num="13" id="4396" /> +<TGConnectingPoint num="14" id="4397" /> +<TGConnectingPoint num="15" id="4398" /> +<TGConnectingPoint num="16" id="4399" /> +<TGConnectingPoint num="17" id="4400" /> +<TGConnectingPoint num="18" id="4401" /> +<TGConnectingPoint num="19" id="4402" /> +<TGConnectingPoint num="20" id="4403" /> +<TGConnectingPoint num="21" id="4404" /> +<TGConnectingPoint num="22" id="4405" /> +<TGConnectingPoint num="23" id="4406" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="4432" > +<cdparam x="354" y="243" /> +<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_MSS" value="name" /> +<TGConnectingPoint num="0" id="4408" /> +<TGConnectingPoint num="1" id="4409" /> +<TGConnectingPoint num="2" id="4410" /> +<TGConnectingPoint num="3" id="4411" /> +<TGConnectingPoint num="4" id="4412" /> +<TGConnectingPoint num="5" id="4413" /> +<TGConnectingPoint num="6" id="4414" /> +<TGConnectingPoint num="7" id="4415" /> +<TGConnectingPoint num="8" id="4416" /> +<TGConnectingPoint num="9" id="4417" /> +<TGConnectingPoint num="10" id="4418" /> +<TGConnectingPoint num="11" id="4419" /> +<TGConnectingPoint num="12" id="4420" /> +<TGConnectingPoint num="13" id="4421" /> +<TGConnectingPoint num="14" id="4422" /> +<TGConnectingPoint num="15" id="4423" /> +<TGConnectingPoint num="16" id="4424" /> +<TGConnectingPoint num="17" id="4425" /> +<TGConnectingPoint num="18" id="4426" /> +<TGConnectingPoint num="19" id="4427" /> +<TGConnectingPoint num="20" id="4428" /> +<TGConnectingPoint num="21" id="4429" /> +<TGConnectingPoint num="22" id="4430" /> +<TGConnectingPoint num="23" id="4431" /> +<extraparam> +<info stereotype="MEMORY" nodeName="ADAIF_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="2" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4457" > +<cdparam x="29" y="215" /> +<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_PSS" value="name" /> +<TGConnectingPoint num="0" id="4433" /> +<TGConnectingPoint num="1" id="4434" /> +<TGConnectingPoint num="2" id="4435" /> +<TGConnectingPoint num="3" id="4436" /> +<TGConnectingPoint num="4" id="4437" /> +<TGConnectingPoint num="5" id="4438" /> +<TGConnectingPoint num="6" id="4439" /> +<TGConnectingPoint num="7" id="4440" /> +<TGConnectingPoint num="8" id="4441" /> +<TGConnectingPoint num="9" id="4442" /> +<TGConnectingPoint num="10" id="4443" /> +<TGConnectingPoint num="11" id="4444" /> +<TGConnectingPoint num="12" id="4445" /> +<TGConnectingPoint num="13" id="4446" /> +<TGConnectingPoint num="14" id="4447" /> +<TGConnectingPoint num="15" id="4448" /> +<TGConnectingPoint num="16" id="4449" /> +<TGConnectingPoint num="17" id="4450" /> +<TGConnectingPoint num="18" id="4451" /> +<TGConnectingPoint num="19" id="4452" /> +<TGConnectingPoint num="20" id="4453" /> +<TGConnectingPoint num="21" id="4454" /> +<TGConnectingPoint num="22" id="4455" /> +<TGConnectingPoint num="23" id="4456" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_PSS" /> +<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" MECType="4" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="4482" > +<cdparam x="306" y="545" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bridge" value="name" /> +<TGConnectingPoint num="0" id="4458" /> +<TGConnectingPoint num="1" id="4459" /> +<TGConnectingPoint num="2" id="4460" /> +<TGConnectingPoint num="3" id="4461" /> +<TGConnectingPoint num="4" id="4462" /> +<TGConnectingPoint num="5" id="4463" /> +<TGConnectingPoint num="6" id="4464" /> +<TGConnectingPoint num="7" id="4465" /> +<TGConnectingPoint num="8" id="4466" /> +<TGConnectingPoint num="9" id="4467" /> +<TGConnectingPoint num="10" id="4468" /> +<TGConnectingPoint num="11" id="4469" /> +<TGConnectingPoint num="12" id="4470" /> +<TGConnectingPoint num="13" id="4471" /> +<TGConnectingPoint num="14" id="4472" /> +<TGConnectingPoint num="15" id="4473" /> +<TGConnectingPoint num="16" id="4474" /> +<TGConnectingPoint num="17" id="4475" /> +<TGConnectingPoint num="18" id="4476" /> +<TGConnectingPoint num="19" id="4477" /> +<TGConnectingPoint num="20" id="4478" /> +<TGConnectingPoint num="21" id="4479" /> +<TGConnectingPoint num="22" id="4480" /> +<TGConnectingPoint num="23" id="4481" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="4507" > +<cdparam x="1544" y="737" /> +<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainMemory" value="name" /> +<TGConnectingPoint num="0" id="4483" /> +<TGConnectingPoint num="1" id="4484" /> +<TGConnectingPoint num="2" id="4485" /> +<TGConnectingPoint num="3" id="4486" /> +<TGConnectingPoint num="4" id="4487" /> +<TGConnectingPoint num="5" id="4488" /> +<TGConnectingPoint num="6" id="4489" /> +<TGConnectingPoint num="7" id="4490" /> +<TGConnectingPoint num="8" id="4491" /> +<TGConnectingPoint num="9" id="4492" /> +<TGConnectingPoint num="10" id="4493" /> +<TGConnectingPoint num="11" id="4494" /> +<TGConnectingPoint num="12" id="4495" /> +<TGConnectingPoint num="13" id="4496" /> +<TGConnectingPoint num="14" id="4497" /> +<TGConnectingPoint num="15" id="4498" /> +<TGConnectingPoint num="16" id="4499" /> +<TGConnectingPoint num="17" id="4500" /> +<TGConnectingPoint num="18" id="4501" /> +<TGConnectingPoint num="19" id="4502" /> +<TGConnectingPoint num="20" id="4503" /> +<TGConnectingPoint num="21" id="4504" /> +<TGConnectingPoint num="22" id="4505" /> +<TGConnectingPoint num="23" id="4506" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MainMemory" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="4" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4532" > +<cdparam x="1444" y="293" /> +<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainCPU" value="name" /> +<TGConnectingPoint num="0" id="4508" /> +<TGConnectingPoint num="1" id="4509" /> +<TGConnectingPoint num="2" id="4510" /> +<TGConnectingPoint num="3" id="4511" /> +<TGConnectingPoint num="4" id="4512" /> +<TGConnectingPoint num="5" id="4513" /> +<TGConnectingPoint num="6" id="4514" /> +<TGConnectingPoint num="7" id="4515" /> +<TGConnectingPoint num="8" id="4516" /> +<TGConnectingPoint num="9" id="4517" /> +<TGConnectingPoint num="10" id="4518" /> +<TGConnectingPoint num="11" id="4519" /> +<TGConnectingPoint num="12" id="4520" /> +<TGConnectingPoint num="13" id="4521" /> +<TGConnectingPoint num="14" id="4522" /> +<TGConnectingPoint num="15" id="4523" /> +<TGConnectingPoint num="16" id="4524" /> +<TGConnectingPoint num="17" id="4525" /> +<TGConnectingPoint num="18" id="4526" /> +<TGConnectingPoint num="19" id="4527" /> +<TGConnectingPoint num="20" id="4528" /> +<TGConnectingPoint num="21" id="4529" /> +<TGConnectingPoint num="22" id="4530" /> +<TGConnectingPoint num="23" id="4531" /> +<extraparam> +<info stereotype="CPURR" nodeName="MainCPU" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="4557" > +<cdparam x="1527" y="635" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBus" value="name" /> +<TGConnectingPoint num="0" id="4533" /> +<TGConnectingPoint num="1" id="4534" /> +<TGConnectingPoint num="2" id="4535" /> +<TGConnectingPoint num="3" id="4536" /> +<TGConnectingPoint num="4" id="4537" /> +<TGConnectingPoint num="5" id="4538" /> +<TGConnectingPoint num="6" id="4539" /> +<TGConnectingPoint num="7" id="4540" /> +<TGConnectingPoint num="8" id="4541" /> +<TGConnectingPoint num="9" id="4542" /> +<TGConnectingPoint num="10" id="4543" /> +<TGConnectingPoint num="11" id="4544" /> +<TGConnectingPoint num="12" id="4545" /> +<TGConnectingPoint num="13" id="4546" /> +<TGConnectingPoint num="14" id="4547" /> +<TGConnectingPoint num="15" id="4548" /> +<TGConnectingPoint num="16" id="4549" /> +<TGConnectingPoint num="17" id="4550" /> +<TGConnectingPoint num="18" id="4551" /> +<TGConnectingPoint num="19" id="4552" /> +<TGConnectingPoint num="20" id="4553" /> +<TGConnectingPoint num="21" id="4554" /> +<TGConnectingPoint num="22" id="4555" /> +<TGConnectingPoint num="23" id="4556" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MainBus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="4582" > +<cdparam x="1367" y="610" /> +<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBridge" value="name" /> +<TGConnectingPoint num="0" id="4558" /> +<TGConnectingPoint num="1" id="4559" /> +<TGConnectingPoint num="2" id="4560" /> +<TGConnectingPoint num="3" id="4561" /> +<TGConnectingPoint num="4" id="4562" /> +<TGConnectingPoint num="5" id="4563" /> +<TGConnectingPoint num="6" id="4564" /> +<TGConnectingPoint num="7" id="4565" /> +<TGConnectingPoint num="8" id="4566" /> +<TGConnectingPoint num="9" id="4567" /> +<TGConnectingPoint num="10" id="4568" /> +<TGConnectingPoint num="11" id="4569" /> +<TGConnectingPoint num="12" id="4570" /> +<TGConnectingPoint num="13" id="4571" /> +<TGConnectingPoint num="14" id="4572" /> +<TGConnectingPoint num="15" id="4573" /> +<TGConnectingPoint num="16" id="4574" /> +<TGConnectingPoint num="17" id="4575" /> +<TGConnectingPoint num="18" id="4576" /> +<TGConnectingPoint num="19" id="4577" /> +<TGConnectingPoint num="20" id="4578" /> +<TGConnectingPoint num="21" id="4579" /> +<TGConnectingPoint num="22" id="4580" /> +<TGConnectingPoint num="23" id="4581" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MainBridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="4607" > +<cdparam x="231" y="635" /> +<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="Crossbar" value="name" /> +<TGConnectingPoint num="0" id="4583" /> +<TGConnectingPoint num="1" id="4584" /> +<TGConnectingPoint num="2" id="4585" /> +<TGConnectingPoint num="3" id="4586" /> +<TGConnectingPoint num="4" id="4587" /> +<TGConnectingPoint num="5" id="4588" /> +<TGConnectingPoint num="6" id="4589" /> +<TGConnectingPoint num="7" id="4590" /> +<TGConnectingPoint num="8" id="4591" /> +<TGConnectingPoint num="9" id="4592" /> +<TGConnectingPoint num="10" id="4593" /> +<TGConnectingPoint num="11" id="4594" /> +<TGConnectingPoint num="12" id="4595" /> +<TGConnectingPoint num="13" id="4596" /> +<TGConnectingPoint num="14" id="4597" /> +<TGConnectingPoint num="15" id="4598" /> +<TGConnectingPoint num="16" id="4599" /> +<TGConnectingPoint num="17" id="4600" /> +<TGConnectingPoint num="18" id="4601" /> +<TGConnectingPoint num="19" id="4602" /> +<TGConnectingPoint num="20" id="4603" /> +<TGConnectingPoint num="21" id="4604" /> +<TGConnectingPoint num="22" id="4605" /> +<TGConnectingPoint num="23" id="4606" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="Crossbar" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="4632" > +<cdparam x="306" y="737" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bridge" value="name" /> +<TGConnectingPoint num="0" id="4608" /> +<TGConnectingPoint num="1" id="4609" /> +<TGConnectingPoint num="2" id="4610" /> +<TGConnectingPoint num="3" id="4611" /> +<TGConnectingPoint num="4" id="4612" /> +<TGConnectingPoint num="5" id="4613" /> +<TGConnectingPoint num="6" id="4614" /> +<TGConnectingPoint num="7" id="4615" /> +<TGConnectingPoint num="8" id="4616" /> +<TGConnectingPoint num="9" id="4617" /> +<TGConnectingPoint num="10" id="4618" /> +<TGConnectingPoint num="11" id="4619" /> +<TGConnectingPoint num="12" id="4620" /> +<TGConnectingPoint num="13" id="4621" /> +<TGConnectingPoint num="14" id="4622" /> +<TGConnectingPoint num="15" id="4623" /> +<TGConnectingPoint num="16" id="4624" /> +<TGConnectingPoint num="17" id="4625" /> +<TGConnectingPoint num="18" id="4626" /> +<TGConnectingPoint num="19" id="4627" /> +<TGConnectingPoint num="20" id="4628" /> +<TGConnectingPoint num="21" id="4629" /> +<TGConnectingPoint num="22" id="4630" /> +<TGConnectingPoint num="23" id="4631" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="INTL_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="4657" > +<cdparam x="376" y="949" /> +<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_MSS" value="name" /> +<TGConnectingPoint num="0" id="4633" /> +<TGConnectingPoint num="1" id="4634" /> +<TGConnectingPoint num="2" id="4635" /> +<TGConnectingPoint num="3" id="4636" /> +<TGConnectingPoint num="4" id="4637" /> +<TGConnectingPoint num="5" id="4638" /> +<TGConnectingPoint num="6" id="4639" /> +<TGConnectingPoint num="7" id="4640" /> +<TGConnectingPoint num="8" id="4641" /> +<TGConnectingPoint num="9" id="4642" /> +<TGConnectingPoint num="10" id="4643" /> +<TGConnectingPoint num="11" id="4644" /> +<TGConnectingPoint num="12" id="4645" /> +<TGConnectingPoint num="13" id="4646" /> +<TGConnectingPoint num="14" id="4647" /> +<TGConnectingPoint num="15" id="4648" /> +<TGConnectingPoint num="16" id="4649" /> +<TGConnectingPoint num="17" id="4650" /> +<TGConnectingPoint num="18" id="4651" /> +<TGConnectingPoint num="19" id="4652" /> +<TGConnectingPoint num="20" id="4653" /> +<TGConnectingPoint num="21" id="4654" /> +<TGConnectingPoint num="22" id="4655" /> +<TGConnectingPoint num="23" id="4656" /> +<extraparam> +<info stereotype="MEMORY" nodeName="INTL_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4682" > +<cdparam x="138" y="938" /> +<sizeparam width="187" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_PSS" value="name" /> +<TGConnectingPoint num="0" id="4658" /> +<TGConnectingPoint num="1" id="4659" /> +<TGConnectingPoint num="2" id="4660" /> +<TGConnectingPoint num="3" id="4661" /> +<TGConnectingPoint num="4" id="4662" /> +<TGConnectingPoint num="5" id="4663" /> +<TGConnectingPoint num="6" id="4664" /> +<TGConnectingPoint num="7" id="4665" /> +<TGConnectingPoint num="8" id="4666" /> +<TGConnectingPoint num="9" id="4667" /> +<TGConnectingPoint num="10" id="4668" /> +<TGConnectingPoint num="11" id="4669" /> +<TGConnectingPoint num="12" id="4670" /> +<TGConnectingPoint num="13" id="4671" /> +<TGConnectingPoint num="14" id="4672" /> +<TGConnectingPoint num="15" id="4673" /> +<TGConnectingPoint num="16" id="4674" /> +<TGConnectingPoint num="17" id="4675" /> +<TGConnectingPoint num="18" id="4676" /> +<TGConnectingPoint num="19" id="4677" /> +<TGConnectingPoint num="20" id="4678" /> +<TGConnectingPoint num="21" id="4679" /> +<TGConnectingPoint num="22" id="4680" /> +<TGConnectingPoint num="23" id="4681" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_PSS" /> +<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" MECType="2" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="4707" > +<cdparam x="231" y="832" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bus" value="name" /> +<TGConnectingPoint num="0" id="4683" /> +<TGConnectingPoint num="1" id="4684" /> +<TGConnectingPoint num="2" id="4685" /> +<TGConnectingPoint num="3" id="4686" /> +<TGConnectingPoint num="4" id="4687" /> +<TGConnectingPoint num="5" id="4688" /> +<TGConnectingPoint num="6" id="4689" /> +<TGConnectingPoint num="7" id="4690" /> +<TGConnectingPoint num="8" id="4691" /> +<TGConnectingPoint num="9" id="4692" /> +<TGConnectingPoint num="10" id="4693" /> +<TGConnectingPoint num="11" id="4694" /> +<TGConnectingPoint num="12" id="4695" /> +<TGConnectingPoint num="13" id="4696" /> +<TGConnectingPoint num="14" id="4697" /> +<TGConnectingPoint num="15" id="4698" /> +<TGConnectingPoint num="16" id="4699" /> +<TGConnectingPoint num="17" id="4700" /> +<TGConnectingPoint num="18" id="4701" /> +<TGConnectingPoint num="19" id="4702" /> +<TGConnectingPoint num="20" id="4703" /> +<TGConnectingPoint num="21" id="4704" /> +<TGConnectingPoint num="22" id="4705" /> +<TGConnectingPoint num="23" id="4706" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="INTL_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="4732" > +<cdparam x="231" y="447" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bus" value="name" /> +<TGConnectingPoint num="0" id="4708" /> +<TGConnectingPoint num="1" id="4709" /> +<TGConnectingPoint num="2" id="4710" /> +<TGConnectingPoint num="3" id="4711" /> +<TGConnectingPoint num="4" id="4712" /> +<TGConnectingPoint num="5" id="4713" /> +<TGConnectingPoint num="6" id="4714" /> +<TGConnectingPoint num="7" id="4715" /> +<TGConnectingPoint num="8" id="4716" /> +<TGConnectingPoint num="9" id="4717" /> +<TGConnectingPoint num="10" id="4718" /> +<TGConnectingPoint num="11" id="4719" /> +<TGConnectingPoint num="12" id="4720" /> +<TGConnectingPoint num="13" id="4721" /> +<TGConnectingPoint num="14" id="4722" /> +<TGConnectingPoint num="15" id="4723" /> +<TGConnectingPoint num="16" id="4724" /> +<TGConnectingPoint num="17" id="4725" /> +<TGConnectingPoint num="18" id="4726" /> +<TGConnectingPoint num="19" id="4727" /> +<TGConnectingPoint num="20" id="4728" /> +<TGConnectingPoint num="21" id="4729" /> +<TGConnectingPoint num="22" id="4730" /> +<TGConnectingPoint num="23" id="4731" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="ADAIF_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4757" > +<cdparam x="1147" y="408" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_DMA" value="name" /> +<TGConnectingPoint num="0" id="4733" /> +<TGConnectingPoint num="1" id="4734" /> +<TGConnectingPoint num="2" id="4735" /> +<TGConnectingPoint num="3" id="4736" /> +<TGConnectingPoint num="4" id="4737" /> +<TGConnectingPoint num="5" id="4738" /> +<TGConnectingPoint num="6" id="4739" /> +<TGConnectingPoint num="7" id="4740" /> +<TGConnectingPoint num="8" id="4741" /> +<TGConnectingPoint num="9" id="4742" /> +<TGConnectingPoint num="10" id="4743" /> +<TGConnectingPoint num="11" id="4744" /> +<TGConnectingPoint num="12" id="4745" /> +<TGConnectingPoint num="13" id="4746" /> +<TGConnectingPoint num="14" id="4747" /> +<TGConnectingPoint num="15" id="4748" /> +<TGConnectingPoint num="16" id="4749" /> +<TGConnectingPoint num="17" id="4750" /> +<TGConnectingPoint num="18" id="4751" /> +<TGConnectingPoint num="19" id="4752" /> +<TGConnectingPoint num="20" id="4753" /> +<TGConnectingPoint num="21" id="4754" /> +<TGConnectingPoint num="22" id="4755" /> +<TGConnectingPoint num="23" id="4756" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="4782" > +<cdparam x="895" y="193" /> +<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_MSS" value="name" /> +<TGConnectingPoint num="0" id="4758" /> +<TGConnectingPoint num="1" id="4759" /> +<TGConnectingPoint num="2" id="4760" /> +<TGConnectingPoint num="3" id="4761" /> +<TGConnectingPoint num="4" id="4762" /> +<TGConnectingPoint num="5" id="4763" /> +<TGConnectingPoint num="6" id="4764" /> +<TGConnectingPoint num="7" id="4765" /> +<TGConnectingPoint num="8" id="4766" /> +<TGConnectingPoint num="9" id="4767" /> +<TGConnectingPoint num="10" id="4768" /> +<TGConnectingPoint num="11" id="4769" /> +<TGConnectingPoint num="12" id="4770" /> +<TGConnectingPoint num="13" id="4771" /> +<TGConnectingPoint num="14" id="4772" /> +<TGConnectingPoint num="15" id="4773" /> +<TGConnectingPoint num="16" id="4774" /> +<TGConnectingPoint num="17" id="4775" /> +<TGConnectingPoint num="18" id="4776" /> +<TGConnectingPoint num="19" id="4777" /> +<TGConnectingPoint num="20" id="4778" /> +<TGConnectingPoint num="21" id="4779" /> +<TGConnectingPoint num="22" id="4780" /> +<TGConnectingPoint num="23" id="4781" /> +<extraparam> +<info stereotype="MEMORY" nodeName="FEP_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4807" > +<cdparam x="619" y="199" /> +<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_PSS" value="name" /> +<TGConnectingPoint num="0" id="4783" /> +<TGConnectingPoint num="1" id="4784" /> +<TGConnectingPoint num="2" id="4785" /> +<TGConnectingPoint num="3" id="4786" /> +<TGConnectingPoint num="4" id="4787" /> +<TGConnectingPoint num="5" id="4788" /> +<TGConnectingPoint num="6" id="4789" /> +<TGConnectingPoint num="7" id="4790" /> +<TGConnectingPoint num="8" id="4791" /> +<TGConnectingPoint num="9" id="4792" /> +<TGConnectingPoint num="10" id="4793" /> +<TGConnectingPoint num="11" id="4794" /> +<TGConnectingPoint num="12" id="4795" /> +<TGConnectingPoint num="13" id="4796" /> +<TGConnectingPoint num="14" id="4797" /> +<TGConnectingPoint num="15" id="4798" /> +<TGConnectingPoint num="16" id="4799" /> +<TGConnectingPoint num="17" id="4800" /> +<TGConnectingPoint num="18" id="4801" /> +<TGConnectingPoint num="19" id="4802" /> +<TGConnectingPoint num="20" id="4803" /> +<TGConnectingPoint num="21" id="4804" /> +<TGConnectingPoint num="22" id="4805" /> +<TGConnectingPoint num="23" id="4806" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_PSS" /> +<attributes nbOfCores="1" byteDataSize="4" schedulingPolicy="0" sliceTime="10000" goIdleTime="10" maxConsecutiveIdleCycles="10" pipelineSize="5" taskSwitchingTime="20" branchingPredictionPenalty="2" cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="4832" > +<cdparam x="910" y="531" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bridge" value="name" /> +<TGConnectingPoint num="0" id="4808" /> +<TGConnectingPoint num="1" id="4809" /> +<TGConnectingPoint num="2" id="4810" /> +<TGConnectingPoint num="3" id="4811" /> +<TGConnectingPoint num="4" id="4812" /> +<TGConnectingPoint num="5" id="4813" /> +<TGConnectingPoint num="6" id="4814" /> +<TGConnectingPoint num="7" id="4815" /> +<TGConnectingPoint num="8" id="4816" /> +<TGConnectingPoint num="9" id="4817" /> +<TGConnectingPoint num="10" id="4818" /> +<TGConnectingPoint num="11" id="4819" /> +<TGConnectingPoint num="12" id="4820" /> +<TGConnectingPoint num="13" id="4821" /> +<TGConnectingPoint num="14" id="4822" /> +<TGConnectingPoint num="15" id="4823" /> +<TGConnectingPoint num="16" id="4824" /> +<TGConnectingPoint num="17" id="4825" /> +<TGConnectingPoint num="18" id="4826" /> +<TGConnectingPoint num="19" id="4827" /> +<TGConnectingPoint num="20" id="4828" /> +<TGConnectingPoint num="21" id="4829" /> +<TGConnectingPoint num="22" id="4830" /> +<TGConnectingPoint num="23" id="4831" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="FEP_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="4857" > +<cdparam x="835" y="433" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bus" value="name" /> +<TGConnectingPoint num="0" id="4833" /> +<TGConnectingPoint num="1" id="4834" /> +<TGConnectingPoint num="2" id="4835" /> +<TGConnectingPoint num="3" id="4836" /> +<TGConnectingPoint num="4" id="4837" /> +<TGConnectingPoint num="5" id="4838" /> +<TGConnectingPoint num="6" id="4839" /> +<TGConnectingPoint num="7" id="4840" /> +<TGConnectingPoint num="8" id="4841" /> +<TGConnectingPoint num="9" id="4842" /> +<TGConnectingPoint num="10" id="4843" /> +<TGConnectingPoint num="11" id="4844" /> +<TGConnectingPoint num="12" id="4845" /> +<TGConnectingPoint num="13" id="4846" /> +<TGConnectingPoint num="14" id="4847" /> +<TGConnectingPoint num="15" id="4848" /> +<TGConnectingPoint num="16" id="4849" /> +<TGConnectingPoint num="17" id="4850" /> +<TGConnectingPoint num="18" id="4851" /> +<TGConnectingPoint num="19" id="4852" /> +<TGConnectingPoint num="20" id="4853" /> +<TGConnectingPoint num="21" id="4854" /> +<TGConnectingPoint num="22" id="4855" /> +<TGConnectingPoint num="23" id="4856" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="FEP_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4882" > +<cdparam x="1174" y="850" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_DMA" value="name" /> +<TGConnectingPoint num="0" id="4858" /> +<TGConnectingPoint num="1" id="4859" /> +<TGConnectingPoint num="2" id="4860" /> +<TGConnectingPoint num="3" id="4861" /> +<TGConnectingPoint num="4" id="4862" /> +<TGConnectingPoint num="5" id="4863" /> +<TGConnectingPoint num="6" id="4864" /> +<TGConnectingPoint num="7" id="4865" /> +<TGConnectingPoint num="8" id="4866" /> +<TGConnectingPoint num="9" id="4867" /> +<TGConnectingPoint num="10" id="4868" /> +<TGConnectingPoint num="11" id="4869" /> +<TGConnectingPoint num="12" id="4870" /> +<TGConnectingPoint num="13" id="4871" /> +<TGConnectingPoint num="14" id="4872" /> +<TGConnectingPoint num="15" id="4873" /> +<TGConnectingPoint num="16" id="4874" /> +<TGConnectingPoint num="17" id="4875" /> +<TGConnectingPoint num="18" id="4876" /> +<TGConnectingPoint num="19" id="4877" /> +<TGConnectingPoint num="20" id="4878" /> +<TGConnectingPoint num="21" id="4879" /> +<TGConnectingPoint num="22" id="4880" /> +<TGConnectingPoint num="23" id="4881" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="4907" > +<cdparam x="920" y="780" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bridge" value="name" /> +<TGConnectingPoint num="0" id="4883" /> +<TGConnectingPoint num="1" id="4884" /> +<TGConnectingPoint num="2" id="4885" /> +<TGConnectingPoint num="3" id="4886" /> +<TGConnectingPoint num="4" id="4887" /> +<TGConnectingPoint num="5" id="4888" /> +<TGConnectingPoint num="6" id="4889" /> +<TGConnectingPoint num="7" id="4890" /> +<TGConnectingPoint num="8" id="4891" /> +<TGConnectingPoint num="9" id="4892" /> +<TGConnectingPoint num="10" id="4893" /> +<TGConnectingPoint num="11" id="4894" /> +<TGConnectingPoint num="12" id="4895" /> +<TGConnectingPoint num="13" id="4896" /> +<TGConnectingPoint num="14" id="4897" /> +<TGConnectingPoint num="15" id="4898" /> +<TGConnectingPoint num="16" id="4899" /> +<TGConnectingPoint num="17" id="4900" /> +<TGConnectingPoint num="18" id="4901" /> +<TGConnectingPoint num="19" id="4902" /> +<TGConnectingPoint num="20" id="4903" /> +<TGConnectingPoint num="21" id="4904" /> +<TGConnectingPoint num="22" id="4905" /> +<TGConnectingPoint num="23" id="4906" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="4932" > +<cdparam x="1043" y="978" /> +<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_MSS" value="name" /> +<TGConnectingPoint num="0" id="4908" /> +<TGConnectingPoint num="1" id="4909" /> +<TGConnectingPoint num="2" id="4910" /> +<TGConnectingPoint num="3" id="4911" /> +<TGConnectingPoint num="4" id="4912" /> +<TGConnectingPoint num="5" id="4913" /> +<TGConnectingPoint num="6" id="4914" /> +<TGConnectingPoint num="7" id="4915" /> +<TGConnectingPoint num="8" id="4916" /> +<TGConnectingPoint num="9" id="4917" /> +<TGConnectingPoint num="10" id="4918" /> +<TGConnectingPoint num="11" id="4919" /> +<TGConnectingPoint num="12" id="4920" /> +<TGConnectingPoint num="13" id="4921" /> +<TGConnectingPoint num="14" id="4922" /> +<TGConnectingPoint num="15" id="4923" /> +<TGConnectingPoint num="16" id="4924" /> +<TGConnectingPoint num="17" id="4925" /> +<TGConnectingPoint num="18" id="4926" /> +<TGConnectingPoint num="19" id="4927" /> +<TGConnectingPoint num="20" id="4928" /> +<TGConnectingPoint num="21" id="4929" /> +<TGConnectingPoint num="22" id="4930" /> +<TGConnectingPoint num="23" id="4931" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MAPPER_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="4957" > +<cdparam x="759" y="981" /> +<sizeparam width="219" height="158" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_PSS" value="name" /> +<TGConnectingPoint num="0" id="4933" /> +<TGConnectingPoint num="1" id="4934" /> +<TGConnectingPoint num="2" id="4935" /> +<TGConnectingPoint num="3" id="4936" /> +<TGConnectingPoint num="4" id="4937" /> +<TGConnectingPoint num="5" id="4938" /> +<TGConnectingPoint num="6" id="4939" /> +<TGConnectingPoint num="7" id="4940" /> +<TGConnectingPoint num="8" id="4941" /> +<TGConnectingPoint num="9" id="4942" /> +<TGConnectingPoint num="10" id="4943" /> +<TGConnectingPoint num="11" id="4944" /> +<TGConnectingPoint num="12" id="4945" /> +<TGConnectingPoint num="13" id="4946" /> +<TGConnectingPoint num="14" id="4947" /> +<TGConnectingPoint num="15" id="4948" /> +<TGConnectingPoint num="16" id="4949" /> +<TGConnectingPoint num="17" id="4950" /> +<TGConnectingPoint num="18" id="4951" /> +<TGConnectingPoint num="19" id="4952" /> +<TGConnectingPoint num="20" id="4953" /> +<TGConnectingPoint num="21" id="4954" /> +<TGConnectingPoint num="22" id="4955" /> +<TGConnectingPoint num="23" id="4956" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_PSS" /> +<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" MECType="3" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="4982" > +<cdparam x="845" y="875" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bus" value="name" /> +<TGConnectingPoint num="0" id="4958" /> +<TGConnectingPoint num="1" id="4959" /> +<TGConnectingPoint num="2" id="4960" /> +<TGConnectingPoint num="3" id="4961" /> +<TGConnectingPoint num="4" id="4962" /> +<TGConnectingPoint num="5" id="4963" /> +<TGConnectingPoint num="6" id="4964" /> +<TGConnectingPoint num="7" id="4965" /> +<TGConnectingPoint num="8" id="4966" /> +<TGConnectingPoint num="9" id="4967" /> +<TGConnectingPoint num="10" id="4968" /> +<TGConnectingPoint num="11" id="4969" /> +<TGConnectingPoint num="12" id="4970" /> +<TGConnectingPoint num="13" id="4971" /> +<TGConnectingPoint num="14" id="4972" /> +<TGConnectingPoint num="15" id="4973" /> +<TGConnectingPoint num="16" id="4974" /> +<TGConnectingPoint num="17" id="4975" /> +<TGConnectingPoint num="18" id="4976" /> +<TGConnectingPoint num="19" id="4977" /> +<TGConnectingPoint num="20" id="4978" /> +<TGConnectingPoint num="21" id="4979" /> +<TGConnectingPoint num="22" id="4980" /> +<TGConnectingPoint num="23" id="4981" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MAPPER_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="125" id="4983" > +<cdparam x="1367" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1367" y="660" id="4561" /> +<P2 x="1076" y="660" id="4587" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4984" > +<cdparam x="1147" y="508" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="508" id="4738" /> +<P2 x="1076" y="635" id="4585" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4985" > +<cdparam x="1298" y="875" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1249" y="850" id="4859" /> +<P2 x="1076" y="685" id="4590" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4986" > +<cdparam x="1019" y="805" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="780" id="4884" /> +<P2 x="864" y="685" id="4598" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4987" > +<cdparam x="1004" y="531" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="566" id="4814" /> +<P2 x="864" y="635" id="4592" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4988" > +<cdparam x="1185" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1467" y="660" id="4562" /> +<P2 x="1527" y="660" id="4536" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4989" > +<cdparam x="356" y="788" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="788" id="4614" /> +<P2 x="356" y="832" id="4684" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4990" > +<cdparam x="554" y="806" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="807" id="4358" /> +<P2 x="442" y="685" id="4597" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4991" > +<cdparam x="559" y="863" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="857" id="4361" /> +<P2 x="481" y="857" id="4687" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4992" > +<cdparam x="586" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="541" y="949" id="4634" /> +<P2 x="418" y="882" id="4698" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4993" > +<cdparam x="165" y="927" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="231" y="938" id="4659" /> +<P2 x="293" y="882" id="4697" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4994" > +<cdparam x="355" y="576" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="580" id="4464" /> +<P2 x="231" y="635" id="4583" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4995" > +<cdparam x="355" y="541" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="545" id="4459" /> +<P2 x="356" y="497" id="4714" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4996" > +<cdparam x="543" y="522" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="522" id="4388" /> +<P2 x="442" y="635" id="4591" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4997" > +<cdparam x="536" y="475" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="472" id="4386" /> +<P2 x="481" y="472" id="4712" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4998" > +<cdparam x="549" y="337" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="454" y="395" id="4414" /> +<P2 x="418" y="447" id="4717" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="4999" > +<cdparam x="155" y="323" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="155" y="396" id="4439" /> +<P2 x="293" y="447" id="4716" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5000" > +<cdparam x="357" y="778" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="737" id="4609" /> +<P2 x="231" y="685" id="4588" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5001" > +<cdparam x="1654" y="758" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="737" id="4484" /> +<P2 x="1652" y="685" id="4539" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5002" > +<cdparam x="1651" y="573" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="586" id="4514" /> +<P2 x="1652" y="635" id="4534" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5003" > +<cdparam x="959" y="527" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="531" id="4809" /> +<P2 x="960" y="483" id="4839" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5004" > +<cdparam x="1140" y="461" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="458" id="4736" /> +<P2 x="1085" y="458" id="4837" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5005" > +<cdparam x="1189" y="374" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1022" y="376" id="4764" /> +<P2 x="1022" y="433" id="4842" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5006" > +<cdparam x="795" y="360" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="738" y="384" id="4789" /> +<P2 x="897" y="433" id="4841" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5007" > +<cdparam x="970" y="831" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="831" id="4889" /> +<P2 x="970" y="875" id="4959" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5008" > +<cdparam x="1173" y="906" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1174" y="900" id="4861" /> +<P2 x="1095" y="900" id="4962" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5009" > +<cdparam x="1200" y="1013" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1200" y="978" id="4909" /> +<P2 x="1032" y="925" id="4973" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5010" > +<cdparam x="779" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="868" y="981" id="4934" /> +<P2 x="907" y="925" id="4972" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Mapping_0" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="100" > +<COMPONENT type="1100" id="5035" > +<cdparam x="560" y="807" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_DMA" value="name" /> +<TGConnectingPoint num="0" id="5011" /> +<TGConnectingPoint num="1" id="5012" /> +<TGConnectingPoint num="2" id="5013" /> +<TGConnectingPoint num="3" id="5014" /> +<TGConnectingPoint num="4" id="5015" /> +<TGConnectingPoint num="5" id="5016" /> +<TGConnectingPoint num="6" id="5017" /> +<TGConnectingPoint num="7" id="5018" /> +<TGConnectingPoint num="8" id="5019" /> +<TGConnectingPoint num="9" id="5020" /> +<TGConnectingPoint num="10" id="5021" /> +<TGConnectingPoint num="11" id="5022" /> +<TGConnectingPoint num="12" id="5023" /> +<TGConnectingPoint num="13" id="5024" /> +<TGConnectingPoint num="14" id="5025" /> +<TGConnectingPoint num="15" id="5026" /> +<TGConnectingPoint num="16" id="5027" /> +<TGConnectingPoint num="17" id="5028" /> +<TGConnectingPoint num="18" id="5029" /> +<TGConnectingPoint num="19" id="5030" /> +<TGConnectingPoint num="20" id="5031" /> +<TGConnectingPoint num="21" id="5032" /> +<TGConnectingPoint num="22" id="5033" /> +<TGConnectingPoint num="23" id="5034" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5060" > +<cdparam x="543" y="422" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_DMA" value="name" /> +<TGConnectingPoint num="0" id="5036" /> +<TGConnectingPoint num="1" id="5037" /> +<TGConnectingPoint num="2" id="5038" /> +<TGConnectingPoint num="3" id="5039" /> +<TGConnectingPoint num="4" id="5040" /> +<TGConnectingPoint num="5" id="5041" /> +<TGConnectingPoint num="6" id="5042" /> +<TGConnectingPoint num="7" id="5043" /> +<TGConnectingPoint num="8" id="5044" /> +<TGConnectingPoint num="9" id="5045" /> +<TGConnectingPoint num="10" id="5046" /> +<TGConnectingPoint num="11" id="5047" /> +<TGConnectingPoint num="12" id="5048" /> +<TGConnectingPoint num="13" id="5049" /> +<TGConnectingPoint num="14" id="5050" /> +<TGConnectingPoint num="15" id="5051" /> +<TGConnectingPoint num="16" id="5052" /> +<TGConnectingPoint num="17" id="5053" /> +<TGConnectingPoint num="18" id="5054" /> +<TGConnectingPoint num="19" id="5055" /> +<TGConnectingPoint num="20" id="5056" /> +<TGConnectingPoint num="21" id="5057" /> +<TGConnectingPoint num="22" id="5058" /> +<TGConnectingPoint num="23" id="5059" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="5085" > +<cdparam x="377" y="225" /> +<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_MSS" value="name" /> +<TGConnectingPoint num="0" id="5061" /> +<TGConnectingPoint num="1" id="5062" /> +<TGConnectingPoint num="2" id="5063" /> +<TGConnectingPoint num="3" id="5064" /> +<TGConnectingPoint num="4" id="5065" /> +<TGConnectingPoint num="5" id="5066" /> +<TGConnectingPoint num="6" id="5067" /> +<TGConnectingPoint num="7" id="5068" /> +<TGConnectingPoint num="8" id="5069" /> +<TGConnectingPoint num="9" id="5070" /> +<TGConnectingPoint num="10" id="5071" /> +<TGConnectingPoint num="11" id="5072" /> +<TGConnectingPoint num="12" id="5073" /> +<TGConnectingPoint num="13" id="5074" /> +<TGConnectingPoint num="14" id="5075" /> +<TGConnectingPoint num="15" id="5076" /> +<TGConnectingPoint num="16" id="5077" /> +<TGConnectingPoint num="17" id="5078" /> +<TGConnectingPoint num="18" id="5079" /> +<TGConnectingPoint num="19" id="5080" /> +<TGConnectingPoint num="20" id="5081" /> +<TGConnectingPoint num="21" id="5082" /> +<TGConnectingPoint num="22" id="5083" /> +<TGConnectingPoint num="23" id="5084" /> +<extraparam> +<info stereotype="MEMORY" nodeName="ADAIF_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="2" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5119" > +<cdparam x="90" y="201" /> +<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_PSS" value="name" /> +<TGConnectingPoint num="0" id="5095" /> +<TGConnectingPoint num="1" id="5096" /> +<TGConnectingPoint num="2" id="5097" /> +<TGConnectingPoint num="3" id="5098" /> +<TGConnectingPoint num="4" id="5099" /> +<TGConnectingPoint num="5" id="5100" /> +<TGConnectingPoint num="6" id="5101" /> +<TGConnectingPoint num="7" id="5102" /> +<TGConnectingPoint num="8" id="5103" /> +<TGConnectingPoint num="9" id="5104" /> +<TGConnectingPoint num="10" id="5105" /> +<TGConnectingPoint num="11" id="5106" /> +<TGConnectingPoint num="12" id="5107" /> +<TGConnectingPoint num="13" id="5108" /> +<TGConnectingPoint num="14" id="5109" /> +<TGConnectingPoint num="15" id="5110" /> +<TGConnectingPoint num="16" id="5111" /> +<TGConnectingPoint num="17" id="5112" /> +<TGConnectingPoint num="18" id="5113" /> +<TGConnectingPoint num="19" id="5114" /> +<TGConnectingPoint num="20" id="5115" /> +<TGConnectingPoint num="21" id="5116" /> +<TGConnectingPoint num="22" id="5117" /> +<TGConnectingPoint num="23" id="5118" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_PSS" /> +<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" MECType="4" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="5094" > +<father id="5119" num="0" /> +<cdparam x="109" y="301" /> +<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Sink" /> +<TGConnectingPoint num="0" id="5086" /> +<TGConnectingPoint num="1" id="5087" /> +<TGConnectingPoint num="2" id="5088" /> +<TGConnectingPoint num="3" id="5089" /> +<TGConnectingPoint num="4" id="5090" /> +<TGConnectingPoint num="5" id="5091" /> +<TGConnectingPoint num="6" id="5092" /> +<TGConnectingPoint num="7" id="5093" /> +<extraparam> +<info value="Zigbee_TX::X_Sink" taskName="X_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="Adaif operation" fatherComponentMECType="4" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1106" id="5144" > +<cdparam x="306" y="545" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bridge" value="name" /> +<TGConnectingPoint num="0" id="5120" /> +<TGConnectingPoint num="1" id="5121" /> +<TGConnectingPoint num="2" id="5122" /> +<TGConnectingPoint num="3" id="5123" /> +<TGConnectingPoint num="4" id="5124" /> +<TGConnectingPoint num="5" id="5125" /> +<TGConnectingPoint num="6" id="5126" /> +<TGConnectingPoint num="7" id="5127" /> +<TGConnectingPoint num="8" id="5128" /> +<TGConnectingPoint num="9" id="5129" /> +<TGConnectingPoint num="10" id="5130" /> +<TGConnectingPoint num="11" id="5131" /> +<TGConnectingPoint num="12" id="5132" /> +<TGConnectingPoint num="13" id="5133" /> +<TGConnectingPoint num="14" id="5134" /> +<TGConnectingPoint num="15" id="5135" /> +<TGConnectingPoint num="16" id="5136" /> +<TGConnectingPoint num="17" id="5137" /> +<TGConnectingPoint num="18" id="5138" /> +<TGConnectingPoint num="19" id="5139" /> +<TGConnectingPoint num="20" id="5140" /> +<TGConnectingPoint num="21" id="5141" /> +<TGConnectingPoint num="22" id="5142" /> +<TGConnectingPoint num="23" id="5143" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="5169" > +<cdparam x="1544" y="737" /> +<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainMemory" value="name" /> +<TGConnectingPoint num="0" id="5145" /> +<TGConnectingPoint num="1" id="5146" /> +<TGConnectingPoint num="2" id="5147" /> +<TGConnectingPoint num="3" id="5148" /> +<TGConnectingPoint num="4" id="5149" /> +<TGConnectingPoint num="5" id="5150" /> +<TGConnectingPoint num="6" id="5151" /> +<TGConnectingPoint num="7" id="5152" /> +<TGConnectingPoint num="8" id="5153" /> +<TGConnectingPoint num="9" id="5154" /> +<TGConnectingPoint num="10" id="5155" /> +<TGConnectingPoint num="11" id="5156" /> +<TGConnectingPoint num="12" id="5157" /> +<TGConnectingPoint num="13" id="5158" /> +<TGConnectingPoint num="14" id="5159" /> +<TGConnectingPoint num="15" id="5160" /> +<TGConnectingPoint num="16" id="5161" /> +<TGConnectingPoint num="17" id="5162" /> +<TGConnectingPoint num="18" id="5163" /> +<TGConnectingPoint num="19" id="5164" /> +<TGConnectingPoint num="20" id="5165" /> +<TGConnectingPoint num="21" id="5166" /> +<TGConnectingPoint num="22" id="5167" /> +<TGConnectingPoint num="23" id="5168" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MainMemory" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="4" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5266" > +<cdparam x="1444" y="293" /> +<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainCPU" value="name" /> +<TGConnectingPoint num="0" id="5242" /> +<TGConnectingPoint num="1" id="5243" /> +<TGConnectingPoint num="2" id="5244" /> +<TGConnectingPoint num="3" id="5245" /> +<TGConnectingPoint num="4" id="5246" /> +<TGConnectingPoint num="5" id="5247" /> +<TGConnectingPoint num="6" id="5248" /> +<TGConnectingPoint num="7" id="5249" /> +<TGConnectingPoint num="8" id="5250" /> +<TGConnectingPoint num="9" id="5251" /> +<TGConnectingPoint num="10" id="5252" /> +<TGConnectingPoint num="11" id="5253" /> +<TGConnectingPoint num="12" id="5254" /> +<TGConnectingPoint num="13" id="5255" /> +<TGConnectingPoint num="14" id="5256" /> +<TGConnectingPoint num="15" id="5257" /> +<TGConnectingPoint num="16" id="5258" /> +<TGConnectingPoint num="17" id="5259" /> +<TGConnectingPoint num="18" id="5260" /> +<TGConnectingPoint num="19" id="5261" /> +<TGConnectingPoint num="20" id="5262" /> +<TGConnectingPoint num="21" id="5263" /> +<TGConnectingPoint num="22" id="5264" /> +<TGConnectingPoint num="23" id="5265" /> +<extraparam> +<info stereotype="CPURR" nodeName="MainCPU" /> +<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="6" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="5178" > +<father id="5266" num="0" /> +<cdparam x="1686" y="522" /> +<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" /> +<TGConnectingPoint num="0" id="5170" /> +<TGConnectingPoint num="1" id="5171" /> +<TGConnectingPoint num="2" id="5172" /> +<TGConnectingPoint num="3" id="5173" /> +<TGConnectingPoint num="4" id="5174" /> +<TGConnectingPoint num="5" id="5175" /> +<TGConnectingPoint num="6" id="5176" /> +<TGConnectingPoint num="7" id="5177" /> +<extraparam> +<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5187" > +<father id="5266" num="1" /> +<cdparam x="1685" y="459" /> +<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" /> +<TGConnectingPoint num="0" id="5179" /> +<TGConnectingPoint num="1" id="5180" /> +<TGConnectingPoint num="2" id="5181" /> +<TGConnectingPoint num="3" id="5182" /> +<TGConnectingPoint num="4" id="5183" /> +<TGConnectingPoint num="5" id="5184" /> +<TGConnectingPoint num="6" id="5185" /> +<TGConnectingPoint num="7" id="5186" /> +<extraparam> +<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5196" > +<father id="5266" num="2" /> +<cdparam x="1691" y="345" /> +<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" /> +<TGConnectingPoint num="0" id="5188" /> +<TGConnectingPoint num="1" id="5189" /> +<TGConnectingPoint num="2" id="5190" /> +<TGConnectingPoint num="3" id="5191" /> +<TGConnectingPoint num="4" id="5192" /> +<TGConnectingPoint num="5" id="5193" /> +<TGConnectingPoint num="6" id="5194" /> +<TGConnectingPoint num="7" id="5195" /> +<extraparam> +<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5205" > +<father id="5266" num="3" /> +<cdparam x="1688" y="405" /> +<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" /> +<TGConnectingPoint num="0" id="5197" /> +<TGConnectingPoint num="1" id="5198" /> +<TGConnectingPoint num="2" id="5199" /> +<TGConnectingPoint num="3" id="5200" /> +<TGConnectingPoint num="4" id="5201" /> +<TGConnectingPoint num="5" id="5202" /> +<TGConnectingPoint num="6" id="5203" /> +<TGConnectingPoint num="7" id="5204" /> +<extraparam> +<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5214" > +<father id="5266" num="4" /> +<cdparam x="1466" y="518" /> +<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" /> +<TGConnectingPoint num="0" id="5206" /> +<TGConnectingPoint num="1" id="5207" /> +<TGConnectingPoint num="2" id="5208" /> +<TGConnectingPoint num="3" id="5209" /> +<TGConnectingPoint num="4" id="5210" /> +<TGConnectingPoint num="5" id="5211" /> +<TGConnectingPoint num="6" id="5212" /> +<TGConnectingPoint num="7" id="5213" /> +<extraparam> +<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="X_Chip2Octet" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5223" > +<father id="5266" num="5" /> +<cdparam x="1466" y="456" /> +<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="5215" /> +<TGConnectingPoint num="1" id="5216" /> +<TGConnectingPoint num="2" id="5217" /> +<TGConnectingPoint num="3" id="5218" /> +<TGConnectingPoint num="4" id="5219" /> +<TGConnectingPoint num="5" id="5220" /> +<TGConnectingPoint num="6" id="5221" /> +<TGConnectingPoint num="7" id="5222" /> +<extraparam> +<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5232" > +<father id="5266" num="6" /> +<cdparam x="1466" y="395" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Source" /> +<TGConnectingPoint num="0" id="5224" /> +<TGConnectingPoint num="1" id="5225" /> +<TGConnectingPoint num="2" id="5226" /> +<TGConnectingPoint num="3" id="5227" /> +<TGConnectingPoint num="4" id="5228" /> +<TGConnectingPoint num="5" id="5229" /> +<TGConnectingPoint num="6" id="5230" /> +<TGConnectingPoint num="7" id="5231" /> +<extraparam> +<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5241" > +<father id="5266" num="7" /> +<cdparam x="1465" y="339" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Source" /> +<TGConnectingPoint num="0" id="5233" /> +<TGConnectingPoint num="1" id="5234" /> +<TGConnectingPoint num="2" id="5235" /> +<TGConnectingPoint num="3" id="5236" /> +<TGConnectingPoint num="4" id="5237" /> +<TGConnectingPoint num="5" id="5238" /> +<TGConnectingPoint num="6" id="5239" /> +<TGConnectingPoint num="7" id="5240" /> +<extraparam> +<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="5291" > +<cdparam x="1527" y="635" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBus" value="name" /> +<TGConnectingPoint num="0" id="5267" /> +<TGConnectingPoint num="1" id="5268" /> +<TGConnectingPoint num="2" id="5269" /> +<TGConnectingPoint num="3" id="5270" /> +<TGConnectingPoint num="4" id="5271" /> +<TGConnectingPoint num="5" id="5272" /> +<TGConnectingPoint num="6" id="5273" /> +<TGConnectingPoint num="7" id="5274" /> +<TGConnectingPoint num="8" id="5275" /> +<TGConnectingPoint num="9" id="5276" /> +<TGConnectingPoint num="10" id="5277" /> +<TGConnectingPoint num="11" id="5278" /> +<TGConnectingPoint num="12" id="5279" /> +<TGConnectingPoint num="13" id="5280" /> +<TGConnectingPoint num="14" id="5281" /> +<TGConnectingPoint num="15" id="5282" /> +<TGConnectingPoint num="16" id="5283" /> +<TGConnectingPoint num="17" id="5284" /> +<TGConnectingPoint num="18" id="5285" /> +<TGConnectingPoint num="19" id="5286" /> +<TGConnectingPoint num="20" id="5287" /> +<TGConnectingPoint num="21" id="5288" /> +<TGConnectingPoint num="22" id="5289" /> +<TGConnectingPoint num="23" id="5290" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MainBus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="5316" > +<cdparam x="1367" y="610" /> +<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBridge" value="name" /> +<TGConnectingPoint num="0" id="5292" /> +<TGConnectingPoint num="1" id="5293" /> +<TGConnectingPoint num="2" id="5294" /> +<TGConnectingPoint num="3" id="5295" /> +<TGConnectingPoint num="4" id="5296" /> +<TGConnectingPoint num="5" id="5297" /> +<TGConnectingPoint num="6" id="5298" /> +<TGConnectingPoint num="7" id="5299" /> +<TGConnectingPoint num="8" id="5300" /> +<TGConnectingPoint num="9" id="5301" /> +<TGConnectingPoint num="10" id="5302" /> +<TGConnectingPoint num="11" id="5303" /> +<TGConnectingPoint num="12" id="5304" /> +<TGConnectingPoint num="13" id="5305" /> +<TGConnectingPoint num="14" id="5306" /> +<TGConnectingPoint num="15" id="5307" /> +<TGConnectingPoint num="16" id="5308" /> +<TGConnectingPoint num="17" id="5309" /> +<TGConnectingPoint num="18" id="5310" /> +<TGConnectingPoint num="19" id="5311" /> +<TGConnectingPoint num="20" id="5312" /> +<TGConnectingPoint num="21" id="5313" /> +<TGConnectingPoint num="22" id="5314" /> +<TGConnectingPoint num="23" id="5315" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MainBridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="5341" > +<cdparam x="354" y="618" /> +<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="Crossbar" value="name" /> +<TGConnectingPoint num="0" id="5317" /> +<TGConnectingPoint num="1" id="5318" /> +<TGConnectingPoint num="2" id="5319" /> +<TGConnectingPoint num="3" id="5320" /> +<TGConnectingPoint num="4" id="5321" /> +<TGConnectingPoint num="5" id="5322" /> +<TGConnectingPoint num="6" id="5323" /> +<TGConnectingPoint num="7" id="5324" /> +<TGConnectingPoint num="8" id="5325" /> +<TGConnectingPoint num="9" id="5326" /> +<TGConnectingPoint num="10" id="5327" /> +<TGConnectingPoint num="11" id="5328" /> +<TGConnectingPoint num="12" id="5329" /> +<TGConnectingPoint num="13" id="5330" /> +<TGConnectingPoint num="14" id="5331" /> +<TGConnectingPoint num="15" id="5332" /> +<TGConnectingPoint num="16" id="5333" /> +<TGConnectingPoint num="17" id="5334" /> +<TGConnectingPoint num="18" id="5335" /> +<TGConnectingPoint num="19" id="5336" /> +<TGConnectingPoint num="20" id="5337" /> +<TGConnectingPoint num="21" id="5338" /> +<TGConnectingPoint num="22" id="5339" /> +<TGConnectingPoint num="23" id="5340" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="Crossbar" /> +<attributes byteDataSize="8" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="5366" > +<cdparam x="306" y="737" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bridge" value="name" /> +<TGConnectingPoint num="0" id="5342" /> +<TGConnectingPoint num="1" id="5343" /> +<TGConnectingPoint num="2" id="5344" /> +<TGConnectingPoint num="3" id="5345" /> +<TGConnectingPoint num="4" id="5346" /> +<TGConnectingPoint num="5" id="5347" /> +<TGConnectingPoint num="6" id="5348" /> +<TGConnectingPoint num="7" id="5349" /> +<TGConnectingPoint num="8" id="5350" /> +<TGConnectingPoint num="9" id="5351" /> +<TGConnectingPoint num="10" id="5352" /> +<TGConnectingPoint num="11" id="5353" /> +<TGConnectingPoint num="12" id="5354" /> +<TGConnectingPoint num="13" id="5355" /> +<TGConnectingPoint num="14" id="5356" /> +<TGConnectingPoint num="15" id="5357" /> +<TGConnectingPoint num="16" id="5358" /> +<TGConnectingPoint num="17" id="5359" /> +<TGConnectingPoint num="18" id="5360" /> +<TGConnectingPoint num="19" id="5361" /> +<TGConnectingPoint num="20" id="5362" /> +<TGConnectingPoint num="21" id="5363" /> +<TGConnectingPoint num="22" id="5364" /> +<TGConnectingPoint num="23" id="5365" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="INTL_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="5391" > +<cdparam x="376" y="949" /> +<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_MSS" value="name" /> +<TGConnectingPoint num="0" id="5367" /> +<TGConnectingPoint num="1" id="5368" /> +<TGConnectingPoint num="2" id="5369" /> +<TGConnectingPoint num="3" id="5370" /> +<TGConnectingPoint num="4" id="5371" /> +<TGConnectingPoint num="5" id="5372" /> +<TGConnectingPoint num="6" id="5373" /> +<TGConnectingPoint num="7" id="5374" /> +<TGConnectingPoint num="8" id="5375" /> +<TGConnectingPoint num="9" id="5376" /> +<TGConnectingPoint num="10" id="5377" /> +<TGConnectingPoint num="11" id="5378" /> +<TGConnectingPoint num="12" id="5379" /> +<TGConnectingPoint num="13" id="5380" /> +<TGConnectingPoint num="14" id="5381" /> +<TGConnectingPoint num="15" id="5382" /> +<TGConnectingPoint num="16" id="5383" /> +<TGConnectingPoint num="17" id="5384" /> +<TGConnectingPoint num="18" id="5385" /> +<TGConnectingPoint num="19" id="5386" /> +<TGConnectingPoint num="20" id="5387" /> +<TGConnectingPoint num="21" id="5388" /> +<TGConnectingPoint num="22" id="5389" /> +<TGConnectingPoint num="23" id="5390" /> +<extraparam> +<info stereotype="MEMORY" nodeName="INTL_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5425" > +<cdparam x="91" y="938" /> +<sizeparam width="234" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_PSS" value="name" /> +<TGConnectingPoint num="0" id="5401" /> +<TGConnectingPoint num="1" id="5402" /> +<TGConnectingPoint num="2" id="5403" /> +<TGConnectingPoint num="3" id="5404" /> +<TGConnectingPoint num="4" id="5405" /> +<TGConnectingPoint num="5" id="5406" /> +<TGConnectingPoint num="6" id="5407" /> +<TGConnectingPoint num="7" id="5408" /> +<TGConnectingPoint num="8" id="5409" /> +<TGConnectingPoint num="9" id="5410" /> +<TGConnectingPoint num="10" id="5411" /> +<TGConnectingPoint num="11" id="5412" /> +<TGConnectingPoint num="12" id="5413" /> +<TGConnectingPoint num="13" id="5414" /> +<TGConnectingPoint num="14" id="5415" /> +<TGConnectingPoint num="15" id="5416" /> +<TGConnectingPoint num="16" id="5417" /> +<TGConnectingPoint num="17" id="5418" /> +<TGConnectingPoint num="18" id="5419" /> +<TGConnectingPoint num="19" id="5420" /> +<TGConnectingPoint num="20" id="5421" /> +<TGConnectingPoint num="21" id="5422" /> +<TGConnectingPoint num="22" id="5423" /> +<TGConnectingPoint num="23" id="5424" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_PSS" /> +<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" MECType="2" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="5400" > +<father id="5425" num="0" /> +<cdparam x="105" y="993" /> +<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" /> +<TGConnectingPoint num="0" id="5392" /> +<TGConnectingPoint num="1" id="5393" /> +<TGConnectingPoint num="2" id="5394" /> +<TGConnectingPoint num="3" id="5395" /> +<TGConnectingPoint num="4" id="5396" /> +<TGConnectingPoint num="5" id="5397" /> +<TGConnectingPoint num="6" id="5398" /> +<TGConnectingPoint num="7" id="5399" /> +<extraparam> +<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="Interleaver operation" fatherComponentMECType="2" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="5450" > +<cdparam x="231" y="832" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bus" value="name" /> +<TGConnectingPoint num="0" id="5426" /> +<TGConnectingPoint num="1" id="5427" /> +<TGConnectingPoint num="2" id="5428" /> +<TGConnectingPoint num="3" id="5429" /> +<TGConnectingPoint num="4" id="5430" /> +<TGConnectingPoint num="5" id="5431" /> +<TGConnectingPoint num="6" id="5432" /> +<TGConnectingPoint num="7" id="5433" /> +<TGConnectingPoint num="8" id="5434" /> +<TGConnectingPoint num="9" id="5435" /> +<TGConnectingPoint num="10" id="5436" /> +<TGConnectingPoint num="11" id="5437" /> +<TGConnectingPoint num="12" id="5438" /> +<TGConnectingPoint num="13" id="5439" /> +<TGConnectingPoint num="14" id="5440" /> +<TGConnectingPoint num="15" id="5441" /> +<TGConnectingPoint num="16" id="5442" /> +<TGConnectingPoint num="17" id="5443" /> +<TGConnectingPoint num="18" id="5444" /> +<TGConnectingPoint num="19" id="5445" /> +<TGConnectingPoint num="20" id="5446" /> +<TGConnectingPoint num="21" id="5447" /> +<TGConnectingPoint num="22" id="5448" /> +<TGConnectingPoint num="23" id="5449" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="INTL_Bus" /> +<attributes byteDataSize="8" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="5475" > +<cdparam x="231" y="447" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bus" value="name" /> +<TGConnectingPoint num="0" id="5451" /> +<TGConnectingPoint num="1" id="5452" /> +<TGConnectingPoint num="2" id="5453" /> +<TGConnectingPoint num="3" id="5454" /> +<TGConnectingPoint num="4" id="5455" /> +<TGConnectingPoint num="5" id="5456" /> +<TGConnectingPoint num="6" id="5457" /> +<TGConnectingPoint num="7" id="5458" /> +<TGConnectingPoint num="8" id="5459" /> +<TGConnectingPoint num="9" id="5460" /> +<TGConnectingPoint num="10" id="5461" /> +<TGConnectingPoint num="11" id="5462" /> +<TGConnectingPoint num="12" id="5463" /> +<TGConnectingPoint num="13" id="5464" /> +<TGConnectingPoint num="14" id="5465" /> +<TGConnectingPoint num="15" id="5466" /> +<TGConnectingPoint num="16" id="5467" /> +<TGConnectingPoint num="17" id="5468" /> +<TGConnectingPoint num="18" id="5469" /> +<TGConnectingPoint num="19" id="5470" /> +<TGConnectingPoint num="20" id="5471" /> +<TGConnectingPoint num="21" id="5472" /> +<TGConnectingPoint num="22" id="5473" /> +<TGConnectingPoint num="23" id="5474" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="ADAIF_Bus" /> +<attributes byteDataSize="8" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5500" > +<cdparam x="1147" y="408" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_DMA" value="name" /> +<TGConnectingPoint num="0" id="5476" /> +<TGConnectingPoint num="1" id="5477" /> +<TGConnectingPoint num="2" id="5478" /> +<TGConnectingPoint num="3" id="5479" /> +<TGConnectingPoint num="4" id="5480" /> +<TGConnectingPoint num="5" id="5481" /> +<TGConnectingPoint num="6" id="5482" /> +<TGConnectingPoint num="7" id="5483" /> +<TGConnectingPoint num="8" id="5484" /> +<TGConnectingPoint num="9" id="5485" /> +<TGConnectingPoint num="10" id="5486" /> +<TGConnectingPoint num="11" id="5487" /> +<TGConnectingPoint num="12" id="5488" /> +<TGConnectingPoint num="13" id="5489" /> +<TGConnectingPoint num="14" id="5490" /> +<TGConnectingPoint num="15" id="5491" /> +<TGConnectingPoint num="16" id="5492" /> +<TGConnectingPoint num="17" id="5493" /> +<TGConnectingPoint num="18" id="5494" /> +<TGConnectingPoint num="19" id="5495" /> +<TGConnectingPoint num="20" id="5496" /> +<TGConnectingPoint num="21" id="5497" /> +<TGConnectingPoint num="22" id="5498" /> +<TGConnectingPoint num="23" id="5499" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="5525" > +<cdparam x="991" y="187" /> +<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_MSS" value="name" /> +<TGConnectingPoint num="0" id="5501" /> +<TGConnectingPoint num="1" id="5502" /> +<TGConnectingPoint num="2" id="5503" /> +<TGConnectingPoint num="3" id="5504" /> +<TGConnectingPoint num="4" id="5505" /> +<TGConnectingPoint num="5" id="5506" /> +<TGConnectingPoint num="6" id="5507" /> +<TGConnectingPoint num="7" id="5508" /> +<TGConnectingPoint num="8" id="5509" /> +<TGConnectingPoint num="9" id="5510" /> +<TGConnectingPoint num="10" id="5511" /> +<TGConnectingPoint num="11" id="5512" /> +<TGConnectingPoint num="12" id="5513" /> +<TGConnectingPoint num="13" id="5514" /> +<TGConnectingPoint num="14" id="5515" /> +<TGConnectingPoint num="15" id="5516" /> +<TGConnectingPoint num="16" id="5517" /> +<TGConnectingPoint num="17" id="5518" /> +<TGConnectingPoint num="18" id="5519" /> +<TGConnectingPoint num="19" id="5520" /> +<TGConnectingPoint num="20" id="5521" /> +<TGConnectingPoint num="21" id="5522" /> +<TGConnectingPoint num="22" id="5523" /> +<TGConnectingPoint num="23" id="5524" /> +<extraparam> +<info stereotype="MEMORY" nodeName="FEP_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5577" > +<cdparam x="680" y="193" /> +<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_PSS" value="name" /> +<TGConnectingPoint num="0" id="5553" /> +<TGConnectingPoint num="1" id="5554" /> +<TGConnectingPoint num="2" id="5555" /> +<TGConnectingPoint num="3" id="5556" /> +<TGConnectingPoint num="4" id="5557" /> +<TGConnectingPoint num="5" id="5558" /> +<TGConnectingPoint num="6" id="5559" /> +<TGConnectingPoint num="7" id="5560" /> +<TGConnectingPoint num="8" id="5561" /> +<TGConnectingPoint num="9" id="5562" /> +<TGConnectingPoint num="10" id="5563" /> +<TGConnectingPoint num="11" id="5564" /> +<TGConnectingPoint num="12" id="5565" /> +<TGConnectingPoint num="13" id="5566" /> +<TGConnectingPoint num="14" id="5567" /> +<TGConnectingPoint num="15" id="5568" /> +<TGConnectingPoint num="16" id="5569" /> +<TGConnectingPoint num="17" id="5570" /> +<TGConnectingPoint num="18" id="5571" /> +<TGConnectingPoint num="19" id="5572" /> +<TGConnectingPoint num="20" id="5573" /> +<TGConnectingPoint num="21" id="5574" /> +<TGConnectingPoint num="22" id="5575" /> +<TGConnectingPoint num="23" id="5576" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_PSS" /> +<attributes nbOfCores="1" byteDataSize="4" schedulingPolicy="0" sliceTime="10000" goIdleTime="10" maxConsecutiveIdleCycles="10" pipelineSize="5" taskSwitchingTime="20" branchingPredictionPenalty="2" cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="5534" > +<father id="5577" num="0" /> +<cdparam x="700" y="233" /> +<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" /> +<TGConnectingPoint num="0" id="5526" /> +<TGConnectingPoint num="1" id="5527" /> +<TGConnectingPoint num="2" id="5528" /> +<TGConnectingPoint num="3" id="5529" /> +<TGConnectingPoint num="4" id="5530" /> +<TGConnectingPoint num="5" id="5531" /> +<TGConnectingPoint num="6" id="5532" /> +<TGConnectingPoint num="7" id="5533" /> +<extraparam> +<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5543" > +<father id="5577" num="1" /> +<cdparam x="701" y="329" /> +<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" /> +<TGConnectingPoint num="0" id="5535" /> +<TGConnectingPoint num="1" id="5536" /> +<TGConnectingPoint num="2" id="5537" /> +<TGConnectingPoint num="3" id="5538" /> +<TGConnectingPoint num="4" id="5539" /> +<TGConnectingPoint num="5" id="5540" /> +<TGConnectingPoint num="6" id="5541" /> +<TGConnectingPoint num="7" id="5542" /> +<extraparam> +<info value="Zigbee_TX::X_CWP_Q" taskName="X_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="5552" > +<father id="5577" num="2" /> +<cdparam x="732" y="283" /> +<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" /> +<TGConnectingPoint num="0" id="5544" /> +<TGConnectingPoint num="1" id="5545" /> +<TGConnectingPoint num="2" id="5546" /> +<TGConnectingPoint num="3" id="5547" /> +<TGConnectingPoint num="4" id="5548" /> +<TGConnectingPoint num="5" id="5549" /> +<TGConnectingPoint num="6" id="5550" /> +<TGConnectingPoint num="7" id="5551" /> +<extraparam> +<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1106" id="5602" > +<cdparam x="910" y="531" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bridge" value="name" /> +<TGConnectingPoint num="0" id="5578" /> +<TGConnectingPoint num="1" id="5579" /> +<TGConnectingPoint num="2" id="5580" /> +<TGConnectingPoint num="3" id="5581" /> +<TGConnectingPoint num="4" id="5582" /> +<TGConnectingPoint num="5" id="5583" /> +<TGConnectingPoint num="6" id="5584" /> +<TGConnectingPoint num="7" id="5585" /> +<TGConnectingPoint num="8" id="5586" /> +<TGConnectingPoint num="9" id="5587" /> +<TGConnectingPoint num="10" id="5588" /> +<TGConnectingPoint num="11" id="5589" /> +<TGConnectingPoint num="12" id="5590" /> +<TGConnectingPoint num="13" id="5591" /> +<TGConnectingPoint num="14" id="5592" /> +<TGConnectingPoint num="15" id="5593" /> +<TGConnectingPoint num="16" id="5594" /> +<TGConnectingPoint num="17" id="5595" /> +<TGConnectingPoint num="18" id="5596" /> +<TGConnectingPoint num="19" id="5597" /> +<TGConnectingPoint num="20" id="5598" /> +<TGConnectingPoint num="21" id="5599" /> +<TGConnectingPoint num="22" id="5600" /> +<TGConnectingPoint num="23" id="5601" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="FEP_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="5627" > +<cdparam x="835" y="433" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bus" value="name" /> +<TGConnectingPoint num="0" id="5603" /> +<TGConnectingPoint num="1" id="5604" /> +<TGConnectingPoint num="2" id="5605" /> +<TGConnectingPoint num="3" id="5606" /> +<TGConnectingPoint num="4" id="5607" /> +<TGConnectingPoint num="5" id="5608" /> +<TGConnectingPoint num="6" id="5609" /> +<TGConnectingPoint num="7" id="5610" /> +<TGConnectingPoint num="8" id="5611" /> +<TGConnectingPoint num="9" id="5612" /> +<TGConnectingPoint num="10" id="5613" /> +<TGConnectingPoint num="11" id="5614" /> +<TGConnectingPoint num="12" id="5615" /> +<TGConnectingPoint num="13" id="5616" /> +<TGConnectingPoint num="14" id="5617" /> +<TGConnectingPoint num="15" id="5618" /> +<TGConnectingPoint num="16" id="5619" /> +<TGConnectingPoint num="17" id="5620" /> +<TGConnectingPoint num="18" id="5621" /> +<TGConnectingPoint num="19" id="5622" /> +<TGConnectingPoint num="20" id="5623" /> +<TGConnectingPoint num="21" id="5624" /> +<TGConnectingPoint num="22" id="5625" /> +<TGConnectingPoint num="23" id="5626" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="FEP_Bus" /> +<attributes byteDataSize="8" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5652" > +<cdparam x="1141" y="748" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_DMA" value="name" /> +<TGConnectingPoint num="0" id="5628" /> +<TGConnectingPoint num="1" id="5629" /> +<TGConnectingPoint num="2" id="5630" /> +<TGConnectingPoint num="3" id="5631" /> +<TGConnectingPoint num="4" id="5632" /> +<TGConnectingPoint num="5" id="5633" /> +<TGConnectingPoint num="6" id="5634" /> +<TGConnectingPoint num="7" id="5635" /> +<TGConnectingPoint num="8" id="5636" /> +<TGConnectingPoint num="9" id="5637" /> +<TGConnectingPoint num="10" id="5638" /> +<TGConnectingPoint num="11" id="5639" /> +<TGConnectingPoint num="12" id="5640" /> +<TGConnectingPoint num="13" id="5641" /> +<TGConnectingPoint num="14" id="5642" /> +<TGConnectingPoint num="15" id="5643" /> +<TGConnectingPoint num="16" id="5644" /> +<TGConnectingPoint num="17" id="5645" /> +<TGConnectingPoint num="18" id="5646" /> +<TGConnectingPoint num="19" id="5647" /> +<TGConnectingPoint num="20" id="5648" /> +<TGConnectingPoint num="21" id="5649" /> +<TGConnectingPoint num="22" id="5650" /> +<TGConnectingPoint num="23" id="5651" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="5677" > +<cdparam x="920" y="780" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bridge" value="name" /> +<TGConnectingPoint num="0" id="5653" /> +<TGConnectingPoint num="1" id="5654" /> +<TGConnectingPoint num="2" id="5655" /> +<TGConnectingPoint num="3" id="5656" /> +<TGConnectingPoint num="4" id="5657" /> +<TGConnectingPoint num="5" id="5658" /> +<TGConnectingPoint num="6" id="5659" /> +<TGConnectingPoint num="7" id="5660" /> +<TGConnectingPoint num="8" id="5661" /> +<TGConnectingPoint num="9" id="5662" /> +<TGConnectingPoint num="10" id="5663" /> +<TGConnectingPoint num="11" id="5664" /> +<TGConnectingPoint num="12" id="5665" /> +<TGConnectingPoint num="13" id="5666" /> +<TGConnectingPoint num="14" id="5667" /> +<TGConnectingPoint num="15" id="5668" /> +<TGConnectingPoint num="16" id="5669" /> +<TGConnectingPoint num="17" id="5670" /> +<TGConnectingPoint num="18" id="5671" /> +<TGConnectingPoint num="19" id="5672" /> +<TGConnectingPoint num="20" id="5673" /> +<TGConnectingPoint num="21" id="5674" /> +<TGConnectingPoint num="22" id="5675" /> +<TGConnectingPoint num="23" id="5676" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="5702" > +<cdparam x="1043" y="978" /> +<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_MSS" value="name" /> +<TGConnectingPoint num="0" id="5678" /> +<TGConnectingPoint num="1" id="5679" /> +<TGConnectingPoint num="2" id="5680" /> +<TGConnectingPoint num="3" id="5681" /> +<TGConnectingPoint num="4" id="5682" /> +<TGConnectingPoint num="5" id="5683" /> +<TGConnectingPoint num="6" id="5684" /> +<TGConnectingPoint num="7" id="5685" /> +<TGConnectingPoint num="8" id="5686" /> +<TGConnectingPoint num="9" id="5687" /> +<TGConnectingPoint num="10" id="5688" /> +<TGConnectingPoint num="11" id="5689" /> +<TGConnectingPoint num="12" id="5690" /> +<TGConnectingPoint num="13" id="5691" /> +<TGConnectingPoint num="14" id="5692" /> +<TGConnectingPoint num="15" id="5693" /> +<TGConnectingPoint num="16" id="5694" /> +<TGConnectingPoint num="17" id="5695" /> +<TGConnectingPoint num="18" id="5696" /> +<TGConnectingPoint num="19" id="5697" /> +<TGConnectingPoint num="20" id="5698" /> +<TGConnectingPoint num="21" id="5699" /> +<TGConnectingPoint num="22" id="5700" /> +<TGConnectingPoint num="23" id="5701" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MAPPER_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5736" > +<cdparam x="734" y="981" /> +<sizeparam width="244" height="158" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_PSS" value="name" /> +<TGConnectingPoint num="0" id="5712" /> +<TGConnectingPoint num="1" id="5713" /> +<TGConnectingPoint num="2" id="5714" /> +<TGConnectingPoint num="3" id="5715" /> +<TGConnectingPoint num="4" id="5716" /> +<TGConnectingPoint num="5" id="5717" /> +<TGConnectingPoint num="6" id="5718" /> +<TGConnectingPoint num="7" id="5719" /> +<TGConnectingPoint num="8" id="5720" /> +<TGConnectingPoint num="9" id="5721" /> +<TGConnectingPoint num="10" id="5722" /> +<TGConnectingPoint num="11" id="5723" /> +<TGConnectingPoint num="12" id="5724" /> +<TGConnectingPoint num="13" id="5725" /> +<TGConnectingPoint num="14" id="5726" /> +<TGConnectingPoint num="15" id="5727" /> +<TGConnectingPoint num="16" id="5728" /> +<TGConnectingPoint num="17" id="5729" /> +<TGConnectingPoint num="18" id="5730" /> +<TGConnectingPoint num="19" id="5731" /> +<TGConnectingPoint num="20" id="5732" /> +<TGConnectingPoint num="21" id="5733" /> +<TGConnectingPoint num="22" id="5734" /> +<TGConnectingPoint num="23" id="5735" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_PSS" /> +<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" MECType="3" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="5711" > +<father id="5736" num="0" /> +<cdparam x="743" y="1030" /> +<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="21" minY="0" maxY="118" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="5703" /> +<TGConnectingPoint num="1" id="5704" /> +<TGConnectingPoint num="2" id="5705" /> +<TGConnectingPoint num="3" id="5706" /> +<TGConnectingPoint num="4" id="5707" /> +<TGConnectingPoint num="5" id="5708" /> +<TGConnectingPoint num="6" id="5709" /> +<TGConnectingPoint num="7" id="5710" /> +<extraparam> +<info value="Zigbee_TX::X_Symbol2ChipSeq" taskName="X_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="Mapper operation" fatherComponentMECType="3" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="5761" > +<cdparam x="845" y="875" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bus" value="name" /> +<TGConnectingPoint num="0" id="5737" /> +<TGConnectingPoint num="1" id="5738" /> +<TGConnectingPoint num="2" id="5739" /> +<TGConnectingPoint num="3" id="5740" /> +<TGConnectingPoint num="4" id="5741" /> +<TGConnectingPoint num="5" id="5742" /> +<TGConnectingPoint num="6" id="5743" /> +<TGConnectingPoint num="7" id="5744" /> +<TGConnectingPoint num="8" id="5745" /> +<TGConnectingPoint num="9" id="5746" /> +<TGConnectingPoint num="10" id="5747" /> +<TGConnectingPoint num="11" id="5748" /> +<TGConnectingPoint num="12" id="5749" /> +<TGConnectingPoint num="13" id="5750" /> +<TGConnectingPoint num="14" id="5751" /> +<TGConnectingPoint num="15" id="5752" /> +<TGConnectingPoint num="16" id="5753" /> +<TGConnectingPoint num="17" id="5754" /> +<TGConnectingPoint num="18" id="5755" /> +<TGConnectingPoint num="19" id="5756" /> +<TGConnectingPoint num="20" id="5757" /> +<TGConnectingPoint num="21" id="5758" /> +<TGConnectingPoint num="22" id="5759" /> +<TGConnectingPoint num="23" id="5760" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MAPPER_Bus" /> +<attributes byteDataSize="8" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1108" id="5779" > +<cdparam x="106" y="1266" /> +<sizeparam width="419" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Symbol2ChipSeq_Chips2Octet" value="CP0" /> +<TGConnectingPoint num="0" id="5771" /> +<TGConnectingPoint num="1" id="5772" /> +<TGConnectingPoint num="2" id="5773" /> +<TGConnectingPoint num="3" id="5774" /> +<TGConnectingPoint num="4" id="5775" /> +<TGConnectingPoint num="5" id="5776" /> +<TGConnectingPoint num="6" id="5777" /> +<TGConnectingPoint num="7" id="5778" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappedAttributes type="int" name="counter" value="1" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="5770" > +<father id="5779" num="0" /> +<cdparam x="295" y="1302" /> +<sizeparam width="212" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" /> +<infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" /> +<TGConnectingPoint num="0" id="5762" /> +<TGConnectingPoint num="1" id="5763" /> +<TGConnectingPoint num="2" id="5764" /> +<TGConnectingPoint num="3" id="5765" /> +<TGConnectingPoint num="4" id="5766" /> +<TGConnectingPoint num="5" id="5767" /> +<TGConnectingPoint num="6" id="5768" /> +<TGConnectingPoint num="7" id="5769" /> +<extraparam> +<info value="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="INTL_MSS" bufferType="3" packedBinaryIn="" width="" bitInOffset="" inputOffset="" packedBinaryOut="" bitOutOffset="" outputOffset="" offsetPerm="" lengthPerm="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="5797" > +<cdparam x="105" y="1396" /> +<sizeparam width="405" height="88" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Chip2Octet_CWL" value="CP0" /> +<TGConnectingPoint num="0" id="5789" /> +<TGConnectingPoint num="1" id="5790" /> +<TGConnectingPoint num="2" id="5791" /> +<TGConnectingPoint num="3" id="5792" /> +<TGConnectingPoint num="4" id="5793" /> +<TGConnectingPoint num="5" id="5794" /> +<TGConnectingPoint num="6" id="5795" /> +<TGConnectingPoint num="7" id="5796" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappedAttributes type="int" name="counter" value="1" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="5788" > +<father id="5797" num="0" /> +<cdparam x="327" y="1437" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" /> +<infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" /> +<TGConnectingPoint num="0" id="5780" /> +<TGConnectingPoint num="1" id="5781" /> +<TGConnectingPoint num="2" id="5782" /> +<TGConnectingPoint num="3" id="5783" /> +<TGConnectingPoint num="4" id="5784" /> +<TGConnectingPoint num="5" id="5785" /> +<TGConnectingPoint num="6" id="5786" /> +<TGConnectingPoint num="7" id="5787" /> +<extraparam> +<info value="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="FEP_MSS" bufferType="0" baseAddress="0x2" numSamples="1" bank="0" dataType="int8" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="5815" > +<cdparam x="626" y="1227" /> +<sizeparam width="295" height="145" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_sink" value="CP0" /> +<TGConnectingPoint num="0" id="5807" /> +<TGConnectingPoint num="1" id="5808" /> +<TGConnectingPoint num="2" id="5809" /> +<TGConnectingPoint num="3" id="5810" /> +<TGConnectingPoint num="4" id="5811" /> +<TGConnectingPoint num="5" id="5812" /> +<TGConnectingPoint num="6" id="5813" /> +<TGConnectingPoint num="7" id="5814" /> +<extraparam> +<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" /> +<attributes reference="Double_DMA_transfer" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappedAttributes type="int" name="counter1" value="2" /> +<mappedAttributes type="int" name="counter2" value="2" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="5806" > +<father id="5815" num="0" /> +<cdparam x="700" y="1290" /> +<sizeparam width="170" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" /> +<infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" /> +<TGConnectingPoint num="0" id="5798" /> +<TGConnectingPoint num="1" id="5799" /> +<TGConnectingPoint num="2" id="5800" /> +<TGConnectingPoint num="3" id="5801" /> +<TGConnectingPoint num="4" id="5802" /> +<TGConnectingPoint num="5" id="5803" /> +<TGConnectingPoint num="6" id="5804" /> +<TGConnectingPoint num="7" id="5805" /> +<extraparam> +<info value="Zigbee_TX::sink_ch_in" portName="sink_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="ADAIF_MSS" bufferType="2" numSamples="1" baseAddress="0x2" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="5833" > +<cdparam x="106" y="1143" /> +<sizeparam width="421" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Source_to_Bits2Symbol" value="CP0" /> +<TGConnectingPoint num="0" id="5825" /> +<TGConnectingPoint num="1" id="5826" /> +<TGConnectingPoint num="2" id="5827" /> +<TGConnectingPoint num="3" id="5828" /> +<TGConnectingPoint num="4" id="5829" /> +<TGConnectingPoint num="5" id="5830" /> +<TGConnectingPoint num="6" id="5831" /> +<TGConnectingPoint num="7" id="5832" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" /> +<attributes reference="CP_Memory_Copy" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="CPU_Controller" architectureUnit="MainCPU" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Dst_Storage_Instance" architectureUnit="MAPPER_MSS" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Src_Storage_Instance" architectureUnit="MainMemory" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappedAttributes type="int" name="counter" value="8" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="5824" > +<father id="5833" num="0" /> +<cdparam x="157" y="1179" /> +<sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" /> +<infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" /> +<TGConnectingPoint num="0" id="5816" /> +<TGConnectingPoint num="1" id="5817" /> +<TGConnectingPoint num="2" id="5818" /> +<TGConnectingPoint num="3" id="5819" /> +<TGConnectingPoint num="4" id="5820" /> +<TGConnectingPoint num="5" id="5821" /> +<TGConnectingPoint num="6" id="5822" /> +<TGConnectingPoint num="7" id="5823" /> +<extraparam> +<info value="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="MAPPER_MSS" bufferType="1" numSamplesDataIn="1" baseAddressDataIn="0x2" bitsPerSymbolDataIn="3" symmetricalValueDataIn="OFF" baseAddressDataOut="0x4" baseAddressLUT="0x5" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="125" id="5834" > +<cdparam x="1367" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1367" y="660" id="5295" /> +<P2 x="1199" y="643" id="5321" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5835" > +<cdparam x="1147" y="508" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="508" id="5481" /> +<P2 x="1199" y="618" id="5319" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5836" > +<cdparam x="1298" y="875" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1216" y="748" id="5629" /> +<P2 x="1199" y="668" id="5324" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5837" > +<cdparam x="1019" y="805" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="780" id="5654" /> +<P2 x="987" y="668" id="5332" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5838" > +<cdparam x="1004" y="531" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="566" id="5584" /> +<P2 x="987" y="618" id="5326" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5839" > +<cdparam x="1185" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1467" y="660" id="5296" /> +<P2 x="1527" y="660" id="5270" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5840" > +<cdparam x="356" y="788" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="788" id="5348" /> +<P2 x="356" y="832" id="5427" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5841" > +<cdparam x="554" y="806" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="807" id="5011" /> +<P2 x="565" y="668" id="5331" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5842" > +<cdparam x="559" y="863" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="857" id="5014" /> +<P2 x="481" y="857" id="5430" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5843" > +<cdparam x="586" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="541" y="949" id="5368" /> +<P2 x="418" y="882" id="5441" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5844" > +<cdparam x="165" y="927" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="208" y="938" id="5402" /> +<P2 x="293" y="882" id="5440" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5845" > +<cdparam x="355" y="576" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="580" id="5126" /> +<P2 x="354" y="618" id="5317" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5846" > +<cdparam x="355" y="541" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="545" id="5121" /> +<P2 x="356" y="497" id="5457" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5847" > +<cdparam x="543" y="522" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="522" id="5041" /> +<P2 x="565" y="618" id="5325" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5848" > +<cdparam x="536" y="475" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="472" id="5039" /> +<P2 x="481" y="472" id="5455" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5849" > +<cdparam x="549" y="337" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="477" y="377" id="5067" /> +<P2 x="418" y="447" id="5460" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5850" > +<cdparam x="155" y="323" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="216" y="382" id="5101" /> +<P2 x="293" y="447" id="5459" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5851" > +<cdparam x="357" y="778" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="737" id="5343" /> +<P2 x="354" y="668" id="5322" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5852" > +<cdparam x="1654" y="758" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="737" id="5146" /> +<P2 x="1652" y="685" id="5273" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5853" > +<cdparam x="1651" y="573" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="586" id="5248" /> +<P2 x="1652" y="635" id="5268" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5854" > +<cdparam x="959" y="527" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="531" id="5579" /> +<P2 x="960" y="483" id="5609" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5855" > +<cdparam x="1140" y="461" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="458" id="5479" /> +<P2 x="1085" y="458" id="5607" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5856" > +<cdparam x="1189" y="374" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1118" y="370" id="5507" /> +<P2 x="1022" y="433" id="5612" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5857" > +<cdparam x="795" y="360" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="799" y="378" id="5559" /> +<P2 x="897" y="433" id="5611" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5858" > +<cdparam x="970" y="831" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="831" id="5659" /> +<P2 x="970" y="875" id="5738" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5859" > +<cdparam x="1173" y="906" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1141" y="798" id="5631" /> +<P2 x="1095" y="900" id="5741" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5860" > +<cdparam x="1200" y="1013" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1200" y="978" id="5679" /> +<P2 x="1032" y="925" id="5752" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="5861" > +<cdparam x="779" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="856" y="981" id="5713" /> +<P2 x="907" y="925" id="5751" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Mapping_1" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="200" > +<COMPONENT type="1100" id="5886" > +<cdparam x="560" y="807" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_DMA" value="name" /> +<TGConnectingPoint num="0" id="5862" /> +<TGConnectingPoint num="1" id="5863" /> +<TGConnectingPoint num="2" id="5864" /> +<TGConnectingPoint num="3" id="5865" /> +<TGConnectingPoint num="4" id="5866" /> +<TGConnectingPoint num="5" id="5867" /> +<TGConnectingPoint num="6" id="5868" /> +<TGConnectingPoint num="7" id="5869" /> +<TGConnectingPoint num="8" id="5870" /> +<TGConnectingPoint num="9" id="5871" /> +<TGConnectingPoint num="10" id="5872" /> +<TGConnectingPoint num="11" id="5873" /> +<TGConnectingPoint num="12" id="5874" /> +<TGConnectingPoint num="13" id="5875" /> +<TGConnectingPoint num="14" id="5876" /> +<TGConnectingPoint num="15" id="5877" /> +<TGConnectingPoint num="16" id="5878" /> +<TGConnectingPoint num="17" id="5879" /> +<TGConnectingPoint num="18" id="5880" /> +<TGConnectingPoint num="19" id="5881" /> +<TGConnectingPoint num="20" id="5882" /> +<TGConnectingPoint num="21" id="5883" /> +<TGConnectingPoint num="22" id="5884" /> +<TGConnectingPoint num="23" id="5885" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5911" > +<cdparam x="543" y="422" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_DMA" value="name" /> +<TGConnectingPoint num="0" id="5887" /> +<TGConnectingPoint num="1" id="5888" /> +<TGConnectingPoint num="2" id="5889" /> +<TGConnectingPoint num="3" id="5890" /> +<TGConnectingPoint num="4" id="5891" /> +<TGConnectingPoint num="5" id="5892" /> +<TGConnectingPoint num="6" id="5893" /> +<TGConnectingPoint num="7" id="5894" /> +<TGConnectingPoint num="8" id="5895" /> +<TGConnectingPoint num="9" id="5896" /> +<TGConnectingPoint num="10" id="5897" /> +<TGConnectingPoint num="11" id="5898" /> +<TGConnectingPoint num="12" id="5899" /> +<TGConnectingPoint num="13" id="5900" /> +<TGConnectingPoint num="14" id="5901" /> +<TGConnectingPoint num="15" id="5902" /> +<TGConnectingPoint num="16" id="5903" /> +<TGConnectingPoint num="17" id="5904" /> +<TGConnectingPoint num="18" id="5905" /> +<TGConnectingPoint num="19" id="5906" /> +<TGConnectingPoint num="20" id="5907" /> +<TGConnectingPoint num="21" id="5908" /> +<TGConnectingPoint num="22" id="5909" /> +<TGConnectingPoint num="23" id="5910" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="5936" > +<cdparam x="354" y="243" /> +<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_MSS" value="name" /> +<TGConnectingPoint num="0" id="5912" /> +<TGConnectingPoint num="1" id="5913" /> +<TGConnectingPoint num="2" id="5914" /> +<TGConnectingPoint num="3" id="5915" /> +<TGConnectingPoint num="4" id="5916" /> +<TGConnectingPoint num="5" id="5917" /> +<TGConnectingPoint num="6" id="5918" /> +<TGConnectingPoint num="7" id="5919" /> +<TGConnectingPoint num="8" id="5920" /> +<TGConnectingPoint num="9" id="5921" /> +<TGConnectingPoint num="10" id="5922" /> +<TGConnectingPoint num="11" id="5923" /> +<TGConnectingPoint num="12" id="5924" /> +<TGConnectingPoint num="13" id="5925" /> +<TGConnectingPoint num="14" id="5926" /> +<TGConnectingPoint num="15" id="5927" /> +<TGConnectingPoint num="16" id="5928" /> +<TGConnectingPoint num="17" id="5929" /> +<TGConnectingPoint num="18" id="5930" /> +<TGConnectingPoint num="19" id="5931" /> +<TGConnectingPoint num="20" id="5932" /> +<TGConnectingPoint num="21" id="5933" /> +<TGConnectingPoint num="22" id="5934" /> +<TGConnectingPoint num="23" id="5935" /> +<extraparam> +<info stereotype="MEMORY" nodeName="ADAIF_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="2" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="5970" > +<cdparam x="29" y="215" /> +<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_PSS" value="name" /> +<TGConnectingPoint num="0" id="5946" /> +<TGConnectingPoint num="1" id="5947" /> +<TGConnectingPoint num="2" id="5948" /> +<TGConnectingPoint num="3" id="5949" /> +<TGConnectingPoint num="4" id="5950" /> +<TGConnectingPoint num="5" id="5951" /> +<TGConnectingPoint num="6" id="5952" /> +<TGConnectingPoint num="7" id="5953" /> +<TGConnectingPoint num="8" id="5954" /> +<TGConnectingPoint num="9" id="5955" /> +<TGConnectingPoint num="10" id="5956" /> +<TGConnectingPoint num="11" id="5957" /> +<TGConnectingPoint num="12" id="5958" /> +<TGConnectingPoint num="13" id="5959" /> +<TGConnectingPoint num="14" id="5960" /> +<TGConnectingPoint num="15" id="5961" /> +<TGConnectingPoint num="16" id="5962" /> +<TGConnectingPoint num="17" id="5963" /> +<TGConnectingPoint num="18" id="5964" /> +<TGConnectingPoint num="19" id="5965" /> +<TGConnectingPoint num="20" id="5966" /> +<TGConnectingPoint num="21" id="5967" /> +<TGConnectingPoint num="22" id="5968" /> +<TGConnectingPoint num="23" id="5969" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_PSS" /> +<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" MECType="4" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="5945" > +<father id="5970" num="0" /> +<cdparam x="48" y="315" /> +<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Sink" /> +<TGConnectingPoint num="0" id="5937" /> +<TGConnectingPoint num="1" id="5938" /> +<TGConnectingPoint num="2" id="5939" /> +<TGConnectingPoint num="3" id="5940" /> +<TGConnectingPoint num="4" id="5941" /> +<TGConnectingPoint num="5" id="5942" /> +<TGConnectingPoint num="6" id="5943" /> +<TGConnectingPoint num="7" id="5944" /> +<extraparam> +<info value="Zigbee_TX::X_Sink" taskName="X_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="Adaif operation" fatherComponentMECType="4" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1106" id="5995" > +<cdparam x="306" y="545" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bridge" value="name" /> +<TGConnectingPoint num="0" id="5971" /> +<TGConnectingPoint num="1" id="5972" /> +<TGConnectingPoint num="2" id="5973" /> +<TGConnectingPoint num="3" id="5974" /> +<TGConnectingPoint num="4" id="5975" /> +<TGConnectingPoint num="5" id="5976" /> +<TGConnectingPoint num="6" id="5977" /> +<TGConnectingPoint num="7" id="5978" /> +<TGConnectingPoint num="8" id="5979" /> +<TGConnectingPoint num="9" id="5980" /> +<TGConnectingPoint num="10" id="5981" /> +<TGConnectingPoint num="11" id="5982" /> +<TGConnectingPoint num="12" id="5983" /> +<TGConnectingPoint num="13" id="5984" /> +<TGConnectingPoint num="14" id="5985" /> +<TGConnectingPoint num="15" id="5986" /> +<TGConnectingPoint num="16" id="5987" /> +<TGConnectingPoint num="17" id="5988" /> +<TGConnectingPoint num="18" id="5989" /> +<TGConnectingPoint num="19" id="5990" /> +<TGConnectingPoint num="20" id="5991" /> +<TGConnectingPoint num="21" id="5992" /> +<TGConnectingPoint num="22" id="5993" /> +<TGConnectingPoint num="23" id="5994" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="6020" > +<cdparam x="1544" y="737" /> +<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainMemory" value="name" /> +<TGConnectingPoint num="0" id="5996" /> +<TGConnectingPoint num="1" id="5997" /> +<TGConnectingPoint num="2" id="5998" /> +<TGConnectingPoint num="3" id="5999" /> +<TGConnectingPoint num="4" id="6000" /> +<TGConnectingPoint num="5" id="6001" /> +<TGConnectingPoint num="6" id="6002" /> +<TGConnectingPoint num="7" id="6003" /> +<TGConnectingPoint num="8" id="6004" /> +<TGConnectingPoint num="9" id="6005" /> +<TGConnectingPoint num="10" id="6006" /> +<TGConnectingPoint num="11" id="6007" /> +<TGConnectingPoint num="12" id="6008" /> +<TGConnectingPoint num="13" id="6009" /> +<TGConnectingPoint num="14" id="6010" /> +<TGConnectingPoint num="15" id="6011" /> +<TGConnectingPoint num="16" id="6012" /> +<TGConnectingPoint num="17" id="6013" /> +<TGConnectingPoint num="18" id="6014" /> +<TGConnectingPoint num="19" id="6015" /> +<TGConnectingPoint num="20" id="6016" /> +<TGConnectingPoint num="21" id="6017" /> +<TGConnectingPoint num="22" id="6018" /> +<TGConnectingPoint num="23" id="6019" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MainMemory" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="4" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6117" > +<cdparam x="1444" y="293" /> +<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainCPU" value="name" /> +<TGConnectingPoint num="0" id="6093" /> +<TGConnectingPoint num="1" id="6094" /> +<TGConnectingPoint num="2" id="6095" /> +<TGConnectingPoint num="3" id="6096" /> +<TGConnectingPoint num="4" id="6097" /> +<TGConnectingPoint num="5" id="6098" /> +<TGConnectingPoint num="6" id="6099" /> +<TGConnectingPoint num="7" id="6100" /> +<TGConnectingPoint num="8" id="6101" /> +<TGConnectingPoint num="9" id="6102" /> +<TGConnectingPoint num="10" id="6103" /> +<TGConnectingPoint num="11" id="6104" /> +<TGConnectingPoint num="12" id="6105" /> +<TGConnectingPoint num="13" id="6106" /> +<TGConnectingPoint num="14" id="6107" /> +<TGConnectingPoint num="15" id="6108" /> +<TGConnectingPoint num="16" id="6109" /> +<TGConnectingPoint num="17" id="6110" /> +<TGConnectingPoint num="18" id="6111" /> +<TGConnectingPoint num="19" id="6112" /> +<TGConnectingPoint num="20" id="6113" /> +<TGConnectingPoint num="21" id="6114" /> +<TGConnectingPoint num="22" id="6115" /> +<TGConnectingPoint num="23" id="6116" /> +<extraparam> +<info stereotype="CPURR" nodeName="MainCPU" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="6029" > +<father id="6117" num="0" /> +<cdparam x="1465" y="339" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Source" /> +<TGConnectingPoint num="0" id="6021" /> +<TGConnectingPoint num="1" id="6022" /> +<TGConnectingPoint num="2" id="6023" /> +<TGConnectingPoint num="3" id="6024" /> +<TGConnectingPoint num="4" id="6025" /> +<TGConnectingPoint num="5" id="6026" /> +<TGConnectingPoint num="6" id="6027" /> +<TGConnectingPoint num="7" id="6028" /> +<extraparam> +<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6038" > +<father id="6117" num="1" /> +<cdparam x="1466" y="395" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Source" /> +<TGConnectingPoint num="0" id="6030" /> +<TGConnectingPoint num="1" id="6031" /> +<TGConnectingPoint num="2" id="6032" /> +<TGConnectingPoint num="3" id="6033" /> +<TGConnectingPoint num="4" id="6034" /> +<TGConnectingPoint num="5" id="6035" /> +<TGConnectingPoint num="6" id="6036" /> +<TGConnectingPoint num="7" id="6037" /> +<extraparam> +<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6047" > +<father id="6117" num="2" /> +<cdparam x="1466" y="456" /> +<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="6039" /> +<TGConnectingPoint num="1" id="6040" /> +<TGConnectingPoint num="2" id="6041" /> +<TGConnectingPoint num="3" id="6042" /> +<TGConnectingPoint num="4" id="6043" /> +<TGConnectingPoint num="5" id="6044" /> +<TGConnectingPoint num="6" id="6045" /> +<TGConnectingPoint num="7" id="6046" /> +<extraparam> +<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6056" > +<father id="6117" num="3" /> +<cdparam x="1466" y="518" /> +<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" /> +<TGConnectingPoint num="0" id="6048" /> +<TGConnectingPoint num="1" id="6049" /> +<TGConnectingPoint num="2" id="6050" /> +<TGConnectingPoint num="3" id="6051" /> +<TGConnectingPoint num="4" id="6052" /> +<TGConnectingPoint num="5" id="6053" /> +<TGConnectingPoint num="6" id="6054" /> +<TGConnectingPoint num="7" id="6055" /> +<extraparam> +<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip2Octet" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6065" > +<father id="6117" num="4" /> +<cdparam x="1688" y="405" /> +<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" /> +<TGConnectingPoint num="0" id="6057" /> +<TGConnectingPoint num="1" id="6058" /> +<TGConnectingPoint num="2" id="6059" /> +<TGConnectingPoint num="3" id="6060" /> +<TGConnectingPoint num="4" id="6061" /> +<TGConnectingPoint num="5" id="6062" /> +<TGConnectingPoint num="6" id="6063" /> +<TGConnectingPoint num="7" id="6064" /> +<extraparam> +<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6074" > +<father id="6117" num="5" /> +<cdparam x="1691" y="345" /> +<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" /> +<TGConnectingPoint num="0" id="6066" /> +<TGConnectingPoint num="1" id="6067" /> +<TGConnectingPoint num="2" id="6068" /> +<TGConnectingPoint num="3" id="6069" /> +<TGConnectingPoint num="4" id="6070" /> +<TGConnectingPoint num="5" id="6071" /> +<TGConnectingPoint num="6" id="6072" /> +<TGConnectingPoint num="7" id="6073" /> +<extraparam> +<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6083" > +<father id="6117" num="6" /> +<cdparam x="1696" y="456" /> +<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" /> +<TGConnectingPoint num="0" id="6075" /> +<TGConnectingPoint num="1" id="6076" /> +<TGConnectingPoint num="2" id="6077" /> +<TGConnectingPoint num="3" id="6078" /> +<TGConnectingPoint num="4" id="6079" /> +<TGConnectingPoint num="5" id="6080" /> +<TGConnectingPoint num="6" id="6081" /> +<TGConnectingPoint num="7" id="6082" /> +<extraparam> +<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6092" > +<father id="6117" num="7" /> +<cdparam x="1686" y="522" /> +<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" /> +<TGConnectingPoint num="0" id="6084" /> +<TGConnectingPoint num="1" id="6085" /> +<TGConnectingPoint num="2" id="6086" /> +<TGConnectingPoint num="3" id="6087" /> +<TGConnectingPoint num="4" id="6088" /> +<TGConnectingPoint num="5" id="6089" /> +<TGConnectingPoint num="6" id="6090" /> +<TGConnectingPoint num="7" id="6091" /> +<extraparam> +<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="6142" > +<cdparam x="1527" y="635" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBus" value="name" /> +<TGConnectingPoint num="0" id="6118" /> +<TGConnectingPoint num="1" id="6119" /> +<TGConnectingPoint num="2" id="6120" /> +<TGConnectingPoint num="3" id="6121" /> +<TGConnectingPoint num="4" id="6122" /> +<TGConnectingPoint num="5" id="6123" /> +<TGConnectingPoint num="6" id="6124" /> +<TGConnectingPoint num="7" id="6125" /> +<TGConnectingPoint num="8" id="6126" /> +<TGConnectingPoint num="9" id="6127" /> +<TGConnectingPoint num="10" id="6128" /> +<TGConnectingPoint num="11" id="6129" /> +<TGConnectingPoint num="12" id="6130" /> +<TGConnectingPoint num="13" id="6131" /> +<TGConnectingPoint num="14" id="6132" /> +<TGConnectingPoint num="15" id="6133" /> +<TGConnectingPoint num="16" id="6134" /> +<TGConnectingPoint num="17" id="6135" /> +<TGConnectingPoint num="18" id="6136" /> +<TGConnectingPoint num="19" id="6137" /> +<TGConnectingPoint num="20" id="6138" /> +<TGConnectingPoint num="21" id="6139" /> +<TGConnectingPoint num="22" id="6140" /> +<TGConnectingPoint num="23" id="6141" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MainBus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="6167" > +<cdparam x="1367" y="610" /> +<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBridge" value="name" /> +<TGConnectingPoint num="0" id="6143" /> +<TGConnectingPoint num="1" id="6144" /> +<TGConnectingPoint num="2" id="6145" /> +<TGConnectingPoint num="3" id="6146" /> +<TGConnectingPoint num="4" id="6147" /> +<TGConnectingPoint num="5" id="6148" /> +<TGConnectingPoint num="6" id="6149" /> +<TGConnectingPoint num="7" id="6150" /> +<TGConnectingPoint num="8" id="6151" /> +<TGConnectingPoint num="9" id="6152" /> +<TGConnectingPoint num="10" id="6153" /> +<TGConnectingPoint num="11" id="6154" /> +<TGConnectingPoint num="12" id="6155" /> +<TGConnectingPoint num="13" id="6156" /> +<TGConnectingPoint num="14" id="6157" /> +<TGConnectingPoint num="15" id="6158" /> +<TGConnectingPoint num="16" id="6159" /> +<TGConnectingPoint num="17" id="6160" /> +<TGConnectingPoint num="18" id="6161" /> +<TGConnectingPoint num="19" id="6162" /> +<TGConnectingPoint num="20" id="6163" /> +<TGConnectingPoint num="21" id="6164" /> +<TGConnectingPoint num="22" id="6165" /> +<TGConnectingPoint num="23" id="6166" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MainBridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="6192" > +<cdparam x="231" y="635" /> +<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="Crossbar" value="name" /> +<TGConnectingPoint num="0" id="6168" /> +<TGConnectingPoint num="1" id="6169" /> +<TGConnectingPoint num="2" id="6170" /> +<TGConnectingPoint num="3" id="6171" /> +<TGConnectingPoint num="4" id="6172" /> +<TGConnectingPoint num="5" id="6173" /> +<TGConnectingPoint num="6" id="6174" /> +<TGConnectingPoint num="7" id="6175" /> +<TGConnectingPoint num="8" id="6176" /> +<TGConnectingPoint num="9" id="6177" /> +<TGConnectingPoint num="10" id="6178" /> +<TGConnectingPoint num="11" id="6179" /> +<TGConnectingPoint num="12" id="6180" /> +<TGConnectingPoint num="13" id="6181" /> +<TGConnectingPoint num="14" id="6182" /> +<TGConnectingPoint num="15" id="6183" /> +<TGConnectingPoint num="16" id="6184" /> +<TGConnectingPoint num="17" id="6185" /> +<TGConnectingPoint num="18" id="6186" /> +<TGConnectingPoint num="19" id="6187" /> +<TGConnectingPoint num="20" id="6188" /> +<TGConnectingPoint num="21" id="6189" /> +<TGConnectingPoint num="22" id="6190" /> +<TGConnectingPoint num="23" id="6191" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="Crossbar" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="6217" > +<cdparam x="306" y="737" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bridge" value="name" /> +<TGConnectingPoint num="0" id="6193" /> +<TGConnectingPoint num="1" id="6194" /> +<TGConnectingPoint num="2" id="6195" /> +<TGConnectingPoint num="3" id="6196" /> +<TGConnectingPoint num="4" id="6197" /> +<TGConnectingPoint num="5" id="6198" /> +<TGConnectingPoint num="6" id="6199" /> +<TGConnectingPoint num="7" id="6200" /> +<TGConnectingPoint num="8" id="6201" /> +<TGConnectingPoint num="9" id="6202" /> +<TGConnectingPoint num="10" id="6203" /> +<TGConnectingPoint num="11" id="6204" /> +<TGConnectingPoint num="12" id="6205" /> +<TGConnectingPoint num="13" id="6206" /> +<TGConnectingPoint num="14" id="6207" /> +<TGConnectingPoint num="15" id="6208" /> +<TGConnectingPoint num="16" id="6209" /> +<TGConnectingPoint num="17" id="6210" /> +<TGConnectingPoint num="18" id="6211" /> +<TGConnectingPoint num="19" id="6212" /> +<TGConnectingPoint num="20" id="6213" /> +<TGConnectingPoint num="21" id="6214" /> +<TGConnectingPoint num="22" id="6215" /> +<TGConnectingPoint num="23" id="6216" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="INTL_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="6242" > +<cdparam x="376" y="949" /> +<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_MSS" value="name" /> +<TGConnectingPoint num="0" id="6218" /> +<TGConnectingPoint num="1" id="6219" /> +<TGConnectingPoint num="2" id="6220" /> +<TGConnectingPoint num="3" id="6221" /> +<TGConnectingPoint num="4" id="6222" /> +<TGConnectingPoint num="5" id="6223" /> +<TGConnectingPoint num="6" id="6224" /> +<TGConnectingPoint num="7" id="6225" /> +<TGConnectingPoint num="8" id="6226" /> +<TGConnectingPoint num="9" id="6227" /> +<TGConnectingPoint num="10" id="6228" /> +<TGConnectingPoint num="11" id="6229" /> +<TGConnectingPoint num="12" id="6230" /> +<TGConnectingPoint num="13" id="6231" /> +<TGConnectingPoint num="14" id="6232" /> +<TGConnectingPoint num="15" id="6233" /> +<TGConnectingPoint num="16" id="6234" /> +<TGConnectingPoint num="17" id="6235" /> +<TGConnectingPoint num="18" id="6236" /> +<TGConnectingPoint num="19" id="6237" /> +<TGConnectingPoint num="20" id="6238" /> +<TGConnectingPoint num="21" id="6239" /> +<TGConnectingPoint num="22" id="6240" /> +<TGConnectingPoint num="23" id="6241" /> +<extraparam> +<info stereotype="MEMORY" nodeName="INTL_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6276" > +<cdparam x="91" y="938" /> +<sizeparam width="234" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_PSS" value="name" /> +<TGConnectingPoint num="0" id="6252" /> +<TGConnectingPoint num="1" id="6253" /> +<TGConnectingPoint num="2" id="6254" /> +<TGConnectingPoint num="3" id="6255" /> +<TGConnectingPoint num="4" id="6256" /> +<TGConnectingPoint num="5" id="6257" /> +<TGConnectingPoint num="6" id="6258" /> +<TGConnectingPoint num="7" id="6259" /> +<TGConnectingPoint num="8" id="6260" /> +<TGConnectingPoint num="9" id="6261" /> +<TGConnectingPoint num="10" id="6262" /> +<TGConnectingPoint num="11" id="6263" /> +<TGConnectingPoint num="12" id="6264" /> +<TGConnectingPoint num="13" id="6265" /> +<TGConnectingPoint num="14" id="6266" /> +<TGConnectingPoint num="15" id="6267" /> +<TGConnectingPoint num="16" id="6268" /> +<TGConnectingPoint num="17" id="6269" /> +<TGConnectingPoint num="18" id="6270" /> +<TGConnectingPoint num="19" id="6271" /> +<TGConnectingPoint num="20" id="6272" /> +<TGConnectingPoint num="21" id="6273" /> +<TGConnectingPoint num="22" id="6274" /> +<TGConnectingPoint num="23" id="6275" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_PSS" /> +<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" MECType="2" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="6251" > +<father id="6276" num="0" /> +<cdparam x="105" y="993" /> +<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" /> +<TGConnectingPoint num="0" id="6243" /> +<TGConnectingPoint num="1" id="6244" /> +<TGConnectingPoint num="2" id="6245" /> +<TGConnectingPoint num="3" id="6246" /> +<TGConnectingPoint num="4" id="6247" /> +<TGConnectingPoint num="5" id="6248" /> +<TGConnectingPoint num="6" id="6249" /> +<TGConnectingPoint num="7" id="6250" /> +<extraparam> +<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="Interleaver operation" fatherComponentMECType="2" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="6301" > +<cdparam x="231" y="832" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bus" value="name" /> +<TGConnectingPoint num="0" id="6277" /> +<TGConnectingPoint num="1" id="6278" /> +<TGConnectingPoint num="2" id="6279" /> +<TGConnectingPoint num="3" id="6280" /> +<TGConnectingPoint num="4" id="6281" /> +<TGConnectingPoint num="5" id="6282" /> +<TGConnectingPoint num="6" id="6283" /> +<TGConnectingPoint num="7" id="6284" /> +<TGConnectingPoint num="8" id="6285" /> +<TGConnectingPoint num="9" id="6286" /> +<TGConnectingPoint num="10" id="6287" /> +<TGConnectingPoint num="11" id="6288" /> +<TGConnectingPoint num="12" id="6289" /> +<TGConnectingPoint num="13" id="6290" /> +<TGConnectingPoint num="14" id="6291" /> +<TGConnectingPoint num="15" id="6292" /> +<TGConnectingPoint num="16" id="6293" /> +<TGConnectingPoint num="17" id="6294" /> +<TGConnectingPoint num="18" id="6295" /> +<TGConnectingPoint num="19" id="6296" /> +<TGConnectingPoint num="20" id="6297" /> +<TGConnectingPoint num="21" id="6298" /> +<TGConnectingPoint num="22" id="6299" /> +<TGConnectingPoint num="23" id="6300" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="INTL_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="6326" > +<cdparam x="231" y="447" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bus" value="name" /> +<TGConnectingPoint num="0" id="6302" /> +<TGConnectingPoint num="1" id="6303" /> +<TGConnectingPoint num="2" id="6304" /> +<TGConnectingPoint num="3" id="6305" /> +<TGConnectingPoint num="4" id="6306" /> +<TGConnectingPoint num="5" id="6307" /> +<TGConnectingPoint num="6" id="6308" /> +<TGConnectingPoint num="7" id="6309" /> +<TGConnectingPoint num="8" id="6310" /> +<TGConnectingPoint num="9" id="6311" /> +<TGConnectingPoint num="10" id="6312" /> +<TGConnectingPoint num="11" id="6313" /> +<TGConnectingPoint num="12" id="6314" /> +<TGConnectingPoint num="13" id="6315" /> +<TGConnectingPoint num="14" id="6316" /> +<TGConnectingPoint num="15" id="6317" /> +<TGConnectingPoint num="16" id="6318" /> +<TGConnectingPoint num="17" id="6319" /> +<TGConnectingPoint num="18" id="6320" /> +<TGConnectingPoint num="19" id="6321" /> +<TGConnectingPoint num="20" id="6322" /> +<TGConnectingPoint num="21" id="6323" /> +<TGConnectingPoint num="22" id="6324" /> +<TGConnectingPoint num="23" id="6325" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="ADAIF_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6351" > +<cdparam x="1147" y="408" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_DMA" value="name" /> +<TGConnectingPoint num="0" id="6327" /> +<TGConnectingPoint num="1" id="6328" /> +<TGConnectingPoint num="2" id="6329" /> +<TGConnectingPoint num="3" id="6330" /> +<TGConnectingPoint num="4" id="6331" /> +<TGConnectingPoint num="5" id="6332" /> +<TGConnectingPoint num="6" id="6333" /> +<TGConnectingPoint num="7" id="6334" /> +<TGConnectingPoint num="8" id="6335" /> +<TGConnectingPoint num="9" id="6336" /> +<TGConnectingPoint num="10" id="6337" /> +<TGConnectingPoint num="11" id="6338" /> +<TGConnectingPoint num="12" id="6339" /> +<TGConnectingPoint num="13" id="6340" /> +<TGConnectingPoint num="14" id="6341" /> +<TGConnectingPoint num="15" id="6342" /> +<TGConnectingPoint num="16" id="6343" /> +<TGConnectingPoint num="17" id="6344" /> +<TGConnectingPoint num="18" id="6345" /> +<TGConnectingPoint num="19" id="6346" /> +<TGConnectingPoint num="20" id="6347" /> +<TGConnectingPoint num="21" id="6348" /> +<TGConnectingPoint num="22" id="6349" /> +<TGConnectingPoint num="23" id="6350" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="6376" > +<cdparam x="895" y="193" /> +<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_MSS" value="name" /> +<TGConnectingPoint num="0" id="6352" /> +<TGConnectingPoint num="1" id="6353" /> +<TGConnectingPoint num="2" id="6354" /> +<TGConnectingPoint num="3" id="6355" /> +<TGConnectingPoint num="4" id="6356" /> +<TGConnectingPoint num="5" id="6357" /> +<TGConnectingPoint num="6" id="6358" /> +<TGConnectingPoint num="7" id="6359" /> +<TGConnectingPoint num="8" id="6360" /> +<TGConnectingPoint num="9" id="6361" /> +<TGConnectingPoint num="10" id="6362" /> +<TGConnectingPoint num="11" id="6363" /> +<TGConnectingPoint num="12" id="6364" /> +<TGConnectingPoint num="13" id="6365" /> +<TGConnectingPoint num="14" id="6366" /> +<TGConnectingPoint num="15" id="6367" /> +<TGConnectingPoint num="16" id="6368" /> +<TGConnectingPoint num="17" id="6369" /> +<TGConnectingPoint num="18" id="6370" /> +<TGConnectingPoint num="19" id="6371" /> +<TGConnectingPoint num="20" id="6372" /> +<TGConnectingPoint num="21" id="6373" /> +<TGConnectingPoint num="22" id="6374" /> +<TGConnectingPoint num="23" id="6375" /> +<extraparam> +<info stereotype="MEMORY" nodeName="FEP_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6428" > +<cdparam x="619" y="199" /> +<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_PSS" value="name" /> +<TGConnectingPoint num="0" id="6404" /> +<TGConnectingPoint num="1" id="6405" /> +<TGConnectingPoint num="2" id="6406" /> +<TGConnectingPoint num="3" id="6407" /> +<TGConnectingPoint num="4" id="6408" /> +<TGConnectingPoint num="5" id="6409" /> +<TGConnectingPoint num="6" id="6410" /> +<TGConnectingPoint num="7" id="6411" /> +<TGConnectingPoint num="8" id="6412" /> +<TGConnectingPoint num="9" id="6413" /> +<TGConnectingPoint num="10" id="6414" /> +<TGConnectingPoint num="11" id="6415" /> +<TGConnectingPoint num="12" id="6416" /> +<TGConnectingPoint num="13" id="6417" /> +<TGConnectingPoint num="14" id="6418" /> +<TGConnectingPoint num="15" id="6419" /> +<TGConnectingPoint num="16" id="6420" /> +<TGConnectingPoint num="17" id="6421" /> +<TGConnectingPoint num="18" id="6422" /> +<TGConnectingPoint num="19" id="6423" /> +<TGConnectingPoint num="20" id="6424" /> +<TGConnectingPoint num="21" id="6425" /> +<TGConnectingPoint num="22" id="6426" /> +<TGConnectingPoint num="23" id="6427" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_PSS" /> +<attributes nbOfCores="1" byteDataSize="4" schedulingPolicy="0" sliceTime="10000" goIdleTime="10" maxConsecutiveIdleCycles="10" pipelineSize="5" taskSwitchingTime="20" branchingPredictionPenalty="2" cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="6385" > +<father id="6428" num="0" /> +<cdparam x="671" y="289" /> +<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" /> +<TGConnectingPoint num="0" id="6377" /> +<TGConnectingPoint num="1" id="6378" /> +<TGConnectingPoint num="2" id="6379" /> +<TGConnectingPoint num="3" id="6380" /> +<TGConnectingPoint num="4" id="6381" /> +<TGConnectingPoint num="5" id="6382" /> +<TGConnectingPoint num="6" id="6383" /> +<TGConnectingPoint num="7" id="6384" /> +<extraparam> +<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6394" > +<father id="6428" num="1" /> +<cdparam x="640" y="335" /> +<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" /> +<TGConnectingPoint num="0" id="6386" /> +<TGConnectingPoint num="1" id="6387" /> +<TGConnectingPoint num="2" id="6388" /> +<TGConnectingPoint num="3" id="6389" /> +<TGConnectingPoint num="4" id="6390" /> +<TGConnectingPoint num="5" id="6391" /> +<TGConnectingPoint num="6" id="6392" /> +<TGConnectingPoint num="7" id="6393" /> +<extraparam> +<info value="Zigbee_TX::X_CWP_Q" taskName="X_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6403" > +<father id="6428" num="2" /> +<cdparam x="639" y="239" /> +<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" /> +<TGConnectingPoint num="0" id="6395" /> +<TGConnectingPoint num="1" id="6396" /> +<TGConnectingPoint num="2" id="6397" /> +<TGConnectingPoint num="3" id="6398" /> +<TGConnectingPoint num="4" id="6399" /> +<TGConnectingPoint num="5" id="6400" /> +<TGConnectingPoint num="6" id="6401" /> +<TGConnectingPoint num="7" id="6402" /> +<extraparam> +<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1106" id="6453" > +<cdparam x="910" y="531" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bridge" value="name" /> +<TGConnectingPoint num="0" id="6429" /> +<TGConnectingPoint num="1" id="6430" /> +<TGConnectingPoint num="2" id="6431" /> +<TGConnectingPoint num="3" id="6432" /> +<TGConnectingPoint num="4" id="6433" /> +<TGConnectingPoint num="5" id="6434" /> +<TGConnectingPoint num="6" id="6435" /> +<TGConnectingPoint num="7" id="6436" /> +<TGConnectingPoint num="8" id="6437" /> +<TGConnectingPoint num="9" id="6438" /> +<TGConnectingPoint num="10" id="6439" /> +<TGConnectingPoint num="11" id="6440" /> +<TGConnectingPoint num="12" id="6441" /> +<TGConnectingPoint num="13" id="6442" /> +<TGConnectingPoint num="14" id="6443" /> +<TGConnectingPoint num="15" id="6444" /> +<TGConnectingPoint num="16" id="6445" /> +<TGConnectingPoint num="17" id="6446" /> +<TGConnectingPoint num="18" id="6447" /> +<TGConnectingPoint num="19" id="6448" /> +<TGConnectingPoint num="20" id="6449" /> +<TGConnectingPoint num="21" id="6450" /> +<TGConnectingPoint num="22" id="6451" /> +<TGConnectingPoint num="23" id="6452" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="FEP_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="6478" > +<cdparam x="835" y="433" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bus" value="name" /> +<TGConnectingPoint num="0" id="6454" /> +<TGConnectingPoint num="1" id="6455" /> +<TGConnectingPoint num="2" id="6456" /> +<TGConnectingPoint num="3" id="6457" /> +<TGConnectingPoint num="4" id="6458" /> +<TGConnectingPoint num="5" id="6459" /> +<TGConnectingPoint num="6" id="6460" /> +<TGConnectingPoint num="7" id="6461" /> +<TGConnectingPoint num="8" id="6462" /> +<TGConnectingPoint num="9" id="6463" /> +<TGConnectingPoint num="10" id="6464" /> +<TGConnectingPoint num="11" id="6465" /> +<TGConnectingPoint num="12" id="6466" /> +<TGConnectingPoint num="13" id="6467" /> +<TGConnectingPoint num="14" id="6468" /> +<TGConnectingPoint num="15" id="6469" /> +<TGConnectingPoint num="16" id="6470" /> +<TGConnectingPoint num="17" id="6471" /> +<TGConnectingPoint num="18" id="6472" /> +<TGConnectingPoint num="19" id="6473" /> +<TGConnectingPoint num="20" id="6474" /> +<TGConnectingPoint num="21" id="6475" /> +<TGConnectingPoint num="22" id="6476" /> +<TGConnectingPoint num="23" id="6477" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="FEP_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6503" > +<cdparam x="1174" y="850" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_DMA" value="name" /> +<TGConnectingPoint num="0" id="6479" /> +<TGConnectingPoint num="1" id="6480" /> +<TGConnectingPoint num="2" id="6481" /> +<TGConnectingPoint num="3" id="6482" /> +<TGConnectingPoint num="4" id="6483" /> +<TGConnectingPoint num="5" id="6484" /> +<TGConnectingPoint num="6" id="6485" /> +<TGConnectingPoint num="7" id="6486" /> +<TGConnectingPoint num="8" id="6487" /> +<TGConnectingPoint num="9" id="6488" /> +<TGConnectingPoint num="10" id="6489" /> +<TGConnectingPoint num="11" id="6490" /> +<TGConnectingPoint num="12" id="6491" /> +<TGConnectingPoint num="13" id="6492" /> +<TGConnectingPoint num="14" id="6493" /> +<TGConnectingPoint num="15" id="6494" /> +<TGConnectingPoint num="16" id="6495" /> +<TGConnectingPoint num="17" id="6496" /> +<TGConnectingPoint num="18" id="6497" /> +<TGConnectingPoint num="19" id="6498" /> +<TGConnectingPoint num="20" id="6499" /> +<TGConnectingPoint num="21" id="6500" /> +<TGConnectingPoint num="22" id="6501" /> +<TGConnectingPoint num="23" id="6502" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="6528" > +<cdparam x="920" y="780" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bridge" value="name" /> +<TGConnectingPoint num="0" id="6504" /> +<TGConnectingPoint num="1" id="6505" /> +<TGConnectingPoint num="2" id="6506" /> +<TGConnectingPoint num="3" id="6507" /> +<TGConnectingPoint num="4" id="6508" /> +<TGConnectingPoint num="5" id="6509" /> +<TGConnectingPoint num="6" id="6510" /> +<TGConnectingPoint num="7" id="6511" /> +<TGConnectingPoint num="8" id="6512" /> +<TGConnectingPoint num="9" id="6513" /> +<TGConnectingPoint num="10" id="6514" /> +<TGConnectingPoint num="11" id="6515" /> +<TGConnectingPoint num="12" id="6516" /> +<TGConnectingPoint num="13" id="6517" /> +<TGConnectingPoint num="14" id="6518" /> +<TGConnectingPoint num="15" id="6519" /> +<TGConnectingPoint num="16" id="6520" /> +<TGConnectingPoint num="17" id="6521" /> +<TGConnectingPoint num="18" id="6522" /> +<TGConnectingPoint num="19" id="6523" /> +<TGConnectingPoint num="20" id="6524" /> +<TGConnectingPoint num="21" id="6525" /> +<TGConnectingPoint num="22" id="6526" /> +<TGConnectingPoint num="23" id="6527" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="6553" > +<cdparam x="1043" y="978" /> +<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_MSS" value="name" /> +<TGConnectingPoint num="0" id="6529" /> +<TGConnectingPoint num="1" id="6530" /> +<TGConnectingPoint num="2" id="6531" /> +<TGConnectingPoint num="3" id="6532" /> +<TGConnectingPoint num="4" id="6533" /> +<TGConnectingPoint num="5" id="6534" /> +<TGConnectingPoint num="6" id="6535" /> +<TGConnectingPoint num="7" id="6536" /> +<TGConnectingPoint num="8" id="6537" /> +<TGConnectingPoint num="9" id="6538" /> +<TGConnectingPoint num="10" id="6539" /> +<TGConnectingPoint num="11" id="6540" /> +<TGConnectingPoint num="12" id="6541" /> +<TGConnectingPoint num="13" id="6542" /> +<TGConnectingPoint num="14" id="6543" /> +<TGConnectingPoint num="15" id="6544" /> +<TGConnectingPoint num="16" id="6545" /> +<TGConnectingPoint num="17" id="6546" /> +<TGConnectingPoint num="18" id="6547" /> +<TGConnectingPoint num="19" id="6548" /> +<TGConnectingPoint num="20" id="6549" /> +<TGConnectingPoint num="21" id="6550" /> +<TGConnectingPoint num="22" id="6551" /> +<TGConnectingPoint num="23" id="6552" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MAPPER_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6587" > +<cdparam x="743" y="984" /> +<sizeparam width="237" height="159" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_PSS" value="name" /> +<TGConnectingPoint num="0" id="6563" /> +<TGConnectingPoint num="1" id="6564" /> +<TGConnectingPoint num="2" id="6565" /> +<TGConnectingPoint num="3" id="6566" /> +<TGConnectingPoint num="4" id="6567" /> +<TGConnectingPoint num="5" id="6568" /> +<TGConnectingPoint num="6" id="6569" /> +<TGConnectingPoint num="7" id="6570" /> +<TGConnectingPoint num="8" id="6571" /> +<TGConnectingPoint num="9" id="6572" /> +<TGConnectingPoint num="10" id="6573" /> +<TGConnectingPoint num="11" id="6574" /> +<TGConnectingPoint num="12" id="6575" /> +<TGConnectingPoint num="13" id="6576" /> +<TGConnectingPoint num="14" id="6577" /> +<TGConnectingPoint num="15" id="6578" /> +<TGConnectingPoint num="16" id="6579" /> +<TGConnectingPoint num="17" id="6580" /> +<TGConnectingPoint num="18" id="6581" /> +<TGConnectingPoint num="19" id="6582" /> +<TGConnectingPoint num="20" id="6583" /> +<TGConnectingPoint num="21" id="6584" /> +<TGConnectingPoint num="22" id="6585" /> +<TGConnectingPoint num="23" id="6586" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_PSS" /> +<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" MECType="3" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="6562" > +<father id="6587" num="0" /> +<cdparam x="749" y="1029" /> +<sizeparam width="223" height="45" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="14" minY="0" maxY="119" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="6554" /> +<TGConnectingPoint num="1" id="6555" /> +<TGConnectingPoint num="2" id="6556" /> +<TGConnectingPoint num="3" id="6557" /> +<TGConnectingPoint num="4" id="6558" /> +<TGConnectingPoint num="5" id="6559" /> +<TGConnectingPoint num="6" id="6560" /> +<TGConnectingPoint num="7" id="6561" /> +<extraparam> +<info value="Zigbee_TX::X_Symbol2ChipSeq" taskName="X_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="Mapper operation" fatherComponentMECType="3" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="6612" > +<cdparam x="845" y="875" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bus" value="name" /> +<TGConnectingPoint num="0" id="6588" /> +<TGConnectingPoint num="1" id="6589" /> +<TGConnectingPoint num="2" id="6590" /> +<TGConnectingPoint num="3" id="6591" /> +<TGConnectingPoint num="4" id="6592" /> +<TGConnectingPoint num="5" id="6593" /> +<TGConnectingPoint num="6" id="6594" /> +<TGConnectingPoint num="7" id="6595" /> +<TGConnectingPoint num="8" id="6596" /> +<TGConnectingPoint num="9" id="6597" /> +<TGConnectingPoint num="10" id="6598" /> +<TGConnectingPoint num="11" id="6599" /> +<TGConnectingPoint num="12" id="6600" /> +<TGConnectingPoint num="13" id="6601" /> +<TGConnectingPoint num="14" id="6602" /> +<TGConnectingPoint num="15" id="6603" /> +<TGConnectingPoint num="16" id="6604" /> +<TGConnectingPoint num="17" id="6605" /> +<TGConnectingPoint num="18" id="6606" /> +<TGConnectingPoint num="19" id="6607" /> +<TGConnectingPoint num="20" id="6608" /> +<TGConnectingPoint num="21" id="6609" /> +<TGConnectingPoint num="22" id="6610" /> +<TGConnectingPoint num="23" id="6611" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MAPPER_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1108" id="6630" > +<cdparam x="103" y="1267" /> +<sizeparam width="419" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Symbol2ChipSeq_Chips2Octet" value="CP0" /> +<TGConnectingPoint num="0" id="6622" /> +<TGConnectingPoint num="1" id="6623" /> +<TGConnectingPoint num="2" id="6624" /> +<TGConnectingPoint num="3" id="6625" /> +<TGConnectingPoint num="4" id="6626" /> +<TGConnectingPoint num="5" id="6627" /> +<TGConnectingPoint num="6" id="6628" /> +<TGConnectingPoint num="7" id="6629" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="ADAIF_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="ADAIF_Bridge, MainBus, MainBridge, Crossbar, ADAIF_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="ADAIF_Bridge, MainBus, MainBridge, Crossbar, ADAIF_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, INTL_Bridge, INTL_Bus, ADAIF_Bus" /> +<mappedAttributes type="int" name="destinationAddress" value="123" /> +<mappedAttributes type="int" name="sourceAddress" value="123" /> +<mappedAttributes type="int" name="counter" value="123" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="6621" > +<father id="6630" num="0" /> +<cdparam x="292" y="1303" /> +<sizeparam width="212" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" /> +<infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" /> +<TGConnectingPoint num="0" id="6613" /> +<TGConnectingPoint num="1" id="6614" /> +<TGConnectingPoint num="2" id="6615" /> +<TGConnectingPoint num="3" id="6616" /> +<TGConnectingPoint num="4" id="6617" /> +<TGConnectingPoint num="5" id="6618" /> +<TGConnectingPoint num="6" id="6619" /> +<TGConnectingPoint num="7" id="6620" /> +<extraparam> +<info value="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="INTL_MSS" bufferType="3" packedBinaryIn="" width="" bitInOffset="" inputOffset="" packedBinaryOut="" bitOutOffset="" outputOffset="" offsetPerm="" lengthPerm="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="6648" > +<cdparam x="105" y="1396" /> +<sizeparam width="405" height="88" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Chip2Octet_CWL" value="CP0" /> +<TGConnectingPoint num="0" id="6640" /> +<TGConnectingPoint num="1" id="6641" /> +<TGConnectingPoint num="2" id="6642" /> +<TGConnectingPoint num="3" id="6643" /> +<TGConnectingPoint num="4" id="6644" /> +<TGConnectingPoint num="5" id="6645" /> +<TGConnectingPoint num="6" id="6646" /> +<TGConnectingPoint num="7" id="6647" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="6639" > +<father id="6648" num="0" /> +<cdparam x="327" y="1437" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" /> +<infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" /> +<TGConnectingPoint num="0" id="6631" /> +<TGConnectingPoint num="1" id="6632" /> +<TGConnectingPoint num="2" id="6633" /> +<TGConnectingPoint num="3" id="6634" /> +<TGConnectingPoint num="4" id="6635" /> +<TGConnectingPoint num="5" id="6636" /> +<TGConnectingPoint num="6" id="6637" /> +<TGConnectingPoint num="7" id="6638" /> +<extraparam> +<info value="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="FEP_MSS" bufferType="0" baseAddress="0x123" numSamples="1234" bank="0" dataType="int8" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="6666" > +<cdparam x="627" y="1252" /> +<sizeparam width="295" height="145" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_sink" value="CP0" /> +<TGConnectingPoint num="0" id="6658" /> +<TGConnectingPoint num="1" id="6659" /> +<TGConnectingPoint num="2" id="6660" /> +<TGConnectingPoint num="3" id="6661" /> +<TGConnectingPoint num="4" id="6662" /> +<TGConnectingPoint num="5" id="6663" /> +<TGConnectingPoint num="6" id="6664" /> +<TGConnectingPoint num="7" id="6665" /> +<extraparam> +<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" /> +<attributes reference="Double_DMA_transfer" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="6657" > +<father id="6666" num="0" /> +<cdparam x="701" y="1315" /> +<sizeparam width="170" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" /> +<infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" /> +<TGConnectingPoint num="0" id="6649" /> +<TGConnectingPoint num="1" id="6650" /> +<TGConnectingPoint num="2" id="6651" /> +<TGConnectingPoint num="3" id="6652" /> +<TGConnectingPoint num="4" id="6653" /> +<TGConnectingPoint num="5" id="6654" /> +<TGConnectingPoint num="6" id="6655" /> +<TGConnectingPoint num="7" id="6656" /> +<extraparam> +<info value="Zigbee_TX::sink_ch_in" portName="sink_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="ADAIF_MSS" bufferType="2" numSamples="123" baseAddress="0x123" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="6684" > +<cdparam x="106" y="1143" /> +<sizeparam width="421" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Source_to_Bits2Symbol" value="CP0" /> +<TGConnectingPoint num="0" id="6676" /> +<TGConnectingPoint num="1" id="6677" /> +<TGConnectingPoint num="2" id="6678" /> +<TGConnectingPoint num="3" id="6679" /> +<TGConnectingPoint num="4" id="6680" /> +<TGConnectingPoint num="5" id="6681" /> +<TGConnectingPoint num="6" id="6682" /> +<TGConnectingPoint num="7" id="6683" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" /> +<attributes reference="CP_Memory_Copy" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Dst_Storage_Instance" architectureUnit="MAPPER_MSS" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="CPU_Controller" architectureUnit="MainCPU" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance_1" architectureUnit="MainBus" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="CP_Memory_Copy" instanceName="Src_Storage_Instance" architectureUnit="ADAIF_MSS" /> +<mappedAttributes type="addr" name="sourceAddress" value="0x123" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="6675" > +<father id="6684" num="0" /> +<cdparam x="280" y="1181" /> +<sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" /> +<infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" /> +<TGConnectingPoint num="0" id="6667" /> +<TGConnectingPoint num="1" id="6668" /> +<TGConnectingPoint num="2" id="6669" /> +<TGConnectingPoint num="3" id="6670" /> +<TGConnectingPoint num="4" id="6671" /> +<TGConnectingPoint num="5" id="6672" /> +<TGConnectingPoint num="6" id="6673" /> +<TGConnectingPoint num="7" id="6674" /> +<extraparam> +<info value="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="MAPPER_MSS" bufferType="1" numSamplesDataIn="123" baseAddressDataIn="0x123" bitsPerSymbolDataIn="123" symmetricalValueDataIn="OFF" baseAddressDataOut="0x123" baseAddressLUT="0x123" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="125" id="6685" > +<cdparam x="1367" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1367" y="660" id="6146" /> +<P2 x="1076" y="660" id="6172" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6686" > +<cdparam x="1147" y="508" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="508" id="6332" /> +<P2 x="1076" y="635" id="6170" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6687" > +<cdparam x="1298" y="875" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1249" y="850" id="6480" /> +<P2 x="1076" y="685" id="6175" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6688" > +<cdparam x="1019" y="805" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="780" id="6505" /> +<P2 x="864" y="685" id="6183" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6689" > +<cdparam x="1004" y="531" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="566" id="6435" /> +<P2 x="864" y="635" id="6177" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6690" > +<cdparam x="1185" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1467" y="660" id="6147" /> +<P2 x="1527" y="660" id="6121" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6691" > +<cdparam x="356" y="788" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="788" id="6199" /> +<P2 x="356" y="832" id="6278" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6692" > +<cdparam x="554" y="806" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="807" id="5862" /> +<P2 x="442" y="685" id="6182" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6693" > +<cdparam x="559" y="863" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="857" id="5865" /> +<P2 x="481" y="857" id="6281" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6694" > +<cdparam x="586" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="541" y="949" id="6219" /> +<P2 x="418" y="882" id="6292" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6695" > +<cdparam x="165" y="927" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="208" y="938" id="6253" /> +<P2 x="293" y="882" id="6291" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6696" > +<cdparam x="355" y="576" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="580" id="5977" /> +<P2 x="231" y="635" id="6168" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6697" > +<cdparam x="355" y="541" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="545" id="5972" /> +<P2 x="356" y="497" id="6308" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6698" > +<cdparam x="543" y="522" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="522" id="5892" /> +<P2 x="442" y="635" id="6176" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6699" > +<cdparam x="536" y="475" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="472" id="5890" /> +<P2 x="481" y="472" id="6306" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6700" > +<cdparam x="549" y="337" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="454" y="395" id="5918" /> +<P2 x="418" y="447" id="6311" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6701" > +<cdparam x="155" y="323" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="155" y="396" id="5952" /> +<P2 x="293" y="447" id="6310" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6702" > +<cdparam x="357" y="778" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="737" id="6194" /> +<P2 x="231" y="685" id="6173" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6703" > +<cdparam x="1654" y="758" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="737" id="5997" /> +<P2 x="1652" y="685" id="6124" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6704" > +<cdparam x="1651" y="573" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="586" id="6099" /> +<P2 x="1652" y="635" id="6119" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6705" > +<cdparam x="959" y="527" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="531" id="6430" /> +<P2 x="960" y="483" id="6460" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6706" > +<cdparam x="1140" y="461" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="458" id="6330" /> +<P2 x="1085" y="458" id="6458" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6707" > +<cdparam x="1189" y="374" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1022" y="376" id="6358" /> +<P2 x="1022" y="433" id="6463" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6708" > +<cdparam x="795" y="360" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="738" y="384" id="6410" /> +<P2 x="897" y="433" id="6462" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6709" > +<cdparam x="970" y="831" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="831" id="6510" /> +<P2 x="970" y="875" id="6589" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6710" > +<cdparam x="1173" y="906" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1174" y="900" id="6482" /> +<P2 x="1095" y="900" id="6592" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6711" > +<cdparam x="1200" y="1013" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1200" y="978" id="6530" /> +<P2 x="1032" y="925" id="6603" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="6712" > +<cdparam x="779" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="861" y="984" id="6564" /> +<P2 x="907" y="925" id="6602" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +<Modeling type="TML Architecture" nameTab="Mapping_2" > +<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1900" minY="10" maxY="1900" attributes="0" masterClockFrequency="200" > +<COMPONENT type="1100" id="6737" > +<cdparam x="560" y="807" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_DMA" value="name" /> +<TGConnectingPoint num="0" id="6713" /> +<TGConnectingPoint num="1" id="6714" /> +<TGConnectingPoint num="2" id="6715" /> +<TGConnectingPoint num="3" id="6716" /> +<TGConnectingPoint num="4" id="6717" /> +<TGConnectingPoint num="5" id="6718" /> +<TGConnectingPoint num="6" id="6719" /> +<TGConnectingPoint num="7" id="6720" /> +<TGConnectingPoint num="8" id="6721" /> +<TGConnectingPoint num="9" id="6722" /> +<TGConnectingPoint num="10" id="6723" /> +<TGConnectingPoint num="11" id="6724" /> +<TGConnectingPoint num="12" id="6725" /> +<TGConnectingPoint num="13" id="6726" /> +<TGConnectingPoint num="14" id="6727" /> +<TGConnectingPoint num="15" id="6728" /> +<TGConnectingPoint num="16" id="6729" /> +<TGConnectingPoint num="17" id="6730" /> +<TGConnectingPoint num="18" id="6731" /> +<TGConnectingPoint num="19" id="6732" /> +<TGConnectingPoint num="20" id="6733" /> +<TGConnectingPoint num="21" id="6734" /> +<TGConnectingPoint num="22" id="6735" /> +<TGConnectingPoint num="23" id="6736" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6762" > +<cdparam x="543" y="422" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_DMA" value="name" /> +<TGConnectingPoint num="0" id="6738" /> +<TGConnectingPoint num="1" id="6739" /> +<TGConnectingPoint num="2" id="6740" /> +<TGConnectingPoint num="3" id="6741" /> +<TGConnectingPoint num="4" id="6742" /> +<TGConnectingPoint num="5" id="6743" /> +<TGConnectingPoint num="6" id="6744" /> +<TGConnectingPoint num="7" id="6745" /> +<TGConnectingPoint num="8" id="6746" /> +<TGConnectingPoint num="9" id="6747" /> +<TGConnectingPoint num="10" id="6748" /> +<TGConnectingPoint num="11" id="6749" /> +<TGConnectingPoint num="12" id="6750" /> +<TGConnectingPoint num="13" id="6751" /> +<TGConnectingPoint num="14" id="6752" /> +<TGConnectingPoint num="15" id="6753" /> +<TGConnectingPoint num="16" id="6754" /> +<TGConnectingPoint num="17" id="6755" /> +<TGConnectingPoint num="18" id="6756" /> +<TGConnectingPoint num="19" id="6757" /> +<TGConnectingPoint num="20" id="6758" /> +<TGConnectingPoint num="21" id="6759" /> +<TGConnectingPoint num="22" id="6760" /> +<TGConnectingPoint num="23" id="6761" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="6787" > +<cdparam x="354" y="243" /> +<sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_MSS" value="name" /> +<TGConnectingPoint num="0" id="6763" /> +<TGConnectingPoint num="1" id="6764" /> +<TGConnectingPoint num="2" id="6765" /> +<TGConnectingPoint num="3" id="6766" /> +<TGConnectingPoint num="4" id="6767" /> +<TGConnectingPoint num="5" id="6768" /> +<TGConnectingPoint num="6" id="6769" /> +<TGConnectingPoint num="7" id="6770" /> +<TGConnectingPoint num="8" id="6771" /> +<TGConnectingPoint num="9" id="6772" /> +<TGConnectingPoint num="10" id="6773" /> +<TGConnectingPoint num="11" id="6774" /> +<TGConnectingPoint num="12" id="6775" /> +<TGConnectingPoint num="13" id="6776" /> +<TGConnectingPoint num="14" id="6777" /> +<TGConnectingPoint num="15" id="6778" /> +<TGConnectingPoint num="16" id="6779" /> +<TGConnectingPoint num="17" id="6780" /> +<TGConnectingPoint num="18" id="6781" /> +<TGConnectingPoint num="19" id="6782" /> +<TGConnectingPoint num="20" id="6783" /> +<TGConnectingPoint num="21" id="6784" /> +<TGConnectingPoint num="22" id="6785" /> +<TGConnectingPoint num="23" id="6786" /> +<extraparam> +<info stereotype="MEMORY" nodeName="ADAIF_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="2" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6821" > +<cdparam x="29" y="215" /> +<sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_PSS" value="name" /> +<TGConnectingPoint num="0" id="6797" /> +<TGConnectingPoint num="1" id="6798" /> +<TGConnectingPoint num="2" id="6799" /> +<TGConnectingPoint num="3" id="6800" /> +<TGConnectingPoint num="4" id="6801" /> +<TGConnectingPoint num="5" id="6802" /> +<TGConnectingPoint num="6" id="6803" /> +<TGConnectingPoint num="7" id="6804" /> +<TGConnectingPoint num="8" id="6805" /> +<TGConnectingPoint num="9" id="6806" /> +<TGConnectingPoint num="10" id="6807" /> +<TGConnectingPoint num="11" id="6808" /> +<TGConnectingPoint num="12" id="6809" /> +<TGConnectingPoint num="13" id="6810" /> +<TGConnectingPoint num="14" id="6811" /> +<TGConnectingPoint num="15" id="6812" /> +<TGConnectingPoint num="16" id="6813" /> +<TGConnectingPoint num="17" id="6814" /> +<TGConnectingPoint num="18" id="6815" /> +<TGConnectingPoint num="19" id="6816" /> +<TGConnectingPoint num="20" id="6817" /> +<TGConnectingPoint num="21" id="6818" /> +<TGConnectingPoint num="22" id="6819" /> +<TGConnectingPoint num="23" id="6820" /> +<extraparam> +<info stereotype="CPURR" nodeName="ADAIF_PSS" /> +<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" MECType="4" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="6796" > +<father id="6821" num="0" /> +<cdparam x="48" y="315" /> +<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Sink" /> +<TGConnectingPoint num="0" id="6788" /> +<TGConnectingPoint num="1" id="6789" /> +<TGConnectingPoint num="2" id="6790" /> +<TGConnectingPoint num="3" id="6791" /> +<TGConnectingPoint num="4" id="6792" /> +<TGConnectingPoint num="5" id="6793" /> +<TGConnectingPoint num="6" id="6794" /> +<TGConnectingPoint num="7" id="6795" /> +<extraparam> +<info value="Zigbee_TX::X_Sink" taskName="X_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="Adaif operation" fatherComponentMECType="4" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1106" id="6846" > +<cdparam x="306" y="545" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bridge" value="name" /> +<TGConnectingPoint num="0" id="6822" /> +<TGConnectingPoint num="1" id="6823" /> +<TGConnectingPoint num="2" id="6824" /> +<TGConnectingPoint num="3" id="6825" /> +<TGConnectingPoint num="4" id="6826" /> +<TGConnectingPoint num="5" id="6827" /> +<TGConnectingPoint num="6" id="6828" /> +<TGConnectingPoint num="7" id="6829" /> +<TGConnectingPoint num="8" id="6830" /> +<TGConnectingPoint num="9" id="6831" /> +<TGConnectingPoint num="10" id="6832" /> +<TGConnectingPoint num="11" id="6833" /> +<TGConnectingPoint num="12" id="6834" /> +<TGConnectingPoint num="13" id="6835" /> +<TGConnectingPoint num="14" id="6836" /> +<TGConnectingPoint num="15" id="6837" /> +<TGConnectingPoint num="16" id="6838" /> +<TGConnectingPoint num="17" id="6839" /> +<TGConnectingPoint num="18" id="6840" /> +<TGConnectingPoint num="19" id="6841" /> +<TGConnectingPoint num="20" id="6842" /> +<TGConnectingPoint num="21" id="6843" /> +<TGConnectingPoint num="22" id="6844" /> +<TGConnectingPoint num="23" id="6845" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="ADAIF_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="6871" > +<cdparam x="1544" y="737" /> +<sizeparam width="216" height="140" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainMemory" value="name" /> +<TGConnectingPoint num="0" id="6847" /> +<TGConnectingPoint num="1" id="6848" /> +<TGConnectingPoint num="2" id="6849" /> +<TGConnectingPoint num="3" id="6850" /> +<TGConnectingPoint num="4" id="6851" /> +<TGConnectingPoint num="5" id="6852" /> +<TGConnectingPoint num="6" id="6853" /> +<TGConnectingPoint num="7" id="6854" /> +<TGConnectingPoint num="8" id="6855" /> +<TGConnectingPoint num="9" id="6856" /> +<TGConnectingPoint num="10" id="6857" /> +<TGConnectingPoint num="11" id="6858" /> +<TGConnectingPoint num="12" id="6859" /> +<TGConnectingPoint num="13" id="6860" /> +<TGConnectingPoint num="14" id="6861" /> +<TGConnectingPoint num="15" id="6862" /> +<TGConnectingPoint num="16" id="6863" /> +<TGConnectingPoint num="17" id="6864" /> +<TGConnectingPoint num="18" id="6865" /> +<TGConnectingPoint num="19" id="6866" /> +<TGConnectingPoint num="20" id="6867" /> +<TGConnectingPoint num="21" id="6868" /> +<TGConnectingPoint num="22" id="6869" /> +<TGConnectingPoint num="23" id="6870" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MainMemory" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="4" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="6968" > +<cdparam x="1444" y="293" /> +<sizeparam width="417" height="293" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainCPU" value="name" /> +<TGConnectingPoint num="0" id="6944" /> +<TGConnectingPoint num="1" id="6945" /> +<TGConnectingPoint num="2" id="6946" /> +<TGConnectingPoint num="3" id="6947" /> +<TGConnectingPoint num="4" id="6948" /> +<TGConnectingPoint num="5" id="6949" /> +<TGConnectingPoint num="6" id="6950" /> +<TGConnectingPoint num="7" id="6951" /> +<TGConnectingPoint num="8" id="6952" /> +<TGConnectingPoint num="9" id="6953" /> +<TGConnectingPoint num="10" id="6954" /> +<TGConnectingPoint num="11" id="6955" /> +<TGConnectingPoint num="12" id="6956" /> +<TGConnectingPoint num="13" id="6957" /> +<TGConnectingPoint num="14" id="6958" /> +<TGConnectingPoint num="15" id="6959" /> +<TGConnectingPoint num="16" id="6960" /> +<TGConnectingPoint num="17" id="6961" /> +<TGConnectingPoint num="18" id="6962" /> +<TGConnectingPoint num="19" id="6963" /> +<TGConnectingPoint num="20" id="6964" /> +<TGConnectingPoint num="21" id="6965" /> +<TGConnectingPoint num="22" id="6966" /> +<TGConnectingPoint num="23" id="6967" /> +<extraparam> +<info stereotype="CPURR" nodeName="MainCPU" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="6880" > +<father id="6968" num="0" /> +<cdparam x="1686" y="522" /> +<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" /> +<TGConnectingPoint num="0" id="6872" /> +<TGConnectingPoint num="1" id="6873" /> +<TGConnectingPoint num="2" id="6874" /> +<TGConnectingPoint num="3" id="6875" /> +<TGConnectingPoint num="4" id="6876" /> +<TGConnectingPoint num="5" id="6877" /> +<TGConnectingPoint num="6" id="6878" /> +<TGConnectingPoint num="7" id="6879" /> +<extraparam> +<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6889" > +<father id="6968" num="1" /> +<cdparam x="1685" y="459" /> +<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" /> +<TGConnectingPoint num="0" id="6881" /> +<TGConnectingPoint num="1" id="6882" /> +<TGConnectingPoint num="2" id="6883" /> +<TGConnectingPoint num="3" id="6884" /> +<TGConnectingPoint num="4" id="6885" /> +<TGConnectingPoint num="5" id="6886" /> +<TGConnectingPoint num="6" id="6887" /> +<TGConnectingPoint num="7" id="6888" /> +<extraparam> +<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6898" > +<father id="6968" num="2" /> +<cdparam x="1691" y="345" /> +<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" /> +<TGConnectingPoint num="0" id="6890" /> +<TGConnectingPoint num="1" id="6891" /> +<TGConnectingPoint num="2" id="6892" /> +<TGConnectingPoint num="3" id="6893" /> +<TGConnectingPoint num="4" id="6894" /> +<TGConnectingPoint num="5" id="6895" /> +<TGConnectingPoint num="6" id="6896" /> +<TGConnectingPoint num="7" id="6897" /> +<extraparam> +<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6907" > +<father id="6968" num="3" /> +<cdparam x="1688" y="405" /> +<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" /> +<TGConnectingPoint num="0" id="6899" /> +<TGConnectingPoint num="1" id="6900" /> +<TGConnectingPoint num="2" id="6901" /> +<TGConnectingPoint num="3" id="6902" /> +<TGConnectingPoint num="4" id="6903" /> +<TGConnectingPoint num="5" id="6904" /> +<TGConnectingPoint num="6" id="6905" /> +<TGConnectingPoint num="7" id="6906" /> +<extraparam> +<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6916" > +<father id="6968" num="4" /> +<cdparam x="1466" y="518" /> +<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" /> +<TGConnectingPoint num="0" id="6908" /> +<TGConnectingPoint num="1" id="6909" /> +<TGConnectingPoint num="2" id="6910" /> +<TGConnectingPoint num="3" id="6911" /> +<TGConnectingPoint num="4" id="6912" /> +<TGConnectingPoint num="5" id="6913" /> +<TGConnectingPoint num="6" id="6914" /> +<TGConnectingPoint num="7" id="6915" /> +<extraparam> +<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip2Octet" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6925" > +<father id="6968" num="5" /> +<cdparam x="1466" y="456" /> +<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="6917" /> +<TGConnectingPoint num="1" id="6918" /> +<TGConnectingPoint num="2" id="6919" /> +<TGConnectingPoint num="3" id="6920" /> +<TGConnectingPoint num="4" id="6921" /> +<TGConnectingPoint num="5" id="6922" /> +<TGConnectingPoint num="6" id="6923" /> +<TGConnectingPoint num="7" id="6924" /> +<extraparam> +<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6934" > +<father id="6968" num="6" /> +<cdparam x="1466" y="395" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Source" /> +<TGConnectingPoint num="0" id="6926" /> +<TGConnectingPoint num="1" id="6927" /> +<TGConnectingPoint num="2" id="6928" /> +<TGConnectingPoint num="3" id="6929" /> +<TGConnectingPoint num="4" id="6930" /> +<TGConnectingPoint num="5" id="6931" /> +<TGConnectingPoint num="6" id="6932" /> +<TGConnectingPoint num="7" id="6933" /> +<extraparam> +<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="6943" > +<father id="6968" num="7" /> +<cdparam x="1465" y="339" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" /> +<infoparam name="TGComponent" value="Zigbee_TX::F_Source" /> +<TGConnectingPoint num="0" id="6935" /> +<TGConnectingPoint num="1" id="6936" /> +<TGConnectingPoint num="2" id="6937" /> +<TGConnectingPoint num="3" id="6938" /> +<TGConnectingPoint num="4" id="6939" /> +<TGConnectingPoint num="5" id="6940" /> +<TGConnectingPoint num="6" id="6941" /> +<TGConnectingPoint num="7" id="6942" /> +<extraparam> +<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="6993" > +<cdparam x="1527" y="635" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBus" value="name" /> +<TGConnectingPoint num="0" id="6969" /> +<TGConnectingPoint num="1" id="6970" /> +<TGConnectingPoint num="2" id="6971" /> +<TGConnectingPoint num="3" id="6972" /> +<TGConnectingPoint num="4" id="6973" /> +<TGConnectingPoint num="5" id="6974" /> +<TGConnectingPoint num="6" id="6975" /> +<TGConnectingPoint num="7" id="6976" /> +<TGConnectingPoint num="8" id="6977" /> +<TGConnectingPoint num="9" id="6978" /> +<TGConnectingPoint num="10" id="6979" /> +<TGConnectingPoint num="11" id="6980" /> +<TGConnectingPoint num="12" id="6981" /> +<TGConnectingPoint num="13" id="6982" /> +<TGConnectingPoint num="14" id="6983" /> +<TGConnectingPoint num="15" id="6984" /> +<TGConnectingPoint num="16" id="6985" /> +<TGConnectingPoint num="17" id="6986" /> +<TGConnectingPoint num="18" id="6987" /> +<TGConnectingPoint num="19" id="6988" /> +<TGConnectingPoint num="20" id="6989" /> +<TGConnectingPoint num="21" id="6990" /> +<TGConnectingPoint num="22" id="6991" /> +<TGConnectingPoint num="23" id="6992" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MainBus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="7018" > +<cdparam x="1367" y="610" /> +<sizeparam width="100" height="100" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MainBridge" value="name" /> +<TGConnectingPoint num="0" id="6994" /> +<TGConnectingPoint num="1" id="6995" /> +<TGConnectingPoint num="2" id="6996" /> +<TGConnectingPoint num="3" id="6997" /> +<TGConnectingPoint num="4" id="6998" /> +<TGConnectingPoint num="5" id="6999" /> +<TGConnectingPoint num="6" id="7000" /> +<TGConnectingPoint num="7" id="7001" /> +<TGConnectingPoint num="8" id="7002" /> +<TGConnectingPoint num="9" id="7003" /> +<TGConnectingPoint num="10" id="7004" /> +<TGConnectingPoint num="11" id="7005" /> +<TGConnectingPoint num="12" id="7006" /> +<TGConnectingPoint num="13" id="7007" /> +<TGConnectingPoint num="14" id="7008" /> +<TGConnectingPoint num="15" id="7009" /> +<TGConnectingPoint num="16" id="7010" /> +<TGConnectingPoint num="17" id="7011" /> +<TGConnectingPoint num="18" id="7012" /> +<TGConnectingPoint num="19" id="7013" /> +<TGConnectingPoint num="20" id="7014" /> +<TGConnectingPoint num="21" id="7015" /> +<TGConnectingPoint num="22" id="7016" /> +<TGConnectingPoint num="23" id="7017" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MainBridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="7043" > +<cdparam x="231" y="635" /> +<sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="Crossbar" value="name" /> +<TGConnectingPoint num="0" id="7019" /> +<TGConnectingPoint num="1" id="7020" /> +<TGConnectingPoint num="2" id="7021" /> +<TGConnectingPoint num="3" id="7022" /> +<TGConnectingPoint num="4" id="7023" /> +<TGConnectingPoint num="5" id="7024" /> +<TGConnectingPoint num="6" id="7025" /> +<TGConnectingPoint num="7" id="7026" /> +<TGConnectingPoint num="8" id="7027" /> +<TGConnectingPoint num="9" id="7028" /> +<TGConnectingPoint num="10" id="7029" /> +<TGConnectingPoint num="11" id="7030" /> +<TGConnectingPoint num="12" id="7031" /> +<TGConnectingPoint num="13" id="7032" /> +<TGConnectingPoint num="14" id="7033" /> +<TGConnectingPoint num="15" id="7034" /> +<TGConnectingPoint num="16" id="7035" /> +<TGConnectingPoint num="17" id="7036" /> +<TGConnectingPoint num="18" id="7037" /> +<TGConnectingPoint num="19" id="7038" /> +<TGConnectingPoint num="20" id="7039" /> +<TGConnectingPoint num="21" id="7040" /> +<TGConnectingPoint num="22" id="7041" /> +<TGConnectingPoint num="23" id="7042" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="Crossbar" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="7068" > +<cdparam x="306" y="737" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bridge" value="name" /> +<TGConnectingPoint num="0" id="7044" /> +<TGConnectingPoint num="1" id="7045" /> +<TGConnectingPoint num="2" id="7046" /> +<TGConnectingPoint num="3" id="7047" /> +<TGConnectingPoint num="4" id="7048" /> +<TGConnectingPoint num="5" id="7049" /> +<TGConnectingPoint num="6" id="7050" /> +<TGConnectingPoint num="7" id="7051" /> +<TGConnectingPoint num="8" id="7052" /> +<TGConnectingPoint num="9" id="7053" /> +<TGConnectingPoint num="10" id="7054" /> +<TGConnectingPoint num="11" id="7055" /> +<TGConnectingPoint num="12" id="7056" /> +<TGConnectingPoint num="13" id="7057" /> +<TGConnectingPoint num="14" id="7058" /> +<TGConnectingPoint num="15" id="7059" /> +<TGConnectingPoint num="16" id="7060" /> +<TGConnectingPoint num="17" id="7061" /> +<TGConnectingPoint num="18" id="7062" /> +<TGConnectingPoint num="19" id="7063" /> +<TGConnectingPoint num="20" id="7064" /> +<TGConnectingPoint num="21" id="7065" /> +<TGConnectingPoint num="22" id="7066" /> +<TGConnectingPoint num="23" id="7067" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="INTL_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="7093" > +<cdparam x="376" y="949" /> +<sizeparam width="331" height="135" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_MSS" value="name" /> +<TGConnectingPoint num="0" id="7069" /> +<TGConnectingPoint num="1" id="7070" /> +<TGConnectingPoint num="2" id="7071" /> +<TGConnectingPoint num="3" id="7072" /> +<TGConnectingPoint num="4" id="7073" /> +<TGConnectingPoint num="5" id="7074" /> +<TGConnectingPoint num="6" id="7075" /> +<TGConnectingPoint num="7" id="7076" /> +<TGConnectingPoint num="8" id="7077" /> +<TGConnectingPoint num="9" id="7078" /> +<TGConnectingPoint num="10" id="7079" /> +<TGConnectingPoint num="11" id="7080" /> +<TGConnectingPoint num="12" id="7081" /> +<TGConnectingPoint num="13" id="7082" /> +<TGConnectingPoint num="14" id="7083" /> +<TGConnectingPoint num="15" id="7084" /> +<TGConnectingPoint num="16" id="7085" /> +<TGConnectingPoint num="17" id="7086" /> +<TGConnectingPoint num="18" id="7087" /> +<TGConnectingPoint num="19" id="7088" /> +<TGConnectingPoint num="20" id="7089" /> +<TGConnectingPoint num="21" id="7090" /> +<TGConnectingPoint num="22" id="7091" /> +<TGConnectingPoint num="23" id="7092" /> +<extraparam> +<info stereotype="MEMORY" nodeName="INTL_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="3" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="7127" > +<cdparam x="91" y="938" /> +<sizeparam width="234" height="140" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_PSS" value="name" /> +<TGConnectingPoint num="0" id="7103" /> +<TGConnectingPoint num="1" id="7104" /> +<TGConnectingPoint num="2" id="7105" /> +<TGConnectingPoint num="3" id="7106" /> +<TGConnectingPoint num="4" id="7107" /> +<TGConnectingPoint num="5" id="7108" /> +<TGConnectingPoint num="6" id="7109" /> +<TGConnectingPoint num="7" id="7110" /> +<TGConnectingPoint num="8" id="7111" /> +<TGConnectingPoint num="9" id="7112" /> +<TGConnectingPoint num="10" id="7113" /> +<TGConnectingPoint num="11" id="7114" /> +<TGConnectingPoint num="12" id="7115" /> +<TGConnectingPoint num="13" id="7116" /> +<TGConnectingPoint num="14" id="7117" /> +<TGConnectingPoint num="15" id="7118" /> +<TGConnectingPoint num="16" id="7119" /> +<TGConnectingPoint num="17" id="7120" /> +<TGConnectingPoint num="18" id="7121" /> +<TGConnectingPoint num="19" id="7122" /> +<TGConnectingPoint num="20" id="7123" /> +<TGConnectingPoint num="21" id="7124" /> +<TGConnectingPoint num="22" id="7125" /> +<TGConnectingPoint num="23" id="7126" /> +<extraparam> +<info stereotype="CPURR" nodeName="INTL_PSS" /> +<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" MECType="2" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="7102" > +<father id="7127" num="0" /> +<cdparam x="105" y="993" /> +<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" /> +<TGConnectingPoint num="0" id="7094" /> +<TGConnectingPoint num="1" id="7095" /> +<TGConnectingPoint num="2" id="7096" /> +<TGConnectingPoint num="3" id="7097" /> +<TGConnectingPoint num="4" id="7098" /> +<TGConnectingPoint num="5" id="7099" /> +<TGConnectingPoint num="6" id="7100" /> +<TGConnectingPoint num="7" id="7101" /> +<extraparam> +<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operation="Interleaver operation" fatherComponentMECType="2" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="7152" > +<cdparam x="231" y="832" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="INTL_Bus" value="name" /> +<TGConnectingPoint num="0" id="7128" /> +<TGConnectingPoint num="1" id="7129" /> +<TGConnectingPoint num="2" id="7130" /> +<TGConnectingPoint num="3" id="7131" /> +<TGConnectingPoint num="4" id="7132" /> +<TGConnectingPoint num="5" id="7133" /> +<TGConnectingPoint num="6" id="7134" /> +<TGConnectingPoint num="7" id="7135" /> +<TGConnectingPoint num="8" id="7136" /> +<TGConnectingPoint num="9" id="7137" /> +<TGConnectingPoint num="10" id="7138" /> +<TGConnectingPoint num="11" id="7139" /> +<TGConnectingPoint num="12" id="7140" /> +<TGConnectingPoint num="13" id="7141" /> +<TGConnectingPoint num="14" id="7142" /> +<TGConnectingPoint num="15" id="7143" /> +<TGConnectingPoint num="16" id="7144" /> +<TGConnectingPoint num="17" id="7145" /> +<TGConnectingPoint num="18" id="7146" /> +<TGConnectingPoint num="19" id="7147" /> +<TGConnectingPoint num="20" id="7148" /> +<TGConnectingPoint num="21" id="7149" /> +<TGConnectingPoint num="22" id="7150" /> +<TGConnectingPoint num="23" id="7151" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="INTL_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="7177" > +<cdparam x="231" y="447" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="ADAIF_Bus" value="name" /> +<TGConnectingPoint num="0" id="7153" /> +<TGConnectingPoint num="1" id="7154" /> +<TGConnectingPoint num="2" id="7155" /> +<TGConnectingPoint num="3" id="7156" /> +<TGConnectingPoint num="4" id="7157" /> +<TGConnectingPoint num="5" id="7158" /> +<TGConnectingPoint num="6" id="7159" /> +<TGConnectingPoint num="7" id="7160" /> +<TGConnectingPoint num="8" id="7161" /> +<TGConnectingPoint num="9" id="7162" /> +<TGConnectingPoint num="10" id="7163" /> +<TGConnectingPoint num="11" id="7164" /> +<TGConnectingPoint num="12" id="7165" /> +<TGConnectingPoint num="13" id="7166" /> +<TGConnectingPoint num="14" id="7167" /> +<TGConnectingPoint num="15" id="7168" /> +<TGConnectingPoint num="16" id="7169" /> +<TGConnectingPoint num="17" id="7170" /> +<TGConnectingPoint num="18" id="7171" /> +<TGConnectingPoint num="19" id="7172" /> +<TGConnectingPoint num="20" id="7173" /> +<TGConnectingPoint num="21" id="7174" /> +<TGConnectingPoint num="22" id="7175" /> +<TGConnectingPoint num="23" id="7176" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="ADAIF_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="7202" > +<cdparam x="1147" y="408" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_DMA" value="name" /> +<TGConnectingPoint num="0" id="7178" /> +<TGConnectingPoint num="1" id="7179" /> +<TGConnectingPoint num="2" id="7180" /> +<TGConnectingPoint num="3" id="7181" /> +<TGConnectingPoint num="4" id="7182" /> +<TGConnectingPoint num="5" id="7183" /> +<TGConnectingPoint num="6" id="7184" /> +<TGConnectingPoint num="7" id="7185" /> +<TGConnectingPoint num="8" id="7186" /> +<TGConnectingPoint num="9" id="7187" /> +<TGConnectingPoint num="10" id="7188" /> +<TGConnectingPoint num="11" id="7189" /> +<TGConnectingPoint num="12" id="7190" /> +<TGConnectingPoint num="13" id="7191" /> +<TGConnectingPoint num="14" id="7192" /> +<TGConnectingPoint num="15" id="7193" /> +<TGConnectingPoint num="16" id="7194" /> +<TGConnectingPoint num="17" id="7195" /> +<TGConnectingPoint num="18" id="7196" /> +<TGConnectingPoint num="19" id="7197" /> +<TGConnectingPoint num="20" id="7198" /> +<TGConnectingPoint num="21" id="7199" /> +<TGConnectingPoint num="22" id="7200" /> +<TGConnectingPoint num="23" id="7201" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="7227" > +<cdparam x="895" y="193" /> +<sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_MSS" value="name" /> +<TGConnectingPoint num="0" id="7203" /> +<TGConnectingPoint num="1" id="7204" /> +<TGConnectingPoint num="2" id="7205" /> +<TGConnectingPoint num="3" id="7206" /> +<TGConnectingPoint num="4" id="7207" /> +<TGConnectingPoint num="5" id="7208" /> +<TGConnectingPoint num="6" id="7209" /> +<TGConnectingPoint num="7" id="7210" /> +<TGConnectingPoint num="8" id="7211" /> +<TGConnectingPoint num="9" id="7212" /> +<TGConnectingPoint num="10" id="7213" /> +<TGConnectingPoint num="11" id="7214" /> +<TGConnectingPoint num="12" id="7215" /> +<TGConnectingPoint num="13" id="7216" /> +<TGConnectingPoint num="14" id="7217" /> +<TGConnectingPoint num="15" id="7218" /> +<TGConnectingPoint num="16" id="7219" /> +<TGConnectingPoint num="17" id="7220" /> +<TGConnectingPoint num="18" id="7221" /> +<TGConnectingPoint num="19" id="7222" /> +<TGConnectingPoint num="20" id="7223" /> +<TGConnectingPoint num="21" id="7224" /> +<TGConnectingPoint num="22" id="7225" /> +<TGConnectingPoint num="23" id="7226" /> +<extraparam> +<info stereotype="MEMORY" nodeName="FEP_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="7279" > +<cdparam x="619" y="199" /> +<sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_PSS" value="name" /> +<TGConnectingPoint num="0" id="7255" /> +<TGConnectingPoint num="1" id="7256" /> +<TGConnectingPoint num="2" id="7257" /> +<TGConnectingPoint num="3" id="7258" /> +<TGConnectingPoint num="4" id="7259" /> +<TGConnectingPoint num="5" id="7260" /> +<TGConnectingPoint num="6" id="7261" /> +<TGConnectingPoint num="7" id="7262" /> +<TGConnectingPoint num="8" id="7263" /> +<TGConnectingPoint num="9" id="7264" /> +<TGConnectingPoint num="10" id="7265" /> +<TGConnectingPoint num="11" id="7266" /> +<TGConnectingPoint num="12" id="7267" /> +<TGConnectingPoint num="13" id="7268" /> +<TGConnectingPoint num="14" id="7269" /> +<TGConnectingPoint num="15" id="7270" /> +<TGConnectingPoint num="16" id="7271" /> +<TGConnectingPoint num="17" id="7272" /> +<TGConnectingPoint num="18" id="7273" /> +<TGConnectingPoint num="19" id="7274" /> +<TGConnectingPoint num="20" id="7275" /> +<TGConnectingPoint num="21" id="7276" /> +<TGConnectingPoint num="22" id="7277" /> +<TGConnectingPoint num="23" id="7278" /> +<extraparam> +<info stereotype="CPURR" nodeName="FEP_PSS" /> +<attributes nbOfCores="1" byteDataSize="4" schedulingPolicy="0" sliceTime="10000" goIdleTime="10" maxConsecutiveIdleCycles="10" pipelineSize="5" taskSwitchingTime="20" branchingPredictionPenalty="2" cacheMiss="5" execiTime="2" execcTime="1" clockRatio="1" MECType="1" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="7236" > +<father id="7279" num="0" /> +<cdparam x="639" y="239" /> +<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" /> +<TGConnectingPoint num="0" id="7228" /> +<TGConnectingPoint num="1" id="7229" /> +<TGConnectingPoint num="2" id="7230" /> +<TGConnectingPoint num="3" id="7231" /> +<TGConnectingPoint num="4" id="7232" /> +<TGConnectingPoint num="5" id="7233" /> +<TGConnectingPoint num="6" id="7234" /> +<TGConnectingPoint num="7" id="7235" /> +<extraparam> +<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="7245" > +<father id="7279" num="1" /> +<cdparam x="640" y="335" /> +<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" /> +<TGConnectingPoint num="0" id="7237" /> +<TGConnectingPoint num="1" id="7238" /> +<TGConnectingPoint num="2" id="7239" /> +<TGConnectingPoint num="3" id="7240" /> +<TGConnectingPoint num="4" id="7241" /> +<TGConnectingPoint num="5" id="7242" /> +<TGConnectingPoint num="6" id="7243" /> +<TGConnectingPoint num="7" id="7244" /> +<extraparam> +<info value="Zigbee_TX::X_CWP_Q" taskName="X_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="7254" > +<father id="7279" num="2" /> +<cdparam x="671" y="289" /> +<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" /> +<TGConnectingPoint num="0" id="7246" /> +<TGConnectingPoint num="1" id="7247" /> +<TGConnectingPoint num="2" id="7248" /> +<TGConnectingPoint num="3" id="7249" /> +<TGConnectingPoint num="4" id="7250" /> +<TGConnectingPoint num="5" id="7251" /> +<TGConnectingPoint num="6" id="7252" /> +<TGConnectingPoint num="7" id="7253" /> +<extraparam> +<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1106" id="7304" > +<cdparam x="910" y="531" /> +<sizeparam width="100" height="35" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bridge" value="name" /> +<TGConnectingPoint num="0" id="7280" /> +<TGConnectingPoint num="1" id="7281" /> +<TGConnectingPoint num="2" id="7282" /> +<TGConnectingPoint num="3" id="7283" /> +<TGConnectingPoint num="4" id="7284" /> +<TGConnectingPoint num="5" id="7285" /> +<TGConnectingPoint num="6" id="7286" /> +<TGConnectingPoint num="7" id="7287" /> +<TGConnectingPoint num="8" id="7288" /> +<TGConnectingPoint num="9" id="7289" /> +<TGConnectingPoint num="10" id="7290" /> +<TGConnectingPoint num="11" id="7291" /> +<TGConnectingPoint num="12" id="7292" /> +<TGConnectingPoint num="13" id="7293" /> +<TGConnectingPoint num="14" id="7294" /> +<TGConnectingPoint num="15" id="7295" /> +<TGConnectingPoint num="16" id="7296" /> +<TGConnectingPoint num="17" id="7297" /> +<TGConnectingPoint num="18" id="7298" /> +<TGConnectingPoint num="19" id="7299" /> +<TGConnectingPoint num="20" id="7300" /> +<TGConnectingPoint num="21" id="7301" /> +<TGConnectingPoint num="22" id="7302" /> +<TGConnectingPoint num="23" id="7303" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="FEP_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="7329" > +<cdparam x="835" y="433" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="FEP_Bus" value="name" /> +<TGConnectingPoint num="0" id="7305" /> +<TGConnectingPoint num="1" id="7306" /> +<TGConnectingPoint num="2" id="7307" /> +<TGConnectingPoint num="3" id="7308" /> +<TGConnectingPoint num="4" id="7309" /> +<TGConnectingPoint num="5" id="7310" /> +<TGConnectingPoint num="6" id="7311" /> +<TGConnectingPoint num="7" id="7312" /> +<TGConnectingPoint num="8" id="7313" /> +<TGConnectingPoint num="9" id="7314" /> +<TGConnectingPoint num="10" id="7315" /> +<TGConnectingPoint num="11" id="7316" /> +<TGConnectingPoint num="12" id="7317" /> +<TGConnectingPoint num="13" id="7318" /> +<TGConnectingPoint num="14" id="7319" /> +<TGConnectingPoint num="15" id="7320" /> +<TGConnectingPoint num="16" id="7321" /> +<TGConnectingPoint num="17" id="7322" /> +<TGConnectingPoint num="18" id="7323" /> +<TGConnectingPoint num="19" id="7324" /> +<TGConnectingPoint num="20" id="7325" /> +<TGConnectingPoint num="21" id="7326" /> +<TGConnectingPoint num="22" id="7327" /> +<TGConnectingPoint num="23" id="7328" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="FEP_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="7354" > +<cdparam x="1174" y="850" /> +<sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_DMA" value="name" /> +<TGConnectingPoint num="0" id="7330" /> +<TGConnectingPoint num="1" id="7331" /> +<TGConnectingPoint num="2" id="7332" /> +<TGConnectingPoint num="3" id="7333" /> +<TGConnectingPoint num="4" id="7334" /> +<TGConnectingPoint num="5" id="7335" /> +<TGConnectingPoint num="6" id="7336" /> +<TGConnectingPoint num="7" id="7337" /> +<TGConnectingPoint num="8" id="7338" /> +<TGConnectingPoint num="9" id="7339" /> +<TGConnectingPoint num="10" id="7340" /> +<TGConnectingPoint num="11" id="7341" /> +<TGConnectingPoint num="12" id="7342" /> +<TGConnectingPoint num="13" id="7343" /> +<TGConnectingPoint num="14" id="7344" /> +<TGConnectingPoint num="15" id="7345" /> +<TGConnectingPoint num="16" id="7346" /> +<TGConnectingPoint num="17" id="7347" /> +<TGConnectingPoint num="18" id="7348" /> +<TGConnectingPoint num="19" id="7349" /> +<TGConnectingPoint num="20" id="7350" /> +<TGConnectingPoint num="21" id="7351" /> +<TGConnectingPoint num="22" id="7352" /> +<TGConnectingPoint num="23" id="7353" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_DMA" /> +<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" MECType="0" encryption="0"/> +</extraparam> +</COMPONENT> + +<COMPONENT type="1106" id="7379" > +<cdparam x="920" y="780" /> +<sizeparam width="100" height="51" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bridge" value="name" /> +<TGConnectingPoint num="0" id="7355" /> +<TGConnectingPoint num="1" id="7356" /> +<TGConnectingPoint num="2" id="7357" /> +<TGConnectingPoint num="3" id="7358" /> +<TGConnectingPoint num="4" id="7359" /> +<TGConnectingPoint num="5" id="7360" /> +<TGConnectingPoint num="6" id="7361" /> +<TGConnectingPoint num="7" id="7362" /> +<TGConnectingPoint num="8" id="7363" /> +<TGConnectingPoint num="9" id="7364" /> +<TGConnectingPoint num="10" id="7365" /> +<TGConnectingPoint num="11" id="7366" /> +<TGConnectingPoint num="12" id="7367" /> +<TGConnectingPoint num="13" id="7368" /> +<TGConnectingPoint num="14" id="7369" /> +<TGConnectingPoint num="15" id="7370" /> +<TGConnectingPoint num="16" id="7371" /> +<TGConnectingPoint num="17" id="7372" /> +<TGConnectingPoint num="18" id="7373" /> +<TGConnectingPoint num="19" id="7374" /> +<TGConnectingPoint num="20" id="7375" /> +<TGConnectingPoint num="21" id="7376" /> +<TGConnectingPoint num="22" id="7377" /> +<TGConnectingPoint num="23" id="7378" /> +<extraparam> +<info stereotype="BRIDGE" nodeName="MAPPER_Bridge" /> +<attributes bufferByteDataSize="4" clockRatio="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1105" id="7404" > +<cdparam x="1043" y="978" /> +<sizeparam width="314" height="125" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_MSS" value="name" /> +<TGConnectingPoint num="0" id="7380" /> +<TGConnectingPoint num="1" id="7381" /> +<TGConnectingPoint num="2" id="7382" /> +<TGConnectingPoint num="3" id="7383" /> +<TGConnectingPoint num="4" id="7384" /> +<TGConnectingPoint num="5" id="7385" /> +<TGConnectingPoint num="6" id="7386" /> +<TGConnectingPoint num="7" id="7387" /> +<TGConnectingPoint num="8" id="7388" /> +<TGConnectingPoint num="9" id="7389" /> +<TGConnectingPoint num="10" id="7390" /> +<TGConnectingPoint num="11" id="7391" /> +<TGConnectingPoint num="12" id="7392" /> +<TGConnectingPoint num="13" id="7393" /> +<TGConnectingPoint num="14" id="7394" /> +<TGConnectingPoint num="15" id="7395" /> +<TGConnectingPoint num="16" id="7396" /> +<TGConnectingPoint num="17" id="7397" /> +<TGConnectingPoint num="18" id="7398" /> +<TGConnectingPoint num="19" id="7399" /> +<TGConnectingPoint num="20" id="7400" /> +<TGConnectingPoint num="21" id="7401" /> +<TGConnectingPoint num="22" id="7402" /> +<TGConnectingPoint num="23" id="7403" /> +<extraparam> +<info stereotype="MEMORY" nodeName="MAPPER_MSS" /> +<attributes byteDataSize="4" clockRatio="1" bufferType="1" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1100" id="7438" > +<cdparam x="759" y="981" /> +<sizeparam width="219" height="158" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_PSS" value="name" /> +<TGConnectingPoint num="0" id="7414" /> +<TGConnectingPoint num="1" id="7415" /> +<TGConnectingPoint num="2" id="7416" /> +<TGConnectingPoint num="3" id="7417" /> +<TGConnectingPoint num="4" id="7418" /> +<TGConnectingPoint num="5" id="7419" /> +<TGConnectingPoint num="6" id="7420" /> +<TGConnectingPoint num="7" id="7421" /> +<TGConnectingPoint num="8" id="7422" /> +<TGConnectingPoint num="9" id="7423" /> +<TGConnectingPoint num="10" id="7424" /> +<TGConnectingPoint num="11" id="7425" /> +<TGConnectingPoint num="12" id="7426" /> +<TGConnectingPoint num="13" id="7427" /> +<TGConnectingPoint num="14" id="7428" /> +<TGConnectingPoint num="15" id="7429" /> +<TGConnectingPoint num="16" id="7430" /> +<TGConnectingPoint num="17" id="7431" /> +<TGConnectingPoint num="18" id="7432" /> +<TGConnectingPoint num="19" id="7433" /> +<TGConnectingPoint num="20" id="7434" /> +<TGConnectingPoint num="21" id="7435" /> +<TGConnectingPoint num="22" id="7436" /> +<TGConnectingPoint num="23" id="7437" /> +<extraparam> +<info stereotype="CPURR" nodeName="MAPPER_PSS" /> +<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" MECType="3" encryption="0"/> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="7413" > +<father id="7438" num="0" /> +<cdparam x="755" y="1028" /> +<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="-4" minY="0" maxY="118" /> +<infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" /> +<TGConnectingPoint num="0" id="7405" /> +<TGConnectingPoint num="1" id="7406" /> +<TGConnectingPoint num="2" id="7407" /> +<TGConnectingPoint num="3" id="7408" /> +<TGConnectingPoint num="4" id="7409" /> +<TGConnectingPoint num="5" id="7410" /> +<TGConnectingPoint num="6" id="7411" /> +<TGConnectingPoint num="7" id="7412" /> +<extraparam> +<info value="Zigbee_TX::X_Symbol2ChipSeq" taskName="X_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="Mapper operation" fatherComponentMECType="3" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1102" id="7463" > +<cdparam x="845" y="875" /> +<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="MAPPER_Bus" value="name" /> +<TGConnectingPoint num="0" id="7439" /> +<TGConnectingPoint num="1" id="7440" /> +<TGConnectingPoint num="2" id="7441" /> +<TGConnectingPoint num="3" id="7442" /> +<TGConnectingPoint num="4" id="7443" /> +<TGConnectingPoint num="5" id="7444" /> +<TGConnectingPoint num="6" id="7445" /> +<TGConnectingPoint num="7" id="7446" /> +<TGConnectingPoint num="8" id="7447" /> +<TGConnectingPoint num="9" id="7448" /> +<TGConnectingPoint num="10" id="7449" /> +<TGConnectingPoint num="11" id="7450" /> +<TGConnectingPoint num="12" id="7451" /> +<TGConnectingPoint num="13" id="7452" /> +<TGConnectingPoint num="14" id="7453" /> +<TGConnectingPoint num="15" id="7454" /> +<TGConnectingPoint num="16" id="7455" /> +<TGConnectingPoint num="17" id="7456" /> +<TGConnectingPoint num="18" id="7457" /> +<TGConnectingPoint num="19" id="7458" /> +<TGConnectingPoint num="20" id="7459" /> +<TGConnectingPoint num="21" id="7460" /> +<TGConnectingPoint num="22" id="7461" /> +<TGConnectingPoint num="23" id="7462" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="MAPPER_Bus" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="1" privacy="0" referenceAttack="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1108" id="7481" > +<cdparam x="103" y="1267" /> +<sizeparam width="419" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Symbol2ChipSeq_Chips2Octet" value="CP0" /> +<TGConnectingPoint num="0" id="7473" /> +<TGConnectingPoint num="1" id="7474" /> +<TGConnectingPoint num="2" id="7475" /> +<TGConnectingPoint num="3" id="7476" /> +<TGConnectingPoint num="4" id="7477" /> +<TGConnectingPoint num="5" id="7478" /> +<TGConnectingPoint num="6" id="7479" /> +<TGConnectingPoint num="7" id="7480" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" /> +<mappedAttributes type="int" name="destinationAddress" value="123" /> +<mappedAttributes type="int" name="sourceAddress" value="123" /> +<mappedAttributes type="int" name="counter" value="123" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="7472" > +<father id="7481" num="0" /> +<cdparam x="292" y="1303" /> +<sizeparam width="212" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" /> +<infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" /> +<TGConnectingPoint num="0" id="7464" /> +<TGConnectingPoint num="1" id="7465" /> +<TGConnectingPoint num="2" id="7466" /> +<TGConnectingPoint num="3" id="7467" /> +<TGConnectingPoint num="4" id="7468" /> +<TGConnectingPoint num="5" id="7469" /> +<TGConnectingPoint num="6" id="7470" /> +<TGConnectingPoint num="7" id="7471" /> +<extraparam> +<info value="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="INTL_MSS" bufferType="3" packedBinaryIn="" width="" bitInOffset="" inputOffset="" packedBinaryOut="" bitOutOffset="" outputOffset="" offsetPerm="" lengthPerm="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="7499" > +<cdparam x="105" y="1396" /> +<sizeparam width="405" height="88" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Chip2Octet_CWL" value="CP0" /> +<TGConnectingPoint num="0" id="7491" /> +<TGConnectingPoint num="1" id="7492" /> +<TGConnectingPoint num="2" id="7493" /> +<TGConnectingPoint num="3" id="7494" /> +<TGConnectingPoint num="4" id="7495" /> +<TGConnectingPoint num="5" id="7496" /> +<TGConnectingPoint num="6" id="7497" /> +<TGConnectingPoint num="7" id="7498" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="7490" > +<father id="7499" num="0" /> +<cdparam x="327" y="1437" /> +<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" /> +<infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" /> +<TGConnectingPoint num="0" id="7482" /> +<TGConnectingPoint num="1" id="7483" /> +<TGConnectingPoint num="2" id="7484" /> +<TGConnectingPoint num="3" id="7485" /> +<TGConnectingPoint num="4" id="7486" /> +<TGConnectingPoint num="5" id="7487" /> +<TGConnectingPoint num="6" id="7488" /> +<TGConnectingPoint num="7" id="7489" /> +<extraparam> +<info value="Zigbee_TX::cwl_ch_in" portName="cwl_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="FEP_MSS" bufferType="0" baseAddress="0x123" numSamples="1234" bank="0" dataType="int8" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="7517" > +<cdparam x="627" y="1252" /> +<sizeparam width="295" height="145" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_sink" value="CP0" /> +<TGConnectingPoint num="0" id="7509" /> +<TGConnectingPoint num="1" id="7510" /> +<TGConnectingPoint num="2" id="7511" /> +<TGConnectingPoint num="3" id="7512" /> +<TGConnectingPoint num="4" id="7513" /> +<TGConnectingPoint num="5" id="7514" /> +<TGConnectingPoint num="6" id="7515" /> +<TGConnectingPoint num="7" id="7516" /> +<extraparam> +<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" /> +<attributes reference="Double_DMA_transfer" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="7508" > +<father id="7517" num="0" /> +<cdparam x="701" y="1315" /> +<sizeparam width="170" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" /> +<infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" /> +<TGConnectingPoint num="0" id="7500" /> +<TGConnectingPoint num="1" id="7501" /> +<TGConnectingPoint num="2" id="7502" /> +<TGConnectingPoint num="3" id="7503" /> +<TGConnectingPoint num="4" id="7504" /> +<TGConnectingPoint num="5" id="7505" /> +<TGConnectingPoint num="6" id="7506" /> +<TGConnectingPoint num="7" id="7507" /> +<extraparam> +<info value="Zigbee_TX::sink_ch_in" portName="sink_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="ADAIF_MSS" bufferType="2" numSamples="" baseAddress="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1108" id="7535" > +<cdparam x="106" y="1143" /> +<sizeparam width="421" height="85" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" /> +<infoparam name="CP_Source_to_Bits2Symbol" value="CP0" /> +<TGConnectingPoint num="0" id="7527" /> +<TGConnectingPoint num="1" id="7528" /> +<TGConnectingPoint num="2" id="7529" /> +<TGConnectingPoint num="3" id="7530" /> +<TGConnectingPoint num="4" id="7531" /> +<TGConnectingPoint num="5" id="7532" /> +<TGConnectingPoint num="6" id="7533" /> +<TGConnectingPoint num="7" id="7534" /> +<extraparam> +<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" /> +<attributes reference="DMA_transfer" /> +<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="MAPPER_MSS" /> +<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" /> +<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" /> +<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="ADAIF_MSS" /> +<mappedAttributes type="addr" name="sourceAddress" value="0x123" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1110" id="7526" > +<father id="7535" num="0" /> +<cdparam x="280" y="1181" /> +<sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" /> +<infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" /> +<TGConnectingPoint num="0" id="7518" /> +<TGConnectingPoint num="1" id="7519" /> +<TGConnectingPoint num="2" id="7520" /> +<TGConnectingPoint num="3" id="7521" /> +<TGConnectingPoint num="4" id="7522" /> +<TGConnectingPoint num="5" id="7523" /> +<TGConnectingPoint num="6" id="7524" /> +<TGConnectingPoint num="7" id="7525" /> +<extraparam> +<info value="Zigbee_TX::symbol2ChipSeq_ch_in" portName="symbol2ChipSeq_ch_in" referenceCommunicationName="Zigbee_TX" typeName="port" mappedMemory="MAPPER_MSS" bufferType="1" numSamplesDataIn="" baseAddressDataIn="" bitsPerSymbolDataIn="" symmetricalValueDataIn="OFF" baseAddressDataOut="0x123" baseAddressLUT="0x123" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="125" id="7536" > +<cdparam x="1367" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1367" y="660" id="6997" /> +<P2 x="1076" y="660" id="7023" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7537" > +<cdparam x="1147" y="508" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="508" id="7183" /> +<P2 x="1076" y="635" id="7021" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7538" > +<cdparam x="1298" y="875" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1249" y="850" id="7331" /> +<P2 x="1076" y="685" id="7026" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7539" > +<cdparam x="1019" y="805" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="780" id="7356" /> +<P2 x="864" y="685" id="7034" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7540" > +<cdparam x="1004" y="531" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="566" id="7286" /> +<P2 x="864" y="635" id="7028" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7541" > +<cdparam x="1185" y="660" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1467" y="660" id="6998" /> +<P2 x="1527" y="660" id="6972" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7542" > +<cdparam x="356" y="788" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="788" id="7050" /> +<P2 x="356" y="832" id="7129" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7543" > +<cdparam x="554" y="806" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="807" id="6713" /> +<P2 x="442" y="685" id="7033" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7544" > +<cdparam x="559" y="863" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="560" y="857" id="6716" /> +<P2 x="481" y="857" id="7132" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7545" > +<cdparam x="586" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="541" y="949" id="7070" /> +<P2 x="418" y="882" id="7143" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7546" > +<cdparam x="165" y="927" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="208" y="938" id="7104" /> +<P2 x="293" y="882" id="7142" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7547" > +<cdparam x="355" y="576" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="580" id="6828" /> +<P2 x="231" y="635" id="7019" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7548" > +<cdparam x="355" y="541" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="545" id="6823" /> +<P2 x="356" y="497" id="7159" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7549" > +<cdparam x="543" y="522" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="522" id="6743" /> +<P2 x="442" y="635" id="7027" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7550" > +<cdparam x="536" y="475" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="543" y="472" id="6741" /> +<P2 x="481" y="472" id="7157" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7551" > +<cdparam x="549" y="337" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="454" y="395" id="6769" /> +<P2 x="418" y="447" id="7162" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7552" > +<cdparam x="155" y="323" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="155" y="396" id="6803" /> +<P2 x="293" y="447" id="7161" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7553" > +<cdparam x="357" y="778" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="356" y="737" id="7045" /> +<P2 x="231" y="685" id="7024" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7554" > +<cdparam x="1654" y="758" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="737" id="6848" /> +<P2 x="1652" y="685" id="6975" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7555" > +<cdparam x="1651" y="573" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1652" y="586" id="6950" /> +<P2 x="1652" y="635" id="6970" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7556" > +<cdparam x="959" y="527" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="960" y="531" id="7281" /> +<P2 x="960" y="483" id="7311" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7557" > +<cdparam x="1140" y="461" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1147" y="458" id="7181" /> +<P2 x="1085" y="458" id="7309" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7558" > +<cdparam x="1189" y="374" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1022" y="376" id="7209" /> +<P2 x="1022" y="433" id="7314" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7559" > +<cdparam x="795" y="360" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="738" y="384" id="7261" /> +<P2 x="897" y="433" id="7313" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7560" > +<cdparam x="970" y="831" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="970" y="831" id="7361" /> +<P2 x="970" y="875" id="7440" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7561" > +<cdparam x="1173" y="906" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1174" y="900" id="7333" /> +<P2 x="1095" y="900" id="7443" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7562" > +<cdparam x="1200" y="1013" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="1200" y="978" id="7381" /> +<P2 x="1032" y="925" id="7454" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="7563" > +<cdparam x="779" y="970" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="868" y="981" id="7415" /> +<P2 x="907" y="925" id="7453" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file