summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data_structures_correct/CONST_m.js19
-rw-r--r--data_structures_correct/SELF_SWITCH.js30
-rw-r--r--data_structures_correct/SWITCH_f.js21
-rw-r--r--dependencies.js77
-rw-r--r--finalmodsheet.xsl8
5 files changed, 151 insertions, 4 deletions
diff --git a/data_structures_correct/CONST_m.js b/data_structures_correct/CONST_m.js
index 3031351..0d6a567 100644
--- a/data_structures_correct/CONST_m.js
+++ b/data_structures_correct/CONST_m.js
@@ -15,6 +15,25 @@ function CONST_m() {
this.x.graphics.exprs = new ScilabString([sci2exp(this.c)]);
return new BasicBlock(this.x);
}
+ CONST_m.prototype.internal = function CONST_m() {
+ this.c = [1];
+ var model = new scicos_model();
+ model.sim = list(new ScilabString(["cstblk4"]), new ScilabDouble([4]));
+ model.in = new ScilabDouble();
+ model.out = new ScilabDouble([this.c.length]);
+ model.in2 = new ScilabDouble();
+ model.out2 = new ScilabDouble([this.c.length]);
+ model.rpar = new ScilabDouble(this.c);
+ model.opar = list();
+ model.blocktype = new ScilabString(["d"]);
+ model.dep_ut = new ScilabBoolean([false, false]);
+
+ var gr_i = new ScilabString(["xstringb(orig(1),orig(2),\"CONST_m\",sz(1),sz(2));"]);
+ var exprs = new ScilabString([sci2exp(this.c)]);
+ var block = new standard_define(new ScilabDouble([80, 80]), model, exprs, gr_i); // 1 -> 80
+ block.graphics.style = new ScilabString(["CONST_m"]);
+ return block;
+ }
CONST_m.prototype.define = function CONST_m() {
this.c = [1];
var model = new scicos_model();
diff --git a/data_structures_correct/SELF_SWITCH.js b/data_structures_correct/SELF_SWITCH.js
new file mode 100644
index 0000000..286d822
--- /dev/null
+++ b/data_structures_correct/SELF_SWITCH.js
@@ -0,0 +1,30 @@
+function SELF_SWITCH() {
+
+ SELF_SWITCH.prototype.define = function SELF_SWITCH() {
+ this.stateOpen = true;
+
+ this.x = scicos_block();
+ this.x.gui = new ScilabString(["SELF_SWITCH"]);
+ this.x.graphics.sz = new ScilabDouble([2, 2]);
+ this.x.graphics.gr_i = new ScilabDouble();
+ this.x.graphics.pin = new ScilabDouble([0]);
+ this.x.graphics.pout = new ScilabDouble([0]);
+ this.x.model.sim = new ScilabString(["csuper"]);
+ this.x.model.in = new ScilabDouble([1]);
+ this.x.model.out = new ScilabDouble([1]);
+ this.x.model.blocktype = new ScilabString(["h"]);
+ this.x.model.dep_ut = new ScilabBoolean([false, false]);
+ this.x.model.rpar = genSwitchInnerDiagram(this.stateOpen);
+ this.x.model.opar = list(new ScilabBoolean([this.stateOpen]));
+ this.x.graphics.in_implicit = new ScilabString(["E"]);
+ this.x.graphics.in_style = new ScilabString([""]);
+ this.x.graphics.out_implicit = new ScilabString(["E"]);
+ this.x.graphics.out_style = new ScilabString([""]);
+ this.x.graphics.style = new ScilabString(["SELF_SWITCH;SELF_SWITCH_OFF"]);
+ return new BasicBlock(this.x);
+ }
+
+ SELF_SWITCH.prototype.details = function SELF_SWITCH() {
+ return this.x;
+ }
+}
diff --git a/data_structures_correct/SWITCH_f.js b/data_structures_correct/SWITCH_f.js
index ec4e1d7..c9cefb1 100644
--- a/data_structures_correct/SWITCH_f.js
+++ b/data_structures_correct/SWITCH_f.js
@@ -20,6 +20,27 @@ function SWITCH_f() {
this.x = new standard_define(new ScilabDouble([2, 2]), model, exprs, gr_i);
return new BasicBlock(this.x);
}
+
+ SWITCH_f.prototype.internal = function SWITCH_f() {
+ this.i0 = 0;
+ this.in1 = [[-1],[-1]];
+ this.nin = 2;
+
+ var model = scicos_model();
+ model.sim=list(new ScilabString(["switchn"]),new ScilabDouble([2]));
+ model.in=new ScilabDouble(...this.in1);
+ model.out = new ScilabDouble([-1]);
+ model.ipar=new ScilabDouble([this.i0]);
+ model.blocktype = new ScilabString(["c"]);
+ model.firing = new ScilabDouble();
+ model.dep_ut = new ScilabBoolean([true,true]);
+
+ var exprs = new ScilabString([this.nin],[this.i0+1]);
+
+ var gr_i = new ScilabString(["xstringb(orig(1),orig(2),\"SWITCH_f\",sz(1),sz(2));"]);
+ var block=new standard_define(new ScilabDouble([2,2]),model,exprs,gr_i);
+ return block;
+ }
SWITCH_f.prototype.details = function SWITCH_f() {
return this.x;
diff --git a/dependencies.js b/dependencies.js
index 2c09e5e..36106e8 100644
--- a/dependencies.js
+++ b/dependencies.js
@@ -1418,3 +1418,80 @@ function ascii() {
return convertAscii;
}
+function genSwitchInnerDiagram(stateOpen) {
+ diagram = scicos_diagram();
+ // Input forward
+ diagram.objs.push(new IN_f().internal());
+ diagram.objs[0].graphics.pout = new ScilabDouble([5]);
+ diagram.objs[0].graphics.flip = new ScilabBoolean([true]);
+ diagram.objs[0].model.uid = new ScilabString([count]);
+ diagram.objs[0].doc = list(new ScilabString([count++]));
+
+ // Output's forward
+ diagram.objs.push(new OUT_f().internal());
+ diagram.objs[1].graphics.pin = new ScilabDouble([7]);
+ diagram.objs[1].graphics.flip = new ScilabBoolean([true]);
+ diagram.objs[1].model.outtyp = new ScilabDouble();
+ diagram.objs[1].model.uid = new ScilabString([count]);
+ diagram.objs[1].doc = list(new ScilabString([count++]));
+
+ diagram.objs.push(new CONST_m().internal());
+ diagram.objs[2].graphics.pout = new ScilabDouble([6]);
+ diagram.objs[2].graphics.flip = new ScilabBoolean([true]);
+ diagram.objs[2].graphics.exprs = new ScilabString(["0"]);
+ diagram.objs[2].graphics.out_implicit = new ScilabString(["E"]);
+ diagram.objs[2].graphics.out_style = new ScilabString(["ExplicitOutputPort;align=right;verticalAlign=middle;spacing=10.0;rotation=0"]);
+ diagram.objs[2].graphics.out_label = new ScilabString([""]);
+ diagram.objs[2].model.rpar = new ScilabDouble([0]);
+ diagram.objs[2].model.uid = new ScilabString([count]);
+ diagram.objs[2].doc = list(new ScilabString([count++]));
+
+ diagram.objs.push(new SWITCH_f().internal());
+ diagram.objs[3].graphics.pin = new ScilabDouble([5], [6]);
+ diagram.objs[3].graphics.flip = new ScilabBoolean([true]);
+ diagram.objs[3].graphics.pout = new ScilabDouble([7]);
+ diagram.objs[3].graphics.in_implicit = new ScilabString(["E"], ["E"]);
+ diagram.objs[3].graphics.in_style = new ScilabString(["ExplicitInputPort;align=left;verticalAlign=middle;spacing=10.0;rotation=0"], ["ExplicitInputPort;align=left;verticalAlign=middle;spacing=10.0;rotation=0"]);
+ diagram.objs[3].graphics.in_label = new ScilabString([""], [""]);
+ diagram.objs[3].graphics.out_implicit = new ScilabString(["E"]);
+ diagram.objs[3].graphics.out_style = new ScilabString(["ExplicitOutputPort;align=right;verticalAlign=middle;spacing=10.0;rotation=0"]);
+ diagram.objs[3].graphics.out_label = new ScilabString([""]);
+ diagram.objs[3].graphics.style = new ScilabString(["SWITCH_f"]);
+ diagram.objs[3].model.in2 = new ScilabDouble([1], [1]);
+ diagram.objs[3].model.intyp = new ScilabDouble([1], [1]);
+ diagram.objs[3].model.out2 = new ScilabDouble([1]);
+ diagram.objs[3].model.uid = new ScilabString([count]);
+ diagram.objs[3].doc = list(new ScilabString([count++]));
+
+ if (stateOpen == true) {
+ diagram.objs[3].model.ipar = new ScilabDouble([1]);
+ diagram.objs[3].graphics.exprs = new ScilabString(["2"], ["2"]);
+ } else {
+ diagram.objs[3].model.ipar = new ScilabDouble([0]);
+ diagram.objs[3].graphics.exprs = new ScilabString(["2"], ["1"]);
+ }
+
+ // IN_f <-> SWITCH_f
+ diagram.objs[4] = scicos_link({
+ xx: new ScilabDouble([0], [0]),
+ yy: new ScilabDouble([0], [0]),
+ from: new ScilabDouble([1, 1, 0]),
+ to: new ScilabDouble([4, 1, 1])
+ });
+ // CONST_m <-> SWITCH_f
+ diagram.objs[5] = scicos_link({
+ xx: new ScilabDouble([0], [0]),
+ yy: new ScilabDouble([0], [0]),
+ from: new ScilabDouble([3, 1, 0]),
+ to: new ScilabDouble([4, 2, 1])
+ });
+ // SWITCH_f <-> OUT_f
+ diagram.objs[6] = scicos_link({
+ xx: new ScilabDouble([0], [0]),
+ yy: new ScilabDouble([0], [0]),
+ from: new ScilabDouble([4, 1, 0]),
+ to: new ScilabDouble([2, 1, 1])
+ });
+
+ return diagram;
+}
diff --git a/finalmodsheet.xsl b/finalmodsheet.xsl
index 8b9c804..35bcf08 100644
--- a/finalmodsheet.xsl
+++ b/finalmodsheet.xsl
@@ -172,7 +172,7 @@ Look for TAG:Break1!!!
</xsl:template>
<xsl:template name="Object" match="Object">
<xsl:element name="Array">
- <xsl:if test="name(..)='BasicBlock' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or name(..)='VoltageSensorBlock'">
+ <xsl:if test="name(..)='BasicBlock' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or name(..)='VoltageSensorBlock' or name(..)='SuperBlock'">
<xsl:if test="@as">
<xsl:attribute name="as">
<xsl:value-of select="@as" />
@@ -200,7 +200,7 @@ Look for TAG:Break1!!!
-->
<xsl:template name="Array" match="Array">
<xsl:element name="Array">
- <xsl:if test="name(..)='BasicBlock' or @as='context' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or nmae(..)='VoltageSensorBlock'">
+ <xsl:if test="name(..)='BasicBlock' or @as='context' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or nmae(..)='VoltageSensorBlock' or name(..)='SuperBlock'">
<xsl:if test="@as">
<xsl:attribute name="as">
<xsl:value-of select="@as" />
@@ -1581,7 +1581,7 @@ Look for TAG:Break1!!!
</xsl:template>
<xsl:template name="ScilabDouble" match="ScilabDouble">
<xsl:element name="ScilabDouble">
- <xsl:if test="name(..)='BasicBlock' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or name(..)='VoltageSensorBlock'">
+ <xsl:if test="name(..)='BasicBlock' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or name(..)='VoltageSensorBlock' or name(..)='SuperBlock'">
<xsl:if test="@as">
<xsl:attribute name="as">
<xsl:value-of select="@as" />
@@ -1613,7 +1613,7 @@ Look for TAG:Break1!!!
</xsl:template>
<xsl:template name="ScilabString" match="ScilabString">
<xsl:element name="ScilabString">
- <xsl:if test="name(..)='BasicBlock' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or name(..)='VoltageSensorBlock'">
+ <xsl:if test="name(..)='BasicBlock' or name(..)='AfficheBlock' or name(..)='BigSom' or name(..)='RoundBlock' or name(..)='GroundBlock' or name(..)='EventInBlock' or name(..)='EventOutBlock' or name(..)='ImplicitInBlock' or name(..)='Product' or name(..)='ImplicitOutBlock' or name(..)='SuperBlock' or name(..)='ExplicitInBlock' or name(..)='ExplicitOutBlock' or name(..)='Summation' or name(..)='TextBlock' or name(..)='VoltageSensorBlock' or name(..)='SuperBlock'">
<xsl:if test="@as">
<xsl:attribute name="as">
<xsl:value-of select="@as" />