diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/Branching/DEMUX.js | 64 | ||||
-rw-r--r-- | js/Branching/DEMUX_f.js | 64 | ||||
-rw-r--r-- | js/Branching/MUX.js | 63 | ||||
-rw-r--r-- | js/Branching/MUX_f.js | 63 | ||||
-rw-r--r-- | js/MatrixOp/MATCATH.js | 62 | ||||
-rw-r--r-- | js/MatrixOp/MATCATV.js | 63 | ||||
-rw-r--r-- | js/Misc/CBLOCK.js | 129 | ||||
-rw-r--r-- | js/Misc/HYSTHERESIS.js | 51 | ||||
-rw-r--r-- | js/NonLinear/MAXMIN.js | 69 |
9 files changed, 610 insertions, 18 deletions
diff --git a/js/Branching/DEMUX.js b/js/Branching/DEMUX.js index 1c1bb24e..7720e05c 100644 --- a/js/Branching/DEMUX.js +++ b/js/Branching/DEMUX.js @@ -1,3 +1,63 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1565) /* autogenerated from "macros/Branching/DEMUX.sci" */ -None +function DEMUX() { +DEMUX.prototype.get = function DEMUX() { +} +DEMUX.prototype.set = function DEMUX() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,out,exprs]=scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("intvec",-1),exprs); +if (!ok) { +break +} +if (size(out,"*")==1) { +if (out<2||out>31) { +message("Block must have at least 2 and at most 31 output ports"); +ok=false; +} else { +[model,graphics,ok]=check_io(model,graphics,0,-transpose([1:out]),[],[]); +} +} else { +if (size(out,"*")<2||or(out==0)||size(out,"*")>31) { +message(["Block must have at least 2 and at most 31 output ports","size 0 is not allowed"]); +ok=false; +} else { +if (min(out)<0) { +nin=0; +} else { +nin=sum(out); +} +[model,graphics,ok]=check_io(model,graphics,nin,out.slice(),[],[]); +if (ok) { +out=size(out,"*"); +} +} +} +if (ok) { +graphics.exprs=exprs; +model.ipar=out; +x.graphics=graphics; +x.model=model; +break +} +} +} +DEMUX.prototype.define = function DEMUX() { +out=2; +model=scicos_model(); +model.sim=list("multiplex",4); +model.in1=0; +model.out=-transpose([1:out]); +model.ipar=out; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,false]; +exprs=string(out); +gr_i=[]; +x=standard_define([.5,2],model,exprs,gr_i); +} +DEMUX.prototype.details = function DEMUX() { +} +} diff --git a/js/Branching/DEMUX_f.js b/js/Branching/DEMUX_f.js index da953f94..96181162 100644 --- a/js/Branching/DEMUX_f.js +++ b/js/Branching/DEMUX_f.js @@ -1,3 +1,63 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1564) /* autogenerated from "macros/Branching/DEMUX_f.sci" */ -None +function DEMUX_f() { +DEMUX_f.prototype.get = function DEMUX_f() { +} +DEMUX_f.prototype.set = function DEMUX_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,out,exprs]=scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("vec",-1),exprs); +if (!ok) { +break +} +if (size(out,"*")==1) { +if (out<2||out>8) { +message("Block must have at least 2 and at most 8 output ports"); +ok=false; +} else { +[model,graphics,ok]=check_io(model,graphics,0,-transpose([1:out]),[],[]); +} +} else { +if (size(out,"*")<2||size(out,"*")>8||or(out==0)) { +message(["Block must have at least 2 and at most 8 output ports","and size 0 is not allowed"] ); +ok=false; +} else { +if (min(out)<0) { +nin=0; +} else { +nin=sum(out); +} +[model,graphics,ok]=check_io(model,graphics,nin,out.slice(),[],[]); +if (ok) { +out=size(out,"*"); +} +} +} +if (ok) { +graphics.exprs=exprs; +model.ipar=out; +x.graphics=graphics; +x.model=model; +break +} +} +} +DEMUX_f.prototype.define = function DEMUX_f() { +out=2; +model=scicos_model(); +model.sim=list("demux",1); +model.in1=0; +model.out=-transpose([1:out]); +model.ipar=out; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,false]; +exprs=string(out); +gr_i=[]; +x=standard_define([.5,2],model,exprs,gr_i); +} +DEMUX_f.prototype.details = function DEMUX_f() { +} +} diff --git a/js/Branching/MUX.js b/js/Branching/MUX.js index 23736077..16c5a28a 100644 --- a/js/Branching/MUX.js +++ b/js/Branching/MUX.js @@ -1,3 +1,62 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1552) /* autogenerated from "macros/Branching/MUX.sci" */ -None +function MUX() { +MUX.prototype.get = function MUX() { +} +MUX.prototype.set = function MUX() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("intvec",-1),exprs); +if (!ok) { +break +} +if (size(in1,"*")==1) { +if (in1<2||in1>31) { +message("Block must have at least two input ports and at most 31"); +ok=false; +} else { +[model,graphics,ok]=check_io(model,graphics,-transpose([1:in1]),0,[],[]); +} +} else { +if (size(in1,"*")<2||or(in1==0)||size(in1,"*")>31) { +message(["Block must have at least two input ports","and at most 31. Size 0 is not allowed. "]); +ok=false; +} else { +if (min(in1)<0) { +nout=0; +} else { +nout=sum(in1); +} +[model,graphics,ok]=check_io(model,graphics,in1.slice(),nout,[],[]); +if (ok) { +in1=size(in1,"*"); +} +} +} +if (ok) { +graphics.exprs=exprs; +model.ipar=in1; +x.graphics=graphics; +x.model=model; +break +} +} +} +MUX.prototype.define = function MUX() { +in1=2; +model=scicos_model(); +model.sim=list("multiplex",4); +model.in1=-transpose([1:in1]); +model.out=0; +model.ipar=in1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=string(in1); +gr_i=[]; +x=standard_define([.5,2],model,exprs,gr_i); +} +MUX.prototype.details = function MUX() { +} +} diff --git a/js/Branching/MUX_f.js b/js/Branching/MUX_f.js index 6b55afac..5731fec6 100644 --- a/js/Branching/MUX_f.js +++ b/js/Branching/MUX_f.js @@ -1,3 +1,62 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1553) /* autogenerated from "macros/Branching/MUX_f.sci" */ -None +function MUX_f() { +MUX_f.prototype.get = function MUX_f() { +} +MUX_f.prototype.set = function MUX_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("vec",-1),exprs); +if (!ok) { +break +} +if (size(in1,"*")==1) { +if (in1<2||in1>8) { +message("Block must have at least two input ports and at most eight"); +ok=false; +} else { +[model,graphics,ok]=check_io(model,graphics,-transpose([1:in1]),0,[],[]); +} +} else { +if (size(in1,"*")<2||size(in1,"*")>8||or(in1==0)) { +message(["Block must have at least two input ports","and at most eight, and size 0 is not allowed. "]); +ok=false; +} else { +if (min(in1)<0) { +nout=0; +} else { +nout=sum(in1); +} +[model,graphics,ok]=check_io(model,graphics,in1.slice(),nout,[],[]); +if (ok) { +in1=size(in1,"*"); +} +} +} +if (ok) { +graphics.exprs=exprs; +model.ipar=in1; +x.graphics=graphics; +x.model=model; +break +} +} +} +MUX_f.prototype.define = function MUX_f() { +in1=2; +model=scicos_model(); +model.sim=list("mux",1); +model.in1=-transpose([1:in1]); +model.out=0; +model.ipar=in1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=string(in1); +gr_i=[]; +x=standard_define([0.5,2],model,exprs,gr_i); +} +MUX_f.prototype.details = function MUX_f() { +} +} diff --git a/js/MatrixOp/MATCATH.js b/js/MatrixOp/MATCATH.js index 7564d627..62f80c64 100644 --- a/js/MatrixOp/MATCATH.js +++ b/js/MatrixOp/MATCATH.js @@ -1,3 +1,61 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1467) /* autogenerated from "macros/MatrixOp/MATCATH.sci" */ -None +function MATCATH() { +MATCATH.prototype.get = function MATCATH() { +} +MATCATH.prototype.set = function MATCATH() { +x=arg1; +model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; +if (size(label,"*")>1) { +label="size(evstr("+label(2)+"),\'*\')"; +} +while (true) { +[ok,nin,lab]=scicos_getvalue("Set MATCATH block parameters",["Number of input"],list("vec",1),label); +if (!ok) { +break +} +label=lab; +in1=[-1*(ones(nin,1)),-(transpose([2:nin+1]))]; +out=[-1,0]; +it=-1*(ones(nin,1)); +ot=-1; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (ok) { +funtyp=4; +model.sim=list("mat_cath",funtyp); +graphics.exprs=label; +arg1.graphics=graphics; +arg1.model=model; +x=arg1; +break +} +} +} +MATCATH.prototype.define = function MATCATH() { +model=scicos_model(); +function_name="mat_cath"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in1=[-1,-1]; +model.in2=[-2,-3]; +model.intyp=[1,1]; +model.out=-1; +model.out2=0; +model.outtyp=-1; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.rpar=[]; +model.ipar=[]; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,false]; +label=[sci2exp(2)]; +gr_i=[]; +x=standard_define([2,3],model,label,gr_i); +} +MATCATH.prototype.details = function MATCATH() { +} +} diff --git a/js/MatrixOp/MATCATV.js b/js/MatrixOp/MATCATV.js index 445a2a75..0f581386 100644 --- a/js/MatrixOp/MATCATV.js +++ b/js/MatrixOp/MATCATV.js @@ -1,3 +1,62 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1452) /* autogenerated from "macros/MatrixOp/MATCATV.sci" */ -None +function MATCATV() { +MATCATV.prototype.get = function MATCATV() { +} +MATCATV.prototype.set = function MATCATV() { +x=arg1; +model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; +if (size(label,"*")>1) { +label="size(evstr("+label(2)+"),\'*\')"; +} +while (true) { +[ok,nin,lab]=scicos_getvalue("Set MATCATV block parameters",["Number od inputs"],list("vec",1),label); +if (!ok) { +break +} +label=lab; +in1=[-(transpose([2:nin+1])),-ones(nin,1)]; +it=-ones(nin,1); +ot=-1; +out=[0,-1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (ok) { +funtyp=4; +model.sim=list("mat_catv",funtyp); +graphics.exprs=label; +arg1.graphics=graphics; +arg1.model=model; +x=arg1; +break +} +} +} +MATCATV.prototype.define = function MATCATV() { +l1=[2,2]; +model=scicos_model(); +function_name="mat_catv"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in2=[-1,-1]; +model.in1=[-2,-3]; +model.intyp=[-1,-1]; +model.out=0; +model.out2=-1; +model.outtyp=-1; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.rpar=[]; +model.ipar=[]; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,false]; +label=[sci2exp(2)]; +gr_i=[]; +x=standard_define([2,3],model,label,gr_i); +} +MATCATV.prototype.details = function MATCATV() { +} +} diff --git a/js/Misc/CBLOCK.js b/js/Misc/CBLOCK.js index b85b314b..6a56633e 100644 --- a/js/Misc/CBLOCK.js +++ b/js/Misc/CBLOCK.js @@ -1,3 +1,128 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,5385) /* autogenerated from "macros/Misc/CBLOCK.sci" */ -None +function CBLOCK() { +CBLOCK.prototype.get = function CBLOCK() { +} +CBLOCK.prototype.set = function CBLOCK() { +x=arg1; +model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; +while (true) { +[ok,function_name,impli,i,o,ci,co,xx,ng,z,rpar,ipar,auto0,depu,dept,lab]=scicos_getvalue("Set C-Block2 block parameters",["simulation function","is block implicit? (y,n)","input ports sizes","output ports sizes","input event ports sizes","output events ports sizes","initial continuous state","number of zero crossing surfaces","initial discrete state","Real parameters vector","Integer parameters vector","initial firing vector (<0 for no firing)","direct feedthrough (y or n)","time dependence (y or n)"],list("str",1,"str",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec","sum(%6)","str",1,"str",1),label(1)); +if (!ok) { +break +} +label[1-1]=lab; +funam=stripblanks(function_name); +xx=xx.slice(); +z=z.slice(); +rpar=rpar.slice(); +ipar=int(ipar.slice()); +nx=size(xx,1); +nz=size(z,1); +i=int(i.slice()); +o=int(o.slice()); +nout=size(o,1); +ci=int(ci.slice()); +nevin=size(ci,1); +co=int(co.slice()); +nevout=size(co,1); +if (part(impli,1)=="y") { +funtyp=12004; +} else { +funtyp=2004; +} +if ([ci,co]!=[]) { +if (max([ci,co])>1) { +message("vector event links not supported"); +ok=false; +} +} +depu=stripblanks(depu); +if (part(depu,1)=="y") { +depu=true; +} else { +depu=false; +} +dept=stripblanks(dept); +if (part(dept,1)=="y") { +dept=true; +} else { +dept=false; +} +dep_ut=[depu,dept]; +if (funam==" ") { +break +} +if (model.sim(1)!=funam||sign(size(model.state,"*"))!=sign(nx)||sign(size(model.dstate,"*"))!=sign(nz)||model.nzcross!=ng||sign(size(model.evtout,"*"))!=sign(nevout)) { +tt=[]; +} +tt=label[2-1]; +while (true) { +[ok,tt,cancel]=CFORTR2(funam,tt); +if (!ok) { +if (cancel) { +break +} +} else { +[model,graphics,ok]=check_io(model,graphics,i,o,ci,co); +if (ok) { +model.sim=list(funam,funtyp); +model.in1=i; +model.out=o; +model.evtin=ci; +model.evtout=co; +model.state=xx; +model.dstate=z; +model.rpar=rpar; +model.ipar=ipar; +model.firing=auto0; +model.dep_ut=dep_ut; +model.nzcross=ng; +label[2-1]=tt; +x.model=model; +graphics.exprs=label; +x.graphics=graphics; +break +} +} +} +if (ok||cancel) { +break +} +} +} +CBLOCK.prototype.define = function CBLOCK() { +in1=1; +out=1; +clkin=[]; +clkout=[]; +x0=[]; +z0=[]; +typ="c"; +auto=[]; +rpar=[]; +ipar=[]; +funam="toto"; +ng=0; +model=scicos_model(); +model.sim=list(" ",2004); +model.in1=in1; +model.out=out; +model.evtin=clkin; +model.evtout=clkout; +model.state=x0; +model.dstate=z0; +model.rpar=rpar; +model.ipar=ipar; +model.blocktype=typ; +model.firing=auto; +model.dep_ut=[true,false]; +model.nzcross=ng; +label=list(transpose([funam,"n",sci2exp(in1),sci2exp(out),sci2exp(clkin),sci2exp(clkout),sci2exp(x0),sci2exp(0),sci2exp(z0),sci2exp(rpar),sci2exp(ipar),sci2exp(auto),"y","n"]),[]); +gr_i=[]; +x=standard_define([4,2],model,label,gr_i); +} +CBLOCK.prototype.details = function CBLOCK() { +} +} diff --git a/js/Misc/HYSTHERESIS.js b/js/Misc/HYSTHERESIS.js index a9909edf..140c8f6e 100644 --- a/js/Misc/HYSTHERESIS.js +++ b/js/Misc/HYSTHERESIS.js @@ -1,3 +1,50 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,1661) /* autogenerated from "macros/Misc/HYSTHERESIS.sci" */ -None +function HYSTHERESIS() { +HYSTHERESIS.prototype.get = function HYSTHERESIS() { +} +HYSTHERESIS.prototype.set = function HYSTHERESIS() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,high_lim,low_lim,out_high,out_low,nzz,exprs]=scicos_getvalue("Set parameters",["switch on at","switch off at","output when on","output when off","use zero crossing: yes (1), no (0)"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break +} +if (low_lim>high_lim) { +message("switch on value must be larger than switch off value"); +} else { +graphics.exprs=exprs; +model.rpar=transpose([high_lim,low_lim,out_high,out_low]); +if (nzz>0) { +nzz=2; +} +model.nzcross=nzz; +x.graphics=graphics; +x.model=model; +break +} +} +} +HYSTHERESIS.prototype.define = function HYSTHERESIS() { +in1=1; +ipar=[0]; +nzz=2; +rpar=[1,0,1,0]; +model=scicos_model(); +model.sim=list("hystheresis",4); +model.in1=in1; +model.out=1; +model.rpar=rpar; +model.nzcross=nzz; +model.nmode=1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[string(rpar),string(sign(nzz))]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); +} +HYSTHERESIS.prototype.details = function HYSTHERESIS() { +} +} diff --git a/js/NonLinear/MAXMIN.js b/js/NonLinear/MAXMIN.js index fbabbd83..aea7b9e6 100644 --- a/js/NonLinear/MAXMIN.js +++ b/js/NonLinear/MAXMIN.js @@ -1,3 +1,68 @@ -Syntax error in input LexToken(TRANSPOSE,"'",1,2811) /* autogenerated from "macros/NonLinear/MAXMIN.sci" */ -None +function MAXMIN() { +MAXMIN.prototype.get = function MAXMIN() { +} +MAXMIN.prototype.set = function MAXMIN() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,mm,nin,zcr,exprs]=scicos_getvalue("Set Max/Min block parameters",["Min (1) or Max (2) ","Number of input vectors (1 or 2)","zero-crossing (1: yes, 0;no)"],list("vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break +} +if (zcr!=0) { +zcr=-1; +} +if (mm!=1) { +mm=2; +} +if (nin!=1&&nin!=2) { +message("Wrong number of inputs, only 1 and 2 allowed"); +ok=false; +} +if (ok) { +if (nin==1) { +[model,graphics,ok]=check_io(model,graphics,-1,1,[],[]); +} else { +[model,graphics,ok]=check_io(model,graphics,[-1,-1],-1,[],[]); +} +} +if (ok) { +model.nzcross=zcr; +if (nin==1) { +model.nmode=abs(zcr); +} else { +model.nmode=zcr; +} +model.ipar=mm; +if (mm==1) { +label="MIN"; +} else { +label="MAX"; +} +graphics.style="MAXMIN;displayedLabel="+label; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break +} +} +} +MAXMIN.prototype.define = function MAXMIN() { +model=scicos_model(); +model.sim=list("minmax",4); +model.out=1; +model.in1=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +model.ipar=0; +exprs=[string(transpose([2,1,1]))]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); +x.graphics.style="MAXMIN;displayedLabel=MAX"; +} +MAXMIN.prototype.details = function MAXMIN() { +} +} |