summaryrefslogtreecommitdiff
path: root/js/Misc/scifunc_block_m.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/Misc/scifunc_block_m.js')
-rw-r--r--js/Misc/scifunc_block_m.js97
1 files changed, 49 insertions, 48 deletions
diff --git a/js/Misc/scifunc_block_m.js b/js/Misc/scifunc_block_m.js
index 1a181dc5..7571eac0 100644
--- a/js/Misc/scifunc_block_m.js
+++ b/js/Misc/scifunc_block_m.js
@@ -31,64 +31,65 @@ function scifunc_block_m() {
model.dep_ut = [true,false];
exprs = list([[sci2exp([in1,in1])],[sci2exp([out,out])],[sci2exp(clkin)],[sci2exp(clkout)],[strcat(sci2exp(x0))],[strcat(sci2exp(z0))],[strcat(sci2exp(rpar))],[sci2exp(auto)],[sci2exp(0)]],list("y1=sin(u1)"," "," ","y1=sin(u1)"," "," "," "));
gr_i = [];
- x = standard_define([4,2],model,exprs,gr_i);
+ this.x = standard_define([4,2],model,exprs,gr_i);
}
scifunc_block_m.prototype.details = function scifunc_block_m() {
+ return this.x;
}
scifunc_block_m.prototype.get = function scifunc_block_m() {
}
scifunc_block_m.prototype.set = function scifunc_block_m() {
needcompile = 0;
- x = arg1;
+ this.x = arg1;
model = arg1.model;
graphics = arg1.graphics;
exprs = graphics.exprs;
while (true) {
- [ok,i,o,ci,co,xx,z,rpar,auto0,deptime,lab] = scicos_getvalue([["Set scifunc_block parameters"],["only regular blocks supported"]],[["input ports sizes"],["output port sizes"],["input event ports sizes"],["output events ports sizes"],["initial continuous state"],["initial discrete state"],["System parameters vector"],["initial firing vector (<0 for no firing)"],["is block always active (0:no, 1:yes)"]],list("mat",[-1,2],"mat",[-2,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs[1-1]);
- if (!ok) {
-break;
-}
- exprs[1-1] = lab;
- xx = xx.slice();
- z = z.slice();
- rpar = rpar.slice();
- it = ones(1,size(i,1));
- ot = ones(1,size(o,1));
- nrp = prod(size(rpar));
- ni = size(i,1);
- no = size(o,1);
- ci = int(ci.slice());
- nci = size(ci,1);
- co = int(co.slice());
- nco = size(co,1);
- [ok,tt,dep_ut] = genfunc2(exprs[2-1],i,o,nci,nco,size(xx,1),size(z,1),nrp,"c");
- dep_ut[2-1] = (1==deptime);
- if (!ok) {
-break;
-}
- [model,graphics,ok] = set_io(model,graphics,list(i,it),list(o,ot),ci,co);
- if (ok) {
- auto = auto0;
- model.state = xx;
- model.dstate = z;
- model.rpar = rpar;
- if (model.ipar!=0) {
- model.opar = model.ipar;
- model.ipar = 0;
-}
- if (or(model.opar!=tt)) {
- needcompile = 4;
-}
- model.opar = tt;
- model.firing = auto;
- model.dep_ut = dep_ut;
- x.model = model;
- exprs[2-1] = tt;
- graphics.exprs = exprs;
- x.graphics = graphics;
-break;
-}
-}
-needcompile=resume(needcompile)
+ [ok,i,o,ci,co,xx,z,rpar,auto0,deptime,lab] = scicos_getvalue([["Set scifunc_block parameters"],["only regular blocks supported"]],[["input ports sizes"],["output port sizes"],["input event ports sizes"],["output events ports sizes"],["initial continuous state"],["initial discrete state"],["System parameters vector"],["initial firing vector (<0 for no firing)"],["is block always active (0:no, 1:yes)"]],list("mat",[-1,2],"mat",[-2,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs[1-1]);
+ if (!ok) {
+ break;
+ }
+ exprs[1-1] = lab;
+ xx = xx.slice();
+ z = z.slice();
+ rpar = rpar.slice();
+ it = ones(1,size(i,1));
+ ot = ones(1,size(o,1));
+ nrp = prod(size(rpar));
+ ni = size(i,1);
+ no = size(o,1);
+ ci = int(ci.slice());
+ nci = size(ci,1);
+ co = int(co.slice());
+ nco = size(co,1);
+ [ok,tt,dep_ut] = genfunc2(exprs[2-1],i,o,nci,nco,size(xx,1),size(z,1),nrp,"c");
+ dep_ut[2-1] = (1==deptime);
+ if (!ok) {
+ break;
+ }
+ [model,graphics,ok] = set_io(model,graphics,list(i,it),list(o,ot),ci,co);
+ if (ok) {
+ auto = auto0;
+ model.state = xx;
+ model.dstate = z;
+ model.rpar = rpar;
+ if (model.ipar!=0) {
+ model.opar = model.ipar;
+ model.ipar = 0;
+ }
+ if (or(model.opar!=tt)) {
+ needcompile = 4;
+ }
+ model.opar = tt;
+ model.firing = auto;
+ model.dep_ut = dep_ut;
+ this.x.model = model;
+ exprs[2-1] = tt;
+ graphics.exprs = exprs;
+ this.x.graphics = graphics;
+ break;
+ }
+ }
+ needcompile=resume(needcompile)
}
}