diff options
338 files changed, 14180 insertions, 12048 deletions
@@ -1,6 +1,7 @@ __pycache__/ parsetab.py parser.out +*.old *.lex *.pyc *.yacc @@ -9,7 +9,7 @@ all: combined.js combined.js: $(JSFILES) Makefile @echo -n "Making $@ ... "; \ count=0 totalcount=0; \ - for f in $(JSFILES); do \ + for f in $(sort $(JSFILES)); do \ totalcount=$$(( totalcount+1 )); \ grep -q 'Syntax error' $$f && continue; \ cat $$f; \ @@ -19,13 +19,18 @@ combined.js: $(JSFILES) Makefile echo "/* made from $$count/$$totalcount files */" >> $@; \ echo "made $@ from $$count/$$totalcount files" -js/%.js: macros/%.sci sci2jsyacc.py parsetab.py sci2jslex.py +js/%.lex: macros/%.sci sci2jslex.py ./sci2jslex.py $< > js/$*.lex - ./sci2jsyacc.py $< > $@ 2> js/$*.yacc + +js/%.pickle: macros/%.sci sci2jsyacc.py parsetab.py sci2jslex.py + ./sci2jsyacc.py $< $@ 1 > js/$*.js.old 2> js/$*.yacc.old + +js/%.js: macros/%.sci js/%.pickle sci2jsyacc.py parsetab.py sci2jslex.py + ./sci2jsyacc.py $< js/$*.pickle 2 > $@ 2> js/$*.yacc parsetab.py: sci2jsyacc.py sci2jslex.py @rm -f $@* parser.out - ./sci2jsyacc.py /dev/null > /dev/null + ./sci2jsyacc.py /dev/null /dev/null 3 > /dev/null $(JSFILES): | $(JSDIRS) @@ -33,6 +38,6 @@ $(JSDIRS): mkdir -p $@ yacc: macros/Sinks/CSCOPE.sci - ./sci2jslex.py $< 2>&1 && ./sci2jsyacc.py $< 2>&1 + ./sci2jslex.py $< 2>&1 && ./sci2jsyacc.py $< /dev/null 3 2>&1 .SECONDARY: diff --git a/combined.js b/combined.js index cd1f9165..dff40a9a 100644 --- a/combined.js +++ b/combined.js @@ -1,524 +1,375 @@ -/* autogenerated from "macros/Hydraulics/Bache.sci" */ -function Bache() { - Bache.prototype.define = function Bache() { -in1=2; -out=3; +/* autogenerated from "macros/Branching/CLKFROM.sci" */ +function CLKFROM() { + CLKFROM.prototype.define = function CLKFROM() { model=scicos_model(); -model.in1=[-transpose([1:in1])]; -model.out=[-transpose([1:out])]; -Patm=1.013e5; -A=1; -ze1=40; -ze2=0; -zs1=40; -zs2=0; -z0=30; -T0=290; -p_rho=0; -model.rpar=[[Patm],[A],[ze1],[ze2],[zs1],[zs2],[z0],[T0],[p_rho]]; -model.sim="Bache"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="Bache"; -mo.inputs=["Ce1","Ce2"]; -mo.outputs=["Cs1","Cs2","yNiveau"]; -mo.parameters=list([["Patm"],["A"],["ze1"],["ze2"],["zs1"],["zs2"],["z0"],["T0"],["p_rho"]],[[Patm],[A],[ze1],[ze2],[zs1],[zs2],[z0],[T0],[p_rho]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[[string(Patm)],[string(A)],[string(ze1)],[string(ze2)],[string(zs1)],[string(zs2)],[string(z0)],[string(T0)],[string(p_rho)]]; -gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=[["I"],["I"]]; -x.graphics.out_implicit=[["I"],["I"],["E"]]; +model.sim="clkfrom"; +model.evtout=1; +model.opar=list("A"); +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs="A"; +x=standard_define([2,1],model,exprs," "); +x.graphics.id="From"; } - Bache.prototype.details = function Bache() { + CLKFROM.prototype.details = function CLKFROM() { } - Bache.prototype.get = function Bache() { + CLKFROM.prototype.get = function CLKFROM() { } - Bache.prototype.set = function Bache() { + CLKFROM.prototype.set = function CLKFROM() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; while (true) { -[ok,Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho,exprs]=scicos_getvalue("Parametres de la bache",[["Pression dans le ciel de la bache : Patm (Pa)"],["Section de la bache : A (m2)"],["Altitude du piquage d entrée 1: ze1 (m)"],["Altitude du piquage d entrée 2: ze2 (m)"],["Altitude du piquage de sortie 1: zs1 (m)"],["Altitude du piquage de sortie 2: zs2 (m)"],["Altitude initiale du fluide : z0 (m)"],["Température initiale du fluide : T0 (K)"],["Si >0, masse volumique imposée du fluide : p_rho (kg/m3)"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); +[ok,tag,exprs]=scicos_getvalue("Set block parameters","Tag",list("str",-1),exprs); if (!ok) { break; } -model.rpar=[[Patm],[A],[ze1],[ze2],[zs1],[zs2],[z0],[T0],[p_rho]]; -model.equations.parameters[2-1]=list(Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho); +if (model.opar!=list(tag)) { +needcompile=4; +y=needcompile; +} +model.opar=list(tag); +model.evtout=1; +model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Hydraulics/SourceP.sci" */ -function SourceP() { - SourceP.prototype.define = function SourceP() { +/* autogenerated from "macros/Branching/CLKGOTO.sci" */ +function CLKGOTO() { + CLKGOTO.prototype.define = function CLKGOTO() { model=scicos_model(); -P0=300000; -T0=290; -H0=100000; -option_temperature=1; -model.rpar=[[P0],[T0],[H0],[option_temperature]]; -model.sim="Source"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="Source"; -mo.inputs=[]; -mo.outputs=["C"]; -mo.parameters=list([["P0"],["T0"],["H0"],["option_temperature"]],[[P0],[T0],[H0],[option_temperature]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[[string(P0)],[string(T0)],[string(H0)],[string(option_temperature)]]; -gr_i=[]; -x=standard_define([2.5,2],model,exprs,list(gr_i,0)); -x.graphics.out_implicit=["I"]; +model.sim="clkgoto"; +model.evtin=1; +model.opar=list("A"); +model.ipar=int(1); +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs=[["A"],[sci2exp(1)]]; +x=standard_define([2,1],model,exprs," "); +x.graphics.id="Goto"; } - SourceP.prototype.details = function SourceP() { + CLKGOTO.prototype.details = function CLKGOTO() { } - SourceP.prototype.get = function SourceP() { + CLKGOTO.prototype.get = function CLKGOTO() { } - SourceP.prototype.set = function SourceP() { + CLKGOTO.prototype.set = function CLKGOTO() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; while (true) { -[ok,P0,T0,H0,option_temperature,exprs]=scicos_getvalue("Paramètres du puits",[["Pression de la source : P0 (Pa)"],["Temperature de la source : T0 (K)"],["Enthalpie spécifique de la source : H0 (J/kg)"],["1:température fixée - 2:enthalpie fixée : option_temperature"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); +[ok,tag,tagvis,exprs]=scicos_getvalue("Set block parameters",[["Tag"],["Tag Visibility (1=Local 2=Scoped 3=Global)"]],list("str",-1,"vec",1),exprs); if (!ok) { break; } -model.rpar=[[P0],[T0],[H0],[option_temperature]]; -model.equations.parameters[2-1]=list(P0,T0,H0,option_temperature); +if (((tagvis<1)||(tagvis>3))) { +message("Tag Visibility must be between 1 and 3"); +ok=false; +} +tagvis=int(tagvis); +if (ok) { +if (((model.opar!=list(tag))||(model.ipar!=tagvis))) { +needcompile=4; +y=needcompile; +} +model.opar=list(tag); +model.ipar=tagvis; +model.evtin=1; +model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } - } -} -/* autogenerated from "macros/Hydraulics/Flowmeter.sci" */ -function Flowmeter() { - Flowmeter.prototype.define = function Flowmeter() { -ModelName="Flowmeter"; -PrametersValue=1; -ParametersName="Qini"; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[50,105,-1,90],[0,10,2,0],[101,10,-2,0]]; -PortName=[["Mesure"],["C1"],["C2"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; -} -} -model=scicos_model(); -mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs="1"; -gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; -model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; - } - Flowmeter.prototype.details = function Flowmeter() { - } - Flowmeter.prototype.get = function Flowmeter() { - } - Flowmeter.prototype.set = function Flowmeter() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -x=arg1; -exprs=x.graphics.exprs; -while (false) { -[ok,Qini,exprs]=scicos_getvalue([["Set Flowmeter block parameters:"],[""],["Qini: "]],"Qini",list("vec",1),exprs); -if (!ok) { -break; -} -x.model.equations.parameters[2-1]=list(Qini); -x.graphics.exprs=exprs; -break; } +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Hydraulics/VanneReglante.sci" */ -function VanneReglante() { - VanneReglante.prototype.define = function VanneReglante() { +/* autogenerated from "macros/Branching/CLKGotoTagVisibility.sci" */ +function CLKGotoTagVisibility() { + CLKGotoTagVisibility.prototype.define = function CLKGotoTagVisibility() { model=scicos_model(); -model.in1=[[1],[1]]; -model.out=[1]; -Cvmax=8005.42; -p_rho=0; -model.rpar=[[Cvmax],[p_rho]]; -model.sim="VanneReglante"; +model.sim="clkgototagvisibility"; +model.in1=[]; +model.in2=[]; +model.out=[]; +model.out2=[]; +model.evtin=[]; +model.intyp=1; +model.outtyp=1; +model.opar=list("A"); model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="VanneReglante"; -mo.inputs=["C1","Ouv"]; -mo.outputs="C2"; -mo.parameters=list([["Cvmax"],["p_rho"]],[[Cvmax],[p_rho]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[[string(Cvmax)],[string(p_rho)]]; +model.firing=false; +model.dep_ut=[false,false]; +exprs="A"; gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=[["I"],["E"]]; -x.graphics.out_implicit=["I"]; +x=standard_define([2,2],model,exprs,gr_i); } - VanneReglante.prototype.details = function VanneReglante() { + CLKGotoTagVisibility.prototype.details = function CLKGotoTagVisibility() { } - VanneReglante.prototype.get = function VanneReglante() { + CLKGotoTagVisibility.prototype.get = function CLKGotoTagVisibility() { } - VanneReglante.prototype.set = function VanneReglante() { + CLKGotoTagVisibility.prototype.set = function CLKGotoTagVisibility() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,Cvmax,p_rho,exprs]=scicos_getvalue("Paramètres de la vanne reglante",[["Cvmax"],["p_rho"]],list("vec",-1,"vec",-1),exprs); +[ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break; } -model.rpar=[[Cvmax],[p_rho]]; -model.equations.parameters[2-1]=list(Cvmax,p_rho); +if (ok) { +if (model.opar!=list(tag)) { +needcompile=4; +y=needcompile; +} graphics.exprs=exprs; +model.opar=list(tag); x.graphics=graphics; x.model=model; break; } +} +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Hydraulics/PerteDP.sci" */ -function PerteDP() { - PerteDP.prototype.define = function PerteDP() { +/* autogenerated from "macros/Branching/DEMUX.sci" */ +function DEMUX() { + DEMUX.prototype.define = function DEMUX() { +out=2; model=scicos_model(); -model.in1=[1]; -model.out=[1]; -L=10; -D=0.2; -lambda=0.03; -z1=0; -z2=0; -p_rho=0; -model.rpar=[[L],[D],[lambda],[z1],[z2],[p_rho]]; -model.sim="PerteDP"; +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]; -mo=modelica(); -mo.model="PerteDP"; -mo.inputs="C1"; -mo.outputs="C2"; -mo.parameters=list([["L"],["D"],["lambda"],["z1"],["z2"],["p_rho"]],[[L],[D],[lambda],[z1],[z2],[p_rho]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[[string(L)],[string(D)],[string(lambda)],[string(z1)],[string(z2)],[string(p_rho)]]; +exprs=string(out); gr_i=[]; -x=standard_define([2,1],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; +x=standard_define([.5,2],model,exprs,gr_i); } - PerteDP.prototype.details = function PerteDP() { + DEMUX.prototype.details = function DEMUX() { } - PerteDP.prototype.get = function PerteDP() { + DEMUX.prototype.get = function DEMUX() { } - PerteDP.prototype.set = function PerteDP() { + DEMUX.prototype.set = function DEMUX() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,L,D,lambda,z1,z2,p_rho,exprs]=scicos_getvalue("Parametres du tuyau",[["Longueur du tube : L (m)"],["Diamètre interne du tube : D (m)"],["Coefficient de perte de charge-frottement(S.U) : lambda"],["Altitude entrée tuyauterie : z1 (m)"],["Altitude sortie tuyauterie : z2 (m)"],["Si >0, masse volumique imposée fu fluide : p_rho (kg/m3)"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); +[ok,out,exprs]=scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("intvec",-1),exprs); if (!ok) { break; } -model.rpar=[[L],[D],[lambda],[z1],[z2],[p_rho]]; -model.equations.parameters[2-1]=list(L,D,lambda,z1,z2,p_rho); +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; } +} } } -/* autogenerated from "macros/Hydraulics/PuitsP.sci" */ -function PuitsP() { - PuitsP.prototype.define = function PuitsP() { +/* autogenerated from "macros/Branching/DEMUX_f.sci" */ +function DEMUX_f() { + DEMUX_f.prototype.define = function DEMUX_f() { +out=2; model=scicos_model(); -P0=100000; -T0=290; -H0=100000; -option_temperature=1; -model.rpar=[[P0],[T0],[H0],[option_temperature]]; -model.sim="Puits"; +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]; -mo=modelica(); -mo.model="Puits"; -mo.inputs=["C"]; -mo.parameters=list([["P0"],["T0"],["H0"],["option_temperature"]],[[P0],[T0],[H0],[option_temperature]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -exprs=[[string(P0)],[string(T0)],[string(H0)],[string(option_temperature)]]; +exprs=string(out); gr_i=[]; -x=standard_define([2.5,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; +x=standard_define([.5,2],model,exprs,gr_i); } - PuitsP.prototype.details = function PuitsP() { + DEMUX_f.prototype.details = function DEMUX_f() { } - PuitsP.prototype.get = function PuitsP() { + DEMUX_f.prototype.get = function DEMUX_f() { } - PuitsP.prototype.set = function PuitsP() { + DEMUX_f.prototype.set = function DEMUX_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,P0,T0,H0,option_temperature,exprs]=scicos_getvalue("Paramètres du puits",[["Pression de la source : P0 (Pa)"],["Temperature de la source : T0 (K)"],["Enthalpie spécifique de la source : H0 (J/kg)"],["1:température fixée - 2:enthalpie fixée : option_temperature"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); +[ok,out,exprs]=scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("vec",-1),exprs); if (!ok) { break; } -model.rpar=[[P0],[T0],[H0],[option_temperature]]; -model.equations.parameters[2-1]=list(P0,T0,H0,option_temperature); +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; } +} } } -/* autogenerated from "macros/Events/EVTDLY_c.sci" */ -function EVTDLY_c() { - EVTDLY_c.prototype.define = function EVTDLY_c() { -dt=0.1; -ff=0.0; +/* autogenerated from "macros/Branching/ESELECT_f.sci" */ +function ESELECT_f() { + ESELECT_f.prototype.define = function ESELECT_f() { +out=2; model=scicos_model(); -model.sim=list("evtdly4",4); +model.sim=list("eselect",-2); +model.in1=1; +model.in2=1; +model.intyp=-1; model.evtin=1; -model.evtout=1; -model.rpar=[[dt],[ff]]; -model.blocktype="d"; -model.firing=ff; -model.dep_ut=[false,false]; -exprs=[[string(dt)],[sci2exp(ff)]]; +model.evtout=ones(out,1); +model.blocktype="l"; +model.firing=-ones(out,1); +model.dep_ut=[true,false]; +model.nmode=0; +model.nzcross=0; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +exprs=[[string(out)],[string(1)],[string(model.nmode)]]; +x=standard_define([4,2],model,exprs,gr_i); } - EVTDLY_c.prototype.details = function EVTDLY_c() { + ESELECT_f.prototype.details = function ESELECT_f() { } - EVTDLY_c.prototype.get = function EVTDLY_c() { + ESELECT_f.prototype.get = function ESELECT_f() { } - EVTDLY_c.prototype.set = function EVTDLY_c() { + ESELECT_f.prototype.set = function ESELECT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; +if (size(exprs,"*")==1) { +exprs[2-1]=string(1); +} +if (size(exprs,"*")==2) { +exprs[3-1]=string(0); +} model=arg1.model; while (true) { -[ok,dt,ff,exprs]=scicos_getvalue([["Set Event Delay block parameters"],["Delay is the delay between an input event "],[" and the generated output event"],["Block may initially generate an output event before "],[" any input event. \"Date of initial output event\""],[" gives the date of this event. Set a negative value"],[" to disable any output event."]],[["Delay"],["Date of initial output event"]],list("vec",1,"vec",1),exprs); +[ok,out,inh,nmod,exprs]=scicos_getvalue("Set ESELECT block parameters",[["number of output event ports"],["Inherit (1: no, 0: yes)"],["zero-crossing (0: no, 1: yes)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (dt<=0) { -message("Delay must be positive"); -ok=false; +if (nmod!=0) { +nmod=1; } +if (inh==0) { +inh=[]; +} else { +inh=1; +} +out=int(out); +if (out<2) { +message("Block must have at least two output ports"); +} else { +[model,graphics,ok]=check_io(model,graphics,1,[],inh,[ones(out,1)]); if (ok) { graphics.exprs=exprs; -model.rpar=[[dt],[ff]]; -model.firing=ff; +model.evtout=ones(out,1); +model.firing=-ones(out,1); x.graphics=graphics; +model.nmode=nmod; +model.nzcross=nmod; x.model=model; break; } } - } } -/* autogenerated from "macros/Events/CLKSPLIT_f.sci" */ -function CLKSPLIT_f() { - CLKSPLIT_f.prototype.define = function CLKSPLIT_f() { -model=scicos_model(); -model.sim="split"; -model.evtin=1; -model.evtout=[[1],[1]]; -model.blocktype="d"; -model.firing=[false,false,false]; -model.dep_ut=[false,false]; -x=standard_define([1,1]/3,model,[],[]); - } - CLKSPLIT_f.prototype.details = function CLKSPLIT_f() { - } - CLKSPLIT_f.prototype.get = function CLKSPLIT_f() { - } - CLKSPLIT_f.prototype.set = function CLKSPLIT_f() { -x=arg1; } } -/* autogenerated from "macros/Events/ANDLOG_f.sci" */ -function ANDLOG_f() { - ANDLOG_f.prototype.define = function ANDLOG_f() { +/* autogenerated from "macros/Branching/EXTRACTOR.sci" */ +function EXTRACTOR() { + EXTRACTOR.prototype.define = function EXTRACTOR() { +ind=1; model=scicos_model(); -model.sim="andlog"; +model.sim=list("extractor",4); +model.in1=-1; model.out=1; -model.evtin=[[1],[1]]; -model.blocktype="d"; -model.firing=[]; -model.dep_ut=[false,false]; -gr_i=[]; -x=standard_define([3,3],model,[],gr_i); - } - ANDLOG_f.prototype.details = function ANDLOG_f() { - } - ANDLOG_f.prototype.get = function ANDLOG_f() { - } - ANDLOG_f.prototype.set = function ANDLOG_f() { -x=arg1; - } -} -/* autogenerated from "macros/Events/ANDBLK.sci" */ -function ANDBLK() { - ANDBLK.prototype.define = function ANDBLK() { -andlog=ANDLOG_f("define"); -andlog.graphics.orig=[194,133]; -andlog.graphics.sz=[60,60]; -andlog.graphics.flip=true; -andlog.graphics.pout=9; -andlog.graphics.pein=[[4],[11]]; -input_port1=CLKIN_f("define"); -input_port1.graphics.orig=[149,287]; -input_port1.graphics.sz=[20,20]; -input_port1.graphics.flip=true; -input_port1.graphics.exprs="1"; -input_port1.graphics.peout=4; -input_port1.model.ipar=1; -output_port=CLKOUT_f("define"); -output_port.graphics.orig=[450,83]; -output_port.graphics.sz=[20,20]; -output_port.graphics.flip=true; -output_port.graphics.exprs="1"; -output_port.graphics.pein=8; -output_port.model.ipar=1; -input_port2=CLKIN_f("define"); -input_port2.graphics.orig=[141,330]; -input_port2.graphics.sz=[20,20]; -input_port2.graphics.flip=true; -input_port2.graphics.exprs="2"; -input_port2.graphics.peout=6; -input_port2.model.ipar=2; -ifthel=IFTHEL_f("define"); -ifthel.graphics.orig=[331,137]; -ifthel.graphics.sz=[60,60]; -ifthel.graphics.flip=true; -ifthel.graphics.pin=9; -ifthel.graphics.pein=12; -ifthel.graphics.peout=[[8],[0]]; -split=CLKSPLIT_f("define"); -split.graphics.orig=[[234],[275.78348]]; -split.graphics.pein=6; -split.graphics.peout=[[11],[12]]; -diagram=scicos_diagram(); -diagram.objs[1-1]=andlog; -diagram.objs[2-1]=input_port1; -diagram.objs[3-1]=output_port; -diagram.objs[4-1]=scicos_link(xx=[[169],[214],[214]],yy=[[297],[297],[198.71]],ct=[5,-1],from=[2,1],to=[1,1]); -diagram.objs[5-1]=input_port2; -diagram.objs[6-1]=scicos_link(xx=[[161],[234],[234]],yy=[[340],[340],[275.78]],ct=[5,-1],from=[5,1],to=[10,1]); -diagram.objs[7-1]=ifthel; -diagram.objs[8-1]=scicos_link(xx=[[351],[351],[450]],yy=[[131.29],[93],[93]],ct=[5,-1],from=[7,1],to=[3,1]); -diagram.objs[9-1]=scicos_link(xx=[[262.57],[322.43]],yy=[[163],[167]],ct=[1,1],from=[1,1],to=[7,1]); -diagram.objs[10-1]=split; -diagram.objs[11-1]=scicos_link(xx=[[234],[234]],yy=[[275.78],[198.71]],ct=[5,-1],from=[10,1],to=[1,2]); -diagram.objs[12-1]=scicos_link(xx=[[234],[361],[361]],yy=[[275.78],[275.78],[202.71]],ct=[5,-1],from=[10,2],to=[7,1]); -x=scicos_block(); -x.gui="ANDBLK"; -x.graphics.sz=[2,2]; -x.graphics.gr_i=[]; -x.graphics.pein=[[0],[0]]; -x.graphics.peout=0; -x.model.sim="csuper"; -x.model.evtin=[[1],[1]]; -x.model.evtout=1; -x.model.blocktype="h"; -x.model.firing=false; -x.model.dep_ut=[false,false]; -x.model.rpar=diagram; - } - ANDBLK.prototype.details = function ANDBLK() { - } - ANDBLK.prototype.get = function ANDBLK() { - } - ANDBLK.prototype.set = function ANDBLK() { -x=arg1; - } -} -/* autogenerated from "macros/Events/HALT_f.sci" */ -function HALT_f() { - HALT_f.prototype.define = function HALT_f() { -n=0; -model=scicos_model(); -model.sim="hltblk"; -model.evtin=1; -model.dstate=0; -model.ipar=0; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=string(n); +model.blocktype="c"; +model.dep_ut=[true,false]; +model.ipar=ind; +exprs=[sci2exp(ind)]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - HALT_f.prototype.details = function HALT_f() { + EXTRACTOR.prototype.details = function EXTRACTOR() { } - HALT_f.prototype.get = function HALT_f() { + EXTRACTOR.prototype.get = function EXTRACTOR() { } - HALT_f.prototype.set = function HALT_f() { + EXTRACTOR.prototype.set = function EXTRACTOR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,n,exprs]=scicos_getvalue("Set Halt block parameters",["State on halt"],list("vec",1),exprs); +[ok,ind,exprs]=scicos_getvalue("Set block parameters",["indices to extract"],list("vec",-1),exprs); if (!ok) { break; } +ind=int(ind); +ind=ind.slice(); +[model,graphics,ok]=check_io(model,graphics,[-1],size(ind,1),[],[]); if (ok) { +model.ipar=ind; graphics.exprs=exprs; -model.ipar=n; x.graphics=graphics; x.model=model; break; @@ -526,725 +377,486 @@ break; } } } -/* autogenerated from "macros/Events/M_freq.sci" */ -function M_freq() { - M_freq.prototype.define = function M_freq() { +/* autogenerated from "macros/Branching/FROM.sci" */ +function FROM() { + FROM.prototype.define = function FROM() { model=scicos_model(); -model.sim=list("m_frequ",4); -model.evtout=[[1],[1],[1]]; -model.evtin=1; -model.rpar=[]; -model.opar=list([[1,1,0],[1,1,1],[1,3,2]],1,0,0); -model.blocktype="d"; -model.firing=[0,-1,-1]; +model.sim="from"; +model.in1=[]; +model.in2=[]; +model.intyp=1; +model.out=-1; +model.out2=-2; +model.outtyp=-1; +model.ipar=[]; +model.opar=list("A"); +model.blocktype="c"; model.dep_ut=[false,false]; -exprs=[[sci2exp([[1],[2]])],[sci2exp([[0],[0]])]]; +exprs=["A"]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,1],model,exprs,gr_i); +x.graphics.id="From"; } - M_freq.prototype.details = function M_freq() { + FROM.prototype.details = function FROM() { } - M_freq.prototype.get = function M_freq() { + FROM.prototype.get = function FROM() { } - M_freq.prototype.set = function M_freq() { + FROM.prototype.set = function FROM() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,frequ,offset,exprs]=scicos_getvalue("Set block parameters",[["Sample time"],["Offset"]],list("vec",-1,"vec",-1),exprs); +[ok,tag,exprs]=scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); if (!ok) { break; } -offset=offset.slice(); -frequ=frequ.slice(); -if ((size(frequ,"*"))!=(size(offset,"*"))) { -message("offset and frequency must have the same size"); -ok=false; -} else if (or(frequ<0)) { -message("Frequency must be a positif number"); -ok=false; -} else if (or(abs(offset)>frequ)) { -message("The |Offset| must be less than the Frequency"); -ok=false; -} if (ok) { -[m,den,off,count,m1,fir,frequ,offset,ok]=mfrequ_clk[frequ-1][offset-1]; -} -if (ok) { -model.opar=list(m,double[den-1],off,count); -mn=(2^size(m1,"*"))-1; -[model,graphics,ok]=set_io(model,graphics,list(),list(),1,ones(mn,1)); -if (mn>3) { -graphics.sz=[40+(mn-3)*10,40]; -} else { -graphics.sz=[50,40]; +if (model.opar!=list(tag)) { +needcompile=4; +y=needcompile; } -model.firing=fir; graphics.exprs=exprs; -x.graphics=graphics; +model.opar=list(tag); x.model=model; +x.graphics=graphics; break; } } +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Events/IFTHEL_f.sci" */ -function IFTHEL_f() { - IFTHEL_f.prototype.define = function IFTHEL_f() { +/* autogenerated from "macros/Branching/FROMMO.sci" */ +function FROMMO() { + FROMMO.prototype.define = function FROMMO() { model=scicos_model(); -model.sim=list("ifthel",-1); -model.in1=1; -model.in2=1; -model.intyp=-1; -model.evtin=1; -model.evtout=[[1],[1]]; -model.blocktype="l"; -model.firing=[-1,-1]; -model.dep_ut=[true,false]; -model.nmode=1; -model.nzcross=1; +model.sim="frommo"; +model.in1=[]; +model.in2=[]; +model.intyp=1; +model.out=-1; +model.out2=-2; +model.outtyp=-1; +model.ipar=[]; +model.opar=list("A"); +model.blocktype="c"; +model.dep_ut=[false,false]; +mo=modelica(); +mo.model="frommo"; +mo.outputs="n"; +exprs=["A"]; gr_i=[]; -exprs=[[string(model.in1)],[string(model.nmode)]]; -x=standard_define([3,3],model,exprs,gr_i); +x=standard_define([2,1],model,exprs,gr_i); +x.graphics.out_implicit=["I"]; } - IFTHEL_f.prototype.details = function IFTHEL_f() { + FROMMO.prototype.details = function FROMMO() { } - IFTHEL_f.prototype.get = function IFTHEL_f() { + FROMMO.prototype.get = function FROMMO() { } - IFTHEL_f.prototype.set = function IFTHEL_f() { + FROMMO.prototype.set = function FROMMO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (exprs==[]) { -exprs=string(1); -} -if (size(exprs,"*")==1) { -exprs[2-1]=string(1); -} while (true) { -[ok,inh,nmod,exprs]=scicos_getvalue("Set parameters",[["Inherit (1: no, 0: yes)"],["zero-crossing (0: no, 1: yes)"]],list("vec",1,"vec",1),exprs); +[ok,tag,exprs]=scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); if (!ok) { break; } -model.dep_ut=[true,false]; -if (nmod!=0) { -nmod=1; -} -if (inh!=1) { -inh=[]; -} -[model,graphics,ok]=check_io(model,graphics,1,[],inh,[[1],[1]]); if (ok) { +if (model.opar!=list(tag)) { +needcompile=4; +y=needcompile; +} graphics.exprs=exprs; -model.evtin=inh; -model.sim[2-1]=-1; -model.nmode=nmod; -model.nzcross=nmod; -x.graphics=graphics; +model.opar=list(tag); x.model=model; +x.graphics=graphics; break; } } +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Events/VirtualCLK0.sci" */ -function VirtualCLK0() { - VirtualCLK0.prototype.define = function VirtualCLK0() { -model=scicos_model(); -model.sim="vrtclk0"; -model.evtin=1; -model.opar=list(); -model.ipar=[]; -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs=[]; -x=standard_define([2,2],model,exprs," "); - } - VirtualCLK0.prototype.details = function VirtualCLK0() { - } - VirtualCLK0.prototype.get = function VirtualCLK0() { - } - VirtualCLK0.prototype.set = function VirtualCLK0() { -x=arg1; - } -} -/* autogenerated from "macros/Events/END_c.sci" */ -function END_c() { - END_c.prototype.define = function END_c() { -tf=100000000; +/* autogenerated from "macros/Branching/GOTO.sci" */ +function GOTO() { + GOTO.prototype.define = function GOTO() { model=scicos_model(); -model.sim=list("scicosexit",4); -model.evtin=1; -model.evtout=1; -model.firing=tf; -model.blocktype="d"; +model.sim="goto"; +model.in1=-1; +model.in2=-2; +model.intyp=-1; +model.out=[]; +model.out2=[]; +model.outtyp=1; +model.ipar=int(1); +model.opar=list("A"); +model.blocktype="c"; model.dep_ut=[false,false]; -exprs=string(tf); +exprs=[["A"],[sci2exp(1)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,1],model,exprs,gr_i); +x.graphics.id="Goto"; } - END_c.prototype.details = function END_c() { + GOTO.prototype.details = function GOTO() { } - END_c.prototype.get = function END_c() { + GOTO.prototype.get = function GOTO() { } - END_c.prototype.set = function END_c() { + GOTO.prototype.set = function GOTO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,tf,exprs]=scicos_getvalue("Set final simulation time",["Final simulation time"],list("vec",1),exprs); +[ok,tag,tagvis,exprs]=scicos_getvalue("Set parameters",[["Tag"],["Tag Visibility(1=Local 2=scoped 3= global)"]],list("str",-1,"vec",1),exprs); if (!ok) { break; } +tagvis=int(tagvis); +if (((tagvis<1)||(tagvis>3))) { +message("Tag Visibility must be between 1 and 3"); +ok=false; +} if (ok) { +if (((model.ipar!=tagvis)||(model.opar!=list(tag)))) { +needcompile=4; +y=needcompile; +} graphics.exprs=exprs; -model.firing=tf; -x.graphics=graphics; +model.opar=list(tag); +model.ipar=tagvis; x.model=model; +x.graphics=graphics; +arg1=x; break; } } +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Events/CLKSOMV_f.sci" */ -function CLKSOMV_f() { - CLKSOMV_f.prototype.define = function CLKSOMV_f() { +/* autogenerated from "macros/Branching/GOTOMO.sci" */ +function GOTOMO() { + GOTOMO.prototype.define = function GOTOMO() { model=scicos_model(); -model.sim="sum"; -model.evtin=[[1],[1],[1]]; -model.evtout=1; -model.blocktype="d"; -model.firing=-1; +model.sim="gotomo"; +model.in1=-1; +model.in2=-2; +model.intyp=[]; +model.out=[]; +model.out2=[]; +model.outtyp=1; +model.ipar=int(1); +model.opar=list("A"); +model.blocktype="c"; model.dep_ut=[false,false]; +mo=modelica(); +mo.model="gotomo"; +mo.inputs="p"; +exprs=[["A"],[sci2exp(1)]]; gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +x=standard_define([2,1],model,exprs,gr_i); +x.graphics.in_implicit=["I"]; } - CLKSOMV_f.prototype.details = function CLKSOMV_f() { + GOTOMO.prototype.details = function GOTOMO() { } - CLKSOMV_f.prototype.get = function CLKSOMV_f() { + GOTOMO.prototype.get = function GOTOMO() { } - CLKSOMV_f.prototype.set = function CLKSOMV_f() { + GOTOMO.prototype.set = function GOTOMO() { x=arg1; - } -} -/* autogenerated from "macros/Events/freq_div.sci" */ -function freq_div() { - freq_div.prototype.define = function freq_div() { -scs_m_1=scicos_diagram(); -scs_m_1.objs[1-1]=Modulo_Count("define"); -scs_m_1.objs[2-1]=CLKINV_f("define"); -scs_m_1.objs[3-1]=CLKOUTV_f("define"); -scs_m_1.objs[4-1]=IFTHEL_f("define"); -scs_m_1.objs[5-1]=CLKSPLIT_f("define"); -scs_m_1.objs[6-1]=scicos_link(); -scs_m_1.objs[7-1]=scicos_link(); -scs_m_1.objs[8-1]=scicos_link(); -scs_m_1.objs[9-1]=scicos_link(); -scs_m_1.objs[10-1]=scicos_link(); -blk=scs_m_1.objs[1-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[0,-100]; -graphics.sz=[60,40]; -graphics.exprs=[["0"],["3"]]; -model.dstate=3; -model.ipar=3; -graphics.pout=7; -graphics.pein=10; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[1-1]=blk; -blk=scs_m_1.objs[2-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[120,0]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.peout=6; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[2-1]=blk; -blk=scs_m_1.objs[3-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[130,-160]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.pein=8; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[3-1]=blk; -blk=scs_m_1.objs[4-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[100,-100]; -graphics.sz=[60,40]; -graphics.exprs=[["1"],["0"]]; -model.ipar=1; -graphics.pin=7; -graphics.pein=9; -graphics.peout=[[0],[8]]; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[4-1]=blk; -blk=scs_m_1.objs[5-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[127,-33]; -graphics.sz=[7,7]; -graphics.pein=6; -graphics.peout=[[9],[10]]; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[5-1]=blk; -lnk=scs_m_1.objs[6-1]; -lnk.ct=[5,-1]; -lnk.from=[2,1,0]; -lnk.to=[5,1,1]; -scs_m_1.objs[6-1]=lnk; -lnk=scs_m_1.objs[7-1]; -lnk.from=[1,1,0]; -lnk.to=[4,1,1]; -scs_m_1.objs[7-1]=lnk; -lnk=scs_m_1.objs[8-1]; -lnk.ct=[5,-1]; -lnk.from=[4,2,0]; -lnk.to=[3,1,1]; -scs_m_1.objs[8-1]=lnk; -lnk=scs_m_1.objs[9-1]; -lnk.ct=[5,-1]; -lnk.from=[5,1,0]; -lnk.to=[4,1,1]; -scs_m_1.objs[9-1]=lnk; -lnk=scs_m_1.objs[10-1]; -lnk.xx=[0,30,1]; -lnk.yy=[0,-30,1]; -lnk.ct=[5,-1]; -lnk.from=[5,2,0]; -lnk.to=[1,1,1]; -scs_m_1.objs[10-1]=lnk; -blk={}; -lnk={}; -model=scicos_model(); -model.sim="csuper"; -model.evtin=1; -model.evtout=1; -model.rpar=scs_m_1; -gr_i=[]; -x=standard_define([3,2],model,[],gr_i); - } - freq_div.prototype.details = function freq_div() { - } - freq_div.prototype.get = function freq_div() { - } - freq_div.prototype.set = function freq_div() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="Modulo_Count") { -path=i; -break; -} -} -newpar=list(); -y=0; -spath=list(); -spath[$+1-1]="model"; -spath[$+1-1]="rpar"; -spath[$+1-1]="objs"; -spath[$+1-1]=path; -xx=arg1[spath-1]; -xxn=xx; -graphics=xx.graphics; +graphics=arg1.graphics; exprs=graphics.exprs; -model=xx.model; +model=arg1.model; while (true) { -[ok,%ph,%df,exprs]=scicos_getvalue("Set frequency division block parameters",[["Phase (0 to division factor -1)"],["Division factor"]],list("vec",1,"vec",1),exprs); +[ok,tag,tagvis,exprs]=scicos_getvalue("Set parameters",[["Tag"],["Tag Visibility(1=Local 2=scoped 3= global)"]],list("str",-1,"vec",1),exprs); if (!ok) { break; } -if (ok) { -if (%df<1) { -%df=1; +tagvis=int(tagvis); +if (((tagvis<1)||(tagvis>3))) { +message("Tag Visibility must be between 1 and 3"); +ok=false; } -%ph=abs(%ph); -if (%ph>%df-1) { -%ph=%df-1; +if (ok) { +if (((model.ipar!=tagvis)||(model.opar!=list(tag)))) { +needcompile=4; +y=needcompile; } graphics.exprs=exprs; -model.ipar=%df; -model.dstate=%ph; -xxn.graphics=graphics; -xxn.model=model; +model.opar=list(tag); +model.ipar=tagvis; +x.model=model; +x.graphics=graphics; +arg1=x; break; } } -if (diffobjs(xxn,xx)) { -model=xx.model; -model_n=xxn.model; -if (!is_modelica_block(xx)) { -modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); -if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { -needcompile=1; -} -if (or(model.firing!=model_n.firing)) { -needcompile=2; -} -if (model.sim=="input"||model.sim=="output") { -if (model.ipar!=model_n.ipar) { -needcompile=4; -} -} -if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { -needcompile=4; -} -if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { -needcompile=4; -} -if (prod[size(model_n.sim)-1]>1) { -if (model_n.sim[2-1]>1000) { -if (model.sim[1-1]!=model_n.sim[1-1]) { -needcompile=4; -} -} -} -} else { -modified=or(model_n!=model); -eq=model.equations; -eqn=model_n.equations; -if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { -needcompile=4; -} -} -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=1; -y=max(y,needcompile); -} -x=arg1; -typ=newpar; +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Events/EVTGEN_f.sci" */ -function EVTGEN_f() { - EVTGEN_f.prototype.define = function EVTGEN_f() { -tt=0; +/* autogenerated from "macros/Branching/GotoTagVisibility.sci" */ +function GotoTagVisibility() { + GotoTagVisibility.prototype.define = function GotoTagVisibility() { model=scicos_model(); -model.sim="trash"; -model.evtout=1; -model.blocktype="d"; -model.firing=tt; +model.sim="gototagvisibility"; +model.in1=[]; +model.in2=[]; +model.out=[]; +model.out2=[]; +model.evtin=[]; +model.intyp=1; +model.outtyp=1; +model.opar=list("A"); +model.blocktype="c"; +model.firing=false; model.dep_ut=[false,false]; -exprs=string(tt); +exprs="A"; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - EVTGEN_f.prototype.details = function EVTGEN_f() { + GotoTagVisibility.prototype.details = function GotoTagVisibility() { } - EVTGEN_f.prototype.get = function EVTGEN_f() { + GotoTagVisibility.prototype.get = function GotoTagVisibility() { } - EVTGEN_f.prototype.set = function EVTGEN_f() { + GotoTagVisibility.prototype.set = function GotoTagVisibility() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,tt,exprs]=scicos_getvalue("Set Event time",["Event Time"],list("vec",1),exprs); +[ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break; } -graphics.exprs=exprs; -if (model.firing!=tt) { -model.firing=tt; +if (ok) { +if (model.opar!=list(tag)) { +needcompile=4; +y=needcompile; } +graphics.exprs=exprs; +model.opar=list(tag); x.graphics=graphics; x.model=model; break; } - } -} -/* autogenerated from "macros/Events/MCLOCK_f.sci" */ -function MCLOCK_f() { - MCLOCK_f.prototype.define = function MCLOCK_f() { -nn=2; -dt=0.1; -exprs=[[string(dt)],[string(nn)]]; -mfclck=MFCLCK_f("define"); -mfclck.graphics.orig=[334,199]; -mfclck.graphics.sz=[40,40]; -mfclck.graphics.flip=true; -mfclck.graphics.exprs=exprs; -mfclck.graphics.pein=12; -mfclck.graphics.peout=[[4],[3]]; -mfclck.model.rpar=0.1; -mfclck.model.ipar=nn; -mfclck.model.firing=[-1,0]; -clksom=CLKSOM_f("define"); -clksom.graphics.orig=[457,161]; -clksom.graphics.sz=[16.666667,16.666667]; -clksom.graphics.flip=true; -clksom.graphics.exprs=[["0.1"],["0.1"]]; -clksom.graphics.pein=[[4],[9],[0]]; -clksom.graphics.peout=5; -output_port1=CLKOUT_f("define"); -output_port1.graphics.orig=[509,261]; -output_port1.graphics.sz=[20,20]; -output_port1.graphics.flip=true; -output_port1.graphics.exprs="1"; -output_port1.graphics.pein=10; -output_port1.model.ipar=1; -output_port2=CLKOUT_f("define"); -output_port2.graphics.orig=[509,142]; -output_port2.graphics.sz=[20,20]; -output_port2.graphics.flip=true; -output_port2.graphics.exprs="2"; -output_port2.graphics.pein=13; -output_port2.model.ipar=2; -split1=CLKSPLIT_f("define"); -split1.graphics.orig=[[411.92504],[169.33333]]; -split1.graphics.pein=3; -split1.graphics.peout=[[9],[10]]; -split2=CLKSPLIT_f("define"); -split2.graphics.orig=[[482.45315],[169.33333]]; -split2.graphics.pein=5; -split2.graphics.peout=[[12],[13]]; -gr_i=[]; -diagram=scicos_diagram(); -diagram.objs[1-1]=mfclck; -diagram.objs[2-1]=clksom; -diagram.objs[3-1]=scicos_link(xx=[[360.7],[360.7],[411.9]],yy=[[193.3],[169.3],[169.3]],ct=[10,-1],from=[1,2],to=[8,1]); -diagram.objs[4-1]=scicos_link(xx=[[347.3],[347.3],[461.8],[461.8]],yy=[[193.3],[155.5],[155.5],[161]],ct=[10,-1],from=[1,1],to=[2,1]); -diagram.objs[5-1]=scicos_link(xx=[[468.9],[482.5]],yy=[[169.3],[169.3]],ct=[10,-1],from=[2,1],to=[11,1]); -diagram.objs[6-1]=output_port1; -diagram.objs[7-1]=output_port2; -diagram.objs[8-1]=split1; -diagram.objs[9-1]=scicos_link(xx=[[411.9],[457]],yy=[[169.3],[169.3]],ct=[10,-1],from=[8,1],to=[2,2]); -diagram.objs[10-1]=scicos_link(xx=[[411.9],[411.9],[509]],yy=[[169.3],[271],[271]],ct=[10,-1],from=[8,2],to=[6,1]); -diagram.objs[11-1]=split2; -diagram.objs[12-1]=scicos_link(xx=[[482.5],[489.6],[489.6],[354],[354]],yy=[[169.3],[169.3],[338.3],[338.3],[244.7]],ct=[10,-1],from=[11,1],to=[1,1]); -diagram.objs[13-1]=scicos_link(xx=[[482.4],[482.4],[509]],yy=[[169.3],[152],[152]],ct=[10,-1],from=[11,2],to=[7,1]); -x=scicos_block(); -x.gui="MCLOCK_f"; -x.graphics.sz=[3,2]; -x.graphics.gr_i=gr_i; -x.model.sim="csuper"; -x.model.evtout=[[1],[1]]; -x.model.blocktype="h"; -x.model.rpar=diagram; -x.graphics.peout=[[0],[0]]; - } - MCLOCK_f.prototype.details = function MCLOCK_f() { - } - MCLOCK_f.prototype.get = function MCLOCK_f() { - } - MCLOCK_f.prototype.set = function MCLOCK_f() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="MFCLCK_f") { -path=i; -break; -} } -newpar=list(); -spath=list("model","rpar","objs",path); -xx=arg1[spath-1]; -execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (or(xxn!=xx)) { -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=path; -} -x=arg1; -y=0; -typ=newpar; +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Events/EVTVARDLY.sci" */ -function EVTVARDLY() { - EVTVARDLY.prototype.define = function EVTVARDLY() { +/* autogenerated from "macros/Branching/GotoTagVisibilityMO.sci" */ +function GotoTagVisibilityMO() { + GotoTagVisibilityMO.prototype.define = function GotoTagVisibilityMO() { model=scicos_model(); -model.sim=list("evtvardly",4); -model.in1=1; -model.evtin=1; -model.evtout=1; -model.blocktype="d"; -model.firing=-1; +model.sim="gototagvisibilitymo"; +model.in1=[]; +model.in2=[]; +model.out=[]; +model.out2=[]; +model.evtin=[]; +model.intyp=1; +model.outtyp=1; +model.opar=list("A"); model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=string(model.firing); +model.firing=false; +model.dep_ut=[false,false]; +exprs="A"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - EVTVARDLY.prototype.details = function EVTVARDLY() { + GotoTagVisibilityMO.prototype.details = function GotoTagVisibilityMO() { } - EVTVARDLY.prototype.get = function EVTVARDLY() { + GotoTagVisibilityMO.prototype.get = function GotoTagVisibilityMO() { } - EVTVARDLY.prototype.set = function EVTVARDLY() { + GotoTagVisibilityMO.prototype.set = function GotoTagVisibilityMO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,fir,exprs]=scicos_getvalue("Set parameter of variable event delay","Initial event firing time (<0 if absent)",list("vec",1),exprs); +[ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break; } +if (ok) { +if (model.opar!=list(tag)) { +needcompile=4; +y=needcompile; +} graphics.exprs=exprs; -model.firing=fir; +model.opar=list(tag); x.graphics=graphics; x.model=model; break; } +} +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Events/EVTDLY_f.sci" */ -function EVTDLY_f() { - EVTDLY_f.prototype.define = function EVTDLY_f() { -dt=0.1; -ff=dt; +/* autogenerated from "macros/Branching/ISELECT_f.sci" */ +function ISELECT_f() { + ISELECT_f.prototype.define = function ISELECT_f() { +z0=0; +out=[[-1],[-1]]; +nout=2; model=scicos_model(); -model.sim="evtdly"; -model.evtin=1; -model.evtout=1; -model.rpar=dt; -model.blocktype="d"; -model.firing=ff; -model.dep_ut=[false,false]; -exprs=[[string(dt)],[sci2exp(ff)]]; +model.sim=list("selector",2); +model.in1=-1; +model.out=out; +model.evtin=ones(out); +model.dstate=z0; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[string(nout)],[string(z0+1)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - EVTDLY_f.prototype.details = function EVTDLY_f() { + ISELECT_f.prototype.details = function ISELECT_f() { } - EVTDLY_f.prototype.get = function EVTDLY_f() { + ISELECT_f.prototype.get = function ISELECT_f() { } - EVTDLY_f.prototype.set = function EVTDLY_f() { + ISELECT_f.prototype.set = function ISELECT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,dt,ff,exprs]=scicos_getvalue([["Set Event Delay block parameters"],["Delay is the delay between an input event "],[" and the generated output event"],["Block may initially generate an output event before "],[" any input event. \"Date of initial output event\""],[" gives the date of this event. Set a negative value"],[" if no initial event required"]],[["Delay"],["Date of initial output event"]],list("vec",1,"vec",1),exprs); +[ok,nout,z0,exprs]=scicos_getvalue("Set parameters",[["number of outputs"],["initial connected output"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if (dt<=0) { -message("Delay must be positive"); -ok=false; -} +if (z0>nout||z0<=0) { +message("initial connected input is not a valid input port number"); +} else { +[model,graphics,ok]=check_io(model,graphics,-1,-ones(nout,1),ones(nout,1),[]); if (ok) { graphics.exprs=exprs; -model.rpar=dt; -model.firing=ff; +model.dstate=z0-1; x.graphics=graphics; x.model=model; break; } } - } } -/* autogenerated from "macros/Events/CLKSOM_f.sci" */ -function CLKSOM_f() { - CLKSOM_f.prototype.define = function CLKSOM_f() { -model=scicos_model(); -model.sim="sum"; -model.evtin=[[1],[1],[1]]; -model.evtout=1; -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -gr_i=[]; -x=standard_define([1,1]/1.2,model,[],gr_i); - } - CLKSOM_f.prototype.details = function CLKSOM_f() { - } - CLKSOM_f.prototype.get = function CLKSOM_f() { - } - CLKSOM_f.prototype.set = function CLKSOM_f() { -x=arg1; } } -/* autogenerated from "macros/Events/MFCLCK_f.sci" */ -function MFCLCK_f() { - MFCLCK_f.prototype.define = function MFCLCK_f() { -nn=2; -dt=0.1; +/* autogenerated from "macros/Branching/ISELECT_m.sci" */ +function ISELECT_m() { + ISELECT_m.prototype.define = function ISELECT_m() { +z0=1; +nout=2; model=scicos_model(); -model.sim="mfclck"; -model.evtin=1; -model.evtout=[[1],[1]]; -model.dstate=0; -model.rpar=dt; -model.ipar=nn; -model.blocktype="d"; -model.firing=[-1,0]; -model.dep_ut=[false,false]; -exprs=[[string(dt)],[string(nn)]]; +model.sim=list("selector_m",4); +model.out=[[-1],[-1]]; +model.out2=[[-2],[-2]]; +model.outtyp=1; +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.evtout=[]; +model.state=[]; +model.rpar=[]; +model.ipar=[]; +model.firing=[]; +model.evtin=ones(nout,1); +model.dstate=z0; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[sci2exp(1)],[sci2exp(nout)],[sci2exp(z0)]]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } - MFCLCK_f.prototype.details = function MFCLCK_f() { + ISELECT_m.prototype.details = function ISELECT_m() { } - MFCLCK_f.prototype.get = function MFCLCK_f() { + ISELECT_m.prototype.get = function ISELECT_m() { } - MFCLCK_f.prototype.set = function MFCLCK_f() { + ISELECT_m.prototype.set = function ISELECT_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -[ok,dt,nn,exprs]=scicos_getvalue("Set Multifrequency clock parameters",[["basic period (1/f)"],["multiply by (n)"]],list("vec",1,"vec",1),exprs); +while (true) { +[ok,typ,nout,z0,exprs]=scicos_getvalue("Set parameters",[["Datatype(1= real double 2=Complex 3=int32 ...)"],["number of outputs"],["initial connected output"]],list("vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break; +} +if (z0>nout||z0<=0) { +message("initial connected input is not a valid input port number"); +} else if (((typ<1)||(typ>8))) { +message("Datatype is not supported"); +ok=false; +} else { +it=typ; +ot=typ*ones(1,nout); +if (ok) { +out=[-ones(nout,1),-2*ones(nout,1)]; +in1=[-1,-2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(nout,1),[]); if (ok) { -model.ipar=nn; -model.rpar=dt; -hh=model.firing; -hh[2-1]=0; -model.firing=hh; graphics.exprs=exprs; +model.dstate=z0; x.graphics=graphics; x.model=model; +break; +} +} +} } } } -/* autogenerated from "macros/Linear/REGISTER_f.sci" */ -function REGISTER_f() { - REGISTER_f.prototype.define = function REGISTER_f() { -z0=zeros(10,1); +/* autogenerated from "macros/Branching/MUX.sci" */ +function MUX() { + MUX.prototype.define = function MUX() { +in1=2; model=scicos_model(); -model.sim="delay"; -model.in1=1; -model.out=1; -model.evtin=1; -model.dstate=z0; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=strcat(string(z0),";"); +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([2.5,2.5],model,exprs,gr_i); +x=standard_define([.5,2],model,exprs,gr_i); } - REGISTER_f.prototype.details = function REGISTER_f() { + MUX.prototype.details = function MUX() { } - REGISTER_f.prototype.get = function REGISTER_f() { + MUX.prototype.get = function MUX() { } - REGISTER_f.prototype.set = function REGISTER_f() { + MUX.prototype.set = function MUX() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,z0,exprs]=scicos_getvalue("Set delay parameters","Register initial condition",list("vec",-1),exprs); +[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 (prod[size(z0)-1]<1) { -message("Register length must be at least 1"); +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.dstate=z0; +model.ipar=in1; x.graphics=graphics; x.model=model; break; @@ -1252,136 +864,61 @@ break; } } } -/* autogenerated from "macros/Linear/SUMMATION.sci" */ -function SUMMATION() { - SUMMATION.prototype.define = function SUMMATION() { -sgn=[[1],[-1]]; +/* autogenerated from "macros/Branching/MUX_f.sci" */ +function MUX_f() { + MUX_f.prototype.define = function MUX_f() { +in1=2; model=scicos_model(); -model.sim=list("summation",4); -model.in1=[[-1],[-1]]; -model.out=-1; -model.in2=[[-2],[-2]]; -model.out2=-2; -model.ipar=sgn; +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=sci2exp(sgn); +exprs=string(in1); gr_i=[]; -x=standard_define([2,3],model,exprs,gr_i); +x=standard_define([0.5,2],model,exprs,gr_i); } - SUMMATION.prototype.details = function SUMMATION() { + MUX_f.prototype.details = function MUX_f() { } - SUMMATION.prototype.get = function SUMMATION() { + MUX_f.prototype.get = function MUX_f() { } - SUMMATION.prototype.set = function SUMMATION() { + MUX_f.prototype.set = function MUX_f() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; -if (size(exprs,1)==1) { -exprs=[[sci2exp(1)],[exprs],[sci2exp(0)]]; -} else if (size(exprs,1)==2) { -exprs=[[exprs],[sci2exp(0)]]; -} +model=arg1.model; while (true) { -[ok,Datatype,sgn,satur,exprs]=scicos_getvalue("Set sum block parameters",[["Datatype (1=real double 2=complex 3=int32 ...)"],["Number of inputs or sign vector (of +1, -1)"],["Do on Overflow(0=Nothing 1=Saturate 2=Error)"]],list("vec",1,"vec",-1,"vec",1),exprs); +[ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("vec",-1),exprs); if (!ok) { break; } -sgn=sgn.slice(); -if ((satur!=0&&satur!=1&&satur!=2)) { -message("Do on overflow must be 0,1,2"); -ok=false; -} -if (size(sgn,1)==1) { -if (sgn<1) { -message("Number of inputs must be > 0"); +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 if (sgn==1) { -in1=-1; -in2=-2; -sgn=[]; -nout=1; -nout2=1; } else { -in1=-ones(sgn,1); -in2=2*in1; -sgn=ones(sgn,1); -nout=-1; -nout2=-2; +[model,graphics,ok]=check_io(model,graphics,-transpose([1:in1]),0,[],[]); } } else { -if (!and(abs(sgn)==1)) { -message("Signs can only be +1 or -1"); +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 { -in1=-ones(size(sgn,1),1); -in2=2*in1; -nout=-1; -nout2=-2; -} -} -it=Datatype*ones(1,size(in1,1)); -ot=Datatype; -if (Datatype==1) { -model.sim=list("summation",4); -} else if (Datatype==2) { -model.sim=list("summation_z",4); -} else if (((Datatype<1)||(Datatype>8))) { -message("Datatype is not supported"); -ok=false; +if (min(in1)<0) { +nout=0; } else { -if (satur==0) { -if (Datatype==3) { -model.sim=list("summation_i32n",4); -} else if (Datatype==4) { -model.sim=list("summation_i16n",4); -} else if (Datatype==5) { -model.sim=list("summation_i8n",4); -} else if (Datatype==6) { -model.sim=list("summation_ui32n",4); -} else if (Datatype==7) { -model.sim=list("summation_ui16n",4); -} else if (Datatype==8) { -model.sim=list("summation_ui8n",4); -} -} else if (satur==1) { -if (Datatype==3) { -model.sim=list("summation_i32s",4); -} else if (Datatype==4) { -model.sim=list("summation_i16s",4); -} else if (Datatype==5) { -model.sim=list("summation_i8s",4); -} else if (Datatype==6) { -model.sim=list("summation_ui32s",4); -} else if (Datatype==7) { -model.sim=list("summation_ui16s",4); -} else if (Datatype==8) { -model.sim=list("summation_ui8s",4); +nout=sum(in1); } -} else if (satur==2) { -if (Datatype==3) { -model.sim=list("summation_i32e",4); -} else if (Datatype==4) { -model.sim=list("summation_i16e",4); -} else if (Datatype==5) { -model.sim=list("summation_i8e",4); -} else if (Datatype==6) { -model.sim=list("summation_ui32e",4); -} else if (Datatype==7) { -model.sim=list("summation_ui16e",4); -} else if (Datatype==8) { -model.sim=list("summation_ui8e",4); +[model,graphics,ok]=check_io(model,graphics,in1.slice(),nout,[],[]); +if (ok) { +in1=size(in1,"*"); } } } if (ok) { -[model,graphics,ok]=set_io(model,graphics,list([in1,in2],it),list([nout,nout2],ot),[],[]); -} -if (ok) { -model.rpar=satur; -model.ipar=sgn; graphics.exprs=exprs; +model.ipar=in1; x.graphics=graphics; x.model=model; break; @@ -1389,45 +926,61 @@ break; } } } -/* autogenerated from "macros/Linear/GAINBLK_f.sci" */ -function GAINBLK_f() { - GAINBLK_f.prototype.define = function GAINBLK_f() { -gain=1; -in1=1; -out=1; +/* autogenerated from "macros/Branching/M_SWITCH.sci" */ +function M_SWITCH() { + M_SWITCH.prototype.define = function M_SWITCH() { +in1=[[1],[-1],[-1]]; +ipar=[[1],[3]]; +nin=2; model=scicos_model(); -model.sim="gain"; +model.sim=list("mswitch",4); model.in1=in1; -model.out=out; -model.rpar=gain; +model.out=-1; +model.ipar=ipar; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[strcat(sci2exp(gain))]; +exprs=[[string(nin)],[string(ipar)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2.5,2],model,exprs,gr_i); } - GAINBLK_f.prototype.details = function GAINBLK_f() { + M_SWITCH.prototype.details = function M_SWITCH() { } - GAINBLK_f.prototype.get = function GAINBLK_f() { + M_SWITCH.prototype.get = function M_SWITCH() { } - GAINBLK_f.prototype.set = function GAINBLK_f() { + M_SWITCH.prototype.set = function M_SWITCH() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); +[ok,nin,base,rule,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["zero base indexing (0), otherwise 1"],["rounding rule: int (0), round (1), ceil (2), floor (3)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (gain==[]) { -message("Gain must have at least one element"); +nin=int(nin); +base=int(base); +if (nin<1) { +message("Number of inputs must be >=1 "); +} else if (!((base==1)||(base==0))) { +message("base indexing must be 1 or 0"); +} else if (!((rule==1)||(rule==0)||(rule==2)||(rule==3))) { +message("incorrect rounding rule"); } else { -[out,in1]=size(gain); -[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); +if (nin==1) { +in1=[[1,1],[-1,1]]; +out=[1,1]; +} else { +in1=[[1],[-ones(nin,1)]]; +in2=[[1],[-2*ones(nin,1)]]; +in1=[in1,in2]; +out=[-1,-2]; +} +it=[[-1],[-2*ones(nin,1)]]; +ot=-2; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { graphics.exprs=exprs; -model.rpar=gain.slice(); +model.ipar=[[base],[rule]]; x.graphics=graphics; x.model=model; break; @@ -1436,62 +989,37 @@ break; } } } -/* autogenerated from "macros/Linear/SAMPHOLD.sci" */ -function SAMPHOLD() { - SAMPHOLD.prototype.define = function SAMPHOLD() { -in1=-1; -model=scicos_model(); -model.sim=list("samphold4",4); -model.in1=-1; -model.out=-1; -model.evtin=1; -model.blocktype="d"; -model.dep_ut=[true,false]; -gr_i=[]; -x=standard_define([2,2],model," ",gr_i); - } - SAMPHOLD.prototype.details = function SAMPHOLD() { - } - SAMPHOLD.prototype.get = function SAMPHOLD() { - } - SAMPHOLD.prototype.set = function SAMPHOLD() { -x=arg1; -x.model.firing=[]; - } -} -/* autogenerated from "macros/Linear/BIGSOM_f.sci" */ -function BIGSOM_f() { - BIGSOM_f.prototype.define = function BIGSOM_f() { -sgn=[[1],[1]]; +/* autogenerated from "macros/Branching/NRMSOM_f.sci" */ +function NRMSOM_f() { + NRMSOM_f.prototype.define = function NRMSOM_f() { +in1=[[-1],[-1]]; +nin=2; model=scicos_model(); -model.sim=list("sum",2); -model.in1=[[-1],[-1]]; +model.sim="junk"; +model.in1=in1; model.out=-1; -model.rpar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=sci2exp(sgn); +exprs=[string(nin)]; gr_i=[]; -x=standard_define([2,3],model,exprs,gr_i); +x=standard_define([.2,2],model,exprs,gr_i); } - BIGSOM_f.prototype.details = function BIGSOM_f() { + NRMSOM_f.prototype.details = function NRMSOM_f() { } - BIGSOM_f.prototype.get = function BIGSOM_f() { + NRMSOM_f.prototype.get = function NRMSOM_f() { } - BIGSOM_f.prototype.set = function BIGSOM_f() { + NRMSOM_f.prototype.set = function NRMSOM_f() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,sgn,exprs]=scicos_getvalue("Set sum block parameters","Inputs ports signs/gain",list("vec",-1),exprs); +[ok,nin,exprs]=scicos_getvalue("Set parameters",["number of inputs"],list("vec",1),exprs); if (!ok) { break; } -in1=-ones(size(sgn,"*"),1); -[model,graphics,ok]=check_io(model,graphics,in1,-1,[],[]); +[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,[],[]); if (ok) { -model.rpar=sgn.slice(); graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -1500,224 +1028,139 @@ break; } } } -/* autogenerated from "macros/Linear/SAMPLEHOLD_f.sci" */ -function SAMPLEHOLD_f() { - SAMPLEHOLD_f.prototype.define = function SAMPLEHOLD_f() { -in1=-1; +/* autogenerated from "macros/Branching/RELAY_f.sci" */ +function RELAY_f() { + RELAY_f.prototype.define = function RELAY_f() { +i0=0; +in1=[[-1],[-1]]; +nin=2; model=scicos_model(); -model.sim="samphold"; -model.in1=-1; +model.sim=list("relay",2); +model.in1=in1; model.out=-1; -model.evtin=1; -model.blocktype="d"; -model.dep_ut=[true,false]; -gr_i=[]; -x=standard_define([2,2],model," ",gr_i); - } - SAMPLEHOLD_f.prototype.details = function SAMPLEHOLD_f() { - } - SAMPLEHOLD_f.prototype.get = function SAMPLEHOLD_f() { - } - SAMPLEHOLD_f.prototype.set = function SAMPLEHOLD_f() { -x=arg1; -x.model.firing=[]; - } -} -/* autogenerated from "macros/Linear/DLR_f.sci" */ -function DLR_f() { - DLR_f.prototype.define = function DLR_f() { -x0=0; -A=-1; -B=1; -C=1; -D=0; -exprs=[["1"],["1+z"]]; -model=scicos_model(); -model.sim="dsslti"; -model.in1=1; -model.out=1; -model.evtin=1; -model.dstate=x0.slice(); -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -model.blocktype="d"; -model.dep_ut=[false,false]; +model.evtin=ones(in1); +model.dstate=i0; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,true]; +exprs=[[string(nin)],[string(i0+1)]]; gr_i=[]; -x=standard_define([2.5,2.5],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - DLR_f.prototype.details = function DLR_f() { + RELAY_f.prototype.details = function RELAY_f() { } - DLR_f.prototype.get = function DLR_f() { + RELAY_f.prototype.get = function RELAY_f() { } - DLR_f.prototype.set = function DLR_f() { + RELAY_f.prototype.set = function RELAY_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -x0=model.dstate; -ns=prod[size(x0)-1]; -PREVAR_scicos_context=PREVAR_scicos_context; -PREVAR_scicos_context.z=%z; +ipar=model.ipar; while (true) { -[ok,num,den,exprs]=scicos_getvalue("Set discrete SISO transfer parameters",[["Numerator (z)"],["Denominator (z)"]],list("pol",1,"pol",1),exprs); +[ok,nin,z0,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["initial connected input"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { -message("Transfer must be proper"); -ok=false; -} +if (z0>nin||z0<=0) { +message("initial connected input is not a valid input port number"); +} else { +[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,ones(nin,1),[]); if (ok) { -H=cont_frm[num-1][den-1]; -[A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; -[ns1,ns1]=size(A); -if (ns1<=ns) { -x0=x0.slice(1-1,ns1); -} else { -x0[ns1-1][1-1]=0; -} -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -model.dstate=x0; -model.rpar=rpar; -if (norm(D,1)!=0) { -mmm=[true,false]; -} else { -mmm=[false,false]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} +model.dstate=z0-1; x.graphics=graphics; x.model=model; break; } } -x.model.firing=[]; +} } } -/* autogenerated from "macros/Linear/DIFF_c.sci" */ -function DIFF_c() { - DIFF_c.prototype.define = function DIFF_c() { -x0=[[0],[0]]; +/* autogenerated from "macros/Branching/SCALAR2VECTOR.sci" */ +function SCALAR2VECTOR() { + SCALAR2VECTOR.prototype.define = function SCALAR2VECTOR() { +nout=-1; model=scicos_model(); -model.sim=list("diffblk_c",10004); +model.sim=list("scalar2vector",4); +model.out=nout; model.in1=1; -model.out=1; -model.state=x0; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(x0[1-1]))],[strcat(sci2exp(x0[2-1]))]]; +model.dep_ut=[true,false]; +exprs=[string([nout])]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - DIFF_c.prototype.details = function DIFF_c() { + SCALAR2VECTOR.prototype.details = function SCALAR2VECTOR() { } - DIFF_c.prototype.get = function DIFF_c() { + SCALAR2VECTOR.prototype.get = function SCALAR2VECTOR() { } - DIFF_c.prototype.set = function DIFF_c() { + SCALAR2VECTOR.prototype.set = function SCALAR2VECTOR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -ask_again=false; -[ok,x0,xd0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["Initial state"],["Initial Derivative"]],list("vec",-1,"vec",-1),exprs); +[ok,nout,exprs]=scicos_getvalue("Set block parameters",["size of output (-1: if don\'t know)"],list("vec",1),exprs); if (!ok) { break; } -x0=x0.slice(); -N=size(x0,"*"); -xd0=xd0.slice(); -Nxd=size(xd0,"*"); -if ((N!=Nxd)) { -message("Incompatible sizes: states and their derivatives should have the same size "); -ask_again=true; +nout=int(nout); +if ((nout!=-1&&(nout<=0))) { +message("size of output must be -1 or >0"); +ok=false; } -if ((N<=0&&!ask_again)) { -x_message("number of states must be > 0 "); -ask_again=true; +if (ok) { +[model,graphics,ok]=check_io(model,graphics,[1],nout,[],[]); } -if (!ask_again) { +if (ok) { graphics.exprs=exprs; -model.state=[[x0],[xd0]]; -model.out=[N]; -model.in1=N; x.graphics=graphics; x.model=model; break; } } -x.model.firing=[]; } } -/* autogenerated from "macros/Linear/DLSS_f.sci" */ -function DLSS_f() { - DLSS_f.prototype.define = function DLSS_f() { -x0=0; -A=-1; -B=1; -C=1; -D=0; +/* autogenerated from "macros/Branching/SELECT_f.sci" */ +function SELECT_f() { + SELECT_f.prototype.define = function SELECT_f() { +z0=0; +in1=[[-1],[-1]]; +nin=2; model=scicos_model(); -model.sim=list("dsslti",1); -model.in1=1; -model.out=1; -model.evtin=1; -model.dstate=x0.slice(); -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; +model.sim=list("selector",2); +model.in1=in1; +model.out=-1; +model.evtin=ones(in1); +model.dstate=z0; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[string(nin)],[string(z0+1)]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - DLSS_f.prototype.details = function DLSS_f() { + SELECT_f.prototype.details = function SELECT_f() { } - DLSS_f.prototype.get = function DLSS_f() { + SELECT_f.prototype.get = function SELECT_f() { } - DLSS_f.prototype.set = function DLSS_f() { + SELECT_f.prototype.set = function SELECT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -if (size(exprs,"*")==7) { -exprs=exprs[[1:4,7]-1]; -} model=arg1.model; while (true) { -[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set discrete linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); +[ok,nin,z0,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["initial connected input"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -out=size(C,1); -if (out==0) { -out=[]; -} -in1=size(B,2); -if (in1==0) { -in1=[]; -} -[ms,ns]=size(A); -if (ms!=ns) { -message("A matrix must be square"); +if (z0>nin||z0<=0) { +message("initial connected input is not a valid input port number"); } else { -[model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); +[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,ones(nin,1),[]); if (ok) { graphics.exprs=exprs; -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -if (D!=[]) { -if (norm(D,1)!=0) { -mmm=[true,false]; -} else { -mmm=[false,false]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -} else { -model.dep_ut=[false,false]; -} -model.dstate=x0.slice(); -model.rpar=rpar; +model.dstate=z0-1; x.graphics=graphics; x.model=model; break; @@ -1726,2121 +1169,1592 @@ break; } } } -/* autogenerated from "macros/Linear/INTEGRAL_f.sci" */ -function INTEGRAL_f() { - INTEGRAL_f.prototype.define = function INTEGRAL_f() { -x0=0; +/* autogenerated from "macros/Branching/SELECT_m.sci" */ +function SELECT_m() { + SELECT_m.prototype.define = function SELECT_m() { +z0=1; +nin=2; model=scicos_model(); -model.sim="integr"; -model.in1=1; -model.out=1; -model.state=x0; +model.sim=list("selector_m",4); +model.in1=[[-1],[-1]]; +model.in2=[[-2],[-2]]; +model.intyp=1; +model.out=-1; +model.out2=-2; +model.outtyp=1; +model.evtout=[]; +model.state=[]; +model.rpar=[]; +model.ipar=[]; +model.firing=[]; +model.evtin=ones(nin,1); +model.dstate=z0; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=strcat(sci2exp(x0)); +model.dep_ut=[true,false]; +exprs=[[sci2exp(1)],[sci2exp(nin)],[sci2exp(z0)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - INTEGRAL_f.prototype.details = function INTEGRAL_f() { + SELECT_m.prototype.details = function SELECT_m() { } - INTEGRAL_f.prototype.get = function INTEGRAL_f() { + SELECT_m.prototype.get = function SELECT_m() { } - INTEGRAL_f.prototype.set = function INTEGRAL_f() { + SELECT_m.prototype.set = function SELECT_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,x0,exprs]=scicos_getvalue("Set continuous linear system parameters","Initial state",list("vec",1),exprs); +[ok,typ,nin,z0,exprs]=scicos_getvalue("Set parameters",[["Datatype(1= real double 2=Complex 3=int32 ..)"],["number of inputs"],["initial connected input"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } +if (z0>nin||z0<=0) { +message("initial connected input is not a valid input port number"); +} else if (((typ<1)||(typ>8))&&(typ!=-1)) { +message("Datatype is not supported"); +ok=false; +} else { +it=typ*ones(1,nin); +ot=typ; +if (ok) { +in1=[-ones(nin,1),-2*ones(nin,1)]; +out=[-1,-2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(nin,1),[]); +if (ok) { graphics.exprs=exprs; -model.state=x0; +model.dstate=z0; x.graphics=graphics; x.model=model; break; } -x.model.firing=[]; +} +} +} } } -/* autogenerated from "macros/Linear/DOLLAR_f.sci" */ -function DOLLAR_f() { - DOLLAR_f.prototype.define = function DOLLAR_f() { -z=0; -inh=0; -in1=1; -exprs=string([[z],[inh]]); +/* autogenerated from "macros/Branching/SWITCH2.sci" */ +function SWITCH2() { + SWITCH2.prototype.define = function SWITCH2() { +in1=[[-1],[1],[-1]]; +ipar=[0]; +nzz=1; +rpar=0; model=scicos_model(); -model.sim="dollar"; +model.sim=list("switch2",4); model.in1=in1; -model.out=in1; -model.evtin=1-inh; -model.dstate=z; -model.blocktype="d"; -model.dep_ut=[false,false]; +model.out=-1; +model.ipar=ipar; +model.rpar=rpar; +model.nzcross=nzz; +model.nmode=1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[string(ipar)],[string(rpar)],[string(nzz)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - DOLLAR_f.prototype.details = function DOLLAR_f() { + SWITCH2.prototype.details = function SWITCH2() { } - DOLLAR_f.prototype.get = function DOLLAR_f() { + SWITCH2.prototype.get = function SWITCH2() { } - DOLLAR_f.prototype.set = function DOLLAR_f() { + SWITCH2.prototype.set = function SWITCH2() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")<2) { -exprs[2-1]="0"; -} while (true) { -[ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",[["initial condition"],["Inherit (no:0, yes:1)"]],list("vec",-1,"vec",-1),exprs); +[ok,rule,thra,nzz,exprs]=scicos_getvalue("Set parameters",[["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)"],["threshold a"],["use zero crossing: yes (1), no (0)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -out=size(a,"*"); -if (out==0) { -out=[]; +rule=int(rule); +if ((rule<0)) { +rule=0; } -in1=out; -if (ok) { -[model,graphics,ok]=check_io(model,graphics,-1,-1,ones(1-inh,1),[]); +if ((rule>2)) { +rule=2; } -if (ok) { graphics.exprs=exprs; -model.dstate=a; -model.in1=in1; -model.out=out; +model.ipar=rule; +model.rpar=thra; +if (nzz!=0) { +model.nmode=1; +model.nzcross=1; +} else { +model.nmode=0; +model.nzcross=0; +} x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/CLINDUMMY_f.sci" */ -function CLINDUMMY_f() { - CLINDUMMY_f.prototype.define = function CLINDUMMY_f() { -x0=0; +/* autogenerated from "macros/Branching/SWITCH2_m.sci" */ +function SWITCH2_m() { + SWITCH2_m.prototype.define = function SWITCH2_m() { +ipar=[0]; +nzz=1; +rpar=0; model=scicos_model(); -model.sim=list("cdummy",4); -model.state=x0; +model.sim=list("switch2_m",4); +model.in1=[[-1],[1],[-1]]; +model.in2=[[-2],[1],[-2]]; +model.intyp=1; +model.out=-1; +model.out2=-2; +model.outtyp=1; +model.ipar=ipar; +model.rpar=rpar; +model.nzcross=nzz; +model.nmode=1; model.blocktype="c"; -model.firing=[]; -model.dep_ut=[false,true]; +model.dep_ut=[true,false]; +exprs=[[sci2exp(1)],[string(ipar)],[string(rpar)],[string(nzz)]]; gr_i=[]; -x=standard_define([3,2],model,[],gr_i); - } - CLINDUMMY_f.prototype.details = function CLINDUMMY_f() { - } - CLINDUMMY_f.prototype.get = function CLINDUMMY_f() { - } - CLINDUMMY_f.prototype.set = function CLINDUMMY_f() { -x=arg1; - } -} -/* autogenerated from "macros/Linear/DELAY_f.sci" */ -function DELAY_f() { - DELAY_f.prototype.define = function DELAY_f() { -evtdly=EVTDLY_f("define"); -evtdly.graphics.orig=[243,296]; -evtdly.graphics.sz=[40,40]; -evtdly.graphics.flip=true; -evtdly.graphics.exprs=[["0.1"],["0"]]; -evtdly.graphics.pein=10; -evtdly.graphics.peout=7; -evtdly.model.rpar=0.1; -evtdly.model.firing=0; -register=REGISTER_f("define"); -register.graphics.orig=[238,195]; -register.graphics.sz=[50,50]; -register.graphics.flip=true; -register.graphics.exprs="0;0;0;0;0;0;0;0;0;0"; -register.graphics.pin=6; -register.graphics.pout=5; -register.graphics.pein=9; -input_port=IN_f("define"); -input_port.graphics.orig=[92,210]; -input_port.graphics.sz=[20,20]; -input_port.graphics.flip=true; -input_port.graphics.exprs=[["1"],["1"]]; -input_port.graphics.pout=6; -input_port.model.ipar=1; -output_port=OUT_f("define"); -output_port.graphics.orig=[440,210]; -output_port.graphics.sz=[20,20]; -output_port.graphics.flip=true; -output_port.graphics.exprs=[["1"],["1"]]; -output_port.graphics.pin=5; -output_port.model.ipar=1; -split=CLKSPLIT_f("define"); -split.graphics.orig=[[263],[271.2]]; -split.graphics.pein=7; -split.graphics.peout=[[9],[10]]; -diagram=scicos_diagram(); -diagram.objs[1-1]=input_port; -diagram.objs[2-1]=output_port; -diagram.objs[3-1]=register; -diagram.objs[4-1]=evtdly; -diagram.objs[5-1]=scicos_link(xx=[[296.6],[440]],yy=[[220],[220]],from=[3,1],to=[2,1]); -diagram.objs[6-1]=scicos_link(xx=[[112],[229.4]],yy=[[220],[220]],from=[1,1],to=[3,1]); -diagram.objs[7-1]=scicos_link(xx=[[263],[263]],yy=[[290.3],[271.2]],ct=[5,-1],from=[4,1],to=[8,1]); -diagram.objs[8-1]=split; -diagram.objs[9-1]=scicos_link(xx=[[263],[263]],yy=[[271.2],[250.7]],ct=[5,-1],from=[8,1],to=[3,1]); -diagram.objs[10-1]=scicos_link(xx=[[263],[308.6],[308.6],[263],[263]],yy=[[271.2],[271.2],[367],[367],[341.7]],ct=[5,-1],from=[8,2],to=[4,1]); -x=scicos_block(); -x.gui="DELAY_f"; -x.graphics.sz=[2,2]; -x.graphics.gr_i=[]; -x.graphics.pin=0; -x.graphics.pout=0; -x.model.sim="csuper"; -x.model.in1=1; -x.model.out=1; -x.model.blocktype="h"; -x.model.dep_ut=[false,false]; -x.model.rpar=diagram; -x.graphics.in_implicit=["E"]; -x.graphics.in_style=""; -x.graphics.out_implicit=["E"]; -x.graphics.out_style=""; +x=standard_define([2,2],model,exprs,gr_i); } - DELAY_f.prototype.details = function DELAY_f() { + SWITCH2_m.prototype.details = function SWITCH2_m() { } - DELAY_f.prototype.get = function DELAY_f() { + SWITCH2_m.prototype.get = function SWITCH2_m() { } - DELAY_f.prototype.set = function DELAY_f() { -ppath=list(0,0); -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="REGISTER_f") { -ppath[1-1]=i; -} -if (typeof(o)=="Block"&&o.gui=="EVTDLY_f") { -ppath[2-1]=i; -} -if (and(ppath!=list(0,0))) { -break; -} -} + SWITCH2_m.prototype.set = function SWITCH2_m() { x=arg1; -newpar=list(); -register=x.model.rpar.objs[ppath[1-1]-1]; -evtdly=x.model.rpar.objs[ppath[2-1]-1]; -register_exprs=register.graphics.exprs; -evtdly_exprs=evtdly.graphics.exprs; -exprs=[[evtdly_exprs[1-1]],[register_exprs]]; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,dt,z0,exprs]=scicos_getvalue([["This block implements as a discretized delay"],["it is consist of a shift register and a clock"],["value of the delay is given by;","the discretization time step multiplied by the"],["number-1 of state of the register"]],[["Discretization time step"],["Register initial state"]],list("vec",1,"vec",-1),exprs); +[ok,ot,rule,thra,nzz,exprs]=scicos_getvalue("Set parameters",[["Datatype (1=real double 2=complex 3=int32 ...)"],["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)"],["threshold a"],["use zero crossing: yes (1), no (0)"]],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -mess=[]; -if (prod[size(z0)-1]<1) { -mess=[[mess],["Register length must be at least 1"],[" "]]; -ok=false; +rule=int(rule); +if ((rule<0)) { +rule=0; } -if (dt<=0) { -mess=[[mess],["Discretization time step must be positive"],[" "]]; -ok=false; +if ((rule>2)) { +rule=2; } -if (!ok) { -message(mess); +graphics.exprs=exprs; +model.ipar=rule; +model.rpar=thra; +if (nzz!=0) { +model.nmode=1; +model.nzcross=1; } else { -evtdly.graphics.exprs[1-1]=exprs[1-1]; -if (evtdly.model.rpar!=dt) { -evtdly.model.rpar=dt; -newpar[$+1-1]=ppath[2-1]; +model.nmode=0; +model.nzcross=0; } -x.model.rpar.objs[ppath[2-1]-1]=evtdly; -register.graphics.exprs=exprs[2-1]; -if (or(register.model.dstate!=z0.slice())) { -register.model.dstate=z0.slice(); -newpar[$+1-1]=ppath[1-1]; +if (((ot<1)||(ot>8))&&(ot!=-1)) { +message("Datatype is not supported"); +ok=false; } -x.model.rpar.objs[ppath[1-1]-1]=register; +if (ok) { +it[1-1]=ot; +it[2-1]=1; +it[3-1]=ot; +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} +if (ok) { +x.graphics=graphics; +x.model=model; break; } } -needcompile=0; -y=needcompile; -typ=newpar; } } -/* autogenerated from "macros/Linear/DLR.sci" */ -function DLR() { - DLR.prototype.define = function DLR() { -x0=0; -A=-1; -B=1; -C=1; -D=0; -exprs=[["1"],["1+z"]]; +/* autogenerated from "macros/Branching/SWITCH_f.sci" */ +function SWITCH_f() { + SWITCH_f.prototype.define = function SWITCH_f() { +i0=0; +in1=[[-1],[-1]]; +nin=2; model=scicos_model(); -model.sim=list("dsslti4",4); -model.in1=1; -model.out=1; -model.evtin=1; -model.dstate=x0.slice(); -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -model.blocktype="d"; -model.dep_ut=[false,false]; +model.sim=list("switchn",2); +model.in1=in1; +model.out=-1; +model.ipar=i0; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,true]; +exprs=[[string(nin)],[string(i0+1)]]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - DLR.prototype.details = function DLR() { + SWITCH_f.prototype.details = function SWITCH_f() { } - DLR.prototype.get = function DLR() { + SWITCH_f.prototype.get = function SWITCH_f() { } - DLR.prototype.set = function DLR() { + SWITCH_f.prototype.set = function SWITCH_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -x0=model.dstate; -ns=prod[size(x0)-1]; -PREVAR_scicos_context=PREVAR_scicos_context; -PREVAR_scicos_context.z=%z; +ipar=model.ipar; while (true) { -[ok,num,den,exprs]=scicos_getvalue("Set discrete SISO transfer parameters",[["Numerator (z)"],["Denominator (z)"]],list("pol",1,"pol",1),exprs); +[ok,nin,z0,exprs]=scicos_getvalue("Set switch parameters",[["number of inputs"],["connected input"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { -message("Transfer function must be proper"); -ok=false; -} +if (z0>nin||z0<=0) { +message("initial connected input is not a valid input port number"); +} else { +[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,[],[]); if (ok) { -H=cont_frm[num-1][den-1]; -[A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; -[ns1,ns1]=size(A); -if (ns1<=ns) { -x0=x0.slice(1-1,ns1); -} else { -x0[ns1-1][1-1]=0; -} -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -model.dstate=x0; -model.rpar=rpar; -if (norm(D,1)!=0) { -mmm=[true,false]; -} else { -mmm=[false,false]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} +model.ipar=z0-1; x.graphics=graphics; x.model=model; break; } } -x.model.firing=[]; +} } } -/* autogenerated from "macros/Linear/TCLSS_f.sci" */ -function TCLSS_f() { - TCLSS_f.prototype.define = function TCLSS_f() { -x0=0; -A=0; -B=1; -C=1; -D=0; -in1=1; -nx=size(x0,"*"); -out=1; +/* autogenerated from "macros/Electrical/CCS.sci" */ +function CCS() { + CCS.prototype.define = function CCS() { +ModelName="CCS"; +PrametersValue=[]; +ParametersName=[]; model=scicos_model(); -model.sim=list("tcslti",1); -model.in1=[[in1],[nx]]; -model.out=out; -model.evtin=1; -model.state=x0; -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[2,50,1,0],[70,98,2,0],[70,2,-2,0]]; +PortName=[["Iin"],["p"],["n"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; +} +} +model=scicos_model(); +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); +exprs=[]; +gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2.1,3],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - TCLSS_f.prototype.details = function TCLSS_f() { + CCS.prototype.details = function CCS() { } - TCLSS_f.prototype.get = function TCLSS_f() { + CCS.prototype.get = function CCS() { } - TCLSS_f.prototype.set = function TCLSS_f() { + CCS.prototype.set = function CCS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==7) { -exprs=exprs[[1:4,7]-1]; -} -while (true) { -[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); -if (!ok) { -break; -} -out=size(C,1); -if (out==0) { -out=[]; -} -in1=size(B,2); -if (in1==0) { -in1=[]; -} -[ms,ns]=size(A); -if (ms!=ns) { -message("A matrix must be square"); -} else { -[model,graphics,ok]=check_io(model,graphics,[[in1],[ms]],out,1,[]); -if (ok) { -graphics.exprs=exprs; -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -if (D!=[]) { -if (norm(D,1)!=0) { -mmm=[true,true]; -} else { -mmm=[false,true]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -} else { -model.dep_ut=[false,true]; +x=arg1; + } } -model.state=x0.slice(); -model.rpar=rpar; -if (D!=[]) { -model.sim=list("tcslti",1); -} else { -model.sim=list("tcsltj",1); +/* autogenerated from "macros/Electrical/CVS.sci" */ +function CVS() { + CVS.prototype.define = function CVS() { +ModelName="CVS"; +PrametersValue=[]; +ParametersName=[]; +model=scicos_model(); +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[2,50,1,0],[70,98,2,0],[70,2,-2,0]]; +PortName=[["vin"],["p"],["n"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; } -x.graphics=graphics; -x.model=model; -break; +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; } +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; } +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; } - } } -/* autogenerated from "macros/Linear/DERIV.sci" */ -function DERIV() { - DERIV.prototype.define = function DERIV() { model=scicos_model(); -model.sim=list("deriv",4); -model.in1=-1; -model.out=-1; -model.blocktype="x"; -model.dep_ut=[true,false]; +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=[]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +model.blocktype="c"; +model.dep_ut=[false,true]; +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2.1,3],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - DERIV.prototype.details = function DERIV() { + CVS.prototype.details = function CVS() { } - DERIV.prototype.get = function DERIV() { + CVS.prototype.get = function CVS() { } - DERIV.prototype.set = function DERIV() { + CVS.prototype.set = function CVS() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; x=arg1; } } -/* autogenerated from "macros/Linear/VARIABLE_DELAY.sci" */ -function VARIABLE_DELAY() { - VARIABLE_DELAY.prototype.define = function VARIABLE_DELAY() { -nin=1; -T=1; -init=0; -N=1024; +/* autogenerated from "macros/Electrical/Capacitor.sci" */ +function Capacitor() { + Capacitor.prototype.define = function Capacitor() { model=scicos_model(); -model.sim=list("variable_delay",4); -model.in1=[[nin],[1]]; -model.out=nin; -model.rpar=[T,init]; -model.ipar=N; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[string(T)],[string(init)],[string(N)]]; +C=0.01; +v=0; +model.rpar=[[C],[v]]; +model.sim="Capacitor"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="Capacitor"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list(["C","v"],list(C,v),[0,1]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=string([[C],[v]]); gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,1.1],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - VARIABLE_DELAY.prototype.details = function VARIABLE_DELAY() { + Capacitor.prototype.details = function Capacitor() { } - VARIABLE_DELAY.prototype.get = function VARIABLE_DELAY() { + Capacitor.prototype.get = function Capacitor() { } - VARIABLE_DELAY.prototype.set = function VARIABLE_DELAY() { + Capacitor.prototype.set = function Capacitor() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -nin=model.in1[1-1]; while (true) { -[ok,T,init,N,exprs]=scicos_getvalue("Set delay parameters",[["Max delay"],["initial input"],["Buffer size"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,C,v,exprs]=scicos_getvalue("Set Capacitor block parameter",[["C (F)"],["Initial Voltage"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if (N<2) { -message("Buffer must be larger than 2"); -ok=false; -} -if (T<=0) { -message("Delay must be positive"); -ok=false; -} -if (ok) { -[model,graphics,ok]=check_io(model,graphics,[[-1],[1]],-1,[],[]); -} -if (ok) { +model.rpar=C; +model.equations.parameters[2-1]=list(C,v); graphics.exprs=exprs; -model.rpar=[[T],[init]]; -model.ipar=N; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/REGISTER.sci" */ -function REGISTER() { - REGISTER.prototype.define = function REGISTER() { -z0=zeros(10,1); +/* autogenerated from "macros/Electrical/ConstantVoltage.sci" */ +function ConstantVoltage() { + ConstantVoltage.prototype.define = function ConstantVoltage() { +V=0.01; model=scicos_model(); -model.sim=list("delay4",4); +model.rpar=V; model.in1=1; model.out=1; -model.evtin=1; -model.dstate=z0; -model.blocktype="d"; +model.sim="ConstantVoltage"; +model.blocktype="c"; model.dep_ut=[false,false]; -exprs=strcat(string(z0),";"); +mo=modelica(); +mo.model="ConstantVoltage"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list("V",list(V)); +model.equations=mo; +exprs=string(V); gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([1.5,1.1],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - REGISTER.prototype.details = function REGISTER() { + ConstantVoltage.prototype.details = function ConstantVoltage() { } - REGISTER.prototype.get = function REGISTER() { + ConstantVoltage.prototype.get = function ConstantVoltage() { } - REGISTER.prototype.set = function REGISTER() { + ConstantVoltage.prototype.set = function ConstantVoltage() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,1)==1) { -exprs=[[exprs],[sci2exp(1)]]; -} while (true) { -[ok,z0,it,exprs]=scicos_getvalue("Set delay parameters",[["Register initial condition"],["Datatype (1=double 3=int32 ...)"]],list("vec",-1,"vec",1),exprs); +[ok,V,exprs]=scicos_getvalue("Set ConstantVoltage block parameter","V (volt)",list("vec",1),exprs); if (!ok) { break; } -if (prod[size(z0)-1]<1) { -message("Register length must be at least 1"); -ok=false; -} -if (it==1) { -model.sim=list("delay4",4); -z0=double[z0-1]; -model.dstate=z0; -model.odstate=list(); -} else { -if (it==3) { -model.sim=list("delay4_i32",4); -z0=int32[z0-1]; -} else if (it==4) { -model.sim=list("delay4_i16",4); -z0=int16[z0-1]; -} else if (it==5) { -model.sim=list("delay4_i8",4); -z0=int8[z0-1]; -} else if (it==6) { -model.sim=list("delay4_ui32",4); -z0=uint32[z0-1]; -} else if (it==7) { -model.sim=list("delay4_ui16",4); -z0=uint16[z0-1]; -} else if (it==8) { -model.sim=list("delay4_ui8",4); -z0=uint8[z0-1]; -} else { -message("Datatype is not supported"); -ok=false; -} -model.odstate=list(z0); -model.dstate=[]; -} -if (ok) { -in1=[1,1]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(in1,it),1,[]); -} -if (ok) { +model.rpar=V; +model.equations.parameters[2-1]=list(V); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/INTEGRAL.sci" */ -function INTEGRAL() { - INTEGRAL.prototype.define = function INTEGRAL() { -maxp=1; -minp=-1; -rpar=[]; +/* autogenerated from "macros/Electrical/CurrentSensor.sci" */ +function CurrentSensor() { + CurrentSensor.prototype.define = function CurrentSensor() { model=scicos_model(); -model.state=0; -model.sim=list("integral_func",4); model.in1=1; -model.out=1; -model.rpar=rpar; +model.out=[[1],[1]]; +model.sim="CurrentSensor"; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=string([[0],[0],[0],[maxp],[minp]]); +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="CurrentSensor"; +mo.inputs="p"; +mo.outputs=[["n"],["i"]]; +model.equations=mo; +exprs=[]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); -x.graphics.id="1/s"; +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=[["I"],["E"]]; } - INTEGRAL.prototype.details = function INTEGRAL() { + CurrentSensor.prototype.details = function CurrentSensor() { } - INTEGRAL.prototype.get = function INTEGRAL() { + CurrentSensor.prototype.get = function CurrentSensor() { } - INTEGRAL.prototype.set = function INTEGRAL() { + CurrentSensor.prototype.set = function CurrentSensor() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,x0,reinit,satur,maxp,lowp,exprs]=scicos_getvalue("Set Integral block parameters",[["Initial Condition"],["With re-intialization (1:yes, 0:no)"],["With saturation (1:yes, 0:no)"],["Upper limit"],["Lower limit"]],list("vec",-1,"vec",1,"vec",1,"vec",-1,"vec",-1),exprs); -if (!ok) { -break; -} -x0=x0.slice(); -maxp=maxp.slice(); -lowp=lowp.slice(); -if (reinit!=0) { -reinit=1; -} -if (satur!=0) { -satur=1; -if (size(maxp,"*")==1) { -maxp=maxp*ones(x0); -} -if (size(lowp,"*")==1) { -lowp=lowp*ones(x0); -} -if ((size(x0,1)!=size(maxp,1)||size(x0,1)!=size(lowp,1))) { -message("x0 and Upper limit and Lower limit must have same size"); -ok=false; -} else if (or(maxp<=lowp)) { -message("Upper limits must be > Lower limits"); -ok=false; -} else if (or(x0>maxp)||or(x0<lowp)) { -message("Initial condition x0 should be inside the limits"); -ok=false; -} else { -rpar=[[maxp],[lowp]]; -model.nzcross=size(x0,1); -model.nmode=size(x0,1); -} -} else { -rpar=[]; -model.nzcross=0; -model.nmode=0; -} -if (ok) { -model.rpar=rpar; -model.state=x0; -[model,graphics,ok]=check_io(model,graphics,size(x0,1)*[[1],[ones(reinit,1)]],size(x0,1),ones(reinit,1),[]); -} -if (ok) { -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} -} } } -/* autogenerated from "macros/Linear/GAINBLK.sci" */ -function GAINBLK() { - GAINBLK.prototype.define = function GAINBLK() { -gain=1; -in1=-1; -out=-1; -in2=-2; -out2=-2; +/* autogenerated from "macros/Electrical/Diode.sci" */ +function Diode() { + Diode.prototype.define = function Diode() { +Ids=1.e-6; +Vt=0.04; +Maxexp=15; +R=1.e8; model=scicos_model(); -model.sim=list("gainblk",4); -model.in1=in1; -model.out=out; -model.in2=in2; -model.out2=out2; -model.rpar=gain; +model.rpar=[[Ids],[Vt],[Maxexp],[R]]; +model.in1=1; +model.out=1; +model.sim="Diode"; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[strcat(sci2exp(gain))]; +mo=modelica(); +mo.model="Diode"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list(["Ids","Vt","Maxexp","R"],list(Ids,Vt,Maxexp,R)); +model.equations=mo; +exprs=string([[Ids],[Vt],[Maxexp],[R]]); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,1],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - GAINBLK.prototype.details = function GAINBLK() { + Diode.prototype.details = function Diode() { } - GAINBLK.prototype.get = function GAINBLK() { + Diode.prototype.get = function Diode() { } - GAINBLK.prototype.set = function GAINBLK() { + Diode.prototype.set = function Diode() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==1) { -exprs=[[exprs],[sci2exp(0)]]; -} while (true) { -[ok,gain,over,exprs]=scicos_getvalue("Set gain block parameters",[["Gain"],["Do On Overflow(0=Nothing 1=Saturate 2=Error)"]],list("mat",[-1,-1],"vec",1),exprs); +[ok,Ids,Vt,Maxexp,R,exprs]=scicos_getvalue("Set Diode block parameter",[["Saturation cuurent (A)"],["Voltage equivalent to temperature (Volt)"],["Max exponent for linear continuation"],["R (ohm)"]],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (gain==[]) { -message("Gain must have at least one element"); -} else { -if (typeof(gain)=="constant") { -if (isreal[gain-1]) { -it=1; -ot=1; -model.sim=list("gainblk",4); -model.rpar=gain.slice(); -model.opar=list(); -} else { -message("type is not supported"); -ok=false; -} -} else { -if ((over==0)) { -if ((typeof(gain)=="int32")) { -ot=3; -model.sim=list("gainblk_i32n",4); -} else if ((typeof(gain)=="int16")) { -ot=4; -model.sim=list("gainblk_i16n",4); -} else if ((typeof(gain)=="int8")) { -ot=5; -model.sim=list("gainblk_i8n",4); -} else if ((typeof(gain)=="uint32")) { -ot=6; -model.sim=list("gainblk_ui32n",4); -} else if ((typeof(gain)=="uint16")) { -ot=7; -model.sim=list("gainblk_ui16n",4); -} else if ((typeof(gain)=="uint8")) { -ot=8; -model.sim=list("gainblk_ui8n",4); -} else { -message("type is not supported."); -ok=false; -} -} else if ((over==1)) { -if ((typeof(gain)=="int32")) { -ot=3; -model.sim=list("gainblk_i32s",4); -} else if ((typeof(gain)=="int16")) { -ot=4; -model.sim=list("gainblk_i16s",4); -} else if ((typeof(gain)=="int8")) { -ot=5; -model.sim=list("gainblk_i8s",4); -} else if ((typeof(gain)=="uint32")) { -ot=6; -model.sim=list("gainblk_ui32s",4); -} else if ((typeof(gain)=="uint16")) { -ot=7; -model.sim=list("gainblk_ui16s",4); -} else if ((typeof(gain)=="uint8")) { -ot=8; -model.sim=list("gainblk_ui8s",4); -} else { -message("type is not supported."); -ok=false; -} -} else if ((over==2)) { -if ((typeof(gain)=="int32")) { -ot=3; -model.sim=list("gainblk_i32e",4); -} else if ((typeof(gain)=="int16")) { -ot=4; -model.sim=list("gainblk_i16e",4); -} else if ((typeof(gain)=="int8")) { -ot=5; -model.sim=list("gainblk_i8e",4); -} else if ((typeof(gain)=="uint32")) { -ot=6; -model.sim=list("gainblk_ui32e",4); -} else if ((typeof(gain)=="uint16")) { -ot=7; -model.sim=list("gainblk_ui16e",4); -} else if ((typeof(gain)=="uint8")) { -ot=8; -model.sim=list("gainblk_ui8e",4); -} else { -message("type is not an integer."); -ok=false; -} -} else { -message("Do on Overflow must be 0,1,2"); -ok=false; -} -model.rpar=[]; -model.opar=list(gain.slice()); -} -if (ok) { -[out,in1]=size(gain); -if (out*in1!=1) { -[model,graphics,ok]=set_io(model,graphics,list([in1,-1],ot),list([out,-1],ot),[],[]); -} else { -[model,graphics,ok]=set_io(model,graphics,list([-1,-2],ot),list([-1,-2],ot),[],[]); -} -} -if (ok) { +model.rpar=[[Ids],[Vt],[Maxexp],[R]]; +model.equations.parameters=list(["Ids","Vt","Maxexp","R"],list(Ids,Vt,Maxexp,R)); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} -} } } -/* autogenerated from "macros/Linear/SOM_f.sci" */ -function SOM_f() { - SOM_f.prototype.define = function SOM_f() { -sgn=[[1],[1],[1]]; +/* autogenerated from "macros/Electrical/Ground.sci" */ +function Ground() { + Ground.prototype.define = function Ground() { model=scicos_model(); -model.sim=list("sum",2); -model.in1=[[-1],[-1],[-1]]; -model.out=-1; -model.rpar=sgn; +model.in1=[1]; +model.out=[]; +model.sim="Ground"; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[sci2exp(1)],[sci2exp(sgn)]]; +mo=modelica(); +mo.model="Ground"; +mo.inputs="p"; +model.equations=mo; +exprs=""; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([1,1],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - SOM_f.prototype.details = function SOM_f() { + Ground.prototype.details = function Ground() { } - SOM_f.prototype.get = function SOM_f() { + Ground.prototype.get = function Ground() { } - SOM_f.prototype.set = function SOM_f() { + Ground.prototype.set = function Ground() { x=arg1; -graphics=arg1.graphics; -model=arg1.model; -exprs=graphics.exprs; -if (size(exprs,"*")==2) { -exprs=exprs[2-1]; + } } -if (size(exprs,"*")!=3) { -exprs=string(model.rpar); +/* autogenerated from "macros/Electrical/Gyrator.sci" */ +function Gyrator() { + Gyrator.prototype.define = function Gyrator() { +ModelName="Gyrator"; +PrametersValue=[[1],[1]]; +ParametersName=[["G1"],["G2"]]; +model=scicos_model(); +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[2.5,90,2,0],[2.5,10,2,0],[97.5,90,-2,0],[97.5,10,-2,0]]; +PortName=[["p1"],["n1"],["p2"],["n2"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; } -if (graphics.flip) { -labs=["down","left","up"]; -} else { -labs=["down","right","up"]; +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; } -str=[["This sum block is obsolete","parameters cannot be modified. Please replace it with new sum block"],["and gain blocks in the linear palette"," ","Input ports are located at up, side and down positions.","Current gains are:"]]; -str=[[str],[(part(labs.slice(),1,7)+exprs.slice())]]; -message(str); - } } -/* autogenerated from "macros/Linear/DOLLAR_m.sci" */ -function DOLLAR_m() { - DOLLAR_m.prototype.define = function DOLLAR_m() { -z=0; -inh=0; -in1=1; -exprs=string([[z],[inh]]); model=scicos_model(); -model.sim=list("dollar4",4); -model.in1=in1; -model.out=in1; -model.evtin=1-inh; -model.dstate=z; -model.blocktype="d"; -model.dep_ut=[false,false]; +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); +exprs=[["1"],["1"]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +model.blocktype="c"; +model.dep_ut=[false,true]; +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - DOLLAR_m.prototype.details = function DOLLAR_m() { + Gyrator.prototype.details = function Gyrator() { } - DOLLAR_m.prototype.get = function DOLLAR_m() { + Gyrator.prototype.get = function Gyrator() { } - DOLLAR_m.prototype.set = function DOLLAR_m() { + Gyrator.prototype.set = function Gyrator() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")<2) { -exprs[2-1]="0"; -} +x=arg1; +exprs=x.graphics.exprs; while (true) { -[ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",[["initial condition"],["Inherit (no:0, yes:1)"]],list("mat",[-1,-2],"vec",-1),exprs); +[ok,G1,G2,exprs]=scicos_getvalue([["Set Gyrator block parameters:"],[""],["G1: Gyration conductance"],["G2: Gyration conductance"]],[["G1"],["G2"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -out=[size(a,1),size(a,2)]; -if (out==0) { -out=[]; -} -in1=out; -model.sim=list("dollar4_m",4); -model.odstate=list(a); -model.dstate=[]; -if ((type[a-1]==1)) { -if (isreal[a-1]) { -it=1; -ot=1; -if ((size(a,1)==1||size(a,2)==1)) { -model.sim=list("dollar4",4); -model.dstate=a.slice(); -model.odstate=list(); +x.model.equations.parameters[2-1]=list(G1,G2); +x.graphics.exprs=exprs; +break; } -} else { -it=2; -ot=2; + } } -} else if ((typeof(a)=="int32")) { -it=3; -ot=3; -} else if ((typeof(a)=="int16")) { -it=4; -ot=4; -} else if ((typeof(a)=="int8")) { -it=5; -ot=5; -} else if ((typeof(a)=="uint32")) { -it=6; -ot=6; -} else if ((typeof(a)=="uint16")) { -it=7; -ot=7; -} else if ((typeof(a)=="uint8")) { -it=8; -ot=8; -} else { -message("type is not recognized"); -ok=false; +/* autogenerated from "macros/Electrical/IdealTransformer.sci" */ +function IdealTransformer() { + IdealTransformer.prototype.define = function IdealTransformer() { +ModelName="IdealTransformer"; +PrametersValue=[1]; +ParametersName=["N"]; +model=scicos_model(); +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[2.5,90,2,0],[2.5,10,2,0],[97.5,90,-2,0],[97.5,10,-2,0]]; +PortName=[["p1"],["n1"],["p2"],["n2"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; } -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-inh,1),[]); +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; } -if (ok) { -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; } +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; } - } } -/* autogenerated from "macros/Linear/DELAYV_f.sci" */ -function DELAYV_f() { - DELAYV_f.prototype.define = function DELAYV_f() { -nin=1; -z0=zeros(11,1); -zz0=z0.slice(1-1,$-1); -T=1; model=scicos_model(); -model.sim=list("delayv",1); -model.in1=[[nin],[1]]; -model.out=nin; -model.evtin=1; -model.evtout=[[1],[1]]; -model.dstate=z0; -model.rpar=T/(size(zz0,"*")); -model.blocktype="d"; -model.firing=[0,-1]; -model.dep_ut=[true,false]; -exprs=[[string(nin)],[strcat(string(z0.slice(1-1,$-1)),";")],[string(T)]]; +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); +exprs=["1"]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +model.blocktype="c"; +model.dep_ut=[false,true]; +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - DELAYV_f.prototype.details = function DELAYV_f() { + IdealTransformer.prototype.details = function IdealTransformer() { } - DELAYV_f.prototype.get = function DELAYV_f() { + IdealTransformer.prototype.get = function IdealTransformer() { } - DELAYV_f.prototype.set = function DELAYV_f() { + IdealTransformer.prototype.set = function IdealTransformer() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -nin=model.in1[1-1]; -z0=model.dstate; -zz0=z0.slice(1-1,$-1); -told=z0[$-1]; +x=arg1; +exprs=x.graphics.exprs; while (true) { -[ok,nin,zz0,T,exprs]=scicos_getvalue("Set delay parameters",[["Number of inputs"],["Register initial condition"],["Max delay"]],list("vec",1,"vec",-1,"vec",1),exprs); +[ok,N,exprs]=scicos_getvalue([["Set Transformer block parameters:"],[""],["N:"+" Turn ratio (N1/N2)"]],["N"],list("vec",1),exprs); if (!ok) { break; } -if (size(zz0,"*")<2) { -message("Register length must be at least 2"); -ok=false; -} -if (T<=0) { -message("Delay must be positive"); -ok=false; -} -if (ok) { -[model,graphics,ok]=check_io(model,graphics,[[nin],[1]],nin,1,[[1],[1]]); -} -if (ok) { -graphics.exprs=exprs; -model.dstate=[[zz0.slice()],[told]]; -model.rpar=T/(size(zz0,"*")); -x.graphics=graphics; -x.model=model; +x.model.equations.parameters[2-1]=list(N); +x.graphics.exprs=exprs; break; } -} } } -/* autogenerated from "macros/Linear/CLSS_f.sci" */ -function CLSS_f() { - CLSS_f.prototype.define = function CLSS_f() { -x0=0; -A=-1; -B=1; -C=1; -D=0; -in1=1; -out=1; +/* autogenerated from "macros/Electrical/Inductor.sci" */ +function Inductor() { + Inductor.prototype.define = function Inductor() { model=scicos_model(); -model.sim=list("csslti",1); -model.in1=in1; -model.out=out; -model.state=x0; -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.in1=[1]; +model.out=[1]; +L=1.e-5; +model.rpar=L; +model.sim="Inductor"; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="Inductor"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list("L",list(L)); +model.equations=mo; +exprs=string(L); gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,0.9],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - CLSS_f.prototype.details = function CLSS_f() { + Inductor.prototype.details = function Inductor() { } - CLSS_f.prototype.get = function CLSS_f() { + Inductor.prototype.get = function Inductor() { } - CLSS_f.prototype.set = function CLSS_f() { + Inductor.prototype.set = function Inductor() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -if (size(exprs,"*")==7) { -exprs=exprs[[1:4,7]-1]; -} model=arg1.model; while (true) { -[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); +[ok,L,exprs]=scicos_getvalue("Set Inductor block parameter","L (H)",list("vec",1),exprs); if (!ok) { break; } -out=size(C,1); -if (out==0) { -out=[]; -} -in1=size(B,2); -if (in1==0) { -in1=[]; -} -[ms,ns]=size(A); -if (ms!=ns) { -message("A matrix must be square"); -} else { -[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); -if (ok) { +model.rpar=L; +model.equations.parameters[2-1]=list(L); graphics.exprs=exprs; -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -if (D!=[]) { -if (norm(D,1)!=0) { -mmm=[true,true]; -} else { -mmm=[false,true]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -} else { -model.dep_ut=[false,true]; -} -model.state=x0.slice(); -model.rpar=rpar; x.graphics=graphics; x.model=model; break; } + } } -} +/* autogenerated from "macros/Electrical/MOTOR.sci" */ +function MOTOR() { + MOTOR.prototype.define = function MOTOR() { +model=scicos_model(); +model.out=[[1],[1]]; +model.in1=[1]; +model.sim="motor"; +model.blocktype="c"; +model.dep_ut=[true,false]; +gr_i=[]; +exprs=""; +x=standard_define([2,2],model,exprs,gr_i); +x.graphics.out_implicit=[["I"],["I"]]; +x.graphics.in_implicit=["I"]; + } + MOTOR.prototype.details = function MOTOR() { + } + MOTOR.prototype.get = function MOTOR() { + } + MOTOR.prototype.set = function MOTOR() { +x=arg1; } } -/* autogenerated from "macros/Linear/CLSS.sci" */ -function CLSS() { - CLSS.prototype.define = function CLSS() { -x0=0; -A=-1; -B=1; -C=1; -D=0; -in1=1; -out=1; +/* autogenerated from "macros/Electrical/NMOS.sci" */ +function NMOS() { + NMOS.prototype.define = function NMOS() { model=scicos_model(); -model.sim=list("csslti4",4); -model.in1=in1; -model.out=out; -model.state=x0; -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +W=20.e-6; +L=6.e-6; +Beta=0.041e-3; +Vt=0.8; +K2=1.144; +K5=0.7311; +dW=-2.5e-6; +dL=-1.5e-6; +RDS=1.e+7; +model.sim="NMOS"; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="NMOS"; +mo.outputs=[["D"],["B"],["S"]]; +mo.inputs="G"; +mo.parameters=list([["W"],["L"],["Beta"],["Vt"],["K2"],["K5"],["dW"],["dL"],["RDS"]],[[W],[L],[Beta],[Vt],[K2],[K5],[dW],[dL],[RDS]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=[[string(W)],[string(L)],[string(Beta)],[string(Vt)],[string(K2)],[string(K5)],[string(dW)],[string(dL)],[string(RDS)]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=[["I"],["I"],["I"]]; } - CLSS.prototype.details = function CLSS() { + NMOS.prototype.details = function NMOS() { } - CLSS.prototype.get = function CLSS() { + NMOS.prototype.get = function NMOS() { } - CLSS.prototype.set = function CLSS() { + NMOS.prototype.set = function NMOS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -if (size(exprs,"*")==7) { -exprs=exprs[[1:4,7]-1]; -} model=arg1.model; while (true) { -[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); +[ok,W,L,Beta,Vt,K2,K5,dW,dL,RDS,exprs]=scicos_getvalue("Set NMOS Transistor block parameters",[["Width [m]"],["Length [m]"],["Transconductance parameter [A/(V*V)]"],["Zero bias threshold voltage [V]"],["Bulk threshold parameter"],["Reduction of pinch-off region"],["Narrowing of channel [m]"],["Shortening of channel [m]"],["Drain-Source-Resistance [Ohm]"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -out=size(C,1); -if (out==0) { -out=[]; -} -in1=size(B,2); -if (in1==0) { -in1=[]; -} -[ms,ns]=size(A); -okD=true; -if (size(D,"*")!=size(C,1)*size(B,2)) { -if (size(D,"*")==1) { -D=D*ones(C*B); -} else if (size(D,"*")==0) { -D=zeros(C*B); -} else { -okD=false; -} -} -if (ms!=ns||!okD) { -message(_["Matrix A is not square or D has wrong dimension"-1]); -} else { -[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); -if (ok) { +model.equations.parameters[2-1]=list(W,L,Beta,Vt,K2,K5,dW,dL,RDS); graphics.exprs=exprs; -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -if (D!=[]) { -if (norm(D,1)!=0) { -mmm=[true,true]; -} else { -mmm=[false,true]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -} else { -model.dep_ut=[false,true]; -} -model.state=x0.slice(); -model.rpar=rpar; x.graphics=graphics; x.model=model; break; } + } +} +/* autogenerated from "macros/Electrical/NPN.sci" */ +function NPN() { + NPN.prototype.define = function NPN() { +ModelName="NPN"; +PrametersValue=[[50],[0.1],[0],[0.02],[1.200e-10],[5.000e-09],[1.000e-12],[4.000e-13],[5.000e-13],[0.8],[0.4],[0.8],[0.333],[1.000e-15],[1.000e-15],[0.02585],[40]]; +ParametersName=[["Bf"],["Br"],["Is"],["Vak"],["Tauf"],["Taur"],["Ccs"],["Cje"],["Cjc"],["Phie"],["Me"],["Phic"],["Mc"],["Gbc"],["Gbe"],["Vt"],["EMinMax"]]; +model=scicos_model(); +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[100,90,-2,0],[0,50,2,0],[100,10,-2,0]]; +PortName=[["C"],["B"],["E"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; } +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; } - } } -/* autogenerated from "macros/Linear/SAMPHOLD_m.sci" */ -function SAMPHOLD_m() { - SAMPHOLD_m.prototype.define = function SAMPHOLD_m() { model=scicos_model(); -model.sim=list("samphold4_m",4); -model.in1=-1; -model.in2=-2; -model.intyp=1; -model.outtyp=1; -model.out=-1; -model.out2=-2; -model.evtin=1; -model.blocktype="d"; -model.dep_ut=[true,false]; -label=[sci2exp(1)]; +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); +exprs=[["50"],["0.1"],["1.e-16"],["0.02"],["0.12e-9"],["5e-9"],["1e-12"],["0.4e-12"],["0.5e-12"],["0.8"],["0.4"],["0.8"],["0.333"],["1e-15"],["1e-15"],["0.02585"],["40"]]; gr_i=[]; -x=standard_define([2,2],model,label,gr_i); +model.blocktype="c"; +model.dep_ut=[false,true]; +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - SAMPHOLD_m.prototype.details = function SAMPHOLD_m() { + NPN.prototype.details = function NPN() { } - SAMPHOLD_m.prototype.get = function SAMPHOLD_m() { + NPN.prototype.get = function NPN() { } - SAMPHOLD_m.prototype.set = function SAMPHOLD_m() { + NPN.prototype.set = function NPN() { x=arg1; -x.model.firing=[]; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; model=arg1.model; +x=arg1; +exprs=x.graphics.exprs; while (true) { -[ok,it,exprs]=scicos_getvalue("Set parameters Block",["Datatype(1=real double 2=Complex 3=int32 ...)"],list("vec",1),label); +[ok,Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax,exprs]=scicos_getvalue([["Set NPN block parameters:"],[""]],[["Bf : Forward beta"],["Br : Reverse beta"],["Is : Transport saturation current"],["Vak : Early voltage (inverse), 1/Volt"],["Tauf: Ideal forward transit time"],["Taur: Ideal reverse transit time"],["Ccs : Collector-substrat(ground) cap."],["Cje : Base-emitter zero bias depletion cap."],["Cjc : Base-coll. zero bias depletion cap."],["Phie: Base-emitter diffusion voltage"],["Me : Base-emitter gradation exponent"],["Phic: Base-collector diffusion voltage"],["Mc : Base-collector gradation exponent"],["Gbc : Base-collector conductance"],["Gbe : Base-emitter conductance"],["Vt : Voltage equivalent of temperature"],["EMinmax: if x > EMinMax, the exp(x) is linearized"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (((it<1)||(it>8))) { -message("Datatype is not supported"); -ok=false; -} -if (ok) { -in1=[model.in1,model.in2]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(in1,it),1,[]); -if (ok) { -graphics.exprs=exprs; -arg1.graphics=graphics; -arg1.model=model; -x=arg1; +x.model.equations.parameters[2-1]=list(Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax); +x.graphics.exprs=exprs; break; } -} -} } } -/* autogenerated from "macros/Linear/CLR.sci" */ -function CLR() { - CLR.prototype.define = function CLR() { -x0=0; -A=-1; -B=1; -C=1; -D=0; -exprs=[["1"],["1+s"]]; +/* autogenerated from "macros/Electrical/OpAmp.sci" */ +function OpAmp() { + OpAmp.prototype.define = function OpAmp() { +S=[]; +Z=[]; model=scicos_model(); -model.sim=list("csslti4",4); -model.in1=1; -model.out=1; -model.state=x0; -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.sim="OpAmp"; model.blocktype="c"; -model.dep_ut=[false,true]; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model=model.sim; +mo.inputs=[["in_p"],["in_n"]]; +mo.outputs=["out"]; +mo.parameters=list(S,Z); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +model.rpar=Z; +exprs=string(Z); gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([3,5],model,exprs,gr_i); +x.graphics.in_implicit=[["I"],["I"]]; +x.graphics.out_implicit=["I"]; } - CLR.prototype.details = function CLR() { + OpAmp.prototype.details = function OpAmp() { } - CLR.prototype.get = function CLR() { + OpAmp.prototype.get = function OpAmp() { } - CLR.prototype.set = function CLR() { + OpAmp.prototype.set = function OpAmp() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -x0=model.state; -rpar=model.rpar; -ns=prod[size(x0)-1]; -nin=1; -nout=1; -PREVAR_scicos_context=PREVAR_scicos_context; -PREVAR_scicos_context.s=%s; -while (true) { -[ok,num,den,exprs]=scicos_getvalue("Set continuous SISO transfer parameters",[["Numerator (s)"],["Denominator (s)"]],list("pol",1,"pol",1),exprs); +while (false) { +[ok,OLGain,SatH,SatL,exprs]=scicos_getvalue("Set the Operational Amplifier parameters",[["Open Loop Gain"],["Positive saturation voltage"],["Negative saturation voltage"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { -message("Transfer function must be proper or strictly proper."); -ok=false; -} -if (ok) { -H=cont_frm[num-1][den-1]; -[A,B,C,D]=H.slice(2-1,5); +model.equations.parameters[2-1]=list(OLGain,SatH,SatL); graphics.exprs=exprs; -[ns1,ns1]=size(A); -rpar=[[matrix(A,ns1*ns1,1)],[matrix(B,ns1,1)],[matrix(C,ns1,1)],[D]]; -if (norm(D,1)!=0) { -mmm=[true,true]; -} else { -mmm=[false,true]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -if (ns1<=ns) { -x0=x0.slice(1-1,ns1); -} else { -x0[ns1-1][1-1]=0; -} -model.state=x0; -model.rpar=rpar; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/TIME_DELAY.sci" */ -function TIME_DELAY() { - TIME_DELAY.prototype.define = function TIME_DELAY() { -nin=1; -T=1; -init=0; -N=1024; +/* autogenerated from "macros/Electrical/PMOS.sci" */ +function PMOS() { + PMOS.prototype.define = function PMOS() { model=scicos_model(); -model.sim=list("time_delay",4); -model.in1=[nin]; -model.out=nin; -model.rpar=[T,init]; -model.ipar=N; -model.blocktype="x"; -model.dep_ut=[false,true]; -exprs=[[string(T)],[string(init)],[string(N)]]; +W=50.0e-6; +L=6.0e-6; +Beta=0.0105e-3; +Vt=-1; +K2=0.41; +K5=0.839; +dW=-2.5e-6; +dL=-2.1e-6; +RDS=1.e+7; +model.sim="PMOS"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="PMOS"; +mo.outputs=[["D"],["B"],["S"]]; +mo.inputs="G"; +mo.parameters=list([["W"],["L"],["Beta"],["Vt"],["K2"],["K5"],["dW"],["dL"],["RDS"]],[[W],[L],[Beta],[Vt],[K2],[K5],[dW],[dL],[RDS]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=[[string(W)],[string(L)],[string(Beta)],[string(Vt)],[string(K2)],[string(K5)],[string(dW)],[string(dL)],[string(RDS)]]; gr_i=[]; -x=standard_define([3.5,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=[["I"],["I"],["I"]]; } - TIME_DELAY.prototype.details = function TIME_DELAY() { + PMOS.prototype.details = function PMOS() { } - TIME_DELAY.prototype.get = function TIME_DELAY() { + PMOS.prototype.get = function PMOS() { } - TIME_DELAY.prototype.set = function TIME_DELAY() { + PMOS.prototype.set = function PMOS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -nin=model.in1[1-1]; while (true) { -[ok,T,init,N,exprs]=scicos_getvalue("Set delay parameters",[["Delay"],["initial input"],["Buffer size"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,W,L,Beta,Vt,K2,K5,dW,dL,RDS,exprs]=scicos_getvalue("Set PMOS Transistor parameters",[["Width [m]"],["Length [m]"],["Transconductance parameter [A/(V*V)]"],["Zero bias threshold voltage [V]"],["Bulk threshold parameter"],["Reduction of pinch-off region"],["Narrowing of channel [m]"],["Shortening of channel [m]"],["Drain-Source-Resistance [Ohm]"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -if (N<2) { -message("Buffer must be larger than 2"); -ok=false; -} -if (T<=0) { -message("Delay must be positive"); -ok=false; -} -if (ok) { -[model,graphics,ok]=check_io(model,graphics,[-1],-1,[],[]); -} -if (ok) { +model.equations.parameters[2-1]=list(W,L,Beta,Vt,K2,K5,dW,dL,RDS); graphics.exprs=exprs; -model.rpar=[[T],[init]]; -model.ipar=N; -model.dep_ut=[false,true]; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/DLSS.sci" */ -function DLSS() { - DLSS.prototype.define = function DLSS() { -x0=0; -A=-1; -B=1; -C=1; -D=0; +/* autogenerated from "macros/Electrical/PNP.sci" */ +function PNP() { + PNP.prototype.define = function PNP() { +ModelName="PNP"; +PrametersValue=[[50],[0.1],[0],[0.02],[1.200e-10],[5.000e-09],[1.000e-12],[4.000e-13],[5.000e-13],[0.8],[0.4],[0.8],[0.333],[1.000e-15],[1.000e-15],[0.02585],[40]]; +ParametersName=[["Bf"],["Br"],["Is"],["Vak"],["Tauf"],["Taur"],["Ccs"],["Cje"],["Cjc"],["Phie"],["Me"],["Phic"],["Mc"],["Gbc"],["Gbe"],["Vt"],["EMinMax"]]; model=scicos_model(); -model.sim=list("dsslti4",4); -model.in1=1; -model.out=1; -model.evtin=1; -model.dstate=x0.slice(); -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[100,90,-2,0],[0,50,2,0],[100,10,-2,0]]; +PortName=[["C"],["B"],["E"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; +} +} +model=scicos_model(); +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); +exprs=[["50"],["0.1"],["1.e-16"],["0.02"],["0.12e-9"],["5e-9"],["1e-12"],["0.4e-12"],["0.5e-12"],["0.8"],["0.4"],["0.8"],["0.333"],["1e-15"],["1e-15"],["0.02585"],["40"]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +model.blocktype="c"; +model.dep_ut=[false,true]; +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - DLSS.prototype.details = function DLSS() { + PNP.prototype.details = function PNP() { } - DLSS.prototype.get = function DLSS() { + PNP.prototype.get = function PNP() { } - DLSS.prototype.set = function DLSS() { + PNP.prototype.set = function PNP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -if (size(exprs,"*")==7) { -exprs=exprs[[1:4,7]-1]; -} model=arg1.model; +x=arg1; +exprs=x.graphics.exprs; while (true) { -[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set discrete linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); +[ok,Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax,exprs]=scicos_getvalue([["Set PNP block parameters:"],[""]],[["Bf : Forward beta"],["Br : Reverse beta"],["Is : Transport saturation current"],["Vak : Early voltage (inverse), 1/Volt"],["Tauf: Ideal forward transit time"],["Taur: Ideal reverse transit time"],["Ccs : Collector-substrat(ground) cap."],["Cje : Base-emitter zero bias depletion cap."],["Cjc : Base-coll. zero bias depletion cap."],["Phie: Base-emitter diffusion voltage"],["Me : Base-emitter gradation exponent"],["Phic: Base-collector diffusion voltage"],["Mc : Base-collector gradation exponent"],["Gbc : Base-collector conductance"],["Gbe : Base-emitter conductance"],["Vt : Voltage equivalent of temperature"],["EMinMax: if x > EMinMax, the exp(x) function is linearized"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -out=size(C,1); -if (out==0) { -out=[]; -} -in1=size(B,2); -if (in1==0) { -in1=[]; -} -[ms,ns]=size(A); -okD=true; -if (size(D,"*")!=size(C,1)*size(B,2)) { -if (size(D,"*")==1) { -D=D*ones(C*B); -} else if (size(D,"*")==0) { -D=zeros(C*B); -} else { -okD=false; -} -} -if (ms!=ns||!okD) { -message(_["Matrix A is not square or D has wrong dimension"-1]); -} else { -[model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); -if (ok) { -graphics.exprs=exprs; -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -if (D!=[]) { -if (norm(D,1)!=0) { -mmm=[true,false]; -} else { -mmm=[false,false]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -} else { -model.dep_ut=[false,false]; -} -model.dstate=x0.slice(); -model.rpar=rpar; -x.graphics=graphics; -x.model=model; +x.model.equations.parameters[2-1]=list(Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax); +x.graphics.exprs=exprs; break; } + } } -} +/* autogenerated from "macros/Electrical/PotentialSensor.sci" */ +function PotentialSensor() { + PotentialSensor.prototype.define = function PotentialSensor() { +model=scicos_model(); +model.in1=[1]; +model.out=[1]; +model.rpar=[]; +model.sim="PotentialSensor"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="PotentialSensor"; +mo.inputs="p"; +mo.outputs=["v"]; +model.equations=mo; +gr_i=[]; +x=standard_define([2,2],model,"",list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["E"]; + } + PotentialSensor.prototype.details = function PotentialSensor() { + } + PotentialSensor.prototype.get = function PotentialSensor() { + } + PotentialSensor.prototype.set = function PotentialSensor() { +x=arg1; } } -/* autogenerated from "macros/Linear/INTEGRAL_m.sci" */ -function INTEGRAL_m() { - INTEGRAL_m.prototype.define = function INTEGRAL_m() { -maxp=1; -minp=-1; -rpar=[]; +/* autogenerated from "macros/Electrical/Resistor.sci" */ +function Resistor() { + Resistor.prototype.define = function Resistor() { model=scicos_model(); -model.state=0; -model.sim=list("integral_func",4); -model.in1=1; -model.out=1; -model.in2=1; -model.out2=1; -model.rpar=rpar; +R=0.01; +model.rpar=R; +model.sim="resistor"; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=string([[0],[0],[0],[maxp],[minp]]); +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="Resistor"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list("R",list(R)); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=string(R); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,1],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - INTEGRAL_m.prototype.details = function INTEGRAL_m() { + Resistor.prototype.details = function Resistor() { } - INTEGRAL_m.prototype.get = function INTEGRAL_m() { + Resistor.prototype.get = function Resistor() { } - INTEGRAL_m.prototype.set = function INTEGRAL_m() { + Resistor.prototype.set = function Resistor() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,x0,reinit,satur,maxp,lowp,exprs]=scicos_getvalue("Set Integral block parameters",[["Initial Condition"],["With re-intialization (1:yes, 0:no)"],["With saturation (1:yes, 0:no)"],["Upper limit"],["Lower limit"]],list("mat",[-1,-1],"vec",1,"vec",1,"mat",[-1,-1],"mat",[-1,-1]),exprs); +[ok,R,exprs]=scicos_getvalue("Set Resistor block parameter","R (ohm)",list("vec",1),exprs); if (!ok) { break; } -if (isreal[x0-1]) { -Datatype=1; -} else { -Datatype=2; -} -if (reinit!=0) { -reinit=1; -} -if (satur!=0) { -satur=1; -if (Datatype==1) { -if (size(maxp,"*")==1) { -maxp=maxp*ones(x0); -} -if (size(lowp,"*")==1) { -lowp=lowp*ones(x0); -} -if ((size(x0)!=size(maxp)||size(x0)!=size(lowp))) { -message("x0 and Upper limit and Lower limit must have same size"); -ok=false; -} else if (or(maxp<=lowp)) { -message("Upper limits must be > Lower limits"); -ok=false; -} else if (or(x0>maxp)||or(x0<lowp)) { -message("Initial condition x0 should be inside the limits"); -ok=false; -} else { -rpar=[[real(maxp.slice())],[real(lowp.slice())]]; -model.nzcross=size(x0,"*"); -model.nmode=size(x0,"*"); -} -} else if ((Datatype==2)) { -if (size(maxp,"*")==1) { -maxp=math.complex(maxp*ones(x0),(maxp*ones(x0))); -} -if (size(lowp,"*")==1) { -lowp=math.complex(lowp*ones(x0),(lowp*ones(x0))); -} -if ((size(x0)!=size(maxp)||size(x0)!=size(lowp))) { -message("x0 and Upper limit and Lower limit must have same size"); -ok=false; -} else if (or(real(maxp)<=real(lowp))||or(imag(maxp)<=imag(lowp))) { -message("Upper limits must be > Lower limits"); -ok=false; -} else if (or(real(x0)>real(maxp))||or(real(x0)<real(lowp))||or(imag(x0)>imag(maxp))||or(imag(x0)<imag(lowp))) { -message("Initial condition x0 should be inside the limits"); -ok=false; -} else { -rpar=[[real(maxp.slice())],[real(lowp.slice())],[imag(maxp.slice())],[imag(lowp.slice())]]; -model.nzcross=2*size(x0,"*"); -model.nmode=2*size(x0,"*"); -} -} -} else { -rpar=[]; -model.nzcross=0; -model.nmode=0; -} -if (ok) { -model.rpar=rpar; -if ((Datatype==1)) { -model.state=real(x0.slice()); -model.sim=list("integral_func",4); -it=[[1],[ones(reinit,1)]]; -ot=1; -} else if ((Datatype==2)) { -model.state=[[real(x0.slice())],[imag(x0.slice())]]; -model.sim=list("integralz_func",4); -it=[[2],[2*ones(reinit,1)]]; -ot=2; -} else { -message("Datatype is not supported"); -ok=false; -} -if (ok) { -in1=[size(x0,1)*[[1],[ones(reinit,1)]],size(x0,2)*[[1],[ones(reinit,1)]]]; -out=size(x0); -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(reinit,1),[]); -} -} -if (ok) { +model.rpar=R; +model.equations.parameters[2-1]=list(R); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/CLR_f.sci" */ -function CLR_f() { - CLR_f.prototype.define = function CLR_f() { -x0=0; -A=-1; -B=1; -C=1; -D=0; -exprs=[["1"],["1+s"]]; +/* autogenerated from "macros/Electrical/SineVoltage.sci" */ +function SineVoltage() { + SineVoltage.prototype.define = function SineVoltage() { model=scicos_model(); -model.sim=list("csslti",1); -model.in1=1; -model.out=1; -model.state=x0; -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.in1=[1]; +model.out=[1]; +V=1; +ph=0; +frq=1; +offset=0; +start=0; +model.rpar=[[V],[ph],[frq],[offset],[start]]; +model.sim="SineVoltage"; model.blocktype="c"; -model.dep_ut=[false,true]; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="SineVoltage"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list([["V"],["phase"],["freqHz"],["offset"],["startTime"]],list(V,ph,frq,offset,start)); +model.equations=mo; +exprs=[[string(V)],[string(ph)],[string(frq)],[string(offset)],[string(start)]]; gr_i=[]; -x=standard_define([2.5,2.5],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - CLR_f.prototype.details = function CLR_f() { + SineVoltage.prototype.details = function SineVoltage() { } - CLR_f.prototype.get = function CLR_f() { + SineVoltage.prototype.get = function SineVoltage() { } - CLR_f.prototype.set = function CLR_f() { + SineVoltage.prototype.set = function SineVoltage() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -x0=model.state; -rpar=model.rpar; -ns=prod[size(x0)-1]; -nin=1; -nout=1; -PREVAR_scicos_context=PREVAR_scicos_context; -PREVAR_scicos_context.s=%s; while (true) { -[ok,num,den,exprs]=scicos_getvalue("Set continuous SISO transfer parameters",[["Numerator (s)"],["Denominator (s)"]],list("pol",1,"pol",1),exprs); +[ok,V,ph,frq,offset,start,exprs]=scicos_getvalue("Set voltage source parameter",[["Amplitude (Volt)"],["phase (rad)"],["Frequency (Hz)"],["Voltageoffset (V)"],["Timeoffset (s)"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { -message("Transfer must be proper or strictly proper"); -ok=false; -} -if (ok) { -H=cont_frm[num-1][den-1]; -[A,B,C,D]=H.slice(2-1,5); +model.rpar=[[V],[ph],[frq],[offset],[start]]; +model.equations.parameters[2-1]=list(V,ph,frq,offset,start); graphics.exprs=exprs; -[ns1,ns1]=size(A); -rpar=[[matrix(A,ns1*ns1,1)],[matrix(B,ns1,1)],[matrix(C,ns1,1)],[D]]; -if (norm(D,1)!=0) { -mmm=[true,true]; -} else { -mmm=[false,true]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -if (ns1<=ns) { -x0=x0.slice(1-1,ns1); -} else { -x0[ns1-1][1-1]=0; -} -model.state=x0; -model.rpar=rpar; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/DOLLAR.sci" */ -function DOLLAR() { - DOLLAR.prototype.define = function DOLLAR() { -z=0; -inh=0; -in1=1; -exprs=string([[z],[inh]]); +/* autogenerated from "macros/Electrical/Switch.sci" */ +function Switch() { + Switch.prototype.define = function Switch() { model=scicos_model(); -model.sim=list("dollar4",4); -model.in1=in1; -model.out=in1; -model.evtin=1-inh; -model.dstate=z; -model.blocktype="d"; -model.dep_ut=[false,false]; +Ron=0.01; +Roff=1e5; +S=[["Ron"],["Roff"]]; +Z=eval(S); +model.sim="Switch"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model=model.sim; +mo.inputs=[["p"],["inp"]]; +mo.outputs="n"; +mo.parameters=list(S,Z); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +model.rpar=Z; +exprs=string(Z); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=[["I"],["E"]]; +x.graphics.out_implicit=["I"]; } - DOLLAR.prototype.details = function DOLLAR() { + Switch.prototype.details = function Switch() { } - DOLLAR.prototype.get = function DOLLAR() { + Switch.prototype.get = function Switch() { } - DOLLAR.prototype.set = function DOLLAR() { + Switch.prototype.set = function Switch() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")<2) { -exprs[2-1]="0"; -} while (true) { -[ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",[["initial condition"],["Inherit (no:0, yes:1)"]],list("mat",[-1,-2],"vec",-1),exprs); +[ok,Ron,Roff,exprs]=scicos_getvalue("Set non-ideal electrical switch parameters",[["Resistance in On state (Ohm)"],["Resistance in Off state (Ohm)"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -out=[size(a,1),size(a,2)]; -if (out==0) { -out=[]; -} -in1=out; -model.sim=list("dollar4_m",4); -model.odstate=list(a); -model.dstate=[]; -if (type[(a)==1-1]) { -if (isreal[a-1]) { -it=1; -ot=1; -if ((size(a,1)==1||size(a,2)==1)) { -model.sim=list("dollar4",4); -model.dstate=a.slice(); -model.odstate=list(); -} -} else { -it=2; -ot=2; -} -} else if ((typeof(a)=="int32")) { -it=3; -ot=3; -} else if ((typeof(a)=="int16")) { -it=4; -ot=4; -} else if ((typeof(a)=="int8")) { -it=5; -ot=5; -} else if ((typeof(a)=="uint32")) { -it=6; -ot=6; -} else if ((typeof(a)=="uint16")) { -it=7; -ot=7; -} else if ((typeof(a)=="uint8")) { -it=8; -ot=8; -} else { -message("type is not recognized"); -ok=false; -} -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-inh,1),[]); -} -if (ok) { +model.equations.parameters[2-1]=list(Ron,Roff); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Linear/TCLSS.sci" */ -function TCLSS() { - TCLSS.prototype.define = function TCLSS() { -x0=0; -A=0; -B=1; -C=1; -D=0; -in1=1; -nx=size(x0,"*"); -out=1; +/* autogenerated from "macros/Electrical/VVsourceAC.sci" */ +function VVsourceAC() { + VVsourceAC.prototype.define = function VVsourceAC() { model=scicos_model(); -model.sim=list("tcslti4",4); -model.in1=[[in1],[nx]]; -model.out=out; -model.evtin=1; -model.state=x0; -model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.in1=[[1],[1]]; +model.out=[1]; +VA=220; +FR=50; +model.rpar=[FR]; +model.sim="VVsourceAC"; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="VVsourceAC"; +mo.inputs=["p","VA"]; +mo.outputs="n"; +mo.parameters=list(["f"],list(FR)); +model.equations=mo; +exprs=[string(FR)]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I","E"]; +x.graphics.out_implicit=["I"]; } - TCLSS.prototype.details = function TCLSS() { + VVsourceAC.prototype.details = function VVsourceAC() { } - TCLSS.prototype.get = function TCLSS() { + VVsourceAC.prototype.get = function VVsourceAC() { } - TCLSS.prototype.set = function TCLSS() { + VVsourceAC.prototype.set = function VVsourceAC() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==7) { -exprs=exprs[[1:4,7]-1]; -} while (true) { -[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); +[ok,FR,exprs]=scicos_getvalue("Set voltage source parameter",["Frequency (Hz)"],list("vec",-1),exprs); if (!ok) { break; } -out=size(C,1); -if (out==0) { -out=[]; -} -in1=size(B,2); -if (in1==0) { -in1=[]; -} -[ms,ns]=size(A); -if (ms!=ns) { -message("A matrix must be square"); -} else { -[model,graphics,ok]=check_io(model,graphics,[[in1],[ms]],out,1,[]); -if (ok) { +model.rpar=[FR]; +model.equations.parameters[2-1]=list(FR); graphics.exprs=exprs; -rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; -if (D!=[]) { -if (norm(D,1)!=0) { -mmm=[true,true]; -} else { -mmm=[false,true]; -} -if (or(model.dep_ut!=mmm)) { -model.dep_ut=mmm; -} -} else { -model.dep_ut=[false,true]; -} -model.state=x0.slice(); -model.rpar=rpar; -if (D!=[]) { -model.sim=list("tcslti4",4); -} else { -model.sim=list("tcsltj4",4); -} x.graphics=graphics; x.model=model; break; } -} -} } } -/* autogenerated from "macros/Linear/SUM_f.sci" */ -function SUM_f() { - SUM_f.prototype.define = function SUM_f() { +/* autogenerated from "macros/Electrical/VariableResistor.sci" */ +function VariableResistor() { + VariableResistor.prototype.define = function VariableResistor() { model=scicos_model(); -model.sim=list("plusblk",2); -model.in1=[[-1],[-1],[-1]]; -model.out=-1; +model.sim="VariableResistor"; model.blocktype="c"; model.dep_ut=[true,false]; -gr_i=[]; +mo=modelica(); +mo.model="VariableResistor"; +mo.inputs=["p","R"]; +mo.outputs="n"; +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); exprs=[]; -x=standard_define([1,1],model,exprs,gr_i); +gr_i=[]; +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I","E"]; +x.graphics.out_implicit=["I"]; } - SUM_f.prototype.details = function SUM_f() { + VariableResistor.prototype.details = function VariableResistor() { } - SUM_f.prototype.get = function SUM_f() { + VariableResistor.prototype.get = function VariableResistor() { } - SUM_f.prototype.set = function SUM_f() { + VariableResistor.prototype.set = function VariableResistor() { x=arg1; } } -/* autogenerated from "macros/Linear/GAIN_f.sci" */ -function GAIN_f() { - GAIN_f.prototype.define = function GAIN_f() { -gain=1; -in1=1; -out=1; +/* autogenerated from "macros/Electrical/VoltageSensor.sci" */ +function VoltageSensor() { + VoltageSensor.prototype.define = function VoltageSensor() { model=scicos_model(); -model.sim="gain"; model.in1=1; -model.out=1; -model.rpar=gain; +model.out=[[1],[1]]; +model.sim="VoltageSensor"; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[strcat(sci2exp(gain))],[strcat(sci2exp(in1))],[strcat(sci2exp(out))]]; +mo=modelica(); +mo.model="VoltageSensor"; +mo.inputs="p"; +mo.outputs=[["n"],["v"]]; +model.equations=mo; +exprs=[]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=[["I"],["E"]]; } - GAIN_f.prototype.details = function GAIN_f() { + VoltageSensor.prototype.details = function VoltageSensor() { } - GAIN_f.prototype.get = function GAIN_f() { + VoltageSensor.prototype.get = function VoltageSensor() { } - GAIN_f.prototype.set = function GAIN_f() { + VoltageSensor.prototype.set = function VoltageSensor() { +x=arg1; + } +} +/* autogenerated from "macros/Electrical/VsourceAC.sci" */ +function VsourceAC() { + VsourceAC.prototype.define = function VsourceAC() { +model=scicos_model(); +model.in1=[1]; +model.out=[1]; +VA=220; +FR=50; +model.rpar=[[VA],[FR]]; +model.sim="VsourceAC"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="VsourceAC"; +mo.inputs="p"; +mo.outputs="n"; +mo.parameters=list([["VA"],["f"]],list(VA,FR)); +model.equations=mo; +exprs=[[string(VA)],[string(FR)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; + } + VsourceAC.prototype.details = function VsourceAC() { + } + VsourceAC.prototype.get = function VsourceAC() { + } + VsourceAC.prototype.set = function VsourceAC() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); +[ok,VA,FR,exprs]=scicos_getvalue("Set voltage source parameter",[["Amplitude (Volt)"],["Frequency (Hz)"]],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } -if (gain==[]) { -message("Gain must have at least one element"); -} else { -[out,in1]=size(gain); -[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); -if (ok) { +model.rpar=[[VA],[FR]]; +model.equations.parameters[2-1]=list(VA,FR); graphics.exprs=exprs; -model.rpar=gain.slice(); x.graphics=graphics; x.model=model; break; } + } } +/* autogenerated from "macros/Events/ANDBLK.sci" */ +function ANDBLK() { + ANDBLK.prototype.define = function ANDBLK() { +andlog=ANDLOG_f("define"); +andlog.graphics.orig=[194,133]; +andlog.graphics.sz=[60,60]; +andlog.graphics.flip=true; +andlog.graphics.pout=9; +andlog.graphics.pein=[[4],[11]]; +input_port1=CLKIN_f("define"); +input_port1.graphics.orig=[149,287]; +input_port1.graphics.sz=[20,20]; +input_port1.graphics.flip=true; +input_port1.graphics.exprs="1"; +input_port1.graphics.peout=4; +input_port1.model.ipar=1; +output_port=CLKOUT_f("define"); +output_port.graphics.orig=[450,83]; +output_port.graphics.sz=[20,20]; +output_port.graphics.flip=true; +output_port.graphics.exprs="1"; +output_port.graphics.pein=8; +output_port.model.ipar=1; +input_port2=CLKIN_f("define"); +input_port2.graphics.orig=[141,330]; +input_port2.graphics.sz=[20,20]; +input_port2.graphics.flip=true; +input_port2.graphics.exprs="2"; +input_port2.graphics.peout=6; +input_port2.model.ipar=2; +ifthel=IFTHEL_f("define"); +ifthel.graphics.orig=[331,137]; +ifthel.graphics.sz=[60,60]; +ifthel.graphics.flip=true; +ifthel.graphics.pin=9; +ifthel.graphics.pein=12; +ifthel.graphics.peout=[[8],[0]]; +split=CLKSPLIT_f("define"); +split.graphics.orig=[[234],[275.78348]]; +split.graphics.pein=6; +split.graphics.peout=[[11],[12]]; +diagram=scicos_diagram(); +diagram.objs[1-1]=andlog; +diagram.objs[2-1]=input_port1; +diagram.objs[3-1]=output_port; +diagram.objs[4-1]=scicos_link(xx=[[169],[214],[214]],yy=[[297],[297],[198.71]],ct=[5,-1],from=[2,1],to=[1,1]); +diagram.objs[5-1]=input_port2; +diagram.objs[6-1]=scicos_link(xx=[[161],[234],[234]],yy=[[340],[340],[275.78]],ct=[5,-1],from=[5,1],to=[10,1]); +diagram.objs[7-1]=ifthel; +diagram.objs[8-1]=scicos_link(xx=[[351],[351],[450]],yy=[[131.29],[93],[93]],ct=[5,-1],from=[7,1],to=[3,1]); +diagram.objs[9-1]=scicos_link(xx=[[262.57],[322.43]],yy=[[163],[167]],ct=[1,1],from=[1,1],to=[7,1]); +diagram.objs[10-1]=split; +diagram.objs[11-1]=scicos_link(xx=[[234],[234]],yy=[[275.78],[198.71]],ct=[5,-1],from=[10,1],to=[1,2]); +diagram.objs[12-1]=scicos_link(xx=[[234],[361],[361]],yy=[[275.78],[275.78],[202.71]],ct=[5,-1],from=[10,2],to=[7,1]); +x=scicos_block(); +x.gui="ANDBLK"; +x.graphics.sz=[2,2]; +x.graphics.gr_i=[]; +x.graphics.pein=[[0],[0]]; +x.graphics.peout=0; +x.model.sim="csuper"; +x.model.evtin=[[1],[1]]; +x.model.evtout=1; +x.model.blocktype="h"; +x.model.firing=false; +x.model.dep_ut=[false,false]; +x.model.rpar=diagram; + } + ANDBLK.prototype.details = function ANDBLK() { + } + ANDBLK.prototype.get = function ANDBLK() { + } + ANDBLK.prototype.set = function ANDBLK() { +x=arg1; + } } +/* autogenerated from "macros/Events/ANDLOG_f.sci" */ +function ANDLOG_f() { + ANDLOG_f.prototype.define = function ANDLOG_f() { +model=scicos_model(); +model.sim="andlog"; +model.out=1; +model.evtin=[[1],[1]]; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +gr_i=[]; +x=standard_define([3,3],model,[],gr_i); + } + ANDLOG_f.prototype.details = function ANDLOG_f() { + } + ANDLOG_f.prototype.get = function ANDLOG_f() { + } + ANDLOG_f.prototype.set = function ANDLOG_f() { +x=arg1; } } -/* autogenerated from "macros/Linear/PID.sci" */ -function PID() { - PID.prototype.define = function PID() { -scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["PID"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="INTEGRAL_m",graphics=scicos_graphics(orig=[318.304,183.11733],sz=[40,40],flip=true,theta=0,exprs=[["0"],["0"],["0"],["1"],["-1"]],pin=7,pout=9,pein=[],peout=[],gr_i=[],id="1/s",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("integral_func",4),in1=1,in2=1,intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=0,dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[2-1]=scicos_block(gui="SUMMATION",graphics=scicos_graphics(orig=[387.97067,172.85067],sz=[40,60],flip=true,theta=0,exprs=[["1"],["[1;1;1]"]],pin=[[10],[9],[11]],pout=19,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("summation",4),in1=[[-1],[-1],[-1]],in2=[[-2],[-2],[-2]],intyp=[[1],[1],[1]],out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[1],[1]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[3-1]=scicos_block(gui="GAINBLK",graphics=scicos_graphics(orig=[321.23733,235.91733],sz=[40,40],flip=true,theta=0,exprs="1",pin=17,pout=10,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("gainblk",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=1,ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[4-1]=scicos_block(gui="DERIV",graphics=scicos_graphics(orig=[319.03733,135.45067],sz=[40,40],flip=true,theta=0,exprs=[],pin=8,pout=11,pein=[],peout=[],gr_i=[],id="s",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("deriv",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="x",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[5-1]=scicos_block(gui="GAINBLK",graphics=scicos_graphics(orig=[255.23733,183.11733],sz=[40,40],flip=true,theta=0,exprs="1",pin=13,pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("gainblk",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=1,ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[6-1]=scicos_block(gui="GAINBLK",graphics=scicos_graphics(orig=[255.23733,135.45067],sz=[40,40],flip=true,theta=0,exprs="1",pin=14,pout=8,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("gainblk",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=1,ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[7-1]=scicos_link(xx=[[303.80876],[309.73257]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[1,1,1]); -scs_m.objs[8-1]=scicos_link(xx=[[303.80876],[310.4659]],yy=[[155.45067],[155.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[6,1,0],to=[4,1,1]); -scs_m.objs[9-1]=scicos_link(xx=[[366.87543],[379.39924]],yy=[[203.11733],[202.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,2,1]); -scs_m.objs[10-1]=scicos_link(xx=[[369.80876],[379.39924],[379.39924]],yy=[[255.91733],[255.91733],[217.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[2,1,1]); -scs_m.objs[11-1]=scicos_link(xx=[[367.60876],[379.39924],[379.39924]],yy=[[155.45067],[155.45067],[187.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[2,3,1]); -scs_m.objs[12-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[234.704],[203.11733]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=16,pout=[[13],[14]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[13-1]=scicos_link(xx=[[234.704],[246.6659]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[12,1,0],to=[5,1,1]); -scs_m.objs[14-1]=scicos_link(xx=[[234.704],[234.704],[246.6659]],yy=[[203.11733],[155.45067],[155.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[12,2,0],to=[6,1,1]); -scs_m.objs[15-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[233.97067],[203.11733]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=21,pout=[[16],[17]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[16-1]=scicos_link(xx=[[233.97067],[234.704]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[15,1,0],to=[12,1,1]); -scs_m.objs[17-1]=scicos_link(xx=[[233.97067],[233.97067],[312.6659]],yy=[[203.11733],[255.91733],[255.91733]],id="drawlink",thick=[0,0],ct=[1,1],from=[15,2,0],to=[3,1,1]); -scs_m.objs[18-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[456.5421,192.85067],sz=[20,20],flip=true,theta=0,exprs="1",pin=19,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[19-1]=scicos_link(xx=[[436.5421],[456.5421]],yy=[[202.85067],[202.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[18,1,1]); -scs_m.objs[20-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[193.97067,193.11733],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=21,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[21-1]=scicos_link(xx=[[213.97067],[233.97067]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[20,1,0],to=[15,1,1]); +/* autogenerated from "macros/Events/CLKSOMV_f.sci" */ +function CLKSOMV_f() { + CLKSOMV_f.prototype.define = function CLKSOMV_f() { model=scicos_model(); -model.sim="csuper"; -model.in1=-1; -model.in2=-2; -model.out=-1; -model.out2=-2; -model.intyp=1; -model.outtyp=1; -model.blocktype="h"; -model.firing=false; +model.sim="sum"; +model.evtin=[[1],[1],[1]]; +model.evtout=1; +model.blocktype="d"; +model.firing=-1; model.dep_ut=[false,false]; -model.rpar=scs_m; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } - PID.prototype.details = function PID() { + CLKSOMV_f.prototype.details = function CLKSOMV_f() { } - PID.prototype.get = function PID() { + CLKSOMV_f.prototype.get = function CLKSOMV_f() { } - PID.prototype.set = function PID() { -ppath=list(0,0,0); -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Link") { -from=arg1.model.rpar.objs[o.from[1-1]-1]; -to=arg1.model.rpar.objs[o.to[1-1]-1]; -if (from.gui=="GAINBLK") { -switch (to.gui) { -case "SUMMATION": -ppath[1-1]=o.from[1-1]; -case "INTEGRAL_m": -ppath[2-1]=o.from[1-1]; -case "DERIV": -ppath[3-1]=o.from[1-1]; -} -} else if (to.gui=="GAINBLK") { -switch (from.gui) { -case "SUMMATION": -ppath[1-1]=o.to[1-1]; -case "INTEGRAL_m": -ppath[2-1]=o.to[1-1]; -case "DERIV": -ppath[3-1]=o.to[1-1]; -} -} -if (and(ppath!=list(0,0,0))) { -break; -} -} -} -newpar=list(); -xx1=arg1.model.rpar.objs[ppath[1-1]-1]; -exprs[1-1]=xx1.graphics.exprs[1-1]; -p_old=xx1.model.rpar; -xx2=arg1.model.rpar.objs[ppath[2-1]-1]; -exprs[2-1]=xx2.graphics.exprs[1-1]; -i_old=xx2.model.rpar; -xx3=arg1.model.rpar.objs[ppath[3-1]-1]; -exprs[3-1]=xx3.graphics.exprs[1-1]; -d_old=xx3.model.rpar; -y=0; -while (true) { -[ok,p,i,d,exprs0]=scicos_getvalue("Set PID parameters",[["Proportional"],["Integral"],["Derivation"]],list("vec",-1,"vec",-1,"vec",-1),exprs); -if (!ok) { -break; -} -if (ok) { -xx1.graphics.exprs=exprs0[1-1]; -xx1.model.rpar=p; -xx2.graphics.exprs=exprs0[2-1]; -xx2.model.rpar=i; -xx3.graphics.exprs=exprs0[3-1]; -xx3.model.rpar=d; -arg1.model.rpar.objs[ppath[1-1]-1]=xx1; -arg1.model.rpar.objs[ppath[2-1]-1]=xx2; -arg1.model.rpar.objs[ppath[3-1]-1]=xx3; -break; -} -} -needcompile=0; -if (!(p_old==p&&i_old==i&&d_old==d)) { -newpar[size(newpar)+1-1]=ppath[1-1]; -newpar[size(newpar)+1-1]=ppath[2-1]; -newpar[size(newpar)+1-1]=ppath[3-1]; -needcompile=2; -} + CLKSOMV_f.prototype.set = function CLKSOMV_f() { x=arg1; -y=max(y,needcompile); -typ=newpar; } } -/* autogenerated from "macros/Sinks/BARXY.sci" */ -function BARXY() { - BARXY.prototype.define = function BARXY() { +/* autogenerated from "macros/Events/CLKSOM_f.sci" */ +function CLKSOM_f() { + CLKSOM_f.prototype.define = function CLKSOM_f() { model=scicos_model(); -xmin=-15; -xmax=15; -ymin=-15; -ymax=15; -model.sim=list("BARXY_sim",5); +model.sim="sum"; +model.evtin=[[1],[1],[1]]; +model.evtout=1; model.blocktype="d"; -model.dep_ut=[true,false]; -model.in1=[[-1],[-1]]; -model.intyp=[1]; -model.out=[]; -model.evtin=[1]; -model.rpar=[[xmin],[xmax],[ymin],[ymax]]; -model.ipar=1; -x=standard_define([2,2],model,[],[]); -x.graphics.in_implicit=["E","E"]; -x.graphics.out_implicit=[]; -x.graphics.exprs=[["-15"],["15"],["-15"],["15"],["1"]]; +model.firing=-1; +model.dep_ut=[false,false]; +gr_i=[]; +x=standard_define([1,1]/1.2,model,[],gr_i); } - BARXY.prototype.details = function BARXY() { + CLKSOM_f.prototype.details = function CLKSOM_f() { } - BARXY.prototype.get = function BARXY() { + CLKSOM_f.prototype.get = function CLKSOM_f() { } - BARXY.prototype.set = function BARXY() { + CLKSOM_f.prototype.set = function CLKSOM_f() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,xmin,xmax,ymin,ymax,thickness,exprs]=scicos_getvalue("Set Scope parameters",[["Xmin"],["Xmax"],["Ymin"],["Ymax"],["Segs Thickness"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; -} -mess=[]; -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (xmin>=xmax) { -mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; -ok=false; -} -if (thickness<=0) { -mess=[[mess],["Thickness must be strictly positive."]]; -ok=false; -} -if (!ok) { -message(mess); -} else { -model.rpar=[[xmin],[xmax],[ymin],[ymax]]; -model.ipar=thickness; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} + } } +/* autogenerated from "macros/Events/CLKSPLIT_f.sci" */ +function CLKSPLIT_f() { + CLKSPLIT_f.prototype.define = function CLKSPLIT_f() { +model=scicos_model(); +model.sim="split"; +model.evtin=1; +model.evtout=[[1],[1]]; +model.blocktype="d"; +model.firing=[false,false,false]; +model.dep_ut=[false,false]; +x=standard_define([1,1]/3,model,[],[]); + } + CLKSPLIT_f.prototype.details = function CLKSPLIT_f() { + } + CLKSPLIT_f.prototype.get = function CLKSPLIT_f() { + } + CLKSPLIT_f.prototype.set = function CLKSPLIT_f() { +x=arg1; } } -/* autogenerated from "macros/Sinks/CANIMXY.sci" */ -function CANIMXY() { - CANIMXY.prototype.define = function CANIMXY() { -win=-1; -clrs=-4; -N=2; -siz=1; -wpos=[[-1],[-1]]; -wdim=[[-1],[-1]]; -xmin=-15; -xmax=15; -ymin=-15; -ymax=+15; -nbr_curves=1; +/* autogenerated from "macros/Events/END_c.sci" */ +function END_c() { + END_c.prototype.define = function END_c() { +tf=100000000; model=scicos_model(); -model.sim=list("canimxy",4); -model.in1=[[1],[1]]; -model.in2=[[1],[1]]; -model.intyp=[[1],[1]]; +model.sim=list("scicosexit",4); model.evtin=1; -model.rpar=[[xmin],[xmax],[ymin],[ymax]]; -model.ipar=[[win],[1],[N],[clrs],[siz],[0],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.evtout=1; +model.firing=tf; model.blocktype="d"; -model.firing=[]; model.dep_ut=[false,false]; -exprs=[[string(nbr_curves)],[string(clrs)],[string(siz)],[string(win)],["[]"],["[]"],[string(xmin)],[string(xmax)],[string(ymin)],[string(ymax)],[string(N)]]; +exprs=string(tf); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - CANIMXY.prototype.details = function CANIMXY() { + END_c.prototype.details = function END_c() { } - CANIMXY.prototype.get = function CANIMXY() { + END_c.prototype.get = function END_c() { } - CANIMXY.prototype.set = function CANIMXY() { + END_c.prototype.set = function END_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,nbr_curves,clrs,siz,win,wpos,wdim,xmin,xmax,ymin,ymax,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of Curves"],["color (>0) or mark (<0)"],["line or mark size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin"],["Xmax"],["Ymin"],["Ymax"],["Buffer size"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,tf,exprs]=scicos_getvalue("Set final simulation time",["Final simulation time"],list("vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; -} -if (nbr_curves<=0) { -mess=[[mess],["Number of curves cannot be negative or null"],[" "]]; -ok=false; -} -if (N<1) { -mess=[[mess],["Buffer size must be at least 1"],[" "]]; -ok=false; -} -if (N==1&&clrs>0) { -mess=[[mess],["Buffer size must be at least 2"],[" "]]; -ok=false; -} -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (xmin>=xmax) { -mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; -ok=false; -} -if (!ok) { -message(mess); -} else { -in1=nbr_curves*ones(2,1); -in2=ones(2,1); -[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); -if (wpos==[]) { -wpos=[[-1],[-1]]; -} -if (wdim==[]) { -wdim=[[-1],[-1]]; -} -rpar=[[xmin],[xmax],[ymin],[ymax]]; -ipar=[[win],[1],[N],[clrs],[siz],[0],[wpos.slice()],[wdim.slice()],[nbr_curves]]; -model.rpar=rpar; -model.ipar=ipar; +if (ok) { graphics.exprs=exprs; +model.firing=tf; x.graphics=graphics; x.model=model; break; @@ -3848,89 +2762,45 @@ break; } } } -/* autogenerated from "macros/Sinks/WFILE_f.sci" */ -function WFILE_f() { - WFILE_f.prototype.define = function WFILE_f() { -in1=1; -nin=sum(in1); -frmt="(7(e10.3,1x))"; -fname="foo"; -lunit=0; -N=2; +/* autogenerated from "macros/Events/EVTDLY_c.sci" */ +function EVTDLY_c() { + EVTDLY_c.prototype.define = function EVTDLY_c() { +dt=0.1; +ff=0.0; model=scicos_model(); -model.sim="writef"; -model.in1=in1; +model.sim=list("evtdly4",4); model.evtin=1; -model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -model.ipar=[[length(fname)],[length(frmt)],[0],[N],[_str2code[fname-1]],[_str2code[frmt-1]]]; +model.evtout=1; +model.rpar=[[dt],[ff]]; model.blocktype="d"; -model.dep_ut=[true,false]; -exprs=[[sci2exp(in1)],[fname],[frmt],[string(N)]]; +model.firing=ff; +model.dep_ut=[false,false]; +exprs=[[string(dt)],[sci2exp(ff)]]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } - WFILE_f.prototype.details = function WFILE_f() { + EVTDLY_c.prototype.details = function EVTDLY_c() { } - WFILE_f.prototype.get = function WFILE_f() { + EVTDLY_c.prototype.get = function EVTDLY_c() { } - WFILE_f.prototype.set = function WFILE_f() { -warnobsolete("WRITEC_f","6.0.0"); -warnMessage=msprintf(_["Feature %s is obsolete."-1],"WFILE_f"); -warnAdvise=msprintf(_["Please use %s instead."-1],"WRITEC_f"); -warnXcosMessage=msprintf("%s %s",warnMessage,warnAdvise); -warnBlockByUID(arg1.model.label,warnXcosMessage); + EVTDLY_c.prototype.set = function EVTDLY_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -dstate=model.dstate; -lunit=dstate[2-1]; -fname=exprs[2-1]; -frmt=exprs[3-1]; while (true) { -[ok,in1,fname1,frmt1,N,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"WFILE_f")],[" "],[gettext("Write to output file")],[" "],[gettext("Write is done on:")],[gettext(" - A binary file if no format given")],[gettext(" - A formatted text file if a format (Fortran type) is given")]],[[gettext("Input Size")],[gettext("Output File Name")],[gettext("Output Format")],[gettext("Buffer Size")]],list("vec",1,"str",1,"str",1,"vec",1),exprs); +[ok,dt,ff,exprs]=scicos_getvalue([["Set Event Delay block parameters"],["Delay is the delay between an input event "],[" and the generated output event"],["Block may initially generate an output event before "],[" any input event. \"Date of initial output event\""],[" gives the date of this event. Set a negative value"],[" to disable any output event."]],[["Delay"],["Date of initial output event"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -in1=int(in1); -nin=in1; -fname1=pathconvert(stripblanks(fname1),false,true); -frmt1=stripblanks(frmt1); -if (lunit>0&&min(length(frmt),1)!=min(length(frmt1),1)) { -block_parameter_error(gettext("Simulation running !!! You cannot switch<br />between formatted and unformatted when running"),gettext("End current simulation first.")); -ok=false; -} else if (lunit>0&&fname1!=fname) { -block_parameter_error(gettext("You cannot modify \'Output File Name\' when running."),gettext("End current simulation first.")); -ok=false; -} else if (fname1=="") { -block_parameter_error(gettext("Wrong value for \'Output File Name\' parameter"),gettext("You must provide a filename.")); -ok=false; -} else if (fileparts(fname1)!="") { -[pa,fn,ex]=fileparts(fname1); -if (!isdir[pa-1]) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); -ok=false; -} -} else if (frmt1!=""&&(part(frmt1,1)!="("||part(frmt1,length(frmt1))!=")")) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("You must enclose the format\'s string between parentheses.")); -ok=false; -} else if (N<2) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Must be greater than 1.")); -ok=false; -} else if (in1<=0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); +if (dt<=0) { +message("Delay must be positive"); ok=false; } if (ok) { -ipar=[[length(fname1)],[length(frmt1)],[0],[N],[_str2code[fname1-1]],[_str2code[frmt1-1]]]; -if (prod[size(dstate)-1]!=(nin+1)*N+2) { -dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -} -model.in1=nin; -model.dstate=dstate; -model.ipar=ipar; -model.dep_ut=[true,false]; graphics.exprs=exprs; +model.rpar=[[dt],[ff]]; +model.firing=ff; x.graphics=graphics; x.model=model; break; @@ -3938,94 +2808,45 @@ break; } } } -/* autogenerated from "macros/Sinks/CSCOPE.sci" */ -function CSCOPE() { - CSCOPE.prototype.define = function CSCOPE() { -win=-1; -wdim=[[600],[400]]; -wpos=[[-1],[-1]]; -clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; -N=20; -ymin=-15; -ymax=+15; -per=30; +/* autogenerated from "macros/Events/EVTDLY_f.sci" */ +function EVTDLY_f() { + EVTDLY_f.prototype.define = function EVTDLY_f() { +dt=0.1; +ff=dt; model=scicos_model(); -model.sim=list("cscope",4); -model.in1=-1; -model.in2=1; +model.sim="evtdly"; model.evtin=1; -model.rpar=[[0],[ymin],[ymax],[per]]; -model.ipar=[[win],[1],[N],[clrs],[wpos],[wdim]]; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(ymin)],[string(ymax)],[string(per)],[string(N)],[transpose(string(0))],[emptystr()]]; +model.evtout=1; +model.rpar=dt; +model.blocktype="d"; +model.firing=ff; +model.dep_ut=[false,false]; +exprs=[[string(dt)],[sci2exp(ff)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - CSCOPE.prototype.details = function CSCOPE() { + EVTDLY_f.prototype.details = function EVTDLY_f() { } - CSCOPE.prototype.get = function CSCOPE() { + EVTDLY_f.prototype.get = function EVTDLY_f() { } - CSCOPE.prototype.set = function CSCOPE() { + EVTDLY_f.prototype.set = function EVTDLY_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs]=scicos_getvalue("Set Scope parameters",[["Color (>0) or mark (<0) vector (8 entries)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin"],["Ymax"],["Refresh period"],["Buffer size","Accept herited events 0/1","Name of Scope (label&Id)"]],list("vec",8,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"str",1),exprs); +[ok,dt,ff,exprs]=scicos_getvalue([["Set Event Delay block parameters"],["Delay is the delay between an input event "],[" and the generated output event"],["Block may initially generate an output event before "],[" any input event. \"Date of initial output event\""],[" gives the date of this event. Set a negative value"],[" if no initial event required"]],[["Delay"],["Date of initial output event"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number can\'t be < -1"],[" "]]; -ok=false; -} -if (per<=0) { -mess=[[mess],["Refresh period must be positive"],[" "]]; -ok=false; -} -if (N<2) { -mess=[[mess],["Buffer size must be at least 2"],[" "]]; -ok=false; -} -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (!or(heritance==[0,1])) { -mess=[[mess],["Accept herited events must be 0 or 1"],[" "]]; +if (dt<=0) { +message("Delay must be positive"); ok=false; } -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list([-1,1],1),list(),ones(1-heritance,1),[]); -} if (ok) { -if (wpos==[]) { -wpos=[[-1],[-1]]; -} -if (wdim==[]) { -wdim=[[-1],[-1]]; -} -rpar=[[0],[ymin],[ymax],[per]]; -ipar=[[win],[1],[N],[clrs.slice()],[wpos.slice()],[wdim.slice()]]; -model.rpar=rpar; -model.ipar=ipar; -model.evtin=ones(1-heritance,1); -model.label=nom; -graphics.id=nom; graphics.exprs=exprs; +model.rpar=dt; +model.firing=ff; x.graphics=graphics; x.model=model; break; @@ -4033,393 +2854,174 @@ break; } } } -/* autogenerated from "macros/Sinks/CANIMXY3D.sci" */ -function CANIMXY3D() { - CANIMXY3D.prototype.define = function CANIMXY3D() { -win=-1; -N=2; -clrs=[[1],[2],[3],[4],[5],[6],[7],[13]]; -siz=[[1],[1],[1],[1],[1],[1],[1],[1]]; -wpos=[[-1],[-1]]; -wdim=[[-1],[-1]]; -param3ds=[[50],[280]]; -vec_x=[[-15],[15]]; -vec_y=[[-15],[15]]; -vec_z=[[-15],[15]]; -nbr_curves=1; +/* autogenerated from "macros/Events/EVTGEN_f.sci" */ +function EVTGEN_f() { + EVTGEN_f.prototype.define = function EVTGEN_f() { +tt=0; model=scicos_model(); -model.sim=list("canimxy3d",4); -model.in1=[[1],[1],[1]]; -model.evtin=1; -model.in2=[[1],[1],[1]]; -model.intyp=[[1],[1],[1]]; -model.rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; -model.ipar=[[win],[8],[N],[clrs.slice()],[siz.slice()],[8],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.sim="trash"; +model.evtout=1; model.blocktype="d"; -model.firing=[]; +model.firing=tt; model.dep_ut=[false,false]; -exprs=[[string(nbr_curves)],[strcat(string(clrs)," ")],[strcat(string(siz)," ")],[string(win)],["[]"],["[]"],[strcat(string(vec_x)," ")],[strcat(string(vec_y)," ")],[strcat(string(vec_z)," ")],[strcat(string(param3ds)," ")],[string(N)]]; +exprs=string(tt); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - CANIMXY3D.prototype.details = function CANIMXY3D() { + EVTGEN_f.prototype.details = function EVTGEN_f() { } - CANIMXY3D.prototype.get = function CANIMXY3D() { + EVTGEN_f.prototype.get = function EVTGEN_f() { } - CANIMXY3D.prototype.set = function CANIMXY3D() { + EVTGEN_f.prototype.set = function EVTGEN_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,nbr_curves,clrs,siz,win,wpos,wdim,vec_x,vec_y,vec_z,param3ds,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of curves"],["color (>0) or mark (<0)"],["line or mark size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin and Xmax"],["Ymin and Ymax"],["Zmin and Zmax"],["Alpha and Theta"],["Buffer size"]],list("vec",1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs); +[ok,tt,exprs]=scicos_getvalue("Set Event time",["Event Time"],list("vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; -} -if (size(clrs,"*")!=size(siz,"*")) { -mess=[[mess],["Colors and Size must have same size"],[" "]]; -ok=false; -} -if (nbr_curves<=0) { -mess=[[mess],["Number of curves cannot be negative or null"],[" "]]; -ok=false; -} -if (size(clrs,"*")<nbr_curves) { -mess=[[mess],["You must have at least same size for clrs and the number of curves"],[" "]]; -ok=false; -} -if (N<1) { -mess=[[mess],["Buffer size must be at least 1"],[" "]]; -ok=false; -} -if (N<2) { -for (i=1;i<=nbr_curves;i+=1) { -if (clrs[i-1]>0) { -mess=[[mess],["Buffer size must be at least 2 or Change a color (must be <0)"],[" "]]; -ok=false; -} -} -} -if (vec_y[1-1]>=vec_y[2-1]) { -mess=[[mess],["Ymax must be higher than Ymin"],[" "]]; -ok=false; -} -if (vec_x[1-1]>=vec_x[2-1]) { -mess=[[mess],["Xmax must be higher than Xmin"],[" "]]; -ok=false; -} -if (vec_z[1-1]>=vec_z[2-1]) { -mess=[[mess],["Zmax must be higher than Zmin"],[" "]]; -ok=false; -} -if (!ok) { -message(mess); -} else { -in1=nbr_curves*ones(3,1); -in2=ones(3,1); -[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); -if (wpos==[]) { -wpos=[[-1],[-1]]; -} -if (wdim==[]) { -wdim=[[-1],[-1]]; -} -rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; -size_siz=size(siz,"*"); -ipar=[[win],[size_siz],[N],[clrs.slice()],[siz.slice()],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; -model.rpar=rpar; -model.ipar=ipar; graphics.exprs=exprs; +if (model.firing!=tt) { +model.firing=tt; +} x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Sinks/CMAT3D.sci" */ -function CMAT3D() { - CMAT3D.prototype.define = function CMAT3D() { -cmin=0; -cmax=100; -colormap=jetcolormap[25-1]; -size_c=25; -x=-1; -y=-1; -size_x=1; -size_y=1; +/* autogenerated from "macros/Events/EVTVARDLY.sci" */ +function EVTVARDLY() { + EVTVARDLY.prototype.define = function EVTVARDLY() { model=scicos_model(); -model.sim=list("cmat3d",4); -model.in1=-1; -model.in2=-2; -model.intyp=1; +model.sim=list("evtvardly",4); +model.in1=1; model.evtin=1; -model.ipar=[[cmin],[cmax],[size_c],[size_x],[size_y]]; -model.rpar=[[colormap.slice()],[x],[y]]; +model.evtout=1; +model.blocktype="d"; +model.firing=-1; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[strcat(string(x)," ")],[strcat(string(y)," ")],[string("jetcolormap(25)")],[string(cmin)],[string(cmax)]]; +exprs=string(model.firing); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - CMAT3D.prototype.details = function CMAT3D() { + EVTVARDLY.prototype.details = function EVTVARDLY() { } - CMAT3D.prototype.get = function CMAT3D() { + EVTVARDLY.prototype.get = function EVTVARDLY() { } - CMAT3D.prototype.set = function CMAT3D() { + EVTVARDLY.prototype.set = function EVTVARDLY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,vec_x,vec_y,colormap,cmin,cmax,exprs]=scicos_getvalue("Set Scope parameters",[["Bounds Vector X (-1 for standard)"],["Bounds Vector Y (-1 for standard)"],["ColorMap"],["Zmin"],["Zmax"]],list("vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1),exprs); +[ok,fir,exprs]=scicos_getvalue("Set parameter of variable event delay","Initial event firing time (<0 if absent)",list("vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(vec_x,"*")!=size(vec_y,"*")) { -mess=[[mess],["Vector X and Vector Y must have the same size"],[" "]]; -ok=false; -} -if (cmax<=cmin) { -mess=[[mess],["Error with minimum and maximum value"],[" "]]; -ok=false; -} -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} -if (ok) { -size_x=size(vec_x,"*"); -size_c=size(colormap.slice(),1); -ipar=[[cmin],[cmax],[size_c],[size_x]]; -rpar=[[colormap.slice()],[vec_x.slice()],[vec_y.slice()]]; -model.ipar=ipar; -model.rpar=rpar; graphics.exprs=exprs; +model.firing=fir; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Sinks/CSCOPXY3D.sci" */ -function CSCOPXY3D() { - CSCOPXY3D.prototype.define = function CSCOPXY3D() { -win=-1; -clrs=[[1],[2],[3],[4],[5],[6],[7],[13]]; -siz=[[1],[1],[1],[1],[1],[1],[1],[1]]; -wdim=[[600],[400]]; -wpos=[[-1],[-1]]; -N=2; -param3ds=[[50],[280]]; -vec_x=[[-15],[15]]; -vec_y=[[-15],[15]]; -vec_z=[[-15],[15]]; -nbr_curves=1; +/* autogenerated from "macros/Events/HALT_f.sci" */ +function HALT_f() { + HALT_f.prototype.define = function HALT_f() { +n=0; model=scicos_model(); -model.sim=list("cscopxy3d",4); -model.in1=[[1],[1],[1]]; -model.in2=[[1],[1],[1]]; -model.intyp=[[1],[1],[1]]; +model.sim="hltblk"; model.evtin=1; -model.rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; -model.ipar=[[win],[8],[N],[clrs.slice()],[siz.slice()],[8],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.dstate=0; +model.ipar=0; model.blocktype="d"; model.dep_ut=[false,false]; -exprs=[[string(nbr_curves)],[strcat(string(clrs)," ")],[strcat(string(siz)," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[strcat(string(vec_x)," ")],[strcat(string(vec_y)," ")],[strcat(string(vec_z)," ")],[strcat(string(param3ds)," ")],[string(N)]]; +exprs=string(n); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - CSCOPXY3D.prototype.details = function CSCOPXY3D() { + HALT_f.prototype.details = function HALT_f() { } - CSCOPXY3D.prototype.get = function CSCOPXY3D() { + HALT_f.prototype.get = function HALT_f() { } - CSCOPXY3D.prototype.set = function CSCOPXY3D() { + HALT_f.prototype.set = function HALT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,nbr_curves,clrs,siz,win,wpos,wdim,vec_x,vec_y,vec_z,param3ds,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of curves"],["color (>0) or mark (<0)"],["Line or Mark Size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin and Xmax"],["Ymin and Ymax"],["Zmin and Zmax"],["Alpha and Theta"],["Buffer size"]],list("vec",1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",2,"vec",2,"vec",2,"vec",2,"vec",1),exprs); +[ok,n,exprs]=scicos_getvalue("Set Halt block parameters",["State on halt"],list("vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(clrs,"*")!=size(siz,"*")) { -mess=[[mess],["Colors and Size must have same size"],[" "]]; -ok=false; -} -if (nbr_curves<=0) { -mess=[[mess],["Number of curves cannot be negative or null"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; -} -if (N<1) { -mess=[[mess],["Buffer size must be at least 1"],[" "]]; -ok=false; -} -if (N<2) { -for (i=1;i<=size(clrs,"*");i+=1) { -if (clrs[i-1]>0) { -mess=[[mess],["Buffer size must be at least 2 or Change a color (must be >0)"],[" "]]; -ok=false; -} -} -} -if (vec_y[1-1]>=vec_y[2-1]) { -mess=[[mess],["Ymax must be higher than Ymin"],[" "]]; -ok=false; -} -if (vec_x[1-1]>=vec_x[2-1]) { -mess=[[mess],["Xmax must be higher than Xmin"],[" "]]; -ok=false; -} -if (vec_z[1-1]>=vec_z[2-1]) { -mess=[[mess],["Zmax must be higher than Zmin"],[" "]]; -ok=false; -} if (ok) { -in1=nbr_curves*ones(3,1); -in2=ones(3,1); -[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); -if (wpos==[]) { -wpos=[[-1],[-1]]; -} -if (wdim==[]) { -wdim=[[-1],[-1]]; -} -rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; -size_siz=size(siz,"*"); -ipar=[[win],[size_siz],[N],[clrs.slice()],[siz.slice()],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; -model.rpar=rpar; -model.ipar=ipar; graphics.exprs=exprs; +model.ipar=n; x.graphics=graphics; x.model=model; break; -} else { -message(mess); } } } } -/* autogenerated from "macros/Sinks/CSCOPXY.sci" */ -function CSCOPXY() { - CSCOPXY.prototype.define = function CSCOPXY() { -win=-1; -clrs=4; -siz=1; -wdim=[[600],[400]]; -wpos=[[-1],[-1]]; -N=2; -xmin=-15; -xmax=15; -ymin=-15; -ymax=+15; -nbr_curves=1; +/* autogenerated from "macros/Events/IFTHEL_f.sci" */ +function IFTHEL_f() { + IFTHEL_f.prototype.define = function IFTHEL_f() { model=scicos_model(); -model.sim=list("cscopxy",4); -model.in1=[[1],[1]]; -model.in2=[[1],[1]]; -model.intyp=[[1],[1]]; +model.sim=list("ifthel",-1); +model.in1=1; +model.in2=1; +model.intyp=-1; model.evtin=1; -model.rpar=[[xmin],[xmax],[ymin],[ymax]]; -model.ipar=[[win],[1],[N],[clrs],[siz],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[string(nbr_curves)],[sci2exp(clrs)],[sci2exp(siz)],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(xmin)],[string(xmax)],[string(ymin)],[string(ymax)],[string(N)]]; +model.evtout=[[1],[1]]; +model.blocktype="l"; +model.firing=[-1,-1]; +model.dep_ut=[true,false]; +model.nmode=1; +model.nzcross=1; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +exprs=[[string(model.in1)],[string(model.nmode)]]; +x=standard_define([3,3],model,exprs,gr_i); } - CSCOPXY.prototype.details = function CSCOPXY() { + IFTHEL_f.prototype.details = function IFTHEL_f() { } - CSCOPXY.prototype.get = function CSCOPXY() { + IFTHEL_f.prototype.get = function IFTHEL_f() { } - CSCOPXY.prototype.set = function CSCOPXY() { + IFTHEL_f.prototype.set = function IFTHEL_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +if (exprs==[]) { +exprs=string(1); +} +if (size(exprs,"*")==1) { +exprs[2-1]=string(1); +} while (true) { -[ok,nbr_curves,clrs,siz,win,wpos,wdim,xmin,xmax,ymin,ymax,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of Curves"],["color (>0) or mark (<0)"],["line or mark size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin"],["Xmax"],["Ymin"],["Ymax"],["Buffer size"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,inh,nmod,exprs]=scicos_getvalue("Set parameters",[["Inherit (1: no, 0: yes)"],["zero-crossing (0: no, 1: yes)"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (nbr_curves<=0) { -mess=[[mess],["Number of Curves cannot be negative or null"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; -} -if (N<1) { -mess=[[mess],["Buffer size must be at least 1"],[" "]]; -ok=false; -} -if (N==1&&clrs>0) { -mess=[[mess],["Buffer size must be at least 2"],[" "]]; -ok=false; -} -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (xmin>=xmax) { -mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; -ok=false; -} -if (!ok) { -message(mess); -} else { -in1=nbr_curves*ones(2,1); -in2=ones(2,1); -[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); -if (wpos==[]) { -wpos=[[-1],[-1]]; +model.dep_ut=[true,false]; +if (nmod!=0) { +nmod=1; } -if (wdim==[]) { -wdim=[[-1],[-1]]; +if (inh!=1) { +inh=[]; } -rpar=[[xmin],[xmax],[ymin],[ymax]]; -ipar=[[win],[1],[N],[clrs],[siz],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; -model.rpar=rpar; -model.ipar=ipar; +[model,graphics,ok]=check_io(model,graphics,1,[],inh,[[1],[1]]); +if (ok) { graphics.exprs=exprs; +model.evtin=inh; +model.sim[2-1]=-1; +model.nmode=nmod; +model.nzcross=nmod; x.graphics=graphics; x.model=model; break; @@ -4427,94 +3029,197 @@ break; } } } -/* autogenerated from "macros/Sinks/OUTIMPL_f.sci" */ -function OUTIMPL_f() { - OUTIMPL_f.prototype.define = function OUTIMPL_f() { +/* autogenerated from "macros/Events/MCLOCK_f.sci" */ +function MCLOCK_f() { + MCLOCK_f.prototype.define = function MCLOCK_f() { +nn=2; +dt=0.1; +exprs=[[string(dt)],[string(nn)]]; +mfclck=MFCLCK_f("define"); +mfclck.graphics.orig=[334,199]; +mfclck.graphics.sz=[40,40]; +mfclck.graphics.flip=true; +mfclck.graphics.exprs=exprs; +mfclck.graphics.pein=12; +mfclck.graphics.peout=[[4],[3]]; +mfclck.model.rpar=0.1; +mfclck.model.ipar=nn; +mfclck.model.firing=[-1,0]; +clksom=CLKSOM_f("define"); +clksom.graphics.orig=[457,161]; +clksom.graphics.sz=[16.666667,16.666667]; +clksom.graphics.flip=true; +clksom.graphics.exprs=[["0.1"],["0.1"]]; +clksom.graphics.pein=[[4],[9],[0]]; +clksom.graphics.peout=5; +output_port1=CLKOUT_f("define"); +output_port1.graphics.orig=[509,261]; +output_port1.graphics.sz=[20,20]; +output_port1.graphics.flip=true; +output_port1.graphics.exprs="1"; +output_port1.graphics.pein=10; +output_port1.model.ipar=1; +output_port2=CLKOUT_f("define"); +output_port2.graphics.orig=[509,142]; +output_port2.graphics.sz=[20,20]; +output_port2.graphics.flip=true; +output_port2.graphics.exprs="2"; +output_port2.graphics.pein=13; +output_port2.model.ipar=2; +split1=CLKSPLIT_f("define"); +split1.graphics.orig=[[411.92504],[169.33333]]; +split1.graphics.pein=3; +split1.graphics.peout=[[9],[10]]; +split2=CLKSPLIT_f("define"); +split2.graphics.orig=[[482.45315],[169.33333]]; +split2.graphics.pein=5; +split2.graphics.peout=[[12],[13]]; +gr_i=[]; +diagram=scicos_diagram(); +diagram.objs[1-1]=mfclck; +diagram.objs[2-1]=clksom; +diagram.objs[3-1]=scicos_link(xx=[[360.7],[360.7],[411.9]],yy=[[193.3],[169.3],[169.3]],ct=[10,-1],from=[1,2],to=[8,1]); +diagram.objs[4-1]=scicos_link(xx=[[347.3],[347.3],[461.8],[461.8]],yy=[[193.3],[155.5],[155.5],[161]],ct=[10,-1],from=[1,1],to=[2,1]); +diagram.objs[5-1]=scicos_link(xx=[[468.9],[482.5]],yy=[[169.3],[169.3]],ct=[10,-1],from=[2,1],to=[11,1]); +diagram.objs[6-1]=output_port1; +diagram.objs[7-1]=output_port2; +diagram.objs[8-1]=split1; +diagram.objs[9-1]=scicos_link(xx=[[411.9],[457]],yy=[[169.3],[169.3]],ct=[10,-1],from=[8,1],to=[2,2]); +diagram.objs[10-1]=scicos_link(xx=[[411.9],[411.9],[509]],yy=[[169.3],[271],[271]],ct=[10,-1],from=[8,2],to=[6,1]); +diagram.objs[11-1]=split2; +diagram.objs[12-1]=scicos_link(xx=[[482.5],[489.6],[489.6],[354],[354]],yy=[[169.3],[169.3],[338.3],[338.3],[244.7]],ct=[10,-1],from=[11,1],to=[1,1]); +diagram.objs[13-1]=scicos_link(xx=[[482.4],[482.4],[509]],yy=[[169.3],[152],[152]],ct=[10,-1],from=[11,2],to=[7,1]); +x=scicos_block(); +x.gui="MCLOCK_f"; +x.graphics.sz=[3,2]; +x.graphics.gr_i=gr_i; +x.model.sim="csuper"; +x.model.evtout=[[1],[1]]; +x.model.blocktype="h"; +x.model.rpar=diagram; +x.graphics.peout=[[0],[0]]; + } + MCLOCK_f.prototype.details = function MCLOCK_f() { + } + MCLOCK_f.prototype.get = function MCLOCK_f() { + } + MCLOCK_f.prototype.set = function MCLOCK_f() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="MFCLCK_f") { +path=i; +break; +} +} +newpar=list(); +spath=list("model","rpar","objs",path); +xx=arg1[spath-1]; +execstr("xxn="+xx.gui+"(\'set\',xx)"); +if (or(this.xxn!=xx)) { +arg1[spath-1]=this.xxn; +newpar[size(newpar)+1-1]=path; +} +x=arg1; +y=0; +typ=newpar; + } +} +/* autogenerated from "macros/Events/MFCLCK_f.sci" */ +function MFCLCK_f() { + MFCLCK_f.prototype.define = function MFCLCK_f() { +nn=2; +dt=0.1; model=scicos_model(); -model.in1=[-1]; -model.in2=[1]; -prt=1; -model.sim="outimpl"; -model.ipar=[1]; -model.blocktype="c"; +model.sim="mfclck"; +model.evtin=1; +model.evtout=[[1],[1]]; +model.dstate=0; +model.rpar=dt; +model.ipar=nn; +model.blocktype="d"; +model.firing=[-1,0]; model.dep_ut=[false,false]; -mo=modelica(); -mo.model="PORT"; -mo.inputs="n"; -model.equations=mo; -exprs="1"; +exprs=[[string(dt)],[string(nn)]]; gr_i=[]; -x=standard_define([1,1],model,exprs,gr_i); -x.graphics.in_implicit=["I"]; +x=standard_define([3,2],model,exprs,gr_i); } - OUTIMPL_f.prototype.details = function OUTIMPL_f() { + MFCLCK_f.prototype.details = function MFCLCK_f() { } - OUTIMPL_f.prototype.get = function OUTIMPL_f() { + MFCLCK_f.prototype.get = function MFCLCK_f() { } - OUTIMPL_f.prototype.set = function OUTIMPL_f() { + MFCLCK_f.prototype.set = function MFCLCK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==2) { -exprs=exprs[1-1]; -} -while (true) { -[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"OUTIMPL_f")],[" "],[gettext("Implicit output port")]],gettext("Port number"),list("vec",1),exprs); -if (!ok) { -break; -} -prt=int(prt); -if (prt<=0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); -} else { -if (model.ipar!=prt) { -needcompile=4; -y=needcompile; -} -model.ipar=prt; +[ok,dt,nn,exprs]=scicos_getvalue("Set Multifrequency clock parameters",[["basic period (1/f)"],["multiply by (n)"]],list("vec",1,"vec",1),exprs); +if (ok) { +model.ipar=nn; +model.rpar=dt; +hh=model.firing; +hh[2-1]=0; +model.firing=hh; graphics.exprs=exprs; x.graphics=graphics; x.model=model; -break; -} } } } -/* autogenerated from "macros/Sinks/CLKOUTV_f.sci" */ -function CLKOUTV_f() { - CLKOUTV_f.prototype.define = function CLKOUTV_f() { -prt=1; +/* autogenerated from "macros/Events/M_freq.sci" */ +function M_freq() { + M_freq.prototype.define = function M_freq() { model=scicos_model(); -model.sim="output"; +model.sim=list("m_frequ",4); +model.evtout=[[1],[1],[1]]; model.evtin=1; -model.ipar=prt; +model.rpar=[]; +model.opar=list([[1,1,0],[1,1,1],[1,3,2]],1,0,0); model.blocktype="d"; -model.firing=[]; +model.firing=[0,-1,-1]; model.dep_ut=[false,false]; -exprs=string(prt); -x=standard_define([1,1],model,exprs," "); +exprs=[[sci2exp([[1],[2]])],[sci2exp([[0],[0]])]]; +gr_i=[]; +x=standard_define([3,2],model,exprs,gr_i); } - CLKOUTV_f.prototype.details = function CLKOUTV_f() { + M_freq.prototype.details = function M_freq() { } - CLKOUTV_f.prototype.get = function CLKOUTV_f() { + M_freq.prototype.get = function M_freq() { } - CLKOUTV_f.prototype.set = function CLKOUTV_f() { + M_freq.prototype.set = function M_freq() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { -[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CLKOUTV_f")],[" "],[gettext("Event output port")]],gettext("Port number"),list("vec",1),exprs); +[ok,frequ,offset,exprs]=scicos_getvalue("Set block parameters",[["Sample time"],["Offset"]],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } -prt=int(prt); -if (prt<=0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +offset=offset.slice(); +frequ=frequ.slice(); +if ((size(frequ,"*"))!=(size(offset,"*"))) { +message("offset and frequency must have the same size"); +ok=false; +} else if (or(frequ<0)) { +message("Frequency must be a positif number"); +ok=false; +} else if (or(abs(offset)>frequ)) { +message("The |Offset| must be less than the Frequency"); +ok=false; +} +if (ok) { +[m,den,off,count,m1,fir,frequ,offset,ok]=mfrequ_clk(frequ,offset); +} +if (ok) { +model.opar=list(m,double(den),off,count); +mn=(2^size(m1,"*"))-1; +[model,graphics,ok]=set_io(model,graphics,list(),list(),1,ones(mn,1)); +if (mn>3) { +graphics.sz=[40+(mn-3)*10,40]; } else { -model.ipar=prt; -model.evtin=1; +graphics.sz=[50,40]; +} +model.firing=fir; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -4523,629 +3228,631 @@ break; } } } -/* autogenerated from "macros/Sinks/CFSCOPE.sci" */ -function CFSCOPE() { - CFSCOPE.prototype.define = function CFSCOPE() { -win=-1; -wdim=[[600],[400]]; -wpos=[[-1],[-1]]; -clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; -N=2; -ymin=-15; -ymax=+15; -per=30; +/* autogenerated from "macros/Events/VirtualCLK0.sci" */ +function VirtualCLK0() { + VirtualCLK0.prototype.define = function VirtualCLK0() { model=scicos_model(); -model.sim=list("cfscope",4); +model.sim="vrtclk0"; model.evtin=1; -model.rpar=[[0],[ymin],[ymax],[per]]; -model.ipar=[[win],[1],[N],[clrs],[wpos],[wdim],[1],[1]]; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(ymin)],[string(ymax)],[string(per)],[string(N)],[string([1])]]; -gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +model.opar=list(); +model.ipar=[]; +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs=[]; +x=standard_define([2,2],model,exprs," "); } - CFSCOPE.prototype.details = function CFSCOPE() { + VirtualCLK0.prototype.details = function VirtualCLK0() { } - CFSCOPE.prototype.get = function CFSCOPE() { + VirtualCLK0.prototype.get = function VirtualCLK0() { } - CFSCOPE.prototype.set = function CFSCOPE() { + VirtualCLK0.prototype.set = function VirtualCLK0() { x=arg1; -graphics=arg1.graphics; + } +} +/* autogenerated from "macros/Events/freq_div.sci" */ +function freq_div() { + freq_div.prototype.define = function freq_div() { +scs_m_1=scicos_diagram(); +scs_m_1.objs[1-1]=Modulo_Count("define"); +scs_m_1.objs[2-1]=CLKINV_f("define"); +scs_m_1.objs[3-1]=CLKOUTV_f("define"); +scs_m_1.objs[4-1]=IFTHEL_f("define"); +scs_m_1.objs[5-1]=CLKSPLIT_f("define"); +scs_m_1.objs[6-1]=scicos_link(); +scs_m_1.objs[7-1]=scicos_link(); +scs_m_1.objs[8-1]=scicos_link(); +scs_m_1.objs[9-1]=scicos_link(); +scs_m_1.objs[10-1]=scicos_link(); +blk=scs_m_1.objs[1-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[0,-100]; +graphics.sz=[60,40]; +graphics.exprs=[["0"],["3"]]; +model.dstate=3; +model.ipar=3; +graphics.pout=7; +graphics.pein=10; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[1-1]=blk; +blk=scs_m_1.objs[2-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[120,0]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.peout=6; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[2-1]=blk; +blk=scs_m_1.objs[3-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[130,-160]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.pein=8; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[3-1]=blk; +blk=scs_m_1.objs[4-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[100,-100]; +graphics.sz=[60,40]; +graphics.exprs=[["1"],["0"]]; +model.ipar=1; +graphics.pin=7; +graphics.pein=9; +graphics.peout=[[0],[8]]; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[4-1]=blk; +blk=scs_m_1.objs[5-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[127,-33]; +graphics.sz=[7,7]; +graphics.pein=6; +graphics.peout=[[9],[10]]; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[5-1]=blk; +lnk=scs_m_1.objs[6-1]; +lnk.ct=[5,-1]; +lnk.from=[2,1,0]; +lnk.to=[5,1,1]; +scs_m_1.objs[6-1]=lnk; +lnk=scs_m_1.objs[7-1]; +lnk.from=[1,1,0]; +lnk.to=[4,1,1]; +scs_m_1.objs[7-1]=lnk; +lnk=scs_m_1.objs[8-1]; +lnk.ct=[5,-1]; +lnk.from=[4,2,0]; +lnk.to=[3,1,1]; +scs_m_1.objs[8-1]=lnk; +lnk=scs_m_1.objs[9-1]; +lnk.ct=[5,-1]; +lnk.from=[5,1,0]; +lnk.to=[4,1,1]; +scs_m_1.objs[9-1]=lnk; +lnk=scs_m_1.objs[10-1]; +lnk.xx=[0,30,1]; +lnk.yy=[0,-30,1]; +lnk.ct=[5,-1]; +lnk.from=[5,2,0]; +lnk.to=[1,1,1]; +scs_m_1.objs[10-1]=lnk; +blk={}; +lnk={}; +model=scicos_model(); +model.sim="csuper"; +model.evtin=1; +model.evtout=1; +model.rpar=scs_m_1; +gr_i=[]; +x=standard_define([3,2],model,[],gr_i); + } + freq_div.prototype.details = function freq_div() { + } + freq_div.prototype.get = function freq_div() { + } + freq_div.prototype.set = function freq_div() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="Modulo_Count") { +path=i; +break; +} +} +newpar=list(); +y=0; +spath=list(); +spath[$+1-1]="model"; +spath[$+1-1]="rpar"; +spath[$+1-1]="objs"; +spath[$+1-1]=path; +xx=arg1[spath-1]; +xxn=xx; +graphics=xx.graphics; exprs=graphics.exprs; -model=arg1.model; +model=xx.model; while (true) { -[ok,clrs,win,wpos,wdim,ymin,ymax,per,N,wu,exprs]=scicos_getvalue("Set Scope parameters",[["Color (>0) or mark (<0) vector (8 entries)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin"],["Ymax"],["Refresh period"],["Buffer size","Links to view"]],list("vec",8,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",-1),exprs); +[ok,%ph,%df,exprs]=scicos_getvalue("Set frequency division block parameters",[["Phase (0 to division factor -1)"],["Division factor"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; +if (ok) { +if (%df<1) { +%df=1; } -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; +%ph=abs(%ph); +if (%ph>%df-1) { +%ph=%df-1; } -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; +graphics.exprs=exprs; +model.ipar=%df; +model.dstate=%ph; +xxn.graphics=graphics; +xxn.model=model; +break; } -if (per<=0) { -mess=[[mess],["Refresh period must be positive"],[" "]]; -ok=false; } -if (N<2) { -mess=[[mess],["Buffer size must be at least 2"],[" "]]; -ok=false; +if (diffobjs(xxn,xx)) { +model=xx.model; +model_n=xxn.model; +if (!is_modelica_block(xx)) { +modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); +if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { +needcompile=1; } -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; +if (or(model.firing!=model_n.firing)) { +needcompile=2; } -if (wu<0) { -mess=[[mess],["Link to view must be positive"],[" "]]; -ok=false; +if (model.sim=="input"||model.sim=="output") { +if (model.ipar!=model_n.ipar) { +needcompile=4; } -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); } -if (ok) { -if (wpos==[]) { -wpos=[[-1],[-1]]; +if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { +needcompile=4; } -if (wdim==[]) { -wdim=[[-1],[-1]]; +if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { +needcompile=4; } -rpar=[[0],[ymin],[ymax],[per]]; -if (size(clrs,"*")>8) { -clrs=clrs.slice(1-1,8); +if (prod(size(model_n.sim))>1) { +if (model_n.sim[2-1]>1000) { +if (model.sim[1-1]!=model_n.sim[1-1]) { +needcompile=4; } -if (size(clrs,"*")<8) { -clrs[8-1]=0; } -ipar=[[win],[1],[N],[clrs.slice()],[wpos.slice()],[wdim.slice()],[size(wu,"*")],[wu.slice()]]; -model.rpar=rpar; -model.ipar=ipar; -model.firing=[]; -model.dep_ut=[true,false]; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; } +} else { +modified=or(model_n!=model); +eq=model.equations; +eqn=model_n.equations; +if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { +needcompile=4; } +} +arg1[spath-1]=xxn; +newpar[size(newpar)+1-1]=1; +y=max(y,needcompile); +} +x=arg1; +typ=newpar; } } -/* autogenerated from "macros/Sinks/WRITEAU_f.sci" */ -function WRITEAU_f() { - WRITEAU_f.prototype.define = function WRITEAU_f() { -in1=1; -nin=sum(in1); -frmt="uc "; -fname="/dev/audio"; -swap=0; -lunit=0; -N=2; +/* autogenerated from "macros/Hydraulics/Bache.sci" */ +function Bache() { + Bache.prototype.define = function Bache() { +in1=2; +out=3; model=scicos_model(); -model.sim=list("writeau",2); -model.in1=in1; -model.evtin=1; -model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[N],[swap],[_str2code[fname-1]]]; -model.blocktype="d"; +model.in1=[-transpose([1:in1])]; +model.out=[-transpose([1:out])]; +Patm=1.013e5; +A=1; +ze1=40; +ze2=0; +zs1=40; +zs2=0; +z0=30; +T0=290; +p_rho=0; +model.rpar=[[Patm],[A],[ze1],[ze2],[zs1],[zs2],[z0],[T0],[p_rho]]; +model.sim="Bache"; +model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[string(N),string(swap)]; +mo=modelica(); +mo.model="Bache"; +mo.inputs=["Ce1","Ce2"]; +mo.outputs=["Cs1","Cs2","yNiveau"]; +mo.parameters=list([["Patm"],["A"],["ze1"],["ze2"],["zs1"],["zs2"],["z0"],["T0"],["p_rho"]],[[Patm],[A],[ze1],[ze2],[zs1],[zs2],[z0],[T0],[p_rho]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=[[string(Patm)],[string(A)],[string(ze1)],[string(ze2)],[string(zs1)],[string(zs2)],[string(z0)],[string(T0)],[string(p_rho)]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=[["I"],["I"]]; +x.graphics.out_implicit=[["I"],["I"],["E"]]; } - WRITEAU_f.prototype.details = function WRITEAU_f() { + Bache.prototype.details = function Bache() { } - WRITEAU_f.prototype.get = function WRITEAU_f() { + Bache.prototype.get = function Bache() { } - WRITEAU_f.prototype.set = function WRITEAU_f() { + Bache.prototype.set = function Bache() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -ipar=model.ipar; -dstate=model.dstate; -lunit=dstate[2-1]; while (true) { -[ok,N,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"WRITEAU_f")],[" "],[gettext("Write \'.au\' sound file on audio device")]],[[gettext("Buffer Size")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("vec",1,"vec",1),exprs); +[ok,Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho,exprs]=scicos_getvalue("Parametres de la bache",[["Pression dans le ciel de la bache : Patm (Pa)"],["Section de la bache : A (m2)"],["Altitude du piquage d entrée 1: ze1 (m)"],["Altitude du piquage d entrée 2: ze2 (m)"],["Altitude du piquage de sortie 1: zs1 (m)"],["Altitude du piquage de sortie 2: zs2 (m)"],["Altitude initiale du fluide : z0 (m)"],["Température initiale du fluide : T0 (K)"],["Si >0, masse volumique imposée du fluide : p_rho (kg/m3)"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -nin=1; -fname1="/dev/audio"; -frmt1="uc "; -if (alreadyran&&(N!=ipar[5-1])) { -block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); -ok=false; -} else if (N<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); -ok=false; -} -if (swap!=0&&swap!=1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); -ok=false; -} -if (ok) { -ipar=[[length(fname1)],[_str2code[frmt1-1]],[N],[swap],[_str2code[fname1-1]]]; -if (prod[size(dstate)-1]!=(nin+1)*N+2) { -dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -} -model.in1=1; -model.dstate=dstate; -model.ipar=ipar; +model.rpar=[[Patm],[A],[ze1],[ze2],[zs1],[zs2],[z0],[T0],[p_rho]]; +model.equations.parameters[2-1]=list(Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Sinks/WRITEC_f.sci" */ -function WRITEC_f() { - WRITEC_f.prototype.define = function WRITEC_f() { -in1=1; -nin=sum(in1); -frmt="c "; -fname="foo"; -swap=0; -lunit=0; -N=2; +/* autogenerated from "macros/Hydraulics/Flowmeter.sci" */ +function Flowmeter() { + Flowmeter.prototype.define = function Flowmeter() { +ModelName="Flowmeter"; +PrametersValue=1; +ParametersName="Qini"; model=scicos_model(); -model.sim=list("writec",2); -model.in1=in1; -model.evtin=1; -model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[N],[swap],[_str2code[fname-1]]]; -model.blocktype="d"; -model.dep_ut=[true,false]; -exprs=[[sci2exp(in1)],[fname],[frmt],[string(N),string(swap)]]; +Typein=[]; +Typeout=[]; +MI=[]; +MO=[]; +P=[[50,105,-1,90],[0,10,2,0],[101,10,-2,0]]; +PortName=[["Mesure"],["C1"],["C2"]]; +for (i=1;i<=size(P,"r");i+=1) { +if (P[i-1][3-1]==1) { +Typein=[[Typein],["E"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==2) { +Typein=[[Typein],["I"]]; +MI=[[MI],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-1) { +Typeout=[[Typeout],["E"]]; +MO=[[MO],[PortName[i-1]]]; +} +if (P[i-1][3-1]==-2) { +Typeout=[[Typeout],["I"]]; +MO=[[MO],[PortName[i-1]]]; +} +} +model=scicos_model(); +mo=modelica(); +model.sim=ModelName; +mo.inputs=MI; +mo.outputs=MO; +model.rpar=PrametersValue; +mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); +exprs="1"; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +model.blocktype="c"; +model.dep_ut=[false,true]; +mo.model=ModelName; +model.equations=mo; +model.in1=ones(size(MI,"*"),1); +model.out=ones(size(MO,"*"),1); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=Typein; +x.graphics.out_implicit=Typeout; } - WRITEC_f.prototype.details = function WRITEC_f() { + Flowmeter.prototype.details = function Flowmeter() { } - WRITEC_f.prototype.get = function WRITEC_f() { + Flowmeter.prototype.get = function Flowmeter() { } - WRITEC_f.prototype.set = function WRITEC_f() { + Flowmeter.prototype.set = function Flowmeter() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -ipar=model.ipar; -dstate=model.dstate; -lunit=dstate[2-1]; -fname=exprs[2-1]; -frmt=exprs[3-1]; -while (true) { -[ok,in1,fname1,frmt1,N,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"WRITEC_f")],[" "],[gettext("Write to C binary file")]],[[gettext("Input Size")],[gettext("Output File Name")],[gettext("Output Format")],[gettext("Buffer Size")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("vec",1,"str",1,"str",1,"vec",1,"vec",1),exprs); +x=arg1; +exprs=x.graphics.exprs; +while (false) { +[ok,Qini,exprs]=scicos_getvalue([["Set Flowmeter block parameters:"],[""],["Qini: "]],"Qini",list("vec",1),exprs); if (!ok) { break; } -in1=int(in1); -nin=in1; -fname1=pathconvert(stripblanks(fname1),false,true); -frmt1=stripblanks(frmt1); -fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; -if (and(frmt1!=fmts)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); -ok=false; -} else if (alreadyran&&fname1!=fname) { -block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input Format")),gettext("End current simulation first.")); -ok=false; -} else if (alreadyran&&N!=ipar[5-1]) { -block_parameter_error(msprintf(gettext("You cannot modify \'Buffer Size\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); -ok=false; -} else if (fname1=="") { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),gettext("You must provide a filename.")); -} else if (fileparts(fname1)!="") { -[pa,fn,ex]=fileparts(fname1); -if (!isdir[pa-1]) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); -ok=false; -} -} else if (N<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); -ok=false; -} else if (in1<=0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); -ok=false; -} else if (swap!=0&&swap!=1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); -ok=false; -} -frmt1=part(frmt1,1,3); -if (ok) { -ipar=[[length(fname1)],[_str2code[frmt1-1]],[N],[swap],[_str2code[fname1-1]]]; -if (prod[size(dstate)-1]!=(nin+1)*N+2) { -dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -} -model.in1=nin; -model.dstate=dstate; -model.ipar=ipar; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; +x.model.equations.parameters[2-1]=list(Qini); +x.graphics.exprs=exprs; break; } -} } } -/* autogenerated from "macros/Sinks/CMSCOPE.sci" */ -function CMSCOPE() { - CMSCOPE.prototype.define = function CMSCOPE() { -win=-1; -in1=[[1],[1]]; -wdim=[[-1],[-1]]; -wpos=[[-1],[-1]]; -clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; -N=20; -ymin=[[-1],[-5]]; -ymax=[[1],[5]]; -per=[[30],[30]]; -yy=[[transpose(ymin.slice())],[transpose(ymax.slice())]]; -period=transpose(per.slice()); +/* autogenerated from "macros/Hydraulics/PerteDP.sci" */ +function PerteDP() { + PerteDP.prototype.define = function PerteDP() { model=scicos_model(); -model.sim=list("cmscope",4); -model.in1=in1; -model.in2=[[1],[1]]; -model.intyp=[[1],[1]]; -model.evtin=1; -model.rpar=[[0],[period.slice()],[yy.slice()]]; -model.ipar=[[win],[size(in1,"*")],[N],[wpos.slice()],[wdim.slice()],[in1.slice()],[clrs.slice(1-1,sum(in1))]]; +model.in1=[1]; +model.out=[1]; +L=10; +D=0.2; +lambda=0.03; +z1=0; +z2=0; +p_rho=0; +model.rpar=[[L],[D],[lambda],[z1],[z2],[p_rho]]; +model.sim="PerteDP"; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[strcat(string(in1)," ")],[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp([])],[strcat(string(ymin)," ")],[strcat(string(ymax)," ")],[strcat(string(per)," ")],[string(N)],[string(0)],[emptystr()]]; +mo=modelica(); +mo.model="PerteDP"; +mo.inputs="C1"; +mo.outputs="C2"; +mo.parameters=list([["L"],["D"],["lambda"],["z1"],["z2"],["p_rho"]],[[L],[D],[lambda],[z1],[z2],[p_rho]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=[[string(L)],[string(D)],[string(lambda)],[string(z1)],[string(z2)],[string(p_rho)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,1],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I"]; } - CMSCOPE.prototype.details = function CMSCOPE() { + PerteDP.prototype.details = function PerteDP() { } - CMSCOPE.prototype.get = function CMSCOPE() { + PerteDP.prototype.get = function PerteDP() { } - CMSCOPE.prototype.set = function CMSCOPE() { + PerteDP.prototype.set = function PerteDP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,in1,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs]=scicos_getvalue("Set Scope parameters",[["Input ports sizes"],["Drawing colors (>0) or mark (<0)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin vector"],["Ymax vector"],["Refresh period"],["Buffer size"],["Accept herited events 0/1","Name of Scope (label&Id)"]],list("vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec",1,"vec",1,"str",1),exprs); +[ok,L,D,lambda,z1,z2,p_rho,exprs]=scicos_getvalue("Parametres du tuyau",[["Longueur du tube : L (m)"],["Diamètre interne du tube : D (m)"],["Coefficient de perte de charge-frottement(S.U) : lambda"],["Altitude entrée tuyauterie : z1 (m)"],["Altitude sortie tuyauterie : z2 (m)"],["Si >0, masse volumique imposée fu fluide : p_rho (kg/m3)"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -mess=[]; -if (size(in1,"*")<=0) { -mess=[[mess],["Block must have at least one input port"],[" "]]; -ok=false; -} -if (min(in1)<=0) { -mess=[[mess],["Port sizes must be positive"],[" "]]; -ok=false; -} -if (size(clrs,"*")<sum(in1)) { -mess=[[mess],["Not enough colors defined (at least "+string(sum(in1))+")"],[" "]]; -ok=false; -} -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number can\'t be < -1"],[" "]]; -ok=false; -} -if (size(per,"*")!=size(ymin,"*")) { -mess=[[mess],["Size of Refresh Period must equal size of Ymin/Ymax vector"],[" "]]; -ok=false; -} -for (i=1;i<=size(per,"*");i+=1) { -if ((per[i-1]<=0)) { -mess=[[mess],["Refresh Period must be positive"],[" "]]; -ok=false; -} -} -if (N<2) { -mess=[[mess],["Buffer size must be at least 2"],[" "]]; -ok=false; -} -if (or(ymin>=ymax)) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (!or(heritance==[0,1])) { -mess=[[mess],["Accept herited events must be 0 or 1"],[" "]]; -ok=false; -} -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} -if (ok) { -in1=in1.slice(); -a=size(in1,1); -in2=ones(a,1); -[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(a,1)),list(),ones(1-heritance,1),[]); -} -if (ok) { -if (wpos==[]) { -wpos=[[-1],[-1]]; -} -if (wdim==[]) { -wdim=[[-1],[-1]]; -} -if (ok) { -period=transpose(per.slice()); -yy=[[transpose(ymin.slice())],[transpose(ymax.slice())]]; -rpar=[[0],[period.slice()],[yy.slice()]]; -clrs=clrs.slice(1-1,sum(in1)); -ipar=[[win],[size(in1,"*")],[N],[wpos.slice()],[wdim.slice()],[in1.slice()],[clrs.slice()],[heritance]]; -model.evtin=ones(1-heritance,1); -model.dstate=[]; -model.rpar=rpar; -model.ipar=ipar; -model.label=nom; -graphics.id=nom; +model.rpar=[[L],[D],[lambda],[z1],[z2],[p_rho]]; +model.equations.parameters[2-1]=list(L,D,lambda,z1,z2,p_rho); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} -} } } -/* autogenerated from "macros/Sinks/CMATVIEW.sci" */ -function CMATVIEW() { - CMATVIEW.prototype.define = function CMATVIEW() { -cmin=0; -cmax=100; -size_c=25; -colormap=jetcolormap[size_c-1]; -alpha_c=0.24; -beta_c=1; +/* autogenerated from "macros/Hydraulics/PuitsP.sci" */ +function PuitsP() { + PuitsP.prototype.define = function PuitsP() { model=scicos_model(); -model.sim=list("cmatview",4); -model.in1=-1; -model.in2=-2; -model.intyp=1; -model.evtin=1; -model.ipar=[[cmin],[cmax],[size_c]]; -model.rpar=[[alpha_c],[beta_c],[colormap.slice()]]; +P0=100000; +T0=290; +H0=100000; +option_temperature=1; +model.rpar=[[P0],[T0],[H0],[option_temperature]]; +model.sim="Puits"; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[string("jetcolormap(25)")],[string(cmin)],[string(cmax)]]; +mo=modelica(); +mo.model="Puits"; +mo.inputs=["C"]; +mo.parameters=list([["P0"],["T0"],["H0"],["option_temperature"]],[[P0],[T0],[H0],[option_temperature]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +exprs=[[string(P0)],[string(T0)],[string(H0)],[string(option_temperature)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2.5,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=["I"]; } - CMATVIEW.prototype.details = function CMATVIEW() { + PuitsP.prototype.details = function PuitsP() { } - CMATVIEW.prototype.get = function CMATVIEW() { + PuitsP.prototype.get = function PuitsP() { } - CMATVIEW.prototype.set = function CMATVIEW() { + PuitsP.prototype.set = function PuitsP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,colormap,cmin,cmax,exprs]=scicos_getvalue("Set Scope parameters",[["ColorMap"],["Minimum level range"],["Maximum level range"]],list("vec",-1,"vec",1,"vec",1),exprs); +[ok,P0,T0,H0,option_temperature,exprs]=scicos_getvalue("Paramètres du puits",[["Pression de la source : P0 (Pa)"],["Temperature de la source : T0 (K)"],["Enthalpie spécifique de la source : H0 (J/kg)"],["1:température fixée - 2:enthalpie fixée : option_temperature"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -mess=[]; -if (cmax<=cmin) { -mess=[[mess],["Error with minimum and maximum value"],[" "]]; -ok=false; -} -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} -if (ok) { -size_c=size(colormap.slice(),1); -sol=inv[[[cmin,1],[cmax,1]]-1]*[[1],[size_c/3]]; -alpha_c=sol[1-1]; -beta_c=sol[2-1]; -ipar=[[cmin],[cmax],[size_c]]; -rpar=[[alpha_c],[beta_c],[colormap.slice()]]; -model.ipar=ipar; -model.rpar=rpar; +model.rpar=[[P0],[T0],[H0],[option_temperature]]; +model.equations.parameters[2-1]=list(P0,T0,H0,option_temperature); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Sinks/CEVENTSCOPE.sci" */ -function CEVENTSCOPE() { - CEVENTSCOPE.prototype.define = function CEVENTSCOPE() { -nclock=1; -win=-1; -clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; -wdim=[[600],[400]]; -wpos=[[-1],[-1]]; -per=30; +/* autogenerated from "macros/Hydraulics/SourceP.sci" */ +function SourceP() { + SourceP.prototype.define = function SourceP() { model=scicos_model(); -model.sim=list("cevscpe",4); -model.evtin=1; -model.rpar=per; -model.ipar=[[win],[1],[clrs[nclock-1]],[wpos.slice()],[wdim.slice()]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[sci2exp(nclock)],[strcat(sci2exp(clrs[nclock-1])," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(per)]]; +P0=300000; +T0=290; +H0=100000; +option_temperature=1; +model.rpar=[[P0],[T0],[H0],[option_temperature]]; +model.sim="Source"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="Source"; +mo.inputs=[]; +mo.outputs=["C"]; +mo.parameters=list([["P0"],["T0"],["H0"],["option_temperature"]],[[P0],[T0],[H0],[option_temperature]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=[[string(P0)],[string(T0)],[string(H0)],[string(option_temperature)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2.5,2],model,exprs,list(gr_i,0)); +x.graphics.out_implicit=["I"]; } - CEVENTSCOPE.prototype.details = function CEVENTSCOPE() { + SourceP.prototype.details = function SourceP() { } - CEVENTSCOPE.prototype.get = function CEVENTSCOPE() { + SourceP.prototype.get = function SourceP() { } - CEVENTSCOPE.prototype.set = function CEVENTSCOPE() { + SourceP.prototype.set = function SourceP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,nclock,clrs,win,wpos,wdim,per,exprs]=scicos_getvalue("Set Scope parameters",[["Number of event inputs"],["colors c (>0) or mark (<0)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Refresh period"]],list("vec",1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",1),exprs); -nclock=int(nclock); -clrs=int(clrs); -win=int(win); +[ok,P0,T0,H0,option_temperature,exprs]=scicos_getvalue("Paramètres du puits",[["Pression de la source : P0 (Pa)"],["Temperature de la source : T0 (K)"],["Enthalpie spécifique de la source : H0 (J/kg)"],["1:température fixée - 2:enthalpie fixée : option_temperature"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -mess=[]; -if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { -mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { -mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; -ok=false; -} -if (nclock<=0) { -mess=[[mess],["Block must have at least one input event"],[" "]]; -ok=false; -} -if (size(clrs,"*")!=nclock) { -mess=[[mess],["Inputs color c size must be equal to Number of inputs"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; -} -if (per<=0) { -mess=[[mess],["Refresh period must be positive"],[" "]]; -ok=false; -} -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(),list(),ones(nclock,1),[]); -} else { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} -if (ok) { -if (wpos==[]) { -wpos=[[-1],[-1]]; -} -if (wdim==[]) { -wdim=[[-1],[-1]]; -} -rpar=per; -ipar=[[win],[1],[clrs.slice()],[wpos.slice()],[wdim.slice()]]; -model.rpar=rpar; -model.ipar=ipar; +model.rpar=[[P0],[T0],[H0],[option_temperature]]; +model.equations.parameters[2-1]=list(P0,T0,H0,option_temperature); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Sinks/TRASH_f.sci" */ -function TRASH_f() { - TRASH_f.prototype.define = function TRASH_f() { -in1=-1; +/* autogenerated from "macros/Hydraulics/VanneReglante.sci" */ +function VanneReglante() { + VanneReglante.prototype.define = function VanneReglante() { model=scicos_model(); -model.sim="trash"; -model.in1=in1; -model.evtin=1; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=" "; +model.in1=[[1],[1]]; +model.out=[1]; +Cvmax=8005.42; +p_rho=0; +model.rpar=[[Cvmax],[p_rho]]; +model.sim="VanneReglante"; +model.blocktype="c"; +model.dep_ut=[true,false]; +mo=modelica(); +mo.model="VanneReglante"; +mo.inputs=["C1","Ouv"]; +mo.outputs="C2"; +mo.parameters=list([["Cvmax"],["p_rho"]],[[Cvmax],[p_rho]]); +model.equations=mo; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +exprs=[[string(Cvmax)],[string(p_rho)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,list(gr_i,0)); +x.graphics.in_implicit=[["I"],["E"]]; +x.graphics.out_implicit=["I"]; } - TRASH_f.prototype.details = function TRASH_f() { + VanneReglante.prototype.details = function VanneReglante() { } - TRASH_f.prototype.get = function TRASH_f() { + VanneReglante.prototype.get = function VanneReglante() { } - TRASH_f.prototype.set = function TRASH_f() { + VanneReglante.prototype.set = function VanneReglante() { x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,Cvmax,p_rho,exprs]=scicos_getvalue("Paramètres de la vanne reglante",[["Cvmax"],["p_rho"]],list("vec",-1,"vec",-1),exprs); +if (!ok) { +break; +} +model.rpar=[[Cvmax],[p_rho]]; +model.equations.parameters[2-1]=list(Cvmax,p_rho); +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} } } -/* autogenerated from "macros/Sinks/AFFICH_m.sci" */ -function AFFICH_m() { - AFFICH_m.prototype.define = function AFFICH_m() { -font=1; -fontsize=1; -colr=1; -nt=5; -nd=1; -in1=[1,1]; +/* autogenerated from "macros/IntegerOp/BITCLEAR.sci" */ +function BITCLEAR() { + BITCLEAR.prototype.define = function BITCLEAR() { model=scicos_model(); -model.sim=list("affich2",4); -model.in1=in1[1-1][1-1]; -model.in2=in1[1-1][2-1]; -model.evtin=1; -model.dstate=[[-1],[0],[0],[1],[1],[0],[zeros(in1[1-1][1-1]*in1[1-1][2-1],1)]]; -model.ipar=[[font],[fontsize],[colr],[1000],[nt],[nd],[in1[1-1][1-1]]]; +model.sim=list("bit_clear_32",4); +model.in1=1; +model.in2=1; +model.out=1; +model.out2=1; +model.intyp=3; +model.outtyp=3; +model.opar=list(int32(0)); model.blocktype="c"; -model.firing=[]; model.dep_ut=[true,false]; -model.label=""; -exprs=[[sci2exp([model.in1,model.in2])],[string(font)],[string(fontsize)],[string(colr)],[string(nt)],[string(nd)],[string(0)]]; +exprs=[[sci2exp(3)],[sci2exp(0)]]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - AFFICH_m.prototype.details = function AFFICH_m() { + BITCLEAR.prototype.details = function BITCLEAR() { } - AFFICH_m.prototype.get = function AFFICH_m() { + BITCLEAR.prototype.get = function BITCLEAR() { } - AFFICH_m.prototype.set = function AFFICH_m() { + BITCLEAR.prototype.set = function BITCLEAR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,in1,font,fontsize,colr,nt,nd,herit,exprs]=scicos_getvalue("Set parameters",[["Input Size","Font number"],["Font size"],["Color"],["Total number of digits"],["Number of rational part digits"],["Block inherits (1) or not (0)"]],list("mat",[1,2],"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,Datatype,bit,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"BITCLEAR")],[" "],[gettext("Clear a bit")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Index of Bit (0 is least significant)")]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -mess=[]; -if (font<=0) { -mess=[[mess],["Font number must be positive"],[" "]]; +in1=[model.in1,model.in2]; +if (floor(bit)!=bit) { +block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); ok=false; -} -if (fontsize<=0) { -mess=[[mess],["Font size must be positive"],[" "]]; +} else if ((Datatype==3)||(Datatype==6)) { +if (bit>31||bit<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); ok=false; +} else { +bit=uint32(bit); +n=(2^32-1)-2^bit; +n=uint32(n); +model.sim=list("bit_clear_32",4); } -if (nt<=3) { -mess=[[mess],["Total number of digits must be greater than 3"],[" "]]; +} else if ((Datatype==4)||(Datatype==7)) { +if (bit>15||bit<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); ok=false; +} else { +bit=uint16(bit); +n=(2^16-1)-2^bit; +n=uint16(n); +model.sim=list("bit_clear_16",4); } -if (nd<0) { -mess=[[mess],["Number of rational part digits must be ","greater or equal 0"],[" "]]; +} else if ((Datatype==5)||(Datatype==8)) { +if (bit>7||bit<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); ok=false; +} else { +bit=uint8(bit); +n=(2^8-1)-2^bit; +n=uint8(n); +model.sim=list("bit_clear_8",4); } -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} -if (!or(herit==[0,1])) { -mess=[[mess],["Accept inherited values are 0 and 1"],[" "]]; +} else { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } -if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,1),list(),ones(1-herit,1),[]); +it=Datatype; +ot=Datatype; +out=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { -model.ipar=[[font],[fontsize],[colr],[nt],[nd],[in1[1-1][1-1]]]; -model.dstate=[[-1],[0],[0],[1],[1],[0],[zeros(in1[1-1][1-1]*in1[1-1][2-1],1)]]; -model.evtin=ones(1-herit,1); graphics.exprs=exprs; +model.opar=list(n); x.graphics=graphics; x.model=model; break; @@ -5153,108 +3860,83 @@ break; } } } -/* autogenerated from "macros/Sinks/TOWS_c.sci" */ -function TOWS_c() { - TOWS_c.prototype.define = function TOWS_c() { -nu=-1; -nz=128; -varnam="A"; -herit=0; +/* autogenerated from "macros/IntegerOp/BITSET.sci" */ +function BITSET() { + BITSET.prototype.define = function BITSET() { model=scicos_model(); -model.sim=list("tows_c",4); -model.in1=[nu]; -model.in2=-2; -model.intyp=-1; -model.out=[]; -model.evtin=[1]; -model.evtout=[]; -model.rpar=[]; -model.ipar=[[nz],[length(varnam)],[transpose(ascii[varnam-1])]]; -model.blocktype="d"; -model.firing=[]; -model.dep_ut=[false,false]; +model.sim=list("bit_set_32",4); +model.in1=1; +model.in2=1; +model.out=1; +model.out2=1; +model.intyp=3; +model.outtyp=3; +model.opar=list(uint32(0)); +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[sci2exp(3)],[sci2exp(0)]]; gr_i=[]; -exprs=[[string(nz)],[string(varnam)],[string(herit)]]; x=standard_define([4,2],model,exprs,gr_i); } - TOWS_c.prototype.details = function TOWS_c() { + BITSET.prototype.details = function BITSET() { } - TOWS_c.prototype.get = function TOWS_c() { + BITSET.prototype.get = function BITSET() { } - TOWS_c.prototype.set = function TOWS_c() { + BITSET.prototype.set = function BITSET() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,nz,varnam,herit,exprs]=scicos_getvalue("Set Xcos buffer block",[["Size of buffer"],["Scilab variable name"],["Inherit (no:0, yes:1)"]],list("vec",1,"str",1,"vec",1),exprs); +[ok,Datatype,bit,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"BITSET")],[" "],[gettext("Set a bit")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Index of Bit (0 is least significant)")]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if ((nz<=0)) { -message("Size of buffer must be positive"); +in1=[model.in1,model.in2]; +if (floor(bit)!=bit) { +block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); ok=false; } -r=false; -ierr=execstr("r = validvar(varnam)","errcatch"); -if (!r||ierr!=0||length(varnam)>19) { -message([["Invalid variable name."],["Please choose another variable name."]]); +if ((Datatype==3)||(Datatype==6)) { +if (bit>31||bit<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); ok=false; } -execstr("if type("+varnam+") <> 17 | or(fieldnames("+varnam+") <> [\"values\"; \"time\"]) then"+" message([\"Protected variable name.\"; \"Please choose another variable name.\"]);"+" ok = %f;"+" end","errcatch"); -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list([-1,-2],-1),list(),ones(1-herit,1),[]); -if (herit==1) { -model.blocktype="x"; -} else { -model.blocktype="d"; -} -model.ipar=[[nz],[length(varnam)],[transpose(ascii[varnam-1])]]; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +bit=uint32(bit); +n=2^bit; +n=uint32(n); +model.sim=list("bit_set_32",4); +} else if ((Datatype==4)||(Datatype==7)) { +if (bit>15||bit<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); +ok=false; } +bit=uint16(bit); +n=2^bit; +n=uint16(n); +model.sim=list("bit_set_16",4); +} else if ((Datatype==5)||(Datatype==8)) { +if (bit>7||bit<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); +ok=false; } - } +bit=uint8(bit); +n=2^bit; +n=uint8(n); +model.sim=list("bit_set_8",4); +} else { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +ok=false; } -/* autogenerated from "macros/Sinks/CLKOUT_f.sci" */ -function CLKOUT_f() { - CLKOUT_f.prototype.define = function CLKOUT_f() { -prt=1; -model=scicos_model(); -model.sim="output"; -model.evtin=1; -model.ipar=prt; -model.blocktype="d"; -model.firing=[]; -model.dep_ut=[false,false]; -exprs=string(prt); -x=standard_define([1,1],model,exprs," "); - } - CLKOUT_f.prototype.details = function CLKOUT_f() { - } - CLKOUT_f.prototype.get = function CLKOUT_f() { - } - CLKOUT_f.prototype.set = function CLKOUT_f() { -x=arg1; -graphics=arg1.graphics; -model=arg1.model; -exprs=graphics.exprs; -exprs=exprs[1-1]; -while (true) { -[ok,prt,exprs]=scicos_getvalue("Set Event Output block parameters","Port number",list("vec",1),exprs); -if (!ok) { -break; +if (ok) { +it=Datatype; +ot=Datatype; +out=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } -prt=int(prt); -if (prt<=0) { -message("Port number must be a positive integer"); -} else { -model.ipar=prt; -model.evtin=1; -model.firing=[]; +if (ok) { graphics.exprs=exprs; +model.opar=list(n); x.graphics=graphics; x.model=model; break; @@ -5262,508 +3944,745 @@ break; } } } -/* autogenerated from "macros/Sinks/OUT_f.sci" */ -function OUT_f() { - OUT_f.prototype.define = function OUT_f() { -n=-1; -prt=1; +/* autogenerated from "macros/IntegerOp/CONVERT.sci" */ +function CONVERT() { + CONVERT.prototype.define = function CONVERT() { +sgn=2; model=scicos_model(); -model.sim="output"; +model.sim=list("convert",4); model.in1=-1; +model.out=-1; model.in2=-2; -model.intyp=-1; -model.ipar=prt; +model.out2=-2; +model.intyp=1; +model.outtyp=3; +model.rpar=[]; +model.ipar=sgn; model.blocktype="c"; -model.dep_ut=[false,false]; -exprs=string(prt); +model.dep_ut=[true,false]; +exprs=[[sci2exp(1)],[sci2exp(3)],[sci2exp(0)]]; gr_i=[]; -x=standard_define([1,1],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - OUT_f.prototype.details = function OUT_f() { + CONVERT.prototype.details = function CONVERT() { } - OUT_f.prototype.get = function OUT_f() { + CONVERT.prototype.get = function CONVERT() { } - OUT_f.prototype.set = function OUT_f() { + CONVERT.prototype.set = function CONVERT() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; -if (size(exprs,"*")==2) { -exprs=exprs[1-1]; -} while (true) { -[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"OUT_f")],[" "],[gettext("Regular output port")]],gettext("Port number"),list("vec",1),exprs); +[ok,it,ot,np,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CONVERT")],[" "],[gettext("Type conversion")],[" "]],[[gettext("Input Type (1:double, 3:int32, 4:int16, 5:int8, ...)")],[gettext("Output Type (1:double, 3:int32, 4:int16, 5:int8, ...)")],[gettext("Do on Overflow (0:Nothing, 1:Saturate, 2:Error)")]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -prt=int(prt); -if (prt<=0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +if (it==2) { +it=1; +} +if (ot==2) { +ot=1; +} +if ((np!=0&&np!=1&&np!=2)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Do on Overflow"),np),msprintf(gettext("Must be in the interval %s."),"[0, 2]")); +ok=false; +} else if ((it>8||it<1)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Type"),it),msprintf(gettext("Must be in the interval %s."),"[1, 8]")); +ok=false; +} else if ((ot>8||ot<1)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Output Type"),ot),msprintf(gettext("Must be in the interval %s."),"[1, 8]")); +ok=false; +} +model.sim=list("convert",4); +if ((it==ot)) { +model.ipar=1; } else { -model.ipar=prt; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +if ((np==0)) { +if ((it==1)) { +if ((ot==3)) { +model.ipar=2; +} else if ((ot==4)) { +model.ipar=3; +} else if ((ot==5)) { +model.ipar=4; +} else if ((ot==6)) { +model.ipar=5; +} else if ((ot==7)) { +model.ipar=6; +} else if ((ot==8)) { +model.ipar=7; } +} else if ((it==3)) { +if ((ot==1)) { +model.ipar=8; +} else if ((ot==4)) { +model.ipar=9; +} else if ((ot==5)) { +model.ipar=10; +} else if ((ot==6)) { +model.ipar=1; +} else if ((ot==7)) { +model.ipar=11; +} else if ((ot==8)) { +model.ipar=12; } - } +} else if ((it==4)) { +if ((ot==1)) { +model.ipar=13; +} else if ((ot==3)) { +model.ipar=14; +} else if ((ot==5)) { +model.ipar=15; +} else if ((ot==6)) { +model.ipar=16; +} else if ((ot==7)) { +model.ipar=1; +} else if ((ot==8)) { +model.ipar=17; } -/* autogenerated from "macros/PDE/PDE.sci" */ -function PDE() { - PDE.prototype.define = function PDE() { -model=scicos_model(); -model.state=zeros(10,1); -model.sim=list("PDE",0); -model.in1=[[1],[1],[1],[1],[1]]; -model.out=[[10],[0]]; -model.blocktype="c"; -model.dep_ut=[false,true]; -params_pde=tlist([["paramspde"],["a"],["b"],["txt_exp"],["check_op1"],["a1"],["b1"],["check_op2"],["a2"],["b2"],["check_op3"],["a3"],["b3"],["check_op4"],["a4"],["b4"],["check_op5"],["a5"],["b5"],["check_op6"],["a6"],["b6"],["check_op7"],["a7"],["b7"],["discr_cst"],["discr_non_cst"],["signe"],["rad_automatique"],["rad_manuel"],["methode"],["ord1"],["ord2"],["ord3"],["degre"],["nnode"],["txt_pas"],["CI"],["dCI"],["CLa"],["CLa_exp"],["CLb"],["CLb_exp"],["points"]],"","","","0","","IN_EDP1(t)","0","","IN_EDP2(t)","0","","IN_EDP3(t)","0","","IN_EDP4(t)","0","","IN_EDP5(t)","0","","IN_EDP6(t)","0","","IN_EDP7(t)","0","0","0","0","0","0","","","","","","","","","0","IN_CL1(t)","0","IN_CL2(t)",""); -label=list(params_pde,[],""); -gr_i=[]; -x=standard_define([3,3],model,label,gr_i); - } - PDE.prototype.details = function PDE() { - } - PDE.prototype.get = function PDE() { - } - PDE.prototype.set = function PDE() { -x=arg1; -graphics=arg1.graphics; -label=graphics.exprs; -model=arg1.model; -params_pde=label[1-1]; -while (true) { -[ln,fun]=where() -if (!or(fun=="do_eval")) { -[ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde]=IHM_EDP(params_pde); -if (ok) { -return; +} else if ((it==5)) { +if ((ot==1)) { +model.ipar=18; +} else if ((ot==3)) { +model.ipar=19; +} else if ((ot==4)) { +model.ipar=20; +} else if ((ot==6)) { +model.ipar=21; +} else if ((ot==7)) { +model.ipar=22; +} else if ((ot==8)) { +model.ipar=1; } -} else { -if (exists["%scicos_context"-1]) { -[ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde]=setvalue_IHM_EDP(params_pde); +} else if ((it==6)) { +if ((ot==1)) { +model.ipar=23; +} else if ((ot==3)) { +model.ipar=1; +} else if ((ot==4)) { +model.ipar=24; +} else if ((ot==5)) { +model.ipar=25; +} else if ((ot==7)) { +model.ipar=26; +} else if ((ot==8)) { +model.ipar=27; } +} else if ((it==7)) { +if ((ot==1)) { +model.ipar=28; +} else if ((ot==3)) { +model.ipar=29; +} else if ((ot==4)) { +model.ipar=1; +} else if ((ot==5)) { +model.ipar=30; +} else if ((ot==6)) { +model.ipar=31; +} else if ((ot==8)) { +model.ipar=32; } -okk=false; -rdnom="PDE"; -ok1=true; -while (true) { -[okk,rdnom,lab]=scicos_getvalue("PLEASE, GIVE US THE BLOCK\'s NAME. ","New block\'s name :",list("str",1),label[3-1]); -if (okk==false) { -ok1=false; -return; +} else if ((it==8)) { +if ((ot==1)) { +model.ipar=33; +} else if ((ot==3)) { +model.ipar=34; +} else if ((ot==4)) { +model.ipar=35; +} else if ((ot==5)) { +model.ipar=1; +} else if ((ot==6)) { +model.ipar=36; +} else if ((ot==7)) { +model.ipar=37; } -label[3-1]=lab; -rdnom=stripblanks(rdnom); -if (rdnom==emptystr()) { -ok1=false; -x_message("sorry C file name not defined"); } -if (ok1) { -break; +} else if ((np==1)) { +if ((it==1)) { +if ((ot==3)) { +model.ipar=38; +} else if ((ot==4)) { +model.ipar=39; +} else if ((ot==5)) { +model.ipar=40; +} else if ((ot==6)) { +model.ipar=41; +} else if ((ot==7)) { +model.ipar=42; +} else if ((ot==8)) { +model.ipar=43; } +} else if ((it==3)) { +if ((ot==1)) { +model.ipar=8; +} else if ((ot==4)) { +model.ipar=44; +} else if ((ot==5)) { +model.ipar=45; +} else if ((ot==6)) { +model.ipar=46; +} else if ((ot==7)) { +model.ipar=47; +} else if ((ot==8)) { +model.ipar=48; } -if ((choix==0)) { -ind4=strindex(a4,"x"); -ind1=strindex(a1,"x"); -ind2=strindex(a2,"x"); -if ((ind4!=[]||ind1!=[]||ind2!=[])) { -if ((signe==1)) { -delta=1; -} else if ((signe==2)) { -delta=-1; -} else if ((signe==0)) { -delta=0; -} else { -x_message([["le discriminant n\'est pas constant,"],["Vous devez choisir son signe dans l\'IHM"]]); -return; +} else if ((it==4)) { +if ((ot==1)) { +model.ipar=13; +} else if ((ot==3)) { +model.ipar=14; +} else if ((ot==5)) { +model.ipar=49; +} else if ((ot==6)) { +model.ipar=50; +} else if ((ot==7)) { +model.ipar=51; +} else if ((ot==8)) { +model.ipar=52; } -} else { -delta=evstr(a4)^2-4*evstr(a1)*evstr(a2); +} else if ((it==5)) { +if ((ot==1)) { +model.ipar=18; +} else if ((ot==3)) { +model.ipar=19; +} else if ((ot==4)) { +model.ipar=20; +} else if ((ot==6)) { +model.ipar=53; +} else if ((ot==7)) { +model.ipar=54; +} else if ((ot==8)) { +model.ipar=55; } -if ((delta==[])) { -delta=0; +} else if ((it==6)) { +if ((ot==1)) { +model.ipar=23; +} else if ((ot==3)) { +model.ipar=56; +} else if ((ot==4)) { +model.ipar=57; +} else if ((ot==5)) { +model.ipar=58; +} else if ((ot==7)) { +model.ipar=59; +} else if ((ot==8)) { +model.ipar=60; } -type_meth=arbre_decision[delta-1]; +} else if ((it==7)) { +if ((ot==1)) { +model.ipar=28; +} else if ((ot==3)) { +model.ipar=29; +} else if ((ot==4)) { +model.ipar=61; +} else if ((ot==5)) { +model.ipar=62; +} else if ((ot==6)) { +model.ipar=31; +} else if ((ot==8)) { +model.ipar=63; } -[flag_type,rdnom,DF_type,tt]=translate(CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,type_meth,degre,a_domaine,b_domaine,Nbr_maillage,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,rdnom,mesures); -Nbr=Nbr_maillage; -if (((CLa_type==1)&&(DF_type==0||DF_type==1))||((CLb_type==1)&&(DF_type==0||DF_type==2))) { -Nbr=Nbr+1; +} else if ((it==8)) { +if ((ot==1)) { +model.ipar=33; +} else if ((ot==3)) { +model.ipar=34; +} else if ((ot==4)) { +model.ipar=35; +} else if ((ot==5)) { +model.ipar=64; +} else if ((ot==6)) { +model.ipar=36; +} else if ((ot==7)) { +model.ipar=37; } -if ((mesures==[])) { -out=Nbr_maillage; -} else { -out=[[Nbr_maillage],[size(mesures,"*")]]; } -if ((flag_type==1)) { -model.sim=list(rdnom,2004); -if ((find(oper==1)!=[])) { -model.state=zeros(2*Nbr_maillage,1); -} else { -model.state=zeros(Nbr_maillage,1); +} else if ((np==2)) { +if ((it==1)) { +if ((ot==3)) { +model.ipar=65; +} else if ((ot==4)) { +model.ipar=66; +} else if ((ot==5)) { +model.ipar=67; +} else if ((ot==6)) { +model.ipar=68; +} else if ((ot==7)) { +model.ipar=69; +} else if ((ot==8)) { +model.ipar=70; } -} else if ((flag_type==2)) { -model.sim=list(rdnom,12004); -if ((find(oper==1)!=[])) { -if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) { -model.state=zeros(6*Nbr_maillage,1); -} else if ((type_meth==1)) { -model.state=zeros(4*Nbr,1); -} else { -model.state=zeros(4*Nbr_maillage,1); +} else if ((it==3)) { +if ((ot==1)) { +model.ipar=8; +} else if ((ot==4)) { +model.ipar=71; +} else if ((ot==5)) { +model.ipar=72; +} else if ((ot==6)) { +model.ipar=73; +} else if ((ot==7)) { +model.ipar=74; +} else if ((ot==8)) { +model.ipar=75; } -} else { -if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) { -model.state=zeros(4*Nbr_maillage,1); -} else if ((type_meth==1)) { -model.state=zeros(2*Nbr,1); -} else { -model.state=zeros(2*Nbr_maillage,1); +} else if ((it==4)) { +if ((ot==1)) { +model.ipar=13; +} else if ((ot==3)) { +model.ipar=14; +} else if ((ot==5)) { +model.ipar=76; +} else if ((ot==6)) { +model.ipar=77; +} else if ((ot==7)) { +model.ipar=78; +} else if ((ot==8)) { +model.ipar=79; } +} else if ((it==5)) { +if ((ot==1)) { +model.ipar=18; +} else if ((ot==3)) { +model.ipar=19; +} else if ((ot==4)) { +model.ipar=20; +} else if ((ot==6)) { +model.ipar=80; +} else if ((ot==7)) { +model.ipar=81; +} else if ((ot==8)) { +model.ipar=82; } +} else if ((it==6)) { +if ((ot==1)) { +model.ipar=23; +} else if ((ot==3)) { +model.ipar=83; +} else if ((ot==4)) { +model.ipar=84; +} else if ((ot==5)) { +model.ipar=85; +} else if ((ot==7)) { +model.ipar=86; +} else if ((ot==8)) { +model.ipar=87; } -[ok1]=CFORTREDP[rdnom-1][tt-1]; -if (!ok1) { -break; +} else if ((it==7)) { +if ((ot==1)) { +model.ipar=28; +} else if ((ot==3)) { +model.ipar=29; +} else if ((ot==4)) { +model.ipar=88; +} else if ((ot==5)) { +model.ipar=89; +} else if ((ot==6)) { +model.ipar=31; +} else if ((ot==8)) { +model.ipar=90; } -if (!ok) { -[model,graphics,ok]=check_io(model,graphics,ones(k,1),out.slice(),[],[]); +} else if ((it==8)) { +if ((ot==1)) { +model.ipar=33; +} else if ((ot==3)) { +model.ipar=34; +} else if ((ot==4)) { +model.ipar=35; +} else if ((ot==5)) { +model.ipar=91; +} else if ((ot==6)) { +model.ipar=36; +} else if ((ot==7)) { +model.ipar=37; } -label[1-1]=params_pde; -label[2-1]=tt; -graphics.exprs=label; -x.graphics=graphics; -x.model=model; -break; } - } } -/* autogenerated from "macros/Branching/SWITCH_f.sci" */ -function SWITCH_f() { - SWITCH_f.prototype.define = function SWITCH_f() { -i0=0; -in1=[[-1],[-1]]; -nin=2; -model=scicos_model(); -model.sim=list("switchn",2); -model.in1=in1; -model.out=-1; -model.ipar=i0; -model.blocktype="c"; -model.firing=[]; -model.dep_ut=[true,true]; -exprs=[[string(nin)],[string(i0+1)]]; -gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); - } - SWITCH_f.prototype.details = function SWITCH_f() { - } - SWITCH_f.prototype.get = function SWITCH_f() { - } - SWITCH_f.prototype.set = function SWITCH_f() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -ipar=model.ipar; -while (true) { -[ok,nin,z0,exprs]=scicos_getvalue("Set switch parameters",[["number of inputs"],["connected input"]],list("vec",1,"vec",1),exprs); -if (!ok) { -break; } -if (z0>nin||z0<=0) { -message("initial connected input is not a valid input port number"); -} else { -[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,[],[]); +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} if (ok) { graphics.exprs=exprs; -model.ipar=z0-1; x.graphics=graphics; x.model=model; break; } } -} } } -/* autogenerated from "macros/Branching/FROM.sci" */ -function FROM() { - FROM.prototype.define = function FROM() { +/* autogenerated from "macros/IntegerOp/DFLIPFLOP.sci" */ +function DFLIPFLOP() { + DFLIPFLOP.prototype.define = function DFLIPFLOP() { +scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DFLIPFLOP"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8(0)),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[239.98293,378.2166],sz=[60,60],flip=true,theta=0,exprs=[["1"],["1"]],pin=29,pout=[],pein=22,peout=[[16],[44]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); +scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=[["2"],["1"],["5"],["0"]],pin=[[11],[39]],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=33,pein=42,peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[5-1]=scicos_link(xx=[[221.46044],[225.15013]],yy=[[280.24498],[280.24498]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,1,1]); +scs_m.objs[6-1]=scicos_link(xx=[[138.19704],[140.34523]],yy=[[273.44465],[273.49157]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[38,1,1]); +scs_m.objs[7-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[373.24106,309.46812],sz=[60,40],flip=true,theta=0,exprs=[["1"],["5"],["5"],["0"]],pin=36,pout=13,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[5],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[8-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[199.48466,398.2166],sz=[20,20],flip=true,theta=0,exprs="3",pin=[],pout=9,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=3,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[9-1]=scicos_link(xx=[[219.48466],[222.54128]],yy=[[408.2166],[408.2166]],id="drawlink",thick=[0,0],ct=[1,1],from=[8,1,0],to=[28,1,1]); +scs_m.objs[10-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[104.31759,276.91165],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=11,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[11-1]=scicos_link(xx=[[124.31759],[144.31759]],yy=[[286.91165],[286.91165]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[3,1,1]); +scs_m.objs[12-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[457.40928,320.20131],sz=[20,20],flip=true,theta=0,exprs="2",pin=13,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[13-1]=scicos_link(xx=[[441.81249],[457.40928]],yy=[[329.46812],[330.20131]],id="drawlink",thick=[0,0],ct=[1,1],from=[7,1,0],to=[12,1,1]); +scs_m.objs[14-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[376.4669,270.83282],sz=[20,20],flip=true,theta=0,exprs="1",pin=37,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title="Untitled",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=[],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="ANDLOG_f",graphics=scicos_graphics(orig=[194,133],sz=[60,60],flip=true,theta=0,exprs=[],pin=[],pout=9,pein=[[4],[11]],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="andlog",in1=[],in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[[1],[1]],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_block(gui="CLKIN_f",graphics=scicos_graphics(orig=[149,287],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=[],peout=4,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[3-1]=scicos_block(gui="CLKOUT_f",graphics=scicos_graphics(orig=[450,83],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[4-1]=scicos_link(xx=[[169],[214],[214]],yy=[[297],[297],[198.71]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1],to=[1,1]); +scs_m_1.objs[5-1]=scicos_block(gui="CLKIN_f",graphics=scicos_graphics(orig=[141,330],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=[],pein=[],peout=6,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[6-1]=scicos_link(xx=[[161],[234],[234]],yy=[[340],[340],[275.78]],id="drawlink",thick=[0,0],ct=[5,-1],from=[5,1],to=[10,1]); +scs_m_1.objs[7-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[331,137],sz=[60,60],flip=true,theta=0,exprs=[["1"],["1"]],pin=9,pout=[],pein=12,peout=[[8],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); +scs_m_1.objs[8-1]=scicos_link(xx=[[351],[351],[450]],yy=[[131.29],[93],[93]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1],to=[3,1]); +scs_m_1.objs[9-1]=scicos_link(xx=[[262.57],[322.43]],yy=[[163],[167]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1],to=[7,1]); +scs_m_1.objs[10-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[[234],[275.78348]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=6,peout=[[11],[12]],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[11-1]=scicos_link(xx=[[234],[234]],yy=[[275.78],[198.71]],id="drawlink",thick=[0,0],ct=[5,-1],from=[10,1],to=[1,2]); +scs_m_1.objs[12-1]=scicos_link(xx=[[234],[361],[361]],yy=[[275.78],[275.78],[202.71]],id="drawlink",thick=[0,0],ct=[5,-1],from=[10,2],to=[7,1]); +scs_m.objs[15-1]=scicos_block(gui="ANDBLK",graphics=scicos_graphics(orig=[233.73039,318.74407],sz=[40,40],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=[[19],[16]],peout=17,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[[1],[1]],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=false,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[16-1]=scicos_link(xx=[[259.98293],[260.39705]],yy=[[372.50232],[364.45835]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[15,2,1]); +scs_m.objs[17-1]=scicos_link(xx=[[253.73039],[253.72572]],yy=[[313.02978],[309.29537]],id="drawlink",thick=[0,0],ct=[5,-1],from=[15,1,0],to=[41,1,1]); +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=3,pout=[],pein=[],peout=[[7],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[3-1]=scicos_link(xx=[[357.15774],[362.99107],[379.71726]],yy=[[277.1131],[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,1,1]); +scs_m_1.objs[4-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[240.01488,267.1131],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=-1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[5-1]=scicos_link(xx=[[260.01488],[280.01488]],yy=[[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[1,1,1]); +scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[7-1]=scicos_link(xx=[[408.28869],[408.28869]],yy=[[241.39881],[211.39881]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); +scs_m.objs[18-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[133.90637,385.342],sz=[60,40],flip=true,theta=0,exprs=[],pin=26,pout=[],pein=[],peout=19,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[19-1]=scicos_link(xx=[[163.90637],[163.90637],[247.06372]],yy=[[379.62771],[364.45835],[364.45835]],id="drawlink",thick=[0,0],ct=[5,-1],from=[18,1,0],to=[15,1,1]); +scs_m.objs[20-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[79.594811,395.47647],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=23,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["Extract_Activation","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[150.65045,143.82208],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=6,pout=[],pein=[],peout=[[3],[4]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_block(gui="CLKSOMV_f",graphics=scicos_graphics(orig=[169.82143,96.146231],sz=[16.666667,16.666667],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=[[3],[4],[0]],peout=8,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sum",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[[1],[1],[1]],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[3-1]=scicos_link(xx=[[170.65045],[170.65045],[150.04302],[150.04302],[169.82143]],yy=[[138.10779],[128.235],[128.235],[104.47956],[104.47956]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[2,1,1]); +scs_m_1.objs[4-1]=scicos_link(xx=[[190.65045],[190.65045],[178.15476]],yy=[[138.10779],[111.55729],[112.8129]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,2,0],to=[2,2,1]); +scs_m_1.objs[5-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[102.07902,163.82208],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=-1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[6-1]=scicos_link(xx=[[122.07902],[142.07902]],yy=[[173.82208],[173.82208]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[1,1,1]); +scs_m_1.objs[7-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[168.15476,38.527183],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[8-1]=scicos_link(xx=[[178.15476],[178.15476]],yy=[[98.527183],[68.527183]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[7,1,1]); +scs_m.objs[21-1]=scicos_block(gui="Extract_Activation",graphics=scicos_graphics(orig=[239.82193,456.57677],sz=[60,40],flip=true,theta=0,exprs=[],pin=31,pout=[],pein=[],peout=22,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[22-1]=scicos_link(xx=[[269.82193],[269.98293]],yy=[[450.86248],[443.93089]],id="drawlink",thick=[0,0],ct=[5,-1],from=[21,1,0],to=[2,1,1]); +scs_m.objs[23-1]=scicos_link(xx=[[99.594811],[110.25582]],yy=[[405.47647],[405.42077]],id="drawlink",thick=[0,0],ct=[1,1],from=[20,1,0],to=[25,1,1]); +scs_m.objs[24-1]=scicos_block(gui="SUM_f",graphics=scicos_graphics(orig=[200.5252,469.13173],sz=[16.666667,16.666667],flip=true,theta=0,exprs=[],pin=[[27],[0],[30]],pout=31,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("plusblk",2),in1=[[-1],[-1],[-1]],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[25-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[110.25582],[405.42077]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=23,pout=[[26],[27]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[26-1]=scicos_link(xx=[[110.25582],[114.33667],[125.33494]],yy=[[405.42077],[405.39945],[405.342]],id="drawlink",thick=[0,0],ct=[1,1],from=[25,1,0],to=[18,1,1]); +scs_m.objs[27-1]=scicos_link(xx=[[110.25582],[110.25582],[208.85853]],yy=[[405.42077],[469.13173],[469.13173]],id="drawlink",thick=[0,0],ct=[1,1],from=[25,2,0],to=[24,1,1]); +scs_m.objs[28-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[222.54128],[408.2166]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=9,pout=[[29],[30]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[29-1]=scicos_link(xx=[[222.54128],[231.4115]],yy=[[408.2166],[408.2166]],id="drawlink",thick=[0,0],ct=[1,1],from=[28,1,0],to=[2,1,1]); +scs_m.objs[30-1]=scicos_link(xx=[[222.54128],[222.54128],[208.85853],[208.85853]],yy=[[408.2166],[453.0015],[453.0015],[485.7984]],id="drawlink",thick=[0,0],ct=[1,1],from=[28,2,0],to=[24,3,1]); +scs_m.objs[31-1]=scicos_link(xx=[[219.57282],[231.2505]],yy=[[477.46506],[476.57677]],id="drawlink",thick=[0,0],ct=[1,1],from=[24,1,0],to=[21,1,1]); +scs_m.objs[32-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[298.86371,253.57321],sz=[40,40],flip=true,theta=0,exprs=[["5"],["2"],["1"]],pin=[[33],[40]],pout=34,pein=[[43],[44]],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[[1],[1]],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[33-1]=scicos_link(xx=[[282.29299],[290.29229]],yy=[[280.24498],[280.23987]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[32,1,1]); +scs_m.objs[34-1]=scicos_link(xx=[[347.43514],[357.57328],[357.57328]],yy=[[273.57321],[273.57321],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[32,1,0],to=[35,1,1]); +scs_m.objs[35-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[357.57328,280.83282],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=34,pout=[[36],[37]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[36-1]=scicos_link(xx=[[357.57328],[357.57328],[364.66964]],yy=[[280.83282],[329.46812],[329.46812]],id="drawlink",thick=[0,0],ct=[1,1],from=[35,1,0],to=[7,1,1]); +scs_m.objs[37-1]=scicos_link(xx=[[357.57328],[376.4669]],yy=[[280.83282],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[35,2,0],to=[14,1,1]); +scs_m.objs[38-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[140.34523],[273.49157]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=6,pout=[[39],[40]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[39-1]=scicos_link(xx=[[140.34523],[144.31759]],yy=[[273.49157],[273.57832]],id="drawlink",thick=[0,0],ct=[1,1],from=[38,1,0],to=[3,2,1]); +scs_m.objs[40-1]=scicos_link(xx=[[140.34523],[140.34523],[290.29229],[290.29229]],yy=[[273.49157],[247.70767],[247.70767],[266.90654]],id="drawlink",thick=[0,0],ct=[1,1],from=[38,2,0],to=[32,2,1]); +scs_m.objs[41-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[[253.72572],[309.29537]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=17,peout=[[42],[43]],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[42-1]=scicos_link(xx=[[253.72572],[253.72156]],yy=[[309.29537],[305.95927]],id="drawlink",thick=[0,0],ct=[5,-1],from=[41,1,0],to=[4,1,1]); +scs_m.objs[43-1]=scicos_link(xx=[[253.72572],[312.19705],[312.19705]],yy=[[309.29537],[309.29537],[299.28749]],id="drawlink",thick=[0,0],ct=[5,-1],from=[41,2,0],to=[32,1,1]); +scs_m.objs[44-1]=scicos_link(xx=[[279.98293],[279.98293],[325.53038],[325.53038]],yy=[[372.50232],[315.89455],[315.89455],[299.28749]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,2,0],to=[32,2,1]); model=scicos_model(); -model.sim="from"; -model.in1=[]; -model.in2=[]; -model.intyp=1; -model.out=-1; -model.out2=-2; -model.outtyp=-1; -model.ipar=[]; -model.opar=list("A"); -model.blocktype="c"; -model.dep_ut=[false,false]; -exprs=["A"]; +model.sim="csuper"; +model.in1=[[1],[1],[1]]; +model.in2=[[1],[1],[1]]; +model.out=[[1],[1]]; +model.out2=[[1],[1]]; +model.intyp=[5,1,1]; +model.outtyp=[5,5]; +model.blocktype="h"; +model.firing=false; +model.dep_ut=[true,false]; +model.rpar=scs_m; gr_i=[]; -x=standard_define([2,1],model,exprs,gr_i); -x.graphics.id="From"; +x=standard_define([2,3],model,[],gr_i); } - FROM.prototype.details = function FROM() { + DFLIPFLOP.prototype.details = function DFLIPFLOP() { } - FROM.prototype.get = function FROM() { + DFLIPFLOP.prototype.get = function DFLIPFLOP() { } - FROM.prototype.set = function FROM() { + DFLIPFLOP.prototype.set = function DFLIPFLOP() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,tag,exprs]=scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); -if (!ok) { -break; -} -if (ok) { -if (model.opar!=list(tag)) { -needcompile=4; -y=needcompile; -} -graphics.exprs=exprs; -model.opar=list(tag); -x.model=model; -x.graphics=graphics; -break; -} -} -needcompile=resume(needcompile) } } -/* autogenerated from "macros/Branching/ISELECT_m.sci" */ -function ISELECT_m() { - ISELECT_m.prototype.define = function ISELECT_m() { -z0=1; -nout=2; +/* autogenerated from "macros/IntegerOp/DLATCH.sci" */ +function DLATCH() { + DLATCH.prototype.define = function DLATCH() { +scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DLATCH"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8(0)),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[233.37693,320.30536],sz=[60,60],flip=true,theta=0,exprs=[["0"],["1"]],pin=13,pout=[],pein=[],peout=[[6],[0]],gr_i=list([["txt=[\'If in>0\';\' \';\' then else\'];"],["xstringb(orig(1),orig(2),txt,sz(1),sz(2),\'fill\');"]],8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); +scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=[["2"],["1"],["5"],["0"]],pin=[[15],[7]],pout=5,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=9,pein=6,peout=[],gr_i=list("xstringb(orig(1),orig(2),\'S/H\',sz(1),sz(2),\'fill\')",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[5-1]=scicos_link(xx=[[221.46044],[225.15013]],yy=[[280.24498],[280.24498]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,1,1]); +scs_m.objs[6-1]=scicos_link(xx=[[253.37693],[253.72156]],yy=[[314.59108],[305.95927]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[4,1,1]); +scs_m.objs[7-1]=scicos_link(xx=[[138.19704],[144.31759]],yy=[[273.44465],[273.57832]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,2,1]); +scs_m.objs[8-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[317.46698,309.46812],sz=[60,40],flip=true,theta=0,exprs=[["1"],["5"],["5"],["0"]],pin=11,pout=17,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[5],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[9-1]=scicos_link(xx=[[282.29299],[305.09603],[305.09603]],yy=[[280.24498],[280.52797],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[10,1,1]); +scs_m.objs[10-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[305.09603,280.83282],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=9,pout=[[11],[19]],pein=[],peout=[],gr_i=list([],8),id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[11-1]=scicos_link(xx=[[305.09603],[305.09603],[308.89555]],yy=[[280.83282],[329.46812],[329.46812]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[8,1,1]); +scs_m.objs[12-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[184.8055,340.30536],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=13,pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[13-1]=scicos_link(xx=[[204.8055],[224.8055]],yy=[[350.30536],[350.30536]],id="drawlink",thick=[0,0],ct=[1,1],from=[12,1,0],to=[2,1,1]); +scs_m.objs[14-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[104.31759,276.91165],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=15,pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[15-1]=scicos_link(xx=[[124.31759],[144.31759]],yy=[[286.91165],[286.91165]],id="drawlink",thick=[0,0],ct=[1,1],from=[14,1,0],to=[3,1,1]); +scs_m.objs[16-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[406.03841,319.46812],sz=[20,20],flip=true,theta=0,exprs="2",pin=17,pout=[],pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[17-1]=scicos_link(xx=[[386.03841],[406.03841]],yy=[[329.46812],[329.46812]],id="drawlink",thick=[0,0],ct=[1,1],from=[8,1,0],to=[16,1,1]); +scs_m.objs[18-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[325.09603,270.83282],sz=[20,20],flip=true,theta=0,exprs="1",pin=19,pout=[],pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[19-1]=scicos_link(xx=[[305.09603],[325.09603]],yy=[[280.83282],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,2,0],to=[18,1,1]); model=scicos_model(); -model.sim=list("selector_m",4); -model.out=[[-1],[-1]]; -model.out2=[[-2],[-2]]; -model.outtyp=1; -model.in1=-1; -model.in2=-2; -model.intyp=1; -model.evtout=[]; -model.state=[]; -model.rpar=[]; -model.ipar=[]; -model.firing=[]; -model.evtin=ones(nout,1); -model.dstate=z0; -model.blocktype="c"; +model.sim="csuper"; +model.in1=[[1],[1]]; +model.in2=[[1],[1]]; +model.out=[[1],[1]]; +model.out2=[[1],[1]]; +model.intyp=[5,-1]; +model.outtyp=[5,5]; +model.blocktype="h"; +model.firing=false; model.dep_ut=[true,false]; -exprs=[[sci2exp(1)],[sci2exp(nout)],[sci2exp(z0)]]; +model.rpar=scs_m; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,3],model,[],gr_i); } - ISELECT_m.prototype.details = function ISELECT_m() { + DLATCH.prototype.details = function DLATCH() { } - ISELECT_m.prototype.get = function ISELECT_m() { + DLATCH.prototype.get = function DLATCH() { } - ISELECT_m.prototype.set = function ISELECT_m() { + DLATCH.prototype.set = function DLATCH() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,typ,nout,z0,exprs]=scicos_getvalue("Set parameters",[["Datatype(1= real double 2=Complex 3=int32 ...)"],["number of outputs"],["initial connected output"]],list("vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; -} -if (z0>nout||z0<=0) { -message("initial connected input is not a valid input port number"); -} else if (((typ<1)||(typ>8))) { -message("Datatype is not supported"); -ok=false; -} else { -it=typ; -ot=typ*ones(1,nout); -if (ok) { -out=[-ones(nout,1),-2*ones(nout,1)]; -in1=[-1,-2]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(nout,1),[]); -if (ok) { -graphics.exprs=exprs; -model.dstate=z0; -x.graphics=graphics; -x.model=model; -break; -} -} -} -} } } -/* autogenerated from "macros/Branching/SELECT_f.sci" */ -function SELECT_f() { - SELECT_f.prototype.define = function SELECT_f() { -z0=0; -in1=[[-1],[-1]]; -nin=2; +/* autogenerated from "macros/IntegerOp/EXTRACTBITS.sci" */ +function EXTRACTBITS() { + EXTRACTBITS.prototype.define = function EXTRACTBITS() { +numb=[]; model=scicos_model(); -model.sim=list("selector",2); -model.in1=in1; -model.out=-1; -model.evtin=ones(in1); -model.dstate=z0; +model.sim=list("extract_bit_32_UH0",4); +model.in1=1; +model.in2=1; +model.out=1; +model.out2=1; +model.intyp=3; +model.outtyp=3; +model.ipar=[0,numb]; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[string(nin)],[string(z0+1)]]; +exprs=[[sci2exp(3)],[sci2exp(1)],[sci2exp(0)],[sci2exp(0)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - SELECT_f.prototype.details = function SELECT_f() { + EXTRACTBITS.prototype.details = function EXTRACTBITS() { } - SELECT_f.prototype.get = function SELECT_f() { + EXTRACTBITS.prototype.get = function EXTRACTBITS() { } - SELECT_f.prototype.set = function SELECT_f() { + EXTRACTBITS.prototype.set = function EXTRACTBITS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,nin,z0,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["initial connected input"]],list("vec",1,"vec",1),exprs); +[ok,Datatype,rule,bit,scal,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"EXTRACTBITS")],[" "],[gettext("Bits Extraction")],[" "],[gettext(" - Bits to Extract:")],[gettext(" 1 Upper Half")],[gettext(" 2 Lower Half")],[gettext(" 3 Range from MSB")],[gettext(" 4 Range to LSB")],[gettext(" 5 Range of Bits")],[gettext(" - Number of Bits or Index of bit : Index 0 is LSB")],[gettext(" If \'Bits to Extract\' is set to \'Range of bits\': [Start, End]")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Bits to extract")],[gettext("Number of Bits or Index of Bit")],[gettext("Treat Bit Field as an Integer (0:No, 1:Yes)")]],list("vec",1,"vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break; } -if (z0>nin||z0<=0) { -message("initial connected input is not a valid input port number"); +bitstr=strcat(string(bit.slice())," "); +if ((rule<1)||(rule>5)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Bits to Extract"),rule),msprintf(gettext("Must be in the interval %s."),"[1, 5]")); +ok=false; +} else if (scal<0||scal>1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Treat Bit Field as an Integer"),scal),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +ok=false; } else { -[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,ones(nin,1),[]); +in1=[model.in1,model.in2]; +bit=int(bit); +rule=int(rule); +if ((rule==3)||(rule==4)) { +if ((size(bit,"*")!=1)) { +block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must be a single value.")); +ok=false; +} else { +numb=bit; +} +} else if ((rule==5)) { +if ((size(bit,"*")!=2)) { +block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must have this form: [Start, End].")); +ok=false; +} else if (bit[1-1]>bit[2-1]) { +block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("\'Start\' must be less than \'End\'."))); +ok=false; +} else { +numb=bit[2-1]-bit[1-1]; +} +} else { +bit=0; +numb=[]; +} +} if (ok) { -graphics.exprs=exprs; -model.dstate=z0-1; -x.graphics=graphics; -x.model=model; -break; +if ((Datatype==3||Datatype==6)) { +if (or(bit.slice()>31)||or(bit.slice()<0)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 31]")); +ok=false; } +switch (rule) { +case 1: +switch (scal) { +case 0: +model.sim=list("extract_bit_32_UH0",4); +case 1: +switch (Datatype) { +case 3: +model.sim=list("extract_bit_32_UH1",4); +case 6: +model.sim=list("extract_bit_u32_UH1",4); } } - } +case 2: +model.sim=list("extract_bit_32_LH",4); +case 3: +switch (scal) { +case 0: +model.sim=list("extract_bit_32_MSB0",4); +case 1: +switch (Datatype) { +case 3: +model.sim=list("extract_bit_32_MSB1",4); +case 6: +model.sim=list("extract_bit_u32_MSB1",4); } -/* autogenerated from "macros/Branching/GOTOMO.sci" */ -function GOTOMO() { - GOTOMO.prototype.define = function GOTOMO() { -model=scicos_model(); -model.sim="gotomo"; -model.in1=-1; -model.in2=-2; -model.intyp=[]; -model.out=[]; -model.out2=[]; -model.outtyp=1; -model.ipar=int(1); -model.opar=list("A"); -model.blocktype="c"; -model.dep_ut=[false,false]; -mo=modelica(); -mo.model="gotomo"; -mo.inputs="p"; -exprs=[["A"],[sci2exp(1)]]; -gr_i=[]; -x=standard_define([2,1],model,exprs,gr_i); -x.graphics.in_implicit=["I"]; - } - GOTOMO.prototype.details = function GOTOMO() { - } - GOTOMO.prototype.get = function GOTOMO() { - } - GOTOMO.prototype.set = function GOTOMO() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,tag,tagvis,exprs]=scicos_getvalue("Set parameters",[["Tag"],["Tag Visibility(1=Local 2=scoped 3= global)"]],list("str",-1,"vec",1),exprs); -if (!ok) { -break; } -tagvis=int(tagvis); -if (((tagvis<1)||(tagvis>3))) { -message("Tag Visibility must be between 1 and 3"); +case 4: +model.sim=list("extract_bit_32_LSB",4); +case 5: +switch (scal) { +case 0: +model.sim=list("extract_bit_32_RB0",4); +case 1: +switch (Datatype) { +case 3: +model.sim=list("extract_bit_32_RB1",4); +case 6: +model.sim=list("extract_bit_u32_RB1",4); +} +} +} +} else if ((Datatype==4||Datatype==7)) { +if (or(bit.slice()>15)||or(bit.slice()<0)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 15]")); ok=false; } -if (ok) { -if (((model.ipar!=tagvis)||(model.opar!=list(tag)))) { -needcompile=4; -y=needcompile; +switch (rule) { +case 1: +switch (scal) { +case 0: +model.sim=list("extract_bit_16_UH0",4); +case 1: +switch (Datatype) { +case 4: +model.sim=list("extract_bit_16_UH1",4); +case 7: +model.sim=list("extract_bit_u16_UH1",4); } -graphics.exprs=exprs; -model.opar=list(tag); -model.ipar=tagvis; -x.model=model; -x.graphics=graphics; -arg1=x; -break; } +case 2: +model.sim=list("extract_bit_16_LH",4); +case 3: +switch (scal) { +case 0: +model.sim=list("extract_bit_16_MSB0",4); +case 1: +switch (Datatype) { +case 4: +model.sim=list("extract_bit_16_MSB1",4); +case 7: +model.sim=list("extract_bit_u16_MSB1",4); } -needcompile=resume(needcompile) - } } -/* autogenerated from "macros/Branching/DEMUX_f.sci" */ -function DEMUX_f() { - 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() { - } - 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; +case 4: +model.sim=list("extract_bit_16_LSB",4); +case 5: +switch (scal) { +case 0: +model.sim=list("extract_bit_16_RB0",4); +case 1: +switch (Datatype) { +case 4: +model.sim=list("extract_bit_16_RB1",4); +case 7: +model.sim=list("extract_bit_u16_RB1",4); } -if (size(out,"*")==1) { -if (out<2||out>8) { -message("Block must have at least 2 and at most 8 output ports"); +} +} +} else if ((Datatype==5||Datatype==8)) { +if (or(bit.slice()>7)||or(bit.slice()<0)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 7]")); ok=false; -} else { -[model,graphics,ok]=check_io(model,graphics,0,-transpose([1:out]),[],[]); +} +switch (rule) { +case 1: +switch (scal) { +case 0: +model.sim=list("extract_bit_8_UH0",4); +case 1: +switch (Datatype) { +case 5: +model.sim=list("extract_bit_8_UH1",4); +case 8: +model.sim=list("extract_bit_u8_UH1",4); +} +} +case 2: +model.sim=list("extract_bit_8_LH",4); +case 3: +switch (scal) { +case 0: +model.sim=list("extract_bit_8_MSB0",4); +case 1: +switch (Datatype) { +case 5: +model.sim=list("extract_bit_8_MSB1",4); +case 8: +model.sim=list("extract_bit_u8_MSB1",4); +} +} +case 4: +model.sim=list("extract_bit_8_LSB",4); +case 5: +switch (scal) { +case 0: +model.sim=list("extract_bit_8_RB0",4); +case 1: +switch (Datatype) { +case 5: +model.sim=list("extract_bit_8_RB1",4); +case 8: +model.sim=list("extract_bit_u8_RB1",4); +} +} } } 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"]]); +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); 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) { +it=Datatype; +ot=Datatype; +out=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs=exprs; -model.ipar=out; +model.ipar=[[int(bit.slice())],[int(numb.slice())]]; x.graphics=graphics; x.model=model; break; @@ -5771,74 +4690,105 @@ break; } } } -/* autogenerated from "macros/Branching/SWITCH2_m.sci" */ -function SWITCH2_m() { - SWITCH2_m.prototype.define = function SWITCH2_m() { -ipar=[0]; -nzz=1; -rpar=0; +/* autogenerated from "macros/IntegerOp/INTMUL.sci" */ +function INTMUL() { + INTMUL.prototype.define = function INTMUL() { +sgn=0; model=scicos_model(); -model.sim=list("switch2_m",4); -model.in1=[[-1],[1],[-1]]; -model.in2=[[-2],[1],[-2]]; -model.intyp=1; +model.sim=list("matmul_i32",4); +model.in1=[[-1],[-2]]; model.out=-1; -model.out2=-2; -model.outtyp=1; -model.ipar=ipar; -model.rpar=rpar; -model.nzcross=nzz; -model.nmode=1; +model.in2=[[-2],[-3]]; +model.out2=-3; +model.intyp=[3,3]; +model.outtyp=3; +model.rpar=[]; +model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[sci2exp(1)],[string(ipar)],[string(rpar)],[string(nzz)]]; +exprs=[[sci2exp(3)],[sci2exp(0)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - SWITCH2_m.prototype.details = function SWITCH2_m() { + INTMUL.prototype.details = function INTMUL() { } - SWITCH2_m.prototype.get = function SWITCH2_m() { + INTMUL.prototype.get = function INTMUL() { } - SWITCH2_m.prototype.set = function SWITCH2_m() { + INTMUL.prototype.set = function INTMUL() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; while (true) { -[ok,ot,rule,thra,nzz,exprs]=scicos_getvalue("Set parameters",[["Datatype (1=real double 2=complex 3=int32 ...)"],["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)"],["threshold a"],["use zero crossing: yes (1), no (0)"]],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,Datatype,np,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"INTMUL")],[" "],[gettext("Integer matrix multiplication")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Do on Overflow (0:Nothing, 1:Saturate, 2:Error)")]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -rule=int(rule); -if ((rule<0)) { -rule=0; +it=Datatype*ones(1,2); +ot=Datatype; +if ((np!=0&&np!=1&&np!=2)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Do on Overflow"),np),msprintf(gettext("Must be in the interval %s."),"[0, 2]")); +ok=false; +} else if (Datatype==3) { +if (np==0) { +model.sim=list("matmul_i32n",4); +} else if (np==1) { +model.sim=list("matmul_i32s",4); +} else { +model.sim=list("matmul_i32e",4); } -if ((rule>2)) { -rule=2; +} else if (Datatype==4) { +if (np==0) { +model.sim=list("matmul_i16n",4); +} else if (np==1) { +model.sim=list("matmul_i16s",4); +} else { +model.sim=list("matmul_i16e",4); } -graphics.exprs=exprs; -model.ipar=rule; -model.rpar=thra; -if (nzz!=0) { -model.nmode=1; -model.nzcross=1; +} else if (Datatype==5) { +if (np==0) { +model.sim=list("matmul_i8n",4); +} else if (np==1) { +model.sim=list("matmul_i8s",4); } else { -model.nmode=0; -model.nzcross=0; +model.sim=list("matmul_i8e",4); } -if (((ot<1)||(ot>8))&&(ot!=-1)) { -message("Datatype is not supported"); +} else if (Datatype==6) { +if (np==0) { +model.sim=list("matmul_ui32n",4); +} else if (np==1) { +model.sim=list("matmul_ui32s",4); +} else { +model.sim=list("matmul_ui32e",4); +} +} else if (Datatype==7) { +if (np==0) { +model.sim=list("matmul_ui16n",4); +} else if (np==1) { +model.sim=list("matmul_ui16s",4); +} else { +model.sim=list("matmul_ui16e",4); +} +} else if (Datatype==8) { +if (np==0) { +model.sim=list("matmul_ui8n",4); +} else if (np==1) { +model.sim=list("matmul_ui8s",4); +} else { +model.sim=list("matmul_ui8e",4); +} +} else { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),ot),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } -if (ok) { -it[1-1]=ot; -it[2-1]=1; -it[3-1]=ot; in1=[model.in1,model.in2]; out=[model.out,model.out2]; +if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { +model.ipar=np; +graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; @@ -5846,155 +4796,280 @@ break; } } } -/* autogenerated from "macros/Branching/EXTRACTOR.sci" */ -function EXTRACTOR() { - EXTRACTOR.prototype.define = function EXTRACTOR() { -ind=1; +/* autogenerated from "macros/IntegerOp/JKFLIPFLOP.sci" */ +function JKFLIPFLOP() { + JKFLIPFLOP.prototype.define = function JKFLIPFLOP() { +scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["JKFLIPFLOP"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m.objs[1-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.96961,261.584],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=7,pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8(0)),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="-1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=-1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=3,pout=[],pein=[],peout=[[7],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[3-1]=scicos_link(xx=[[357.15774],[362.99107],[379.71726]],yy=[[277.1131],[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,1,1]); +scs_m_1.objs[4-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[240.01488,267.1131],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[5-1]=scicos_link(xx=[[260.01488],[280.01488]],yy=[[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[1,1,1]); +scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[7-1]=scicos_link(xx=[[408.28869],[408.28869]],yy=[[241.39881],[211.39881]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); +scs_m.objs[2-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[292.52452,323.54888],sz=[60,40],flip=true,theta=0,exprs=[],pin=14,pout=[],pein=[],peout=8,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[3-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[302.79613,202.52782],sz=[40,40],flip=true,theta=0,exprs=[["[0;1;1;1;0;0;1;0]"],["0"]],pin=[[5],[16],[18]],pout=4,pein=8,peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=1,out2=1,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8([[0],[1],[1],[1],[0],[0],[1],[0]])),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[4-1]=scicos_link(xx=[[351.36756],[368.82793],[368.82793]],yy=[[222.52782],[222.52782],[223.06473]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[10,1,1]); +scs_m.objs[5-1]=scicos_link(xx=[[291.39818],[274.18235],[274.18235],[294.2247]],yy=[[281.584],[281.584],[232.52782],[232.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); +scs_m.objs[6-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[368.82793,243.45067],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=11,pout=[[7],[20]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[7-1]=scicos_link(xx=[[368.82793],[368.82793],[345.68389]],yy=[[243.45067],[281.584],[281.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[6,1,0],to=[1,1,1]); +scs_m.objs[8-1]=scicos_link(xx=[[322.52452],[374.69743],[374.69743],[322.79613]],yy=[[317.8346],[317.8346],[248.24211],[248.24211]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[3,1,1]); +scs_m.objs[9-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[377.63217,159.25363],sz=[60,40],flip=true,theta=0,exprs=[["1"],["5"],["5"],["0"]],pin=12,pout=22,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[5],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[10-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[368.82793],[223.06473]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=4,pout=[[11],[12]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[11-1]=scicos_link(xx=[[368.82793],[368.82793]],yy=[[223.06473],[243.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[6,1,1]); +scs_m.objs[12-1]=scicos_link(xx=[[368.82793],[368.82793],[369.06074]],yy=[[223.06473],[177.7867],[179.25363]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,2,0],to=[9,1,1]); +scs_m.objs[13-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[243.95309,333.54888],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=14,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[14-1]=scicos_link(xx=[[263.95309],[283.95309]],yy=[[343.54888],[343.54888]],id="drawlink",thick=[0,0],ct=[1,1],from=[13,1,0],to=[2,1,1]); +scs_m.objs[15-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[254.2247,212.52782],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=16,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[16-1]=scicos_link(xx=[[274.2247],[294.2247]],yy=[[222.52782],[222.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[15,1,0],to=[3,2,1]); +scs_m.objs[17-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[254.2247,202.52782],sz=[20,20],flip=true,theta=0,exprs="3",pin=[],pout=18,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=3,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[18-1]=scicos_link(xx=[[274.2247],[294.2247]],yy=[[212.52782],[212.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[17,1,0],to=[3,3,1]); +scs_m.objs[19-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[388.82793,233.45067],sz=[20,20],flip=true,theta=0,exprs="1",pin=20,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[20-1]=scicos_link(xx=[[368.82793],[388.82793]],yy=[[243.45067],[243.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[6,2,0],to=[19,1,1]); +scs_m.objs[21-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[466.2036,169.25363],sz=[20,20],flip=true,theta=0,exprs="2",pin=22,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[22-1]=scicos_link(xx=[[446.2036],[466.2036]],yy=[[179.25363],[179.25363]],id="drawlink",thick=[0,0],ct=[1,1],from=[9,1,0],to=[21,1,1]); model=scicos_model(); -model.sim=list("extractor",4); -model.in1=-1; -model.out=1; -model.blocktype="c"; +model.sim="csuper"; +model.in1=[[1],[1],[1]]; +model.in2=[[1],[1],[1]]; +model.out=[[1],[1]]; +model.out2=[[1],[1]]; +model.intyp=[5,1,5]; +model.outtyp=[5,5]; +model.blocktype="h"; +model.firing=false; model.dep_ut=[true,false]; -model.ipar=ind; -exprs=[sci2exp(ind)]; +model.rpar=scs_m; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,3],model,[],gr_i); } - EXTRACTOR.prototype.details = function EXTRACTOR() { + JKFLIPFLOP.prototype.details = function JKFLIPFLOP() { } - EXTRACTOR.prototype.get = function EXTRACTOR() { + JKFLIPFLOP.prototype.get = function JKFLIPFLOP() { } - EXTRACTOR.prototype.set = function EXTRACTOR() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; + JKFLIPFLOP.prototype.set = function JKFLIPFLOP() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="DOLLAR_m") { +path=i; +break; +} +} +newpar=list(); +xx=arg1.model.rpar.objs[path-1]; +exprs=xx.graphics.exprs[1-1]; +model=xx.model; +init_old=model.odstate[1-1]; while (true) { -[ok,ind,exprs]=scicos_getvalue("Set block parameters",["indices to extract"],list("vec",-1),exprs); +[ok,init,exprs0]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"JKFLIPFLOP")],[" "],[gettext("JK flip-flop")],[" "],[gettext("The \'Initial Value\' must be 0 or 1 of type int8")],[gettext(" - Negative values are considered as int8(0)")],[gettext(" - Positive values are considered as int8(1)")],[" "]],gettext("Initial Value"),list("vec",1),exprs); if (!ok) { break; } -ind=int(ind); -ind=ind.slice(); -[model,graphics,ok]=check_io(model,graphics,[-1],size(ind,1),[],[]); +if (init<=0) { +init=int8(0); +} else if (init>0) { +init=int8(1); +} if (ok) { -model.ipar=ind; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; +xx.graphics.exprs[1-1]=exprs0; +model.odstate[1-1]=init; +xx.model=model; +arg1.model.rpar.objs[path-1]=xx; break; } } +needcompile=0; +if (init_old!=init) { +newpar[size(newpar)+1-1]=1; +needcompile=2; +} +x=arg1; +y=needcompile; +typ=newpar; } } -/* autogenerated from "macros/Branching/CLKGOTO.sci" */ -function CLKGOTO() { - CLKGOTO.prototype.define = function CLKGOTO() { +/* autogenerated from "macros/IntegerOp/LOGIC.sci" */ +function LOGIC() { + LOGIC.prototype.define = function LOGIC() { +mat=[[0],[0],[0],[1]]; model=scicos_model(); -model.sim="clkgoto"; +model.sim=list("logic",4); +model.in1=[[1],[1]]; +model.in2=[[1],[1]]; +model.out=1; +model.out2=1; model.evtin=1; -model.opar=list("A"); -model.ipar=int(1); -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs=[["A"],[sci2exp(1)]]; -x=standard_define([2,1],model,exprs," "); -x.graphics.id="Goto"; +model.intyp=[5,5]; +model.outtyp=5; +model.opar=list(int8(mat)); +model.blocktype="c"; +model.firing=false; +model.dep_ut=[true,false]; +exprs=[[sci2exp(mat)],[sci2exp(0)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); } - CLKGOTO.prototype.details = function CLKGOTO() { + LOGIC.prototype.details = function LOGIC() { } - CLKGOTO.prototype.get = function CLKGOTO() { + LOGIC.prototype.get = function LOGIC() { } - CLKGOTO.prototype.set = function CLKGOTO() { + LOGIC.prototype.set = function LOGIC() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,tag,tagvis,exprs]=scicos_getvalue("Set block parameters",[["Tag"],["Tag Visibility (1=Local 2=Scoped 3=Global)"]],list("str",-1,"vec",1),exprs); +[ok,mat,herit,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"LOGIC")],[" "],[gettext("Combinatorial logic")],[" "],[gettext(" Rows of the matrix are the output values")],[gettext(" Number of rows must be a power of two.")],[gettext(" Number of columns gives the number of outputs.")],[" "]],[[gettext("Truth Table (matrix of outputs)")],[gettext("Accepts Inherited Events (0:No, 1:Yes)")]],list("mat",[-1,-2],"vec",1),exprs); if (!ok) { break; } -if (((tagvis<1)||(tagvis>3))) { -message("Tag Visibility must be between 1 and 3"); +nout=size(mat,2); +nin=(log(size(mat,1))/log(2)); +u1=floor(nin); +if ((u1!=nin)) { +block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %d."),gettext("Truth Table"),size(mat,1)),gettext("Number of rows must be a power of two.")); +ok=false; +} else if ((find(mat.slice()!=0&&mat.slice()!=1)!=[])) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Truth Table")),msprintf(gettext("Elements must be in the interval %s."),"[0, 1]")); +ok=false; +} else if (herit<0||herit>1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Accepts Inherited Events"),herit),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; } -tagvis=int(tagvis); if (ok) { -if (((model.opar!=list(tag))||(model.ipar!=tagvis))) { -needcompile=4; -y=needcompile; +in1=[ones(nin,1),ones(nin,1)]; +out=[ones(nout,1),ones(nout,1)]; +it=5*ones(1,nin); +ot=5*ones(1,nout); +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-herit,1),[]); } -model.opar=list(tag); -model.ipar=tagvis; -model.evtin=1; -model.firing=-1; +if (ok) { graphics.exprs=exprs; +mat=int8(mat); +model.opar=list(mat); x.graphics=graphics; x.model=model; break; } } -needcompile=resume(needcompile) } } -/* autogenerated from "macros/Branching/MUX_f.sci" */ -function MUX_f() { - MUX_f.prototype.define = function MUX_f() { -in1=2; +/* autogenerated from "macros/IntegerOp/SHIFT.sci" */ +function SHIFT() { + SHIFT.prototype.define = function SHIFT() { +sgn=[[0],[0]]; +OPER=0; model=scicos_model(); -model.sim=list("mux",1); -model.in1=-transpose([1:in1]); -model.out=0; -model.ipar=in1; +model.sim=list("shift_32_LA",4); +model.in1=-1; +model.out=-1; +model.in2=-2; +model.out2=-2; +model.intyp=3; +model.outtyp=3; +model.rpar=[]; +model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=string(in1); +exprs=[[sci2exp(3)],[sci2exp(0)],[sci2exp(0)]]; gr_i=[]; -x=standard_define([0.5,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - MUX_f.prototype.details = function MUX_f() { + SHIFT.prototype.details = function SHIFT() { } - MUX_f.prototype.get = function MUX_f() { + SHIFT.prototype.get = function SHIFT() { } - MUX_f.prototype.set = function MUX_f() { + SHIFT.prototype.set = function SHIFT() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; while (true) { -[ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("vec",-1),exprs); +[ok,Datatype,nb,np,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"SHIFT")],[" "],[gettext("Shift/Rotates bits")]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Number of Bits to Shift Left (Negative number to shift right)")],[gettext("Shift Type (0:Arithmetic, 1:Circular)")]],list("vec",1,"vec",1,"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"); +if ((np!=0&&np!=1)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Shift Type"),np),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; -} else { -[model,graphics,ok]=check_io(model,graphics,-transpose([1:in1]),0,[],[]); +} +it=Datatype; +ot=Datatype; +if ((Datatype==3||Datatype==6)) { +if (nb>0) { +switch (np) { +case 0: +model.sim=list("shift_32_LA",4); +case 1: +model.sim=list("shift_32_LC",4); +} +} else if (nb<0) { +switch (np) { +case 0: +switch (Datatype) { +case 3: +model.sim=list("shift_32_RA",4); +case 6: +model.sim=list("shift_u32_RA",4); +} +case 1: +model.sim=list("shift_32_RC",4); +} +} +} else if ((Datatype==4||Datatype==7)) { +if (nb>0) { +switch (np) { +case 0: +model.sim=list("shift_16_LA",4); +case 1: +model.sim=list("shift_16_LC",4); +} +} else if (nb<0) { +switch (np) { +case 0: +switch (Datatype) { +case 4: +model.sim=list("shift_16_RA",4); +case 7: +model.sim=list("shift_u16_RA",4); +} +case 1: +model.sim=list("shift_16_RC",4); +} +} +} else if ((Datatype==5||Datatype==8)) { +if (nb>0) { +switch (np) { +case 0: +model.sim=list("shift_8_LA",4); +case 1: +model.sim=list("shift_8_LC",4); +} +} else if (nb<0) { +switch (np) { +case 0: +switch (Datatype) { +case 5: +model.sim=list("shift_8_RA",4); +case 8: +model.sim=list("shift_u8_RA",4); +} +case 1: +model.sim=list("shift_8_RC",4); +} } } 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. "]]); +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); 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,"*"); -} -} +[model,graphics,ok]=set_io(model,graphics,list([-1,-2],it),list([-1,-2],ot),[],[]); } if (ok) { +model.ipar=nb; graphics.exprs=exprs; -model.ipar=in1; x.graphics=graphics; x.model=model; break; @@ -6002,263 +5077,285 @@ break; } } } -/* autogenerated from "macros/Branching/CLKFROM.sci" */ -function CLKFROM() { - CLKFROM.prototype.define = function CLKFROM() { +/* autogenerated from "macros/IntegerOp/SRFLIPFLOP.sci" */ +function SRFLIPFLOP() { + SRFLIPFLOP.prototype.define = function SRFLIPFLOP() { +scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["SRFLIPFLOP"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m.objs[1-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[298.504,201.45067],sz=[40,40],flip=true,theta=0,exprs=[["[0 1;1 0;1 0;1 0;0 1;0 1;0 0;0 0]"],["1"]],pin=[[4],[10],[12]],pout=[[3],[8]],pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit=[["E"],["E"]]),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=[[1],[1]],out2=[[1],[1]],outtyp=[[5],[5]],evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8([[0,1],[1,0],[1,0],[1,0],[0,1],[0,1],[0,0],[0,0]])),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[2-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.23733,254.25067],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=6,pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8(0)),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[3-1]=scicos_link(xx=[[347.07543],[363.03733],[363.03733]],yy=[[228.11733],[228.11733],[248.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[5,1,1]); +scs_m.objs[4-1]=scicos_link(xx=[[290.6659],[272.104],[272.104],[289.93257]],yy=[[274.25067],[274.25067],[231.45067],[231.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[1,1,1]); +scs_m.objs[5-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[363.03733,248.584],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=3,pout=[[6],[14]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[6-1]=scicos_link(xx=[[363.03733],[363.03733],[344.95162]],yy=[[248.584],[274.25067],[274.25067]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[2,1,1]); +scs_m.objs[7-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[367.07543,204.784],sz=[20,20],flip=true,theta=0,exprs="2",pin=8,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[8-1]=scicos_link(xx=[[347.07543],[367.07543]],yy=[[214.784],[214.784]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,2,0],to=[7,1,1]); +scs_m.objs[9-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[249.93257,211.45067],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=10,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[10-1]=scicos_link(xx=[[269.93257],[289.93257]],yy=[[221.45067],[221.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[9,1,0],to=[1,2,1]); +scs_m.objs[11-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[249.93257,201.45067],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=12,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[12-1]=scicos_link(xx=[[269.93257],[289.93257]],yy=[[211.45067],[211.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[11,1,0],to=[1,3,1]); +scs_m.objs[13-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[383.03733,238.584],sz=[20,20],flip=true,theta=0,exprs="1",pin=14,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[14-1]=scicos_link(xx=[[363.03733],[383.03733]],yy=[[248.584],[248.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,2,0],to=[13,1,1]); model=scicos_model(); -model.sim="clkfrom"; -model.evtout=1; -model.opar=list("A"); -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs="A"; -x=standard_define([2,1],model,exprs," "); -x.graphics.id="From"; +model.sim="csuper"; +model.in1=[[1],[1]]; +model.in2=[[1],[1]]; +model.out=[[1],[1]]; +model.out2=[[1],[1]]; +model.intyp=[5,5]; +model.outtyp=[5,5]; +model.blocktype="h"; +model.firing=false; +model.dep_ut=[true,false]; +model.rpar=scs_m; +gr_i=[]; +x=standard_define([2,3],model,[],gr_i); } - CLKFROM.prototype.details = function CLKFROM() { + SRFLIPFLOP.prototype.details = function SRFLIPFLOP() { } - CLKFROM.prototype.get = function CLKFROM() { + SRFLIPFLOP.prototype.get = function SRFLIPFLOP() { } - CLKFROM.prototype.set = function CLKFROM() { -x=arg1; -graphics=arg1.graphics; -model=arg1.model; -exprs=graphics.exprs; + SRFLIPFLOP.prototype.set = function SRFLIPFLOP() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="DOLLAR_m") { +path=i; +break; +} +} +newpar=list(); +xx=arg1.model.rpar.objs[path-1]; +exprs=xx.graphics.exprs[1-1]; +model=xx.model; +init_old=model.odstate[1-1]; while (true) { -[ok,tag,exprs]=scicos_getvalue("Set block parameters","Tag",list("str",-1),exprs); +[ok,init,exprs0]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"SRFLIPFLOP")],[" "],[gettext("SR flip-flop")],[" "],[gettext("The \'Initial Value\' must be 0 or 1 of type int8")],[gettext(" - Negative values are considered as int8(0)")],[gettext(" - Positive values are considered as int8(1)")],[" "]],gettext("Initial Value"),list("vec",1),exprs); if (!ok) { break; } -if (model.opar!=list(tag)) { -needcompile=4; -y=needcompile; +if (init<=0) { +init=int8(0); +} else if (init>0) { +init=int8(1); } -model.opar=list(tag); -model.evtout=1; -model.firing=-1; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; +if (ok) { +xx.graphics.exprs[1-1]=exprs0; +model.odstate[1-1]=init; +xx.model=model; +arg1.model.rpar.objs[path-1]=xx; break; } -needcompile=resume(needcompile) +} +needcompile=0; +if (init_old!=init) { +newpar[size(newpar)+1-1]=path; +needcompile=2; +} +x=arg1; +y=needcompile; +typ=newpar; } } -/* autogenerated from "macros/Branching/GOTO.sci" */ -function GOTO() { - GOTO.prototype.define = function GOTO() { +/* autogenerated from "macros/Linear/BIGSOM_f.sci" */ +function BIGSOM_f() { + BIGSOM_f.prototype.define = function BIGSOM_f() { +sgn=[[1],[1]]; model=scicos_model(); -model.sim="goto"; -model.in1=-1; -model.in2=-2; -model.intyp=-1; -model.out=[]; -model.out2=[]; -model.outtyp=1; -model.ipar=int(1); -model.opar=list("A"); +model.sim=list("sum",2); +model.in1=[[-1],[-1]]; +model.out=-1; +model.rpar=sgn; model.blocktype="c"; -model.dep_ut=[false,false]; -exprs=[["A"],[sci2exp(1)]]; +model.dep_ut=[true,false]; +exprs=sci2exp(sgn); gr_i=[]; -x=standard_define([2,1],model,exprs,gr_i); -x.graphics.id="Goto"; +x=standard_define([2,3],model,exprs,gr_i); } - GOTO.prototype.details = function GOTO() { + BIGSOM_f.prototype.details = function BIGSOM_f() { } - GOTO.prototype.get = function GOTO() { + BIGSOM_f.prototype.get = function BIGSOM_f() { } - GOTO.prototype.set = function GOTO() { + BIGSOM_f.prototype.set = function BIGSOM_f() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; while (true) { -[ok,tag,tagvis,exprs]=scicos_getvalue("Set parameters",[["Tag"],["Tag Visibility(1=Local 2=scoped 3= global)"]],list("str",-1,"vec",1),exprs); +[ok,sgn,exprs]=scicos_getvalue("Set sum block parameters","Inputs ports signs/gain",list("vec",-1),exprs); if (!ok) { break; } -tagvis=int(tagvis); -if (((tagvis<1)||(tagvis>3))) { -message("Tag Visibility must be between 1 and 3"); -ok=false; -} +in1=-ones(size(sgn,"*"),1); +[model,graphics,ok]=check_io(model,graphics,in1,-1,[],[]); if (ok) { -if (((model.ipar!=tagvis)||(model.opar!=list(tag)))) { -needcompile=4; -y=needcompile; -} +model.rpar=sgn.slice(); graphics.exprs=exprs; -model.opar=list(tag); -model.ipar=tagvis; -x.model=model; x.graphics=graphics; -arg1=x; +x.model=model; break; } } -needcompile=resume(needcompile) } } -/* autogenerated from "macros/Branching/SCALAR2VECTOR.sci" */ -function SCALAR2VECTOR() { - SCALAR2VECTOR.prototype.define = function SCALAR2VECTOR() { -nout=-1; +/* autogenerated from "macros/Linear/CLINDUMMY_f.sci" */ +function CLINDUMMY_f() { + CLINDUMMY_f.prototype.define = function CLINDUMMY_f() { +x0=0; model=scicos_model(); -model.sim=list("scalar2vector",4); -model.out=nout; -model.in1=1; +model.sim=list("cdummy",4); +model.state=x0; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[string([nout])]; +model.firing=[]; +model.dep_ut=[false,true]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([3,2],model,[],gr_i); } - SCALAR2VECTOR.prototype.details = function SCALAR2VECTOR() { + CLINDUMMY_f.prototype.details = function CLINDUMMY_f() { } - SCALAR2VECTOR.prototype.get = function SCALAR2VECTOR() { + CLINDUMMY_f.prototype.get = function CLINDUMMY_f() { } - SCALAR2VECTOR.prototype.set = function SCALAR2VECTOR() { + CLINDUMMY_f.prototype.set = function CLINDUMMY_f() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,nout,exprs]=scicos_getvalue("Set block parameters",["size of output (-1: if don\'t know)"],list("vec",1),exprs); -if (!ok) { -break; -} -nout=int(nout); -if ((nout!=-1&&(nout<=0))) { -message("size of output must be -1 or >0"); -ok=false; -} -if (ok) { -[model,graphics,ok]=check_io(model,graphics,[1],nout,[],[]); -} -if (ok) { -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} -} } } -/* autogenerated from "macros/Branching/SWITCH2.sci" */ -function SWITCH2() { - SWITCH2.prototype.define = function SWITCH2() { -in1=[[-1],[1],[-1]]; -ipar=[0]; -nzz=1; -rpar=0; +/* autogenerated from "macros/Linear/CLR.sci" */ +function CLR() { + CLR.prototype.define = function CLR() { +x0=0; +A=-1; +B=1; +C=1; +D=0; +exprs=[["1"],["1+s"]]; model=scicos_model(); -model.sim=list("switch2",4); -model.in1=in1; -model.out=-1; -model.ipar=ipar; -model.rpar=rpar; -model.nzcross=nzz; -model.nmode=1; +model.sim=list("csslti4",4); +model.in1=1; +model.out=1; +model.state=x0; +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(ipar)],[string(rpar)],[string(nzz)]]; +model.dep_ut=[false,true]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - SWITCH2.prototype.details = function SWITCH2() { + CLR.prototype.details = function CLR() { } - SWITCH2.prototype.get = function SWITCH2() { + CLR.prototype.get = function CLR() { } - SWITCH2.prototype.set = function SWITCH2() { + CLR.prototype.set = function CLR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +x0=model.state; +rpar=model.rpar; +ns=prod(size(x0)); +nin=1; +nout=1; +PREVAR_scicos_context=PREVAR_scicos_context; +PREVAR_scicos_context.s=%s; while (true) { -[ok,rule,thra,nzz,exprs]=scicos_getvalue("Set parameters",[["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)"],["threshold a"],["use zero crossing: yes (1), no (0)"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,num,den,exprs]=scicos_getvalue("Set continuous SISO transfer parameters",[["Numerator (s)"],["Denominator (s)"]],list("pol",1,"pol",1),exprs); if (!ok) { break; } -rule=int(rule); -if ((rule<0)) { -rule=0; -} -if ((rule>2)) { -rule=2; +if (degree(num)>degree(den)) { +message("Transfer function must be proper or strictly proper."); +ok=false; } +if (ok) { +H=cont_frm(num,den); +[A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; -model.ipar=rule; -model.rpar=thra; -if (nzz!=0) { -model.nmode=1; -model.nzcross=1; +[ns1,ns1]=size(A); +rpar=[[matrix(A,ns1*ns1,1)],[matrix(B,ns1,1)],[matrix(C,ns1,1)],[D]]; +if (norm(D,1)!=0) { +mmm=[true,true]; } else { -model.nmode=0; -model.nzcross=0; +mmm=[false,true]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} +if (ns1<=ns) { +x0=x0.slice(1-1,ns1); +} else { +x0[ns1-1][1-1]=0; } +model.state=x0; +model.rpar=rpar; x.graphics=graphics; x.model=model; break; } +} } } -/* autogenerated from "macros/Branching/MUX.sci" */ -function MUX() { - MUX.prototype.define = function MUX() { -in1=2; +/* autogenerated from "macros/Linear/CLR_f.sci" */ +function CLR_f() { + CLR_f.prototype.define = function CLR_f() { +x0=0; +A=-1; +B=1; +C=1; +D=0; +exprs=[["1"],["1+s"]]; model=scicos_model(); -model.sim=list("multiplex",4); -model.in1=-transpose([1:in1]); -model.out=0; -model.ipar=in1; +model.sim=list("csslti",1); +model.in1=1; +model.out=1; +model.state=x0; +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=string(in1); +model.dep_ut=[false,true]; gr_i=[]; -x=standard_define([.5,2],model,exprs,gr_i); +x=standard_define([2.5,2.5],model,exprs,gr_i); } - MUX.prototype.details = function MUX() { + CLR_f.prototype.details = function CLR_f() { } - MUX.prototype.get = function MUX() { + CLR_f.prototype.get = function CLR_f() { } - MUX.prototype.set = function MUX() { + CLR_f.prototype.set = function CLR_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +x0=model.state; +rpar=model.rpar; +ns=prod(size(x0)); +nin=1; +nout=1; +PREVAR_scicos_context=PREVAR_scicos_context; +PREVAR_scicos_context.s=%s; while (true) { -[ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("intvec",-1),exprs); +[ok,num,den,exprs]=scicos_getvalue("Set continuous SISO transfer parameters",[["Numerator (s)"],["Denominator (s)"]],list("pol",1,"pol",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"); +if (degree(num)>degree(den)) { +message("Transfer must be proper or strictly proper"); 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,"*"); +H=cont_frm(num,den); +[A,B,C,D]=H.slice(2-1,5); +graphics.exprs=exprs; +[ns1,ns1]=size(A); +rpar=[[matrix(A,ns1*ns1,1)],[matrix(B,ns1,1)],[matrix(C,ns1,1)],[D]]; +if (norm(D,1)!=0) { +mmm=[true,true]; +} else { +mmm=[false,true]; } +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; } +if (ns1<=ns) { +x0=x0.slice(1-1,ns1); +} else { +x0[ns1-1][1-1]=0; } -if (ok) { -graphics.exprs=exprs; -model.ipar=in1; +model.state=x0; +model.rpar=rpar; x.graphics=graphics; x.model=model; break; @@ -6266,66 +5363,86 @@ break; } } } -/* autogenerated from "macros/Branching/ESELECT_f.sci" */ -function ESELECT_f() { - ESELECT_f.prototype.define = function ESELECT_f() { -out=2; +/* autogenerated from "macros/Linear/CLSS.sci" */ +function CLSS() { + CLSS.prototype.define = function CLSS() { +x0=0; +A=-1; +B=1; +C=1; +D=0; +in1=1; +out=1; model=scicos_model(); -model.sim=list("eselect",-2); -model.in1=1; -model.in2=1; -model.intyp=-1; -model.evtin=1; -model.evtout=ones(out,1); -model.blocktype="l"; -model.firing=-ones(out,1); -model.dep_ut=[true,false]; -model.nmode=0; -model.nzcross=0; +model.sim=list("csslti4",4); +model.in1=in1; +model.out=out; +model.state=x0; +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="c"; +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; gr_i=[]; -exprs=[[string(out)],[string(1)],[string(model.nmode)]]; x=standard_define([4,2],model,exprs,gr_i); } - ESELECT_f.prototype.details = function ESELECT_f() { + CLSS.prototype.details = function CLSS() { } - ESELECT_f.prototype.get = function ESELECT_f() { + CLSS.prototype.get = function CLSS() { } - ESELECT_f.prototype.set = function ESELECT_f() { + CLSS.prototype.set = function CLSS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -if (size(exprs,"*")==1) { -exprs[2-1]=string(1); -} -if (size(exprs,"*")==2) { -exprs[3-1]=string(0); +if (size(exprs,"*")==7) { +exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { -[ok,out,inh,nmod,exprs]=scicos_getvalue("Set ESELECT block parameters",[["number of output event ports"],["Inherit (1: no, 0: yes)"],["zero-crossing (0: no, 1: yes)"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break; } -if (nmod!=0) { -nmod=1; +out=size(C,1); +if (out==0) { +out=[]; } -if (inh==0) { -inh=[]; +in1=size(B,2); +if (in1==0) { +in1=[]; +} +[ms,ns]=size(A); +okD=true; +if (size(D,"*")!=size(C,1)*size(B,2)) { +if (size(D,"*")==1) { +D=D*ones(C*B); +} else if (size(D,"*")==0) { +D=zeros(C*B); } else { -inh=1; +okD=false; } -out=int(out); -if (out<2) { -message("Block must have at least two output ports"); +} +if (ms!=ns||!okD) { +message(_("Matrix A is not square or D has wrong dimension")); } else { -[model,graphics,ok]=check_io(model,graphics,1,[],inh,[ones(out,1)]); +[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); if (ok) { graphics.exprs=exprs; -model.evtout=ones(out,1); -model.firing=-ones(out,1); +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +if (D!=[]) { +if (norm(D,1)!=0) { +mmm=[true,true]; +} else { +mmm=[false,true]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} +} else { +model.dep_ut=[false,true]; +} +model.state=x0.slice(); +model.rpar=rpar; x.graphics=graphics; -model.nmode=nmod; -model.nzcross=nmod; x.model=model; break; } @@ -6333,483 +5450,647 @@ break; } } } -/* autogenerated from "macros/Branching/GotoTagVisibilityMO.sci" */ -function GotoTagVisibilityMO() { - GotoTagVisibilityMO.prototype.define = function GotoTagVisibilityMO() { +/* autogenerated from "macros/Linear/CLSS_f.sci" */ +function CLSS_f() { + CLSS_f.prototype.define = function CLSS_f() { +x0=0; +A=-1; +B=1; +C=1; +D=0; +in1=1; +out=1; model=scicos_model(); -model.sim="gototagvisibilitymo"; -model.in1=[]; -model.in2=[]; -model.out=[]; -model.out2=[]; -model.evtin=[]; -model.intyp=1; -model.outtyp=1; -model.opar=list("A"); +model.sim=list("csslti",1); +model.in1=in1; +model.out=out; +model.state=x0; +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; model.blocktype="c"; -model.firing=false; -model.dep_ut=[false,false]; -exprs="A"; +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - GotoTagVisibilityMO.prototype.details = function GotoTagVisibilityMO() { + CLSS_f.prototype.details = function CLSS_f() { } - GotoTagVisibilityMO.prototype.get = function GotoTagVisibilityMO() { + CLSS_f.prototype.get = function CLSS_f() { } - GotoTagVisibilityMO.prototype.set = function GotoTagVisibilityMO() { + CLSS_f.prototype.set = function CLSS_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; +if (size(exprs,"*")==7) { +exprs=exprs[[1:4,7]-1]; +} model=arg1.model; while (true) { -[ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); +[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break; } -if (ok) { -if (model.opar!=list(tag)) { -needcompile=4; -y=needcompile; +out=size(C,1); +if (out==0) { +out=[]; +} +in1=size(B,2); +if (in1==0) { +in1=[]; } +[ms,ns]=size(A); +if (ms!=ns) { +message("A matrix must be square"); +} else { +[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); +if (ok) { graphics.exprs=exprs; -model.opar=list(tag); +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +if (D!=[]) { +if (norm(D,1)!=0) { +mmm=[true,true]; +} else { +mmm=[false,true]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} +} else { +model.dep_ut=[false,true]; +} +model.state=x0.slice(); +model.rpar=rpar; x.graphics=graphics; x.model=model; break; } } -needcompile=resume(needcompile) +} } } -/* autogenerated from "macros/Branching/ISELECT_f.sci" */ -function ISELECT_f() { - ISELECT_f.prototype.define = function ISELECT_f() { -z0=0; -out=[[-1],[-1]]; -nout=2; +/* autogenerated from "macros/Linear/DELAYV_f.sci" */ +function DELAYV_f() { + DELAYV_f.prototype.define = function DELAYV_f() { +nin=1; +z0=zeros(11,1); +zz0=z0.slice(1-1,$-1); +T=1; model=scicos_model(); -model.sim=list("selector",2); -model.in1=-1; -model.out=out; -model.evtin=ones(out); +model.sim=list("delayv",1); +model.in1=[[nin],[1]]; +model.out=nin; +model.evtin=1; +model.evtout=[[1],[1]]; model.dstate=z0; -model.blocktype="c"; +model.rpar=T/(size(zz0,"*")); +model.blocktype="d"; +model.firing=[0,-1]; model.dep_ut=[true,false]; -exprs=[[string(nout)],[string(z0+1)]]; +exprs=[[string(nin)],[strcat(string(z0.slice(1-1,$-1)),";")],[string(T)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - ISELECT_f.prototype.details = function ISELECT_f() { + DELAYV_f.prototype.details = function DELAYV_f() { } - ISELECT_f.prototype.get = function ISELECT_f() { + DELAYV_f.prototype.get = function DELAYV_f() { } - ISELECT_f.prototype.set = function ISELECT_f() { + DELAYV_f.prototype.set = function DELAYV_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +nin=model.in1[1-1]; +z0=model.dstate; +zz0=z0.slice(1-1,$-1); +told=z0[$-1]; while (true) { -[ok,nout,z0,exprs]=scicos_getvalue("Set parameters",[["number of outputs"],["initial connected output"]],list("vec",1,"vec",1),exprs); +[ok,nin,zz0,T,exprs]=scicos_getvalue("Set delay parameters",[["Number of inputs"],["Register initial condition"],["Max delay"]],list("vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break; } -if (z0>nout||z0<=0) { -message("initial connected input is not a valid input port number"); -} else { -[model,graphics,ok]=check_io(model,graphics,-1,-ones(nout,1),ones(nout,1),[]); +if (size(zz0,"*")<2) { +message("Register length must be at least 2"); +ok=false; +} +if (T<=0) { +message("Delay must be positive"); +ok=false; +} +if (ok) { +[model,graphics,ok]=check_io(model,graphics,[[nin],[1]],nin,1,[[1],[1]]); +} if (ok) { graphics.exprs=exprs; -model.dstate=z0-1; +model.dstate=[[zz0.slice()],[told]]; +model.rpar=T/(size(zz0,"*")); x.graphics=graphics; x.model=model; break; } } -} } } -/* autogenerated from "macros/Branching/SELECT_m.sci" */ -function SELECT_m() { - SELECT_m.prototype.define = function SELECT_m() { -z0=1; -nin=2; -model=scicos_model(); -model.sim=list("selector_m",4); -model.in1=[[-1],[-1]]; -model.in2=[[-2],[-2]]; -model.intyp=1; -model.out=-1; -model.out2=-2; -model.outtyp=1; -model.evtout=[]; -model.state=[]; -model.rpar=[]; -model.ipar=[]; -model.firing=[]; -model.evtin=ones(nin,1); -model.dstate=z0; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[sci2exp(1)],[sci2exp(nin)],[sci2exp(z0)]]; -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +/* autogenerated from "macros/Linear/DELAY_f.sci" */ +function DELAY_f() { + DELAY_f.prototype.define = function DELAY_f() { +evtdly=EVTDLY_f("define"); +evtdly.graphics.orig=[243,296]; +evtdly.graphics.sz=[40,40]; +evtdly.graphics.flip=true; +evtdly.graphics.exprs=[["0.1"],["0"]]; +evtdly.graphics.pein=10; +evtdly.graphics.peout=7; +evtdly.model.rpar=0.1; +evtdly.model.firing=0; +register=REGISTER_f("define"); +register.graphics.orig=[238,195]; +register.graphics.sz=[50,50]; +register.graphics.flip=true; +register.graphics.exprs="0;0;0;0;0;0;0;0;0;0"; +register.graphics.pin=6; +register.graphics.pout=5; +register.graphics.pein=9; +input_port=IN_f("define"); +input_port.graphics.orig=[92,210]; +input_port.graphics.sz=[20,20]; +input_port.graphics.flip=true; +input_port.graphics.exprs=[["1"],["1"]]; +input_port.graphics.pout=6; +input_port.model.ipar=1; +output_port=OUT_f("define"); +output_port.graphics.orig=[440,210]; +output_port.graphics.sz=[20,20]; +output_port.graphics.flip=true; +output_port.graphics.exprs=[["1"],["1"]]; +output_port.graphics.pin=5; +output_port.model.ipar=1; +split=CLKSPLIT_f("define"); +split.graphics.orig=[[263],[271.2]]; +split.graphics.pein=7; +split.graphics.peout=[[9],[10]]; +diagram=scicos_diagram(); +diagram.objs[1-1]=input_port; +diagram.objs[2-1]=output_port; +diagram.objs[3-1]=register; +diagram.objs[4-1]=evtdly; +diagram.objs[5-1]=scicos_link(xx=[[296.6],[440]],yy=[[220],[220]],from=[3,1],to=[2,1]); +diagram.objs[6-1]=scicos_link(xx=[[112],[229.4]],yy=[[220],[220]],from=[1,1],to=[3,1]); +diagram.objs[7-1]=scicos_link(xx=[[263],[263]],yy=[[290.3],[271.2]],ct=[5,-1],from=[4,1],to=[8,1]); +diagram.objs[8-1]=split; +diagram.objs[9-1]=scicos_link(xx=[[263],[263]],yy=[[271.2],[250.7]],ct=[5,-1],from=[8,1],to=[3,1]); +diagram.objs[10-1]=scicos_link(xx=[[263],[308.6],[308.6],[263],[263]],yy=[[271.2],[271.2],[367],[367],[341.7]],ct=[5,-1],from=[8,2],to=[4,1]); +x=scicos_block(); +x.gui="DELAY_f"; +x.graphics.sz=[2,2]; +x.graphics.gr_i=[]; +x.graphics.pin=0; +x.graphics.pout=0; +x.model.sim="csuper"; +x.model.in1=1; +x.model.out=1; +x.model.blocktype="h"; +x.model.dep_ut=[false,false]; +x.model.rpar=diagram; +x.graphics.in_implicit=["E"]; +x.graphics.in_style=""; +x.graphics.out_implicit=["E"]; +x.graphics.out_style=""; } - SELECT_m.prototype.details = function SELECT_m() { + DELAY_f.prototype.details = function DELAY_f() { } - SELECT_m.prototype.get = function SELECT_m() { + DELAY_f.prototype.get = function DELAY_f() { } - SELECT_m.prototype.set = function SELECT_m() { + DELAY_f.prototype.set = function DELAY_f() { +ppath=list(0,0); +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="REGISTER_f") { +ppath[1-1]=i; +} +if (typeof(o)=="Block"&&o.gui=="EVTDLY_f") { +ppath[2-1]=i; +} +if (and(ppath!=list(0,0))) { +break; +} +} x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; +newpar=list(); +register=x.model.rpar.objs[ppath[1-1]-1]; +evtdly=x.model.rpar.objs[ppath[2-1]-1]; +register_exprs=register.graphics.exprs; +evtdly_exprs=evtdly.graphics.exprs; +exprs=[[evtdly_exprs[1-1]],[register_exprs]]; while (true) { -[ok,typ,nin,z0,exprs]=scicos_getvalue("Set parameters",[["Datatype(1= real double 2=Complex 3=int32 ..)"],["number of inputs"],["initial connected input"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,dt,z0,exprs]=scicos_getvalue([["This block implements as a discretized delay"],["it is consist of a shift register and a clock"],["value of the delay is given by;","the discretization time step multiplied by the"],["number-1 of state of the register"]],[["Discretization time step"],["Register initial state"]],list("vec",1,"vec",-1),exprs); if (!ok) { break; } -if (z0>nin||z0<=0) { -message("initial connected input is not a valid input port number"); -} else if (((typ<1)||(typ>8))&&(typ!=-1)) { -message("Datatype is not supported"); +mess=[]; +if (prod(size(z0))<1) { +mess=[[mess],["Register length must be at least 1"],[" "]]; ok=false; +} +if (dt<=0) { +mess=[[mess],["Discretization time step must be positive"],[" "]]; +ok=false; +} +if (!ok) { +message(mess); } else { -it=typ*ones(1,nin); -ot=typ; -if (ok) { -in1=[-ones(nin,1),-2*ones(nin,1)]; -out=[-1,-2]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(nin,1),[]); -if (ok) { -graphics.exprs=exprs; -model.dstate=z0; -x.graphics=graphics; -x.model=model; -break; +evtdly.graphics.exprs[1-1]=exprs[1-1]; +if (evtdly.model.rpar!=dt) { +evtdly.model.rpar=dt; +newpar[$+1-1]=ppath[2-1]; } +x.model.rpar.objs[ppath[2-1]-1]=evtdly; +register.graphics.exprs=exprs[2-1]; +if (or(register.model.dstate!=z0.slice())) { +register.model.dstate=z0.slice(); +newpar[$+1-1]=ppath[1-1]; } +x.model.rpar.objs[ppath[1-1]-1]=register; +break; } } +needcompile=0; +y=needcompile; +typ=newpar; } } -/* autogenerated from "macros/Branching/CLKGotoTagVisibility.sci" */ -function CLKGotoTagVisibility() { - CLKGotoTagVisibility.prototype.define = function CLKGotoTagVisibility() { +/* autogenerated from "macros/Linear/DERIV.sci" */ +function DERIV() { + DERIV.prototype.define = function DERIV() { model=scicos_model(); -model.sim="clkgototagvisibility"; -model.in1=[]; -model.in2=[]; -model.out=[]; -model.out2=[]; -model.evtin=[]; -model.intyp=1; -model.outtyp=1; -model.opar=list("A"); -model.blocktype="c"; -model.firing=false; -model.dep_ut=[false,false]; -exprs="A"; +model.sim=list("deriv",4); +model.in1=-1; +model.out=-1; +model.blocktype="x"; +model.dep_ut=[true,false]; +exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - CLKGotoTagVisibility.prototype.details = function CLKGotoTagVisibility() { + DERIV.prototype.details = function DERIV() { } - CLKGotoTagVisibility.prototype.get = function CLKGotoTagVisibility() { + DERIV.prototype.get = function DERIV() { } - CLKGotoTagVisibility.prototype.set = function CLKGotoTagVisibility() { + DERIV.prototype.set = function DERIV() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); -if (!ok) { -break; -} -if (ok) { -if (model.opar!=list(tag)) { -needcompile=4; -y=needcompile; -} -graphics.exprs=exprs; -model.opar=list(tag); -x.graphics=graphics; -x.model=model; -break; -} -} -needcompile=resume(needcompile) } } -/* autogenerated from "macros/Branching/M_SWITCH.sci" */ -function M_SWITCH() { - M_SWITCH.prototype.define = function M_SWITCH() { -in1=[[1],[-1],[-1]]; -ipar=[[1],[3]]; -nin=2; +/* autogenerated from "macros/Linear/DIFF_c.sci" */ +function DIFF_c() { + DIFF_c.prototype.define = function DIFF_c() { +x0=[[0],[0]]; model=scicos_model(); -model.sim=list("mswitch",4); -model.in1=in1; -model.out=-1; -model.ipar=ipar; +model.sim=list("diffblk_c",10004); +model.in1=1; +model.out=1; +model.state=x0; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(nin)],[string(ipar)]]; +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(x0[1-1]))],[strcat(sci2exp(x0[2-1]))]]; gr_i=[]; -x=standard_define([2.5,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - M_SWITCH.prototype.details = function M_SWITCH() { + DIFF_c.prototype.details = function DIFF_c() { } - M_SWITCH.prototype.get = function M_SWITCH() { + DIFF_c.prototype.get = function DIFF_c() { } - M_SWITCH.prototype.set = function M_SWITCH() { + DIFF_c.prototype.set = function DIFF_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,nin,base,rule,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["zero base indexing (0), otherwise 1"],["rounding rule: int (0), round (1), ceil (2), floor (3)"]],list("vec",1,"vec",1,"vec",1),exprs); +ask_again=false; +[ok,x0,xd0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["Initial state"],["Initial Derivative"]],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } -nin=int(nin); -base=int(base); -if (nin<1) { -message("Number of inputs must be >=1 "); -} else if (!((base==1)||(base==0))) { -message("base indexing must be 1 or 0"); -} else if (!((rule==1)||(rule==0)||(rule==2)||(rule==3))) { -message("incorrect rounding rule"); -} else { -if (nin==1) { -in1=[[1,1],[-1,1]]; -out=[1,1]; -} else { -in1=[[1],[-ones(nin,1)]]; -in2=[[1],[-2*ones(nin,1)]]; -in1=[in1,in2]; -out=[-1,-2]; +x0=x0.slice(); +N=size(x0,"*"); +xd0=xd0.slice(); +Nxd=size(xd0,"*"); +if ((N!=Nxd)) { +message("Incompatible sizes: states and their derivatives should have the same size "); +ask_again=true; } -it=[[-1],[-2*ones(nin,1)]]; -ot=-2; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -if (ok) { +if ((N<=0&&!ask_again)) { +x_message("number of states must be > 0 "); +ask_again=true; +} +if (!ask_again) { graphics.exprs=exprs; -model.ipar=[[base],[rule]]; +model.state=[[x0],[xd0]]; +model.out=[N]; +model.in1=N; x.graphics=graphics; x.model=model; break; } } -} +x.model.firing=[]; } } -/* autogenerated from "macros/Branching/FROMMO.sci" */ -function FROMMO() { - FROMMO.prototype.define = function FROMMO() { +/* autogenerated from "macros/Linear/DLR.sci" */ +function DLR() { + DLR.prototype.define = function DLR() { +x0=0; +A=-1; +B=1; +C=1; +D=0; +exprs=[["1"],["1+z"]]; model=scicos_model(); -model.sim="frommo"; -model.in1=[]; -model.in2=[]; -model.intyp=1; -model.out=-1; -model.out2=-2; -model.outtyp=-1; -model.ipar=[]; -model.opar=list("A"); -model.blocktype="c"; +model.sim=list("dsslti4",4); +model.in1=1; +model.out=1; +model.evtin=1; +model.dstate=x0.slice(); +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="d"; model.dep_ut=[false,false]; -mo=modelica(); -mo.model="frommo"; -mo.outputs="n"; -exprs=["A"]; gr_i=[]; -x=standard_define([2,1],model,exprs,gr_i); -x.graphics.out_implicit=["I"]; +x=standard_define([3,2],model,exprs,gr_i); } - FROMMO.prototype.details = function FROMMO() { + DLR.prototype.details = function DLR() { } - FROMMO.prototype.get = function FROMMO() { + DLR.prototype.get = function DLR() { } - FROMMO.prototype.set = function FROMMO() { + DLR.prototype.set = function DLR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +x0=model.dstate; +ns=prod(size(x0)); +PREVAR_scicos_context=PREVAR_scicos_context; +PREVAR_scicos_context.z=%z; while (true) { -[ok,tag,exprs]=scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); +[ok,num,den,exprs]=scicos_getvalue("Set discrete SISO transfer parameters",[["Numerator (z)"],["Denominator (z)"]],list("pol",1,"pol",1),exprs); if (!ok) { break; } -if (ok) { -if (model.opar!=list(tag)) { -needcompile=4; -y=needcompile; +if (degree(num)>degree(den)) { +message("Transfer function must be proper"); +ok=false; } +if (ok) { +H=cont_frm(num,den); +[A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; -model.opar=list(tag); -x.model=model; +[ns1,ns1]=size(A); +if (ns1<=ns) { +x0=x0.slice(1-1,ns1); +} else { +x0[ns1-1][1-1]=0; +} +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.dstate=x0; +model.rpar=rpar; +if (norm(D,1)!=0) { +mmm=[true,false]; +} else { +mmm=[false,false]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} x.graphics=graphics; +x.model=model; break; } } -needcompile=resume(needcompile) +x.model.firing=[]; } } -/* autogenerated from "macros/Branching/GotoTagVisibility.sci" */ -function GotoTagVisibility() { - GotoTagVisibility.prototype.define = function GotoTagVisibility() { +/* autogenerated from "macros/Linear/DLR_f.sci" */ +function DLR_f() { + DLR_f.prototype.define = function DLR_f() { +x0=0; +A=-1; +B=1; +C=1; +D=0; +exprs=[["1"],["1+z"]]; model=scicos_model(); -model.sim="gototagvisibility"; -model.in1=[]; -model.in2=[]; -model.out=[]; -model.out2=[]; -model.evtin=[]; -model.intyp=1; -model.outtyp=1; -model.opar=list("A"); -model.blocktype="c"; -model.firing=false; +model.sim="dsslti"; +model.in1=1; +model.out=1; +model.evtin=1; +model.dstate=x0.slice(); +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="d"; model.dep_ut=[false,false]; -exprs="A"; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2.5,2.5],model,exprs,gr_i); } - GotoTagVisibility.prototype.details = function GotoTagVisibility() { + DLR_f.prototype.details = function DLR_f() { } - GotoTagVisibility.prototype.get = function GotoTagVisibility() { + DLR_f.prototype.get = function DLR_f() { } - GotoTagVisibility.prototype.set = function GotoTagVisibility() { + DLR_f.prototype.set = function DLR_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +x0=model.dstate; +ns=prod(size(x0)); +PREVAR_scicos_context=PREVAR_scicos_context; +PREVAR_scicos_context.z=%z; while (true) { -[ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); +[ok,num,den,exprs]=scicos_getvalue("Set discrete SISO transfer parameters",[["Numerator (z)"],["Denominator (z)"]],list("pol",1,"pol",1),exprs); if (!ok) { break; } -if (ok) { -if (model.opar!=list(tag)) { -needcompile=4; -y=needcompile; +if (degree(num)>degree(den)) { +message("Transfer must be proper"); +ok=false; } +if (ok) { +H=cont_frm(num,den); +[A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; -model.opar=list(tag); +[ns1,ns1]=size(A); +if (ns1<=ns) { +x0=x0.slice(1-1,ns1); +} else { +x0[ns1-1][1-1]=0; +} +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.dstate=x0; +model.rpar=rpar; +if (norm(D,1)!=0) { +mmm=[true,false]; +} else { +mmm=[false,false]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} x.graphics=graphics; x.model=model; break; } } -needcompile=resume(needcompile) +x.model.firing=[]; } } -/* autogenerated from "macros/Branching/DEMUX.sci" */ -function DEMUX() { - DEMUX.prototype.define = function DEMUX() { -out=2; +/* autogenerated from "macros/Linear/DLSS.sci" */ +function DLSS() { + DLSS.prototype.define = function DLSS() { +x0=0; +A=-1; +B=1; +C=1; +D=0; 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); +model.sim=list("dsslti4",4); +model.in1=1; +model.out=1; +model.evtin=1; +model.dstate=x0.slice(); +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; gr_i=[]; -x=standard_define([.5,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - DEMUX.prototype.details = function DEMUX() { + DLSS.prototype.details = function DLSS() { } - DEMUX.prototype.get = function DEMUX() { + DLSS.prototype.get = function DLSS() { } - DEMUX.prototype.set = function DEMUX() { + DLSS.prototype.set = function DLSS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; +if (size(exprs,"*")==7) { +exprs=exprs[[1:4,7]-1]; +} 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); +[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set discrete linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),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]),[],[]); +out=size(C,1); +if (out==0) { +out=[]; } +in1=size(B,2); +if (in1==0) { +in1=[]; +} +[ms,ns]=size(A); +okD=true; +if (size(D,"*")!=size(C,1)*size(B,2)) { +if (size(D,"*")==1) { +D=D*ones(C*B); +} else if (size(D,"*")==0) { +D=zeros(C*B); } 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); +okD=false; } -[model,graphics,ok]=check_io(model,graphics,nin,out.slice(),[],[]); +} +if (ms!=ns||!okD) { +message(_("Matrix A is not square or D has wrong dimension")); +} else { +[model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); if (ok) { -out=size(out,"*"); +graphics.exprs=exprs; +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +if (D!=[]) { +if (norm(D,1)!=0) { +mmm=[true,false]; +} else { +mmm=[false,false]; } +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; } +} else { +model.dep_ut=[false,false]; } -if (ok) { -graphics.exprs=exprs; -model.ipar=out; +model.dstate=x0.slice(); +model.rpar=rpar; x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/Branching/RELAY_f.sci" */ -function RELAY_f() { - RELAY_f.prototype.define = function RELAY_f() { -i0=0; -in1=[[-1],[-1]]; -nin=2; +/* autogenerated from "macros/Linear/DLSS_f.sci" */ +function DLSS_f() { + DLSS_f.prototype.define = function DLSS_f() { +x0=0; +A=-1; +B=1; +C=1; +D=0; model=scicos_model(); -model.sim=list("relay",2); -model.in1=in1; -model.out=-1; -model.evtin=ones(in1); -model.dstate=i0; -model.blocktype="c"; -model.firing=[]; -model.dep_ut=[true,true]; -exprs=[[string(nin)],[string(i0+1)]]; +model.sim=list("dsslti",1); +model.in1=1; +model.out=1; +model.evtin=1; +model.dstate=x0.slice(); +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - RELAY_f.prototype.details = function RELAY_f() { + DLSS_f.prototype.details = function DLSS_f() { } - RELAY_f.prototype.get = function RELAY_f() { + DLSS_f.prototype.get = function DLSS_f() { } - RELAY_f.prototype.set = function RELAY_f() { + DLSS_f.prototype.set = function DLSS_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; +if (size(exprs,"*")==7) { +exprs=exprs[[1:4,7]-1]; +} model=arg1.model; -ipar=model.ipar; while (true) { -[ok,nin,z0,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["initial connected input"]],list("vec",1,"vec",1),exprs); +[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set discrete linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break; } -if (z0>nin||z0<=0) { -message("initial connected input is not a valid input port number"); +out=size(C,1); +if (out==0) { +out=[]; +} +in1=size(B,2); +if (in1==0) { +in1=[]; +} +[ms,ns]=size(A); +if (ms!=ns) { +message("A matrix must be square"); } else { -[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,ones(nin,1),[]); +[model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); if (ok) { graphics.exprs=exprs; -model.dstate=z0-1; +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +if (D!=[]) { +if (norm(D,1)!=0) { +mmm=[true,false]; +} else { +mmm=[false,false]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} +} else { +model.dep_ut=[false,false]; +} +model.dstate=x0.slice(); +model.rpar=rpar; x.graphics=graphics; x.model=model; break; @@ -6818,36 +6099,87 @@ break; } } } -/* autogenerated from "macros/Branching/NRMSOM_f.sci" */ -function NRMSOM_f() { - NRMSOM_f.prototype.define = function NRMSOM_f() { -in1=[[-1],[-1]]; -nin=2; +/* autogenerated from "macros/Linear/DOLLAR.sci" */ +function DOLLAR() { + DOLLAR.prototype.define = function DOLLAR() { +z=0; +inh=0; +in1=1; +exprs=string([[z],[inh]]); model=scicos_model(); -model.sim="junk"; +model.sim=list("dollar4",4); model.in1=in1; -model.out=-1; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[string(nin)]; +model.out=in1; +model.evtin=1-inh; +model.dstate=z; +model.blocktype="d"; +model.dep_ut=[false,false]; gr_i=[]; -x=standard_define([.2,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - NRMSOM_f.prototype.details = function NRMSOM_f() { + DOLLAR.prototype.details = function DOLLAR() { } - NRMSOM_f.prototype.get = function NRMSOM_f() { + DOLLAR.prototype.get = function DOLLAR() { } - NRMSOM_f.prototype.set = function NRMSOM_f() { + DOLLAR.prototype.set = function DOLLAR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +if (size(exprs,"*")<2) { +exprs[2-1]="0"; +} while (true) { -[ok,nin,exprs]=scicos_getvalue("Set parameters",["number of inputs"],list("vec",1),exprs); +[ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",[["initial condition"],["Inherit (no:0, yes:1)"]],list("mat",[-1,-2],"vec",-1),exprs); if (!ok) { break; } -[model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,[],[]); +out=[size(a,1),size(a,2)]; +if (out==0) { +out=[]; +} +in1=out; +model.sim=list("dollar4_m",4); +model.odstate=list(a); +model.dstate=[]; +if (this.type[(a)==1-1]) { +if (isreal(a)) { +it=1; +ot=1; +if ((size(a,1)==1||size(a,2)==1)) { +model.sim=list("dollar4",4); +model.dstate=a.slice(); +model.odstate=list(); +} +} else { +it=2; +ot=2; +} +} else if ((typeof(a)=="int32")) { +it=3; +ot=3; +} else if ((typeof(a)=="int16")) { +it=4; +ot=4; +} else if ((typeof(a)=="int8")) { +it=5; +ot=5; +} else if ((typeof(a)=="uint32")) { +it=6; +ot=6; +} else if ((typeof(a)=="uint16")) { +it=7; +ot=7; +} else if ((typeof(a)=="uint8")) { +it=8; +ot=8; +} else { +message("type is not recognized"); +ok=false; +} +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-inh,1),[]); +} if (ok) { graphics.exprs=exprs; x.graphics=graphics; @@ -6857,53 +6189,54 @@ break; } } } -/* autogenerated from "macros/Sources/INIMPL_f.sci" */ -function INIMPL_f() { - INIMPL_f.prototype.define = function INIMPL_f() { +/* autogenerated from "macros/Linear/DOLLAR_f.sci" */ +function DOLLAR_f() { + DOLLAR_f.prototype.define = function DOLLAR_f() { +z=0; +inh=0; +in1=1; +exprs=string([[z],[inh]]); model=scicos_model(); -model.sim="inimpl"; -model.out=[-1]; -model.out2=[1]; -model.ipar=[1]; +model.sim="dollar"; +model.in1=in1; +model.out=in1; +model.evtin=1-inh; +model.dstate=z; +model.blocktype="d"; model.dep_ut=[false,false]; -model.blocktype="c"; -mo=modelica(); -mo.model="PORT"; -mo.outputs="n"; -model.equations=mo; -prt=1; -exprs="1"; gr_i=[]; -x=standard_define([1,1],model,exprs,gr_i); -x.graphics.out_implicit=["I"]; +x=standard_define([2,2],model,exprs,gr_i); } - INIMPL_f.prototype.details = function INIMPL_f() { + DOLLAR_f.prototype.details = function DOLLAR_f() { } - INIMPL_f.prototype.get = function INIMPL_f() { + DOLLAR_f.prototype.get = function DOLLAR_f() { } - INIMPL_f.prototype.set = function INIMPL_f() { + DOLLAR_f.prototype.set = function DOLLAR_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==2) { -exprs=exprs[1-1]; +if (size(exprs,"*")<2) { +exprs[2-1]="0"; } while (true) { -[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"INIMPL_f")],[" "],[gettext("Implicit input port")],[" "]],"Port Number",list("vec",1),exprs); +[ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",[["initial condition"],["Inherit (no:0, yes:1)"]],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } -prt=int(prt); -if (prt<=0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); -} else { -if (model.ipar!=prt) { -needcompile=4; -y=needcompile; +out=size(a,"*"); +if (out==0) { +out=[]; } -model.ipar=prt; +in1=out; +if (ok) { +[model,graphics,ok]=check_io(model,graphics,-1,-1,ones(1-inh,1),[]); +} +if (ok) { graphics.exprs=exprs; +model.dstate=a; +model.in1=in1; +model.out=out; x.graphics=graphics; x.model=model; break; @@ -6911,375 +6244,409 @@ break; } } } -/* autogenerated from "macros/Sources/RAND_m.sci" */ -function RAND_m() { - RAND_m.prototype.define = function RAND_m() { -a=0; -b=1; -dt=0; -flag=0; -function_name="rndblk_m"; -funtyp=4; +/* autogenerated from "macros/Linear/DOLLAR_m.sci" */ +function DOLLAR_m() { + DOLLAR_m.prototype.define = function DOLLAR_m() { +z=0; +inh=0; +in1=1; +exprs=string([[z],[inh]]); model=scicos_model(); -model.sim=list(function_name,funtyp); -model.in1=[]; -model.in2=[]; -model.intyp=[]; -model.out=1; -model.out2=1; -model.outtyp=1; -model.evtin=1; -model.evtout=[]; -model.state=[]; -model.dstate=[[int(rand()*(10^7-1))],[0*a.slice()]]; -model.rpar=[a.slice(),b.slice()]; -model.ipar=flag; +model.sim=list("dollar4",4); +model.in1=in1; +model.out=in1; +model.evtin=1-inh; +model.dstate=z; model.blocktype="d"; -model.firing=[]; model.dep_ut=[false,false]; -exprs=[[sci2exp(1)],[string(flag)],[sci2exp([a])],[sci2exp([b])],[sci2exp([model.dstate[1-1],int(rand()*(10^7-1))])]]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - RAND_m.prototype.details = function RAND_m() { + DOLLAR_m.prototype.details = function DOLLAR_m() { } - RAND_m.prototype.get = function RAND_m() { + DOLLAR_m.prototype.get = function DOLLAR_m() { } - RAND_m.prototype.set = function RAND_m() { + DOLLAR_m.prototype.set = function DOLLAR_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==14) { -exprs[9-1]=[]; +if (size(exprs,"*")<2) { +exprs[2-1]="0"; } while (true) { -[ok,typ,flag,a,b,seed_c,exprs]=scicos_getvalue([["Set Random generator block parameters"],["flag = 0 : Uniform distribution A is min and A+B max"],["flag = 1 : Normal distribution A is mean and B deviation"],[" "],["A and B must be matrix with equal sizes"]],[["Datatype(1=real double 2=complex)"],["flag"],["A"],["B"],["SEED"]],list("vec",1,"vec",1,"mat",[-1,-2],"mat","[-1 -2]","mat",[1,2]),exprs); +[ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",[["initial condition"],["Inherit (no:0, yes:1)"]],list("mat",[-1,-2],"vec",-1),exprs); if (!ok) { break; } -if (flag!=0&&flag!=1) { -message("flag must be equal to 1 or 0"); -} else { -out=size(a); -if (typ==1) { -function_name="rndblk_m"; -model.rpar=[[real(a.slice())],[real(b.slice())]]; -model.dstate=[[seed_c[1-1]],[0*real(a.slice())]]; +out=[size(a,1),size(a,2)]; +if (out==0) { +out=[]; +} +in1=out; +model.sim=list("dollar4_m",4); +model.odstate=list(a); +model.dstate=[]; +if ((this.type[a-1]==1)) { +if (isreal(a)) { +it=1; ot=1; -} else if (typ==2) { -function_name="rndblkz_m"; +if ((size(a,1)==1||size(a,2)==1)) { +model.sim=list("dollar4",4); +model.dstate=a.slice(); +model.odstate=list(); +} +} else { +it=2; ot=2; -model.rpar=[[real(a.slice())],[imag(a.slice())],[real(b.slice())],[imag(b.slice())]]; -model.dstate=[[seed_c.slice()],[0*[[real(a.slice())],[imag(a.slice())]]]]; +} +} else if ((typeof(a)=="int32")) { +it=3; +ot=3; +} else if ((typeof(a)=="int16")) { +it=4; +ot=4; +} else if ((typeof(a)=="int8")) { +it=5; +ot=5; +} else if ((typeof(a)=="uint32")) { +it=6; +ot=6; +} else if ((typeof(a)=="uint16")) { +it=7; +ot=7; +} else if ((typeof(a)=="uint8")) { +it=8; +ot=8; } else { -message("Datatype is not supported"); +message("type is not recognized"); ok=false; } if (ok) { -[model,graphics,ok]=set_io(model,graphics,list([],[]),list(out,ot),1,[]); +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-inh,1),[]); +} if (ok) { -model.sim=list(function_name,4); graphics.exprs=exprs; -model.ipar=flag; x.graphics=graphics; x.model=model; break; } } -} -} } } -/* autogenerated from "macros/Sources/GEN_SQR.sci" */ -function GEN_SQR() { - GEN_SQR.prototype.define = function GEN_SQR() { -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-176.97473,421.18646,173.61587,524.41503,827,480,0,15,827,480,755,614,1.4],Title="SuperBlock",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=[["if typeof(Amin)<>typeof(Amax) then error(\'Minimum value and Maximum value must have the same type\');end"],["if and(rule<>[1;2]) then error(\'Initial Value must be 1 (for Min) or 2 (for Max)\');end"],["if Amin>Amax then error(\'Maximum value must be greater than the Minimum Value\');end"],["P=%pi/F"],[""]],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="Counter",graphics=scicos_graphics(orig=[18.229901,339.5057],sz=[60,40],flip=true,theta=0,exprs=[["1"],["2"],["rule"]],pin=[],pout=8,pein=16,peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("counter",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=1,evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=[[1],[2],[1]],opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[38.096074,293.82198],sz=[40,40],flip=true,theta=0,exprs="Amin",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(-1),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[3-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[37.378886,245.02389],sz=[40,40],flip=true,theta=0,exprs="Amax",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(1),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[4-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[116.26954,269.42294],sz=[40,40],flip=true,theta=0,exprs=[["-1"],["2"],["1"]],pin=[[5],[6]],pout=14,pein=[[9],[10]],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[-1],[-1]],out=-1,out2=-2,outtyp=-1,evtin=[[1],[1]],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[5-1]=scicos_link(xx=[[86.667502],[107.69811],[107.69811]],yy=[[313.82198],[313.82198],[296.0896]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[4,1,1]); -scs_m_1.objs[6-1]=scicos_link(xx=[[85.950315],[107.69811],[107.69811]],yy=[[265.02389],[265.02389],[282.75627]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,2,1]); -scs_m_1.objs[7-1]=scicos_block(gui="ESELECT_f",graphics=scicos_graphics(orig=[106.9461,339.7496],sz=[60,40],flip=true,theta=0,exprs=[["2"],["0"],["0"]],pin=8,pout=[],pein=[],peout=[[9],[10]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("eselect",-2),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[[-1],[-1]],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[8-1]=scicos_link(xx=[[86.80133],[98.374671]],yy=[[359.5057],[359.7496]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[7,1,1]); -scs_m_1.objs[9-1]=scicos_link(xx=[[126.9461],[129.60287]],yy=[[334.03532],[315.13722]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1,0],to=[4,1,1]); -scs_m_1.objs[10-1]=scicos_link(xx=[[146.9461],[142.93621]],yy=[[334.03532],[315.13722]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,2,0],to=[4,2,1]); -scs_m_1.objs[11-1]=mlist("Deleted"); -scs_m_1.objs[12-1]=mlist("Deleted"); -scs_m_1.objs[13-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[184.40238,278.75198],sz=[20,20],flip=true,theta=0,exprs="1",pin=14,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[14-1]=scicos_link(xx=[[164.84097],[184.40238]],yy=[[289.42294],[288.75198]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[13,1,1]); -scs_m_1.objs[15-1]=scicos_block(gui="SampleCLK",graphics=scicos_graphics(orig=[18.313686,403.57431],sz=[60,40],flip=true,theta=0,exprs=[["F/2"],["0"]],pin=[],pout=[],pein=[],peout=16,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sampleclk",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[[1/2],[0]],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[16-1]=scicos_link(xx=[[48.313686],[48.229901]],yy=[[403.57431],[385.21998]],id="drawlink",thick=[0,0],ct=[5,-1],from=[15,1,0],to=[1,1,1]); +/* autogenerated from "macros/Linear/GAINBLK.sci" */ +function GAINBLK() { + GAINBLK.prototype.define = function GAINBLK() { +gain=1; +in1=-1; +out=-1; +in2=-2; +out2=-2; model=scicos_model(); -model.sim="csuper"; -model.in1=[]; -model.in2=[]; -model.intyp=1; -model.out=-1; -model.out2=-2; -model.outtyp=-1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.odstate=list(); -model.rpar=scs_m_1; -model.ipar=1; -model.opar=list(); -model.blocktype="h"; -model.firing=[]; -model.dep_ut=[false,false]; -model.label=""; -model.nzcross=0; -model.nmode=0; -model.equations=list(); -Amin=-1; -Amax=1; -rule=1; -F=1; -exprs=[sci2exp(Amin),sci2exp(Amax),sci2exp(rule),sci2exp(F)]; +model.sim=list("gainblk",4); +model.in1=in1; +model.out=out; +model.in2=in2; +model.out2=out2; +model.rpar=gain; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[strcat(sci2exp(gain))]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - GEN_SQR.prototype.details = function GEN_SQR() { + GAINBLK.prototype.details = function GAINBLK() { } - GEN_SQR.prototype.get = function GEN_SQR() { + GAINBLK.prototype.get = function GAINBLK() { } - GEN_SQR.prototype.set = function GEN_SQR() { -y=needcompile; -arg1.model.ipar=1; -typ=list(); + GAINBLK.prototype.set = function GAINBLK() { +x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -Btitre="Set GEN_SQR parameters"; -Exprs0=[["Amin"],["Amax"],["rule"],["F"]]; -Bitems=[["Minimum Value"],["Maximum Value"],["Initial Value( 1= Minimum Value 2= Maximum Value)"],["Period (sec)"]]; -Ss=list("mat",[-1,-1],"mat",[-1,-1],"pol",-1,"pol",-1); -scicos_context=struct(); -x=arg1; -ok=false; -while (!ok) { -[ok,scicos_context.Amin,scicos_context.Amax,scicos_context.rule,scicos_context.F,exprs]=scicos_getvalue(Btitre,Bitems,Ss,exprs); -if (!ok) { -return; +model=arg1.model; +if (size(exprs,"*")==1) { +exprs=[[exprs],[sci2exp(0)]]; } -PREVAR_scicos_context=scicos_context; -sblock=x.model.rpar; -[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); -if (ierr==0) { -[sblock,%w,needcompile2,ok]=do_eval(sblock,list()); -if (ok) { -y=max(2,needcompile,needcompile2); -x.graphics.exprs=exprs; -x.model.rpar=sblock; +while (true) { +[ok,gain,over,exprs]=scicos_getvalue("Set gain block parameters",[["Gain"],["Do On Overflow(0=Nothing 1=Saturate 2=Error)"]],list("mat",[-1,-1],"vec",1),exprs); +if (!ok) { break; } +if (gain==[]) { +message("Gain must have at least one element"); } else { -message(lasterror()); +if (typeof(gain)=="constant") { +if (isreal(gain)) { +it=1; +ot=1; +model.sim=list("gainblk",4); +model.rpar=gain.slice(); +model.opar=list(); +} else { +message("type is not supported"); ok=false; } +} else { +if ((over==0)) { +if ((typeof(gain)=="int32")) { +ot=3; +model.sim=list("gainblk_i32n",4); +} else if ((typeof(gain)=="int16")) { +ot=4; +model.sim=list("gainblk_i16n",4); +} else if ((typeof(gain)=="int8")) { +ot=5; +model.sim=list("gainblk_i8n",4); +} else if ((typeof(gain)=="uint32")) { +ot=6; +model.sim=list("gainblk_ui32n",4); +} else if ((typeof(gain)=="uint16")) { +ot=7; +model.sim=list("gainblk_ui16n",4); +} else if ((typeof(gain)=="uint8")) { +ot=8; +model.sim=list("gainblk_ui8n",4); +} else { +message("type is not supported."); +ok=false; } - } +} else if ((over==1)) { +if ((typeof(gain)=="int32")) { +ot=3; +model.sim=list("gainblk_i32s",4); +} else if ((typeof(gain)=="int16")) { +ot=4; +model.sim=list("gainblk_i16s",4); +} else if ((typeof(gain)=="int8")) { +ot=5; +model.sim=list("gainblk_i8s",4); +} else if ((typeof(gain)=="uint32")) { +ot=6; +model.sim=list("gainblk_ui32s",4); +} else if ((typeof(gain)=="uint16")) { +ot=7; +model.sim=list("gainblk_ui16s",4); +} else if ((typeof(gain)=="uint8")) { +ot=8; +model.sim=list("gainblk_ui8s",4); +} else { +message("type is not supported."); +ok=false; } -/* autogenerated from "macros/Sources/GENSQR_f.sci" */ -function GENSQR_f() { - GENSQR_f.prototype.define = function GENSQR_f() { -Amplitude=1; -model=scicos_model(); -model.sim="gensqr"; -model.out=1; -model.out2=1; -model.outtyp=1; -model.evtin=1; -model.dstate=Amplitude; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=string(Amplitude); -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); - } - GENSQR_f.prototype.details = function GENSQR_f() { - } - GENSQR_f.prototype.get = function GENSQR_f() { - } - GENSQR_f.prototype.set = function GENSQR_f() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -if (size(exprs,"*")==2) { -exprs=exprs[2-1]; +} else if ((over==2)) { +if ((typeof(gain)=="int32")) { +ot=3; +model.sim=list("gainblk_i32e",4); +} else if ((typeof(gain)=="int16")) { +ot=4; +model.sim=list("gainblk_i16e",4); +} else if ((typeof(gain)=="int8")) { +ot=5; +model.sim=list("gainblk_i8e",4); +} else if ((typeof(gain)=="uint32")) { +ot=6; +model.sim=list("gainblk_ui32e",4); +} else if ((typeof(gain)=="uint16")) { +ot=7; +model.sim=list("gainblk_ui16e",4); +} else if ((typeof(gain)=="uint8")) { +ot=8; +model.sim=list("gainblk_ui8e",4); +} else { +message("type is not an integer."); +ok=false; +} +} else { +message("Do on Overflow must be 0,1,2"); +ok=false; +} +model.rpar=[]; +model.opar=list(gain.slice()); +} +if (ok) { +[out,in1]=size(gain); +if (out*in1!=1) { +[model,graphics,ok]=set_io(model,graphics,list([in1,-1],ot),list([out,-1],ot),[],[]); +} else { +[model,graphics,ok]=set_io(model,graphics,list([-1,-2],ot),list([-1,-2],ot),[],[]); } -while (true) { -[ok,Amplitude,exprs]=scicos_getvalue(["Set Square generator block parameters"],["Amplitude"],list("vec",1),exprs); -if (!ok) { -break; } +if (ok) { graphics.exprs=exprs; -model.dstate=Amplitude; -model.out2=1; -model.outtyp=1; x.graphics=graphics; x.model=model; break; } +} +} } } -/* autogenerated from "macros/Sources/IN_f.sci" */ -function IN_f() { - IN_f.prototype.define = function IN_f() { -prt=1; +/* autogenerated from "macros/Linear/GAINBLK_f.sci" */ +function GAINBLK_f() { + GAINBLK_f.prototype.define = function GAINBLK_f() { +gain=1; +in1=1; +out=1; model=scicos_model(); -model.sim="input"; -model.out=-1; -model.out2=-2; -model.outtyp=-1; -model.ipar=prt; +model.sim="gain"; +model.in1=in1; +model.out=out; +model.rpar=gain; model.blocktype="c"; -model.dep_ut=[false,false]; -exprs=sci2exp(prt); +model.dep_ut=[true,false]; +exprs=[strcat(sci2exp(gain))]; gr_i=[]; -x=standard_define([1,1],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - IN_f.prototype.details = function IN_f() { + GAINBLK_f.prototype.details = function GAINBLK_f() { } - IN_f.prototype.get = function IN_f() { + GAINBLK_f.prototype.get = function GAINBLK_f() { } - IN_f.prototype.set = function IN_f() { + GAINBLK_f.prototype.set = function GAINBLK_f() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; -if (size(exprs,"*")==2) { -exprs=exprs[1-1]; -} -if (size(exprs,"*")==1) { -exprs=[[exprs[1-1]],["[-1 -2]"],["-1"]]; -} +model=arg1.model; while (true) { -[ok,prt,otsz,ot,exprs]=getvalue(_["Set Input block parameters"-1],[[_["Port number"-1]],[_["Outport size ([-1 -2] for inherit)"-1]],[_["Outport Type (-1 for inherit)"-1]]],list("vec",1,"vec",-1,"vec",1),exprs); +[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); if (!ok) { break; } -prt=int(prt); -if (prt<=0) { -message(_["Port number must be a positive integer"-1]); -} else if (!isequal(size(otsz,"*"),2)) { -message(_["Outport Size must be a 2 elements vector"-1]); -} else if (((ot<1||ot>9)&&(ot!=-1))) { -message(_["Outport type must be a number between 1 and 9, or -1 for inheritance."-1]); +if (gain==[]) { +message("Gain must have at least one element"); } else { -if (model.ipar!=prt) { -needcompile=4; -y=needcompile; -} -model.ipar=prt; -model.firing=[]; -model.out=otsz[1-1]; -model.out2=otsz[2-1]; -model.outtyp=ot; +[out,in1]=size(gain); +[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); +if (ok) { graphics.exprs=exprs; +model.rpar=gain.slice(); x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/Sources/TKSCALE.sci" */ -function TKSCALE() { - TKSCALE.prototype.define = function TKSCALE() { -a=-10; -b=10; -f=1; +/* autogenerated from "macros/Linear/GAIN_f.sci" */ +function GAIN_f() { + GAIN_f.prototype.define = function GAIN_f() { +gain=1; +in1=1; +out=1; model=scicos_model(); -model.sim=list("tkscaleblk",5); +model.sim="gain"; +model.in1=1; model.out=1; -model.evtin=1; -model.rpar=[[a],[b],[f]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[sci2exp(a)],[sci2exp(b)],[sci2exp(f)]]; +model.rpar=gain; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[strcat(sci2exp(gain))],[strcat(sci2exp(in1))],[strcat(sci2exp(out))]]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - TKSCALE.prototype.details = function TKSCALE() { + GAIN_f.prototype.details = function GAIN_f() { } - TKSCALE.prototype.get = function TKSCALE() { + GAIN_f.prototype.get = function GAIN_f() { } - TKSCALE.prototype.set = function TKSCALE() { + GAIN_f.prototype.set = function GAIN_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -[ok,a,b,f,exprs]=scicos_getvalue("Set scale block parameters",[["Min value"],["Max value"],["Normalization"]],list("vec",1,"vec",1,"vec",1),exprs); +while (true) { +[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); +if (!ok) { +break; +} +if (gain==[]) { +message("Gain must have at least one element"); +} else { +[out,in1]=size(gain); +[model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); if (ok) { graphics.exprs=exprs; -model.rpar=[[a],[b],[f]]; +model.rpar=gain.slice(); x.graphics=graphics; x.model=model; +break; +} +} } } } -/* autogenerated from "macros/Sources/STEP.sci" */ -function STEP() { - STEP.prototype.define = function STEP() { -rpar=[[0],[1]]; +/* autogenerated from "macros/Linear/INTEGRAL.sci" */ +function INTEGRAL() { + INTEGRAL.prototype.define = function INTEGRAL() { +maxp=1; +minp=-1; +rpar=[]; model=scicos_model(); -model.sim=list("step_func",4); -model.evtin=1; -model.evtout=1; +model.state=0; +model.sim=list("integral_func",4); +model.in1=1; model.out=1; -model.out2=1; -model.outtyp=1; -model.firing=1; model.rpar=rpar; model.blocktype="c"; -model.dep_ut=[false,false]; -exprs=[[string(1)],[string(rpar)]]; +model.dep_ut=[false,true]; +exprs=string([[0],[0],[0],[maxp],[minp]]); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); +x.graphics.id="1/s"; } - STEP.prototype.details = function STEP() { + INTEGRAL.prototype.details = function INTEGRAL() { } - STEP.prototype.get = function STEP() { + INTEGRAL.prototype.get = function INTEGRAL() { } - STEP.prototype.set = function STEP() { + INTEGRAL.prototype.set = function INTEGRAL() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,temps,in1,fi,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"STEP_FUNCTION")],[" "],[gettext("Step Function")],[" "]],[[gettext("Step Time")],[gettext("Initial Value")],[gettext("Final Value")]],list("vec",1,"vec",-1,"vec",-1),exprs); +[ok,x0,reinit,satur,maxp,lowp,exprs]=scicos_getvalue("Set Integral block parameters",[["Initial Condition"],["With re-intialization (1:yes, 0:no)"],["With saturation (1:yes, 0:no)"],["Upper limit"],["Lower limit"]],list("vec",-1,"vec",1,"vec",1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -in1=in1.slice(); -fi=fi.slice(); -if (size(in1,"*")!=size(fi,"*")) { -if (size(in1,"*")==1) { -in1=in1*ones(fi); -} else if (size(fi,"*")==1) { -fi=fi*ones(in1); -} else { -block_parameter_error(msprintf(gettext("\'Initial Value\' and \'Final Value\': incompatible sizes: %d and %d."),size(in1,"*"),size(fi,"*")),gettext("Same sizes expected.")); -ok=false; +x0=x0.slice(); +maxp=maxp.slice(); +lowp=lowp.slice(); +if (reinit!=0) { +reinit=1; } +if (satur!=0) { +satur=1; +if (size(maxp,"*")==1) { +maxp=maxp*ones(x0); } -if (ok) { -model.out2=1; -model.outtyp=1; -[model,graphics,ok]=check_io(model,graphics,[],size(fi,"*"),1,1); +if (size(lowp,"*")==1) { +lowp=lowp*ones(x0); } -if (ok) { -model.firing=temps; -if (temps==0) { -rpar=[[fi],[fi]]; +if ((size(x0,1)!=size(maxp,1)||size(x0,1)!=size(lowp,1))) { +message("x0 and Upper limit and Lower limit must have same size"); +ok=false; +} else if (or(maxp<=lowp)) { +message("Upper limits must be > Lower limits"); +ok=false; +} else if (or(x0>maxp)||or(x0<lowp)) { +message("Initial condition x0 should be inside the limits"); +ok=false; } else { -rpar=[[in1],[fi]]; +rpar=[[maxp],[lowp]]; +model.nzcross=size(x0,1); +model.nmode=size(x0,1); } +} else { +rpar=[]; +model.nzcross=0; +model.nmode=0; +} +if (ok) { model.rpar=rpar; +model.state=x0; +[model,graphics,ok]=check_io(model,graphics,size(x0,1)*[[1],[ones(reinit,1)]],size(x0,1),ones(reinit,1),[]); +} +if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -7288,107 +6655,159 @@ break; } } } -/* autogenerated from "macros/Sources/CURV_f.sci" */ -function CURV_f() { - CURV_f.prototype.define = function CURV_f() { -xx=[[0],[1],[2]]; -yy=[[-5],[5],[0]]; -rect=[0,-5,2,5]; -axisdata=[[2],[10],[2],[10]]; -ipar=[[size(xx,1)],[axisdata.slice()]]; -rpar=[[xx],[yy],[rect.slice()]]; +/* autogenerated from "macros/Linear/INTEGRAL_f.sci" */ +function INTEGRAL_f() { + INTEGRAL_f.prototype.define = function INTEGRAL_f() { +x0=0; model=scicos_model(); -model.sim="intplt"; -model.in1=[]; +model.sim="integr"; +model.in1=1; model.out=1; -model.rpar=[[xx],[yy],[rect.slice()]]; -model.ipar=[[size(xx,1)],[axisdata.slice()]]; +model.state=x0; model.blocktype="c"; model.dep_ut=[false,true]; +exprs=strcat(sci2exp(x0)); gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - CURV_f.prototype.details = function CURV_f() { + INTEGRAL_f.prototype.details = function INTEGRAL_f() { } - CURV_f.prototype.get = function CURV_f() { + INTEGRAL_f.prototype.get = function INTEGRAL_f() { } - CURV_f.prototype.set = function CURV_f() { + INTEGRAL_f.prototype.set = function INTEGRAL_f() { x=arg1; -model=arg1.model; graphics=arg1.graphics; -rpar=model.rpar; -ipar=model.ipar; -n=ipar[1-1]; -xx=rpar.slice(1-1,n); -yy=rpar.slice(n+1-1,2*n); -gc=list(rpar.slice(2*n+1-1,2*n+4),ipar.slice(2-1,5)); +exprs=graphics.exprs; +model=arg1.model; while (true) { -[ln,fun]=where() -if (!or(fun=="do_eval")) { -[xx,yy,ok,gc]=edit_curv(xx,yy,"axy",[" "," "," "],gc); -} else { -ok=true; -} +[ok,x0,exprs]=scicos_getvalue("Set continuous linear system parameters","Initial state",list("vec",1),exprs); if (!ok) { break; } -n=size(xx,"*"); -if (or(xx.slice(2-1,n)-xx.slice(1-1,n-1)<0)) { -message("You have not defined a function"); -ok=false; -} -if (ok) { -model.sim="intplt"; -model.firing=[]; -rect=gc[1-1]; -model.rpar=[[xx.slice()],[yy.slice()],[rect.slice()]]; -axisdata=gc[2-1]; -model.ipar=[[size(xx,"*")],[axisdata.slice()]]; +graphics.exprs=exprs; +model.state=x0; x.graphics=graphics; x.model=model; break; } -} +x.model.firing=[]; } } -/* autogenerated from "macros/Sources/RAMP.sci" */ -function RAMP() { - RAMP.prototype.define = function RAMP() { -slope=0; -iout=0; -stt=0; -rpar=[[slope],[stt],[iout]]; +/* autogenerated from "macros/Linear/INTEGRAL_m.sci" */ +function INTEGRAL_m() { + INTEGRAL_m.prototype.define = function INTEGRAL_m() { +maxp=1; +minp=-1; +rpar=[]; model=scicos_model(); -model.sim=list("ramp",4); -model.in1=[]; +model.state=0; +model.sim=list("integral_func",4); +model.in1=1; model.out=1; +model.in2=1; +model.out2=1; model.rpar=rpar; model.blocktype="c"; -model.nmode=1; -model.nzcross=1; model.dep_ut=[false,true]; -exprs=[string(rpar)]; +exprs=string([[0],[0],[0],[maxp],[minp]]); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - RAMP.prototype.details = function RAMP() { + INTEGRAL_m.prototype.details = function INTEGRAL_m() { } - RAMP.prototype.get = function RAMP() { + INTEGRAL_m.prototype.get = function INTEGRAL_m() { } - RAMP.prototype.set = function RAMP() { + INTEGRAL_m.prototype.set = function INTEGRAL_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,slope,stt,iout,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"RAMP")],[" "],[gettext("Ramp function")],[" "]],[[gettext("Slope")],[gettext("Start Time")],[gettext("Initial Value")]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,x0,reinit,satur,maxp,lowp,exprs]=scicos_getvalue("Set Integral block parameters",[["Initial Condition"],["With re-intialization (1:yes, 0:no)"],["With saturation (1:yes, 0:no)"],["Upper limit"],["Lower limit"]],list("mat",[-1,-1],"vec",1,"vec",1,"mat",[-1,-1],"mat",[-1,-1]),exprs); if (!ok) { break; } -if (stt<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Start Time\' parameter: %e."),stt),gettext("Null or positive integer expected.")); +if (isreal(x0)) { +Datatype=1; } else { -model.rpar=[[slope],[stt],[iout]]; +Datatype=2; +} +if (reinit!=0) { +reinit=1; +} +if (satur!=0) { +satur=1; +if (Datatype==1) { +if (size(maxp,"*")==1) { +maxp=maxp*ones(x0); +} +if (size(lowp,"*")==1) { +lowp=lowp*ones(x0); +} +if ((size(x0)!=size(maxp)||size(x0)!=size(lowp))) { +message("x0 and Upper limit and Lower limit must have same size"); +ok=false; +} else if (or(maxp<=lowp)) { +message("Upper limits must be > Lower limits"); +ok=false; +} else if (or(x0>maxp)||or(x0<lowp)) { +message("Initial condition x0 should be inside the limits"); +ok=false; +} else { +rpar=[[real(maxp.slice())],[real(lowp.slice())]]; +model.nzcross=size(x0,"*"); +model.nmode=size(x0,"*"); +} +} else if ((Datatype==2)) { +if (size(maxp,"*")==1) { +maxp=math.complex(maxp*ones(x0),(maxp*ones(x0))); +} +if (size(lowp,"*")==1) { +lowp=math.complex(lowp*ones(x0),(lowp*ones(x0))); +} +if ((size(x0)!=size(maxp)||size(x0)!=size(lowp))) { +message("x0 and Upper limit and Lower limit must have same size"); +ok=false; +} else if (or(real(maxp)<=real(lowp))||or(imag(maxp)<=imag(lowp))) { +message("Upper limits must be > Lower limits"); +ok=false; +} else if (or(real(x0)>real(maxp))||or(real(x0)<real(lowp))||or(imag(x0)>imag(maxp))||or(imag(x0)<imag(lowp))) { +message("Initial condition x0 should be inside the limits"); +ok=false; +} else { +rpar=[[real(maxp.slice())],[real(lowp.slice())],[imag(maxp.slice())],[imag(lowp.slice())]]; +model.nzcross=2*size(x0,"*"); +model.nmode=2*size(x0,"*"); +} +} +} else { +rpar=[]; +model.nzcross=0; +model.nmode=0; +} +if (ok) { +model.rpar=rpar; +if ((Datatype==1)) { +model.state=real(x0.slice()); +model.sim=list("integral_func",4); +it=[[1],[ones(reinit,1)]]; +ot=1; +} else if ((Datatype==2)) { +model.state=[[real(x0.slice())],[imag(x0.slice())]]; +model.sim=list("integralz_func",4); +it=[[2],[2*ones(reinit,1)]]; +ot=2; +} else { +message("Datatype is not supported"); +ok=false; +} +if (ok) { +in1=[size(x0,1)*[[1],[ones(reinit,1)]],size(x0,2)*[[1],[ones(reinit,1)]]]; +out=size(x0); +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(reinit,1),[]); +} +} +if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -7397,212 +6816,196 @@ break; } } } -/* autogenerated from "macros/Sources/CLOCK_c.sci" */ -function CLOCK_c() { - CLOCK_c.prototype.define = function CLOCK_c() { -evtdly=EVTDLY_c["define"-1]; -evtdly.graphics.orig=[320,232]; -evtdly.graphics.sz=[40,40]; -evtdly.graphics.flip=true; -evtdly.graphics.exprs=[["0.1"],["0.1"]]; -evtdly.graphics.pein=6; -evtdly.graphics.peout=3; -evtdly.model.rpar=[[0.1],[0.1]]; -evtdly.model.firing=0.1; -output_port=CLKOUT_f("define"); -output_port.graphics.orig=[399,162]; -output_port.graphics.sz=[20,20]; -output_port.graphics.flip=true; -output_port.graphics.exprs="1"; -output_port.graphics.pein=5; -output_port.model.ipar=1; -split=CLKSPLIT_f("define"); -split.graphics.orig=[[380.71066],[172]]; -split.graphics.pein=3; -split.graphics.peout=[[5],[6]]; +/* autogenerated from "macros/Linear/PID.sci" */ +function PID() { + PID.prototype.define = function PID() { +scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["PID"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m.objs[1-1]=scicos_block(gui="INTEGRAL_m",graphics=scicos_graphics(orig=[318.304,183.11733],sz=[40,40],flip=true,theta=0,exprs=[["0"],["0"],["0"],["1"],["-1"]],pin=7,pout=9,pein=[],peout=[],gr_i=[],id="1/s",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("integral_func",4),in1=1,in2=1,intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=0,dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[2-1]=scicos_block(gui="SUMMATION",graphics=scicos_graphics(orig=[387.97067,172.85067],sz=[40,60],flip=true,theta=0,exprs=[["1"],["[1;1;1]"]],pin=[[10],[9],[11]],pout=19,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("summation",4),in1=[[-1],[-1],[-1]],in2=[[-2],[-2],[-2]],intyp=[[1],[1],[1]],out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[1],[1]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[3-1]=scicos_block(gui="GAINBLK",graphics=scicos_graphics(orig=[321.23733,235.91733],sz=[40,40],flip=true,theta=0,exprs="1",pin=17,pout=10,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("gainblk",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=1,ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[4-1]=scicos_block(gui="DERIV",graphics=scicos_graphics(orig=[319.03733,135.45067],sz=[40,40],flip=true,theta=0,exprs=[],pin=8,pout=11,pein=[],peout=[],gr_i=[],id="s",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("deriv",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="x",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[5-1]=scicos_block(gui="GAINBLK",graphics=scicos_graphics(orig=[255.23733,183.11733],sz=[40,40],flip=true,theta=0,exprs="1",pin=13,pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("gainblk",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=1,ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[6-1]=scicos_block(gui="GAINBLK",graphics=scicos_graphics(orig=[255.23733,135.45067],sz=[40,40],flip=true,theta=0,exprs="1",pin=14,pout=8,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("gainblk",4),in1=-1,in2=-2,intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=1,ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[7-1]=scicos_link(xx=[[303.80876],[309.73257]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[1,1,1]); +scs_m.objs[8-1]=scicos_link(xx=[[303.80876],[310.4659]],yy=[[155.45067],[155.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[6,1,0],to=[4,1,1]); +scs_m.objs[9-1]=scicos_link(xx=[[366.87543],[379.39924]],yy=[[203.11733],[202.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,2,1]); +scs_m.objs[10-1]=scicos_link(xx=[[369.80876],[379.39924],[379.39924]],yy=[[255.91733],[255.91733],[217.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[2,1,1]); +scs_m.objs[11-1]=scicos_link(xx=[[367.60876],[379.39924],[379.39924]],yy=[[155.45067],[155.45067],[187.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[2,3,1]); +scs_m.objs[12-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[234.704],[203.11733]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=16,pout=[[13],[14]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[13-1]=scicos_link(xx=[[234.704],[246.6659]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[12,1,0],to=[5,1,1]); +scs_m.objs[14-1]=scicos_link(xx=[[234.704],[234.704],[246.6659]],yy=[[203.11733],[155.45067],[155.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[12,2,0],to=[6,1,1]); +scs_m.objs[15-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[233.97067],[203.11733]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=21,pout=[[16],[17]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[16-1]=scicos_link(xx=[[233.97067],[234.704]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[15,1,0],to=[12,1,1]); +scs_m.objs[17-1]=scicos_link(xx=[[233.97067],[233.97067],[312.6659]],yy=[[203.11733],[255.91733],[255.91733]],id="drawlink",thick=[0,0],ct=[1,1],from=[15,2,0],to=[3,1,1]); +scs_m.objs[18-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[456.5421,192.85067],sz=[20,20],flip=true,theta=0,exprs="1",pin=19,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[19-1]=scicos_link(xx=[[436.5421],[456.5421]],yy=[[202.85067],[202.85067]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[18,1,1]); +scs_m.objs[20-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[193.97067,193.11733],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=21,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[21-1]=scicos_link(xx=[[213.97067],[233.97067]],yy=[[203.11733],[203.11733]],id="drawlink",thick=[0,0],ct=[1,1],from=[20,1,0],to=[15,1,1]); +model=scicos_model(); +model.sim="csuper"; +model.in1=-1; +model.in2=-2; +model.out=-1; +model.out2=-2; +model.intyp=1; +model.outtyp=1; +model.blocktype="h"; +model.firing=false; +model.dep_ut=[false,false]; +model.rpar=scs_m; gr_i=[]; -diagram=scicos_diagram(); -diagram.objs[1-1]=output_port; -diagram.objs[2-1]=evtdly; -diagram.objs[3-1]=scicos_link(xx=[[340],[340],[380.71]],yy=[[226.29],[172],[172]],ct=[5,-1],from=[2,1],to=[4,1]); -diagram.objs[4-1]=split; -diagram.objs[5-1]=scicos_link(xx=[[380.71],[399]],yy=[[172],[172]],ct=[5,-1],from=[4,1],to=[1,1]); -diagram.objs[6-1]=scicos_link(xx=[[380.71],[380.71],[340],[340]],yy=[[172],[302],[302],[277.71]],ct=[5,-1],from=[4,2],to=[2,1]); -x=scicos_block(); -x.gui="CLOCK_c"; -x.graphics.sz=[2,2]; -x.graphics.gr_i=gr_i; -x.graphics.peout=0; -x.model.sim="csuper"; -x.model.evtout=1; -x.model.blocktype="h"; -x.model.firing=false; -x.model.dep_ut=[false,false]; -x.model.rpar=diagram; +x=standard_define([2,2],model,[],gr_i); } - CLOCK_c.prototype.details = function CLOCK_c() { + PID.prototype.details = function PID() { } - CLOCK_c.prototype.get = function CLOCK_c() { + PID.prototype.get = function PID() { } - CLOCK_c.prototype.set = function CLOCK_c() { + PID.prototype.set = function PID() { +ppath=list(0,0,0); for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="EVTDLY_c") { -path=i; +if (typeof(o)=="Link") { +from=arg1.model.rpar.objs[o.from[1-1]-1]; +to=arg1.model.rpar.objs[o.to[1-1]-1]; +if (from.gui=="GAINBLK") { +switch (to.gui) { +case "SUMMATION": +ppath[1-1]=o.from[1-1]; +case "INTEGRAL_m": +ppath[2-1]=o.from[1-1]; +case "DERIV": +ppath[3-1]=o.from[1-1]; +} +} else if (to.gui=="GAINBLK") { +switch (from.gui) { +case "SUMMATION": +ppath[1-1]=o.to[1-1]; +case "INTEGRAL_m": +ppath[2-1]=o.to[1-1]; +case "DERIV": +ppath[3-1]=o.to[1-1]; +} +} +if (and(ppath!=list(0,0,0))) { break; } } +} newpar=list(); -xx=arg1.model.rpar.objs[path-1]; -exprs=xx.graphics.exprs; -model=xx.model; -t0_old=model.firing; -dt_old=model.rpar[1-1]; -model_n=model; +xx1=arg1.model.rpar.objs[ppath[1-1]-1]; +exprs[1-1]=xx1.graphics.exprs[1-1]; +p_old=xx1.model.rpar; +xx2=arg1.model.rpar.objs[ppath[2-1]-1]; +exprs[2-1]=xx2.graphics.exprs[1-1]; +i_old=xx2.model.rpar; +xx3=arg1.model.rpar.objs[ppath[3-1]-1]; +exprs[3-1]=xx3.graphics.exprs[1-1]; +d_old=xx3.model.rpar; +y=0; while (true) { -[ok,dt,t0,exprs0]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CLOCK_c")],[" "],[gettext("Event clock generator")],[" "],[gettext(" Do not start if \'Initialisation Time\' is negative")],[" "]],[[gettext("Period")],[gettext("Initialisation Time")]],list("vec",1,"vec",1),exprs); +[ok,p,i,d,exprs0]=scicos_getvalue("Set PID parameters",[["Proportional"],["Integral"],["Derivation"]],list("vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -if (dt<=0) { -block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %5.1e."),gettext("Period"),dt),gettext("Strictly positive number expected.")); -ok=false; -} if (ok) { -xx.graphics.exprs=exprs0; -model.rpar=[[dt],[t0]]; -model.firing=t0; -xx.model=model; -arg1.model.rpar.objs[path-1]=xx; +xx1.graphics.exprs=exprs0[1-1]; +xx1.model.rpar=p; +xx2.graphics.exprs=exprs0[2-1]; +xx2.model.rpar=i; +xx3.graphics.exprs=exprs0[3-1]; +xx3.model.rpar=d; +arg1.model.rpar.objs[ppath[1-1]-1]=xx1; +arg1.model.rpar.objs[ppath[2-1]-1]=xx2; +arg1.model.rpar.objs[ppath[3-1]-1]=xx3; break; } } -if (!and([t0_old,dt_old]==[t0,dt])) { -newpar[size(newpar)+1-1]=path; -} -if (t0_old!=t0) { -needcompile=2; -} else { needcompile=0; +if (!(p_old==p&&i_old==i&&d_old==d)) { +newpar[size(newpar)+1-1]=ppath[1-1]; +newpar[size(newpar)+1-1]=ppath[2-1]; +newpar[size(newpar)+1-1]=ppath[3-1]; +needcompile=2; } x=arg1; -y=needcompile; +y=max(y,needcompile); typ=newpar; } } -/* autogenerated from "macros/Sources/CONST_f.sci" */ -function CONST_f() { - CONST_f.prototype.define = function CONST_f() { -C=1; +/* autogenerated from "macros/Linear/REGISTER.sci" */ +function REGISTER() { + REGISTER.prototype.define = function REGISTER() { +z0=zeros(10,1); model=scicos_model(); -model.sim=list("cstblk",1); -model.in1=[]; +model.sim=list("delay4",4); +model.in1=1; model.out=1; -model.rpar=C; +model.evtin=1; +model.dstate=z0; model.blocktype="d"; model.dep_ut=[false,false]; -exprs=strcat(sci2exp(C)); +exprs=strcat(string(z0),";"); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - CONST_f.prototype.details = function CONST_f() { + REGISTER.prototype.details = function REGISTER() { } - CONST_f.prototype.get = function CONST_f() { + REGISTER.prototype.get = function REGISTER() { } - CONST_f.prototype.set = function CONST_f() { + REGISTER.prototype.set = function REGISTER() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +if (size(exprs,1)==1) { +exprs=[[exprs],[sci2exp(1)]]; +} while (true) { -[ok,C,exprs]=scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); +[ok,z0,it,exprs]=scicos_getvalue("Set delay parameters",[["Register initial condition"],["Datatype (1=double 3=int32 ...)"]],list("vec",-1,"vec",1),exprs); if (!ok) { break; } -nout=size(C,"*"); -if (nout==0) { -message("C must have at least one element"); -} else { -model.rpar=C.slice(); -model.out=nout; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} +if (prod(size(z0))<1) { +message("Register length must be at least 1"); +ok=false; } - } +if (it==1) { +model.sim=list("delay4",4); +z0=double(z0); +model.dstate=z0; +model.odstate=list(); +} else { +if (it==3) { +model.sim=list("delay4_i32",4); +z0=int32(z0); +} else if (it==4) { +model.sim=list("delay4_i16",4); +z0=int16(z0); +} else if (it==5) { +model.sim=list("delay4_i8",4); +z0=int8(z0); +} else if (it==6) { +model.sim=list("delay4_ui32",4); +z0=uint32(z0); +} else if (it==7) { +model.sim=list("delay4_ui16",4); +z0=uint16(z0); +} else if (it==8) { +model.sim=list("delay4_ui8",4); +z0=uint8(z0); +} else { +message("Datatype is not supported"); +ok=false; } -/* autogenerated from "macros/Sources/Ground_g.sci" */ -function Ground_g() { - Ground_g.prototype.define = function Ground_g() { -C=[0]; -model=scicos_model(); -model.sim=list("cstblk4_m",4); -model.in1=[]; -model.out=1; -model.in2=[]; -model.out2=1; -model.outtyp=-1; -model.rpar=[]; -model.opar=list(C); -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[]; -gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); - } - Ground_g.prototype.details = function Ground_g() { - } - Ground_g.prototype.get = function Ground_g() { - } - Ground_g.prototype.set = function Ground_g() { -x=arg1; - } +model.odstate=list(z0); +model.dstate=[]; } -/* autogenerated from "macros/Sources/Counter.sci" */ -function Counter() { - Counter.prototype.define = function Counter() { -minim=0; -maxim=2; -rule=1; -model=scicos_model(); -model.sim=list("counter",4); -model.evtin=1; -model.out=1; -model.out2=1; -model.dstate=0; -model.ipar=[[rule],[maxim],[minim]]; -model.blocktype="c"; -model.dep_ut=[false,false]; -exprs=[[string(minim)],[string(maxim)],[string(rule)]]; -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); - } - Counter.prototype.details = function Counter() { - } - Counter.prototype.get = function Counter() { - } - Counter.prototype.set = function Counter() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,minim,maxim,rule,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"Counter")],[" "],[gettext("Integer counter generator")],[" "]],[[gettext("Minimum")],[gettext("Maximum")],[gettext("Rule (1:Increment, 2:Decrement)")]],list("vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; +if (ok) { +in1=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(in1,it),1,[]); } -maxim=int(maxim); -minim=int(minim); -if (maxim<minim) { -block_parameter_error(msprintf(gettext("Wrong values for \'Maximum\' and \'Minimum\' parameters: %d < %d"),minim,maxim),msprintf(gettext("\'Minimum\' must be less than \'Maximum\'."))); -} else if ((rule!=1&&rule!=2)) { -block_parameter_error(msprintf(gettext("Wrong value for \'Rule\' parameter: %d"),rule),msprintf(gettext("Must be in the interval %s."),"[1,2]")); -} else { +if (ok) { graphics.exprs=exprs; -model.dstate=0; -model.ipar=[[rule],[maxim],[minim]]; x.graphics=graphics; x.model=model; break; @@ -7610,465 +7013,316 @@ break; } } } -/* autogenerated from "macros/Sources/RFILE_f.sci" */ -function RFILE_f() { - RFILE_f.prototype.define = function RFILE_f() { -out=1; -nout=sum(out); -frmt="(7(e10.3,1x))"; -fname="foo"; -lunit=0; -N=2; -rpar=[]; -tmask=0; -outmask=1; -ipar=[[length(fname)],[length(frmt)],[0],[N],[_str2code[fname-1]],[_str2code[frmt-1]],[tmask],[outmask]]; -dstate=[[1],[1],[lunit],[zeros((nout)*N,1)]]; +/* autogenerated from "macros/Linear/REGISTER_f.sci" */ +function REGISTER_f() { + REGISTER_f.prototype.define = function REGISTER_f() { +z0=zeros(10,1); model=scicos_model(); -model.sim="readf"; -model.out=nout; +model.sim="delay"; +model.in1=1; +model.out=1; model.evtin=1; -model.dstate=dstate; -model.ipar=[[length(fname)],[length(frmt)],[0],[N],[_str2code[fname-1]],[_str2code[frmt-1]],[tmask],[outmask]]; +model.dstate=z0; model.blocktype="d"; model.dep_ut=[false,false]; -exprs=[[sci2exp([])],[sci2exp(outmask)],[fname],[frmt],[string(N)],[sci2exp(out)]]; +exprs=strcat(string(z0),";"); gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2.5,2.5],model,exprs,gr_i); } - RFILE_f.prototype.details = function RFILE_f() { + REGISTER_f.prototype.details = function REGISTER_f() { } - RFILE_f.prototype.get = function RFILE_f() { + REGISTER_f.prototype.get = function REGISTER_f() { } - RFILE_f.prototype.set = function RFILE_f() { + REGISTER_f.prototype.set = function REGISTER_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -dstate=model.dstate; -ipar=model.ipar; -ievt=ipar[3-1]; -N=ipar[4-1]; -imask=5+ipar[1-1]+ipar[2-1]; -tmask=ipar[imask-1]; -lunit=dstate[3-1]; -fname=exprs[3-1]; -frmt=exprs[4-1]; -if (size(exprs,"*")>5) { -exprs[6-1]=[]; -} while (true) { -[ok,tmask1,outmask,fname1,frmt1,N,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"RFILE_f")],[" "],[gettext("Read from an input file")],[" "],[gettext("Read is done on:")],[gettext(" - A binary file if no format given")],[gettext(" - A formatted text file if a format (fortran type) is given")]],[[gettext("Time Record Selection")],[gettext("Outputs Record Selection")],[gettext("Input File Name")],[gettext("Input Format")],[gettext("Buffer Size")]],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1),exprs); +[ok,z0,exprs]=scicos_getvalue("Set delay parameters","Register initial condition",list("vec",-1),exprs); if (!ok) { break; } -fname1=pathconvert(stripblanks(fname1),false,true); -frmt1=stripblanks(frmt1); -nout=size(outmask,"*"); -if (prod[size(tmask1)-1]>1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Time Record Selection"),strcat(string(tmask1.slice())," ")),gettext("Empty matrix or scalar expected.")); -} else if (tmask1!=[]&&tmask1<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d"),gettext("Time Record Selection"),tmask1),gettext("Strictly positive integer expected.")); -} else if (lunit>0&&min(length(frmt),1)!=min(length(frmt1),1)) { -block_parameter_error([gettext("Simulation running !!! You cannot switch <br />between formatted and unformatted")],gettext("End current simulation first.")); -} else if (lunit>0&&fname1!=fname) { -block_parameter_error(gettext("Simulation running !!! You cannot modify \'Input File Name\'"),gettext("End current simulation first.")); -} else if (lunit>0&&size(tmask1)!=size(tmask)) { -block_parameter_error(gettext("Simulation running !!! You cannot modify \'Time Record Selection\'"),gettext("End current simulation first.")); -} else if (fname1=="") { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s"),gettext("Input File Name"),fname1),gettext("You must provide a filename.")); -} else if (frmt1!=""&&(part(frmt1,1)!="("||part(frmt1,length(frmt1))!=")")) { -block_parameter_error(msprintf(gettext("Wrong format for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("You must enclose the format\'s string between parentheses.")); -} else if (N<2) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Buffer size must be at least 2.")); -} else if (nout==0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),gettext("You must read at least one field in record.")); -} else if (min(outmask)<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s"),gettext("Outputs Record Selection"),strcat(string(outmask.slice())," ")),gettext("Strictly positive indexes expected.")); -} else { -if (tmask1==[]) { -ievt=0; -cout=[]; -tmask1=0; -} else { -ievt=1; -cout=1; +if (prod(size(z0))<1) { +message("Register length must be at least 1"); +ok=false; } -[model,graphics,ok]=check_io(model,graphics,[],nout,1,cout); if (ok) { -if (ievt==0) { -model.firing=[]; -} else { -model.firing=0; -} -ipar=[[length(fname1)],[length(frmt1)],[ievt],[N],[_str2code[fname1-1]],[_str2code[frmt1-1]],[tmask1],[outmask.slice()]]; -if (prod[size(dstate)-1]!=(nout+ievt)*N+3) { -dstate=[[-1],[-1],[lunit],[zeros((nout+ievt)*N,1)]]; -} -model.dstate=dstate; -model.ipar=ipar; graphics.exprs=exprs; +model.dstate=z0; x.graphics=graphics; x.model=model; break; } } -} } } -/* autogenerated from "macros/Sources/PULSE_SC.sci" */ -function PULSE_SC() { - PULSE_SC.prototype.define = function PULSE_SC() { -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-162.7581,435.54369,67.607292,416.67644,827,479,0,15,827,480,715,167,1.4],Title=["SuperBlock","/home/fady/Scicos_examples/"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=10,context=[["E2=E+W/100*F"],["if (W<0 | W>100) then error(\'Width must be between 0 and 100\');end"],["if (E2 >= F) then error (\'Offset must be lower than (frequency*(1-Width/100))\'); end"]],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[30.801202,158.91733],sz=[40,40],flip=true,theta=0,exprs="A",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(1),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_block(gui="Ground_g",graphics=scicos_graphics(orig=[31.534535,215.384],sz=[40,40],flip=true,theta=0,exprs=[],pin=[],pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(0),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[3-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[106.00652,186.09381],sz=[40,40],flip=true,theta=0,exprs=[["-1"],["2"],["1"]],pin=[[4],[5]],pout=11,pein=[[9],[8]],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[-1],[-1]],out=-1,out2=-2,outtyp=-1,evtin=[[1],[1]],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[4-1]=scicos_link(xx=[[80.105964],[97.43509],[97.43509]],yy=[[235.384],[235.384],[212.76048]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[3,1,1]); -scs_m_1.objs[5-1]=scicos_link(xx=[[79.372631],[97.43509],[97.43509]],yy=[[178.91733],[178.91733],[199.42714]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,2,1]); -scs_m_1.objs[6-1]=scicos_block(gui="SampleCLK",graphics=scicos_graphics(orig=[82.349744,274.21741],sz=[60,40],flip=true,theta=0,exprs=[["F"],["E2"]],pin=[],pout=[],pein=[],peout=9,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sampleclk",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[[1],[0.4]],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[7-1]=scicos_block(gui="SampleCLK",graphics=scicos_graphics(orig=[160.48879,274.21741],sz=[60,40],flip=true,theta=0,exprs=[["F"],["E"]],pin=[],pout=[],pein=[],peout=8,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sampleclk",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[[1],[0.1]],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[8-1]=scicos_link(xx=[[190.48879],[190.48879],[132.67318],[132.67318]],yy=[[274.21741],[240.99048],[240.99048],[231.80809]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1,0],to=[3,2,1]); -scs_m_1.objs[9-1]=scicos_link(xx=[[112.34974],[112.34974],[119.33985],[119.33985]],yy=[[274.21741],[248.21372],[248.21372],[231.80809]],id="drawlink",thick=[0,0],ct=[5,-1],from=[6,1,0],to=[3,1,1]); -scs_m_1.objs[10-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[174.57795,196.09381],sz=[20,20],flip=true,theta=0,exprs="1",pin=11,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[11-1]=scicos_link(xx=[[154.57795],[174.57795]],yy=[[206.09381],[206.09381]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[10,1,1]); +/* autogenerated from "macros/Linear/SAMPHOLD.sci" */ +function SAMPHOLD() { + SAMPHOLD.prototype.define = function SAMPHOLD() { +in1=-1; model=scicos_model(); -model.sim="csuper"; -model.in1=[]; -model.in2=[]; -model.intyp=1; +model.sim=list("samphold4",4); +model.in1=-1; model.out=-1; -model.out2=-2; -model.outtyp=-1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.odstate=list(); -model.rpar=scs_m_1; -model.ipar=1; -model.opar=list(); -model.blocktype="h"; -model.firing=[]; -model.dep_ut=[false,false]; -model.label=""; -model.nzcross=0; -model.nmode=0; -model.equations=list(); -E=0.1; -W=30; -F=1; -A=1; -exprs=[sci2exp(E),sci2exp(W),sci2exp(F),sci2exp(A)]; +model.evtin=1; +model.blocktype="d"; +model.dep_ut=[true,false]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model," ",gr_i); } - PULSE_SC.prototype.details = function PULSE_SC() { + SAMPHOLD.prototype.details = function SAMPHOLD() { } - PULSE_SC.prototype.get = function PULSE_SC() { + SAMPHOLD.prototype.get = function SAMPHOLD() { } - PULSE_SC.prototype.set = function PULSE_SC() { -y=needcompile; -arg1.model.ipar=1; -typ=list(); -graphics=arg1.graphics; -exprs=graphics.exprs; -Btitre="Set Pulse Generator parameters"; -Exprs0=[["E"],["W"],["F"],["A"]]; -Bitems=[["Phase delay (secs):"],["Pulse Width (% of period):"],["Period (secs):"],["Amplitude:"]]; -Ss=list("pol",-1,"pol",-1,"pol",-1,"mat",[-1,-1]); -scicos_context=struct(); + SAMPHOLD.prototype.set = function SAMPHOLD() { x=arg1; -ok=false; -while (!ok) { -[ok,scicos_context.E,scicos_context.W,scicos_context.F,scicos_context.A,exprs]=scicos_getvalue(Btitre,Bitems,Ss,exprs); -if (!ok) { -return; -} -PREVAR_scicos_context=scicos_context; -sblock=x.model.rpar; -[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); -if (ierr==0) { -[sblock,%w,needcompile2,ok]=do_eval(sblock,list()); -if (ok) { -y=max(2,needcompile,needcompile2); -x.graphics.exprs=exprs; -x.model.rpar=sblock; -break; -} -} else { -if ((lasterror()!=[])) { -messagebox(lasterror()); -} -ok=false; -} -} +x.model.firing=[]; } } -/* autogenerated from "macros/Sources/FROMWS_c.sci" */ -function FROMWS_c() { - FROMWS_c.prototype.define = function FROMWS_c() { -varnam="V"; -Method=1; -ZC=1; -OutEnd=0; +/* autogenerated from "macros/Linear/SAMPHOLD_m.sci" */ +function SAMPHOLD_m() { + SAMPHOLD_m.prototype.define = function SAMPHOLD_m() { model=scicos_model(); -model.sim=list("fromws_c",4); +model.sim=list("samphold4_m",4); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.outtyp=1; model.out=-1; model.out2=-2; -model.outtyp=-1; -model.ipar=[[length(varnam)],[_str2code[varnam-1]],[Method],[ZC],[OutEnd]]; -model.evtin=[1]; -model.evtout=[1]; -model.firing=[0]; +model.evtin=1; model.blocktype="d"; -model.dep_ut=[false,true]; +model.dep_ut=[true,false]; +label=[sci2exp(1)]; gr_i=[]; -exprs=[[string(varnam)],[string(Method)],[string(ZC)],[string(OutEnd)]]; -x=standard_define([3.5,2],model,exprs,gr_i); +x=standard_define([2,2],model,label,gr_i); } - FROMWS_c.prototype.details = function FROMWS_c() { + SAMPHOLD_m.prototype.details = function SAMPHOLD_m() { } - FROMWS_c.prototype.get = function FROMWS_c() { + SAMPHOLD_m.prototype.get = function SAMPHOLD_m() { } - FROMWS_c.prototype.set = function FROMWS_c() { + SAMPHOLD_m.prototype.set = function SAMPHOLD_m() { x=arg1; +x.model.firing=[]; graphics=arg1.graphics; -exprs=graphics.exprs; +label=graphics.exprs; model=arg1.model; while (true) { -[ok,varnam,Method,ZC,OutEnd,exprs]=scicos_getvalue("Set From_Workspace block parameters",[["Variable name"],["Interpolation Method"],["Enable zero crossing(0:No, 1:Yes)?"],["Output at end(0:Zero, 1:Hold, 2:Repeat)"]],list("str",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,it,exprs]=scicos_getvalue("Set parameters Block",["Datatype(1=real double 2=Complex 3=int32 ...)"],list("vec",1),label); if (!ok) { break; } -if (!(Method==0||Method==1||Method==2||Method==3)) { -message("Interpolation method should be chosen in [0,1,2,3]"); -ok=false; -} -if (!(ZC==0||ZC==1)) { -message("Zero crossing should be either 0 or 1"); -ok=false; -} -if (!(OutEnd==0||OutEnd==1||OutEnd==2)) { -message("Output at end option should be either 0 or 1"); -ok=false; -} -r=false; -ierr=execstr("r=validvar(varnam)","errcatch"); -if (!r) { -message([["Invalid variable name."],["Please choose another variable name."]]); +if (((it<1)||(it>8))) { +message("Datatype is not supported"); ok=false; } if (ok) { -model.ipar=[[length(varnam)],[_str2code[varnam-1]],[Method],[ZC],[OutEnd]]; -[model,graphics,ok]=set_io(model,graphics,list(),list([-1,-2],-1),1,1); +in1=[model.in1,model.in2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(in1,it),1,[]); if (ok) { graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; +arg1.graphics=graphics; +arg1.model=model; +x=arg1; break; } } } } } -/* autogenerated from "macros/Sources/SAWTOOTH_f.sci" */ -function SAWTOOTH_f() { - SAWTOOTH_f.prototype.define = function SAWTOOTH_f() { +/* autogenerated from "macros/Linear/SAMPLEHOLD_f.sci" */ +function SAMPLEHOLD_f() { + SAMPLEHOLD_f.prototype.define = function SAMPLEHOLD_f() { +in1=-1; model=scicos_model(); -model.sim="sawtth"; -model.out=1; +model.sim="samphold"; +model.in1=-1; +model.out=-1; model.evtin=1; -model.dstate=0; -model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=" "; +model.blocktype="d"; +model.dep_ut=[true,false]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model," ",gr_i); } - SAWTOOTH_f.prototype.details = function SAWTOOTH_f() { + SAMPLEHOLD_f.prototype.details = function SAMPLEHOLD_f() { } - SAWTOOTH_f.prototype.get = function SAWTOOTH_f() { + SAMPLEHOLD_f.prototype.get = function SAMPLEHOLD_f() { } - SAWTOOTH_f.prototype.set = function SAWTOOTH_f() { + SAMPLEHOLD_f.prototype.set = function SAMPLEHOLD_f() { x=arg1; +x.model.firing=[]; } } -/* autogenerated from "macros/Sources/RAND_f.sci" */ -function RAND_f() { - RAND_f.prototype.define = function RAND_f() { -a=0; -b=1; -dt=0; -out=1; -flag=0; +/* autogenerated from "macros/Linear/SOM_f.sci" */ +function SOM_f() { + SOM_f.prototype.define = function SOM_f() { +sgn=[[1],[1],[1]]; model=scicos_model(); -model.sim="rndblk"; -model.out=out; -model.evtin=1; -model.dstate=[[int(rand()*(10^7-1))],[0*a.slice()]]; -model.rpar=[[a.slice()],[b.slice()]]; -model.ipar=flag; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[string(flag)],[sci2exp(a.slice())],[sci2exp(b.slice())],[string(model.dstate[1-1])]]; +model.sim=list("sum",2); +model.in1=[[-1],[-1],[-1]]; +model.out=-1; +model.rpar=sgn; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[sci2exp(1)],[sci2exp(sgn)]]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - RAND_f.prototype.details = function RAND_f() { + SOM_f.prototype.details = function SOM_f() { } - RAND_f.prototype.get = function RAND_f() { + SOM_f.prototype.get = function SOM_f() { } - RAND_f.prototype.set = function RAND_f() { + SOM_f.prototype.set = function SOM_f() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==5) { -exprs=exprs.slice(1-1,3); -} -if (size(exprs,"*")==3) { -exprs=[[exprs],[string(model.dstate[1-1])]]; +exprs=graphics.exprs; +if (size(exprs,"*")==2) { +exprs=exprs[2-1]; } -while (true) { -[ok,flag,a,b,seed_c,exprs]=scicos_getvalue([["Set Random generator block parameters"],["flag = 0 : Uniform distribution A is min and A+B max"],["flag = 1 : Normal distribution A is mean and B deviation"],[" "],["A and B must be vector with equal sizes"],["seed is the seed of random number generator (integer<2**31)"]],[["flag"],["A"],["B"],["seed"]],list("vec",1,"vec",-1,"vec","size(%2,\'*\')","vec",1),exprs); -if (!ok) { -break; +if (size(exprs,"*")!=3) { +exprs=string(model.rpar); } -if (flag!=0&&flag!=1) { -message("flag must be equal to 1 or 0"); +if (graphics.flip) { +labs=["down","left","up"]; } else { -nout=size(a,"*"); -graphics.exprs=exprs; -model.out=nout; -model.ipar=flag; -model.rpar=[[a.slice()],[b.slice()]]; -model.dstate=[[seed_c],[0*a.slice()]]; -x.graphics=graphics; -x.model=model; -break; -} +labs=["down","right","up"]; } +str=[["This sum block is obsolete","parameters cannot be modified. Please replace it with new sum block"],["and gain blocks in the linear palette"," ","Input ports are located at up, side and down positions.","Current gains are:"]]; +str=[[str],[(part(labs.slice(),1,7)+exprs.slice())]]; +message(str); } } -/* autogenerated from "macros/Sources/READAU_f.sci" */ -function READAU_f() { - READAU_f.prototype.define = function READAU_f() { -frmt="uc "; -fname="test.au"; -lunit=0; -N=20; -M=1; -tmask=[]; -swap=0; -offset=1; -outmask=1; -ievt=0; -nout=size(outmask,"*"); +/* autogenerated from "macros/Linear/SUMMATION.sci" */ +function SUMMATION() { + SUMMATION.prototype.define = function SUMMATION() { +sgn=[[1],[-1]]; model=scicos_model(); -model.sim=list("readau",2); -model.out=nout; -model.evtin=1; -model.dstate=[[1],[1],[lunit],[zeros(N*M,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname-1]],[tmask],[outmask]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=[[fname],[string(N)],[string(swap)]]; +model.sim=list("summation",4); +model.in1=[[-1],[-1]]; +model.out=-1; +model.in2=[[-2],[-2]]; +model.out2=-2; +model.ipar=sgn; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=sci2exp(sgn); gr_i=[]; -x=standard_define([5,2],model,exprs,gr_i); +x=standard_define([2,3],model,exprs,gr_i); } - READAU_f.prototype.details = function READAU_f() { + SUMMATION.prototype.details = function SUMMATION() { } - READAU_f.prototype.get = function READAU_f() { + SUMMATION.prototype.get = function SUMMATION() { } - READAU_f.prototype.set = function READAU_f() { + SUMMATION.prototype.set = function SUMMATION() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; -out=model.out; -dstate=model.dstate; -ipar=model.ipar; -imask=9+ipar[1-1]; -tmask=ipar[imask-1]; -lunit=dstate[3-1]; -fname=exprs[1-1]; +exprs=graphics.exprs; +if (size(exprs,1)==1) { +exprs=[[sci2exp(1)],[exprs],[sci2exp(0)]]; +} else if (size(exprs,1)==2) { +exprs=[[exprs],[sci2exp(0)]]; +} while (true) { -[ok,fname1,N,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"READAU_f")],[" "],[gettext("(Read Audio File)")],[" "],[gettext("Read is done on a binary \'.au\' file")]],[[gettext("Input File Name")],[gettext("Buffer size")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("str",1,"vec",1,"vec",1),exprs); -tmask1=[]; -outmask=1; -frmt1="uc"; -M=1; -offset=1; +[ok,Datatype,sgn,satur,exprs]=scicos_getvalue("Set sum block parameters",[["Datatype (1=real double 2=complex 3=int32 ...)"],["Number of inputs or sign vector (of +1, -1)"],["Do on Overflow(0=Nothing 1=Saturate 2=Error)"]],list("vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break; } -fname1=stripblanks(fname1); -frmt1=stripblanks(frmt1); -if (alreadyran&&fname1!=fname) { -block_parameter_error(gettext("Simulation running !!! You cannot modify Input file name"),gettext("End current simulation first.")); -} else if (fname1=="") { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a filename.")); -} else if (N<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer size"),N),msprintf(gettext("Must be greater than %d."),1)); -} else if (alreadyran&&(N!=ipar[6-1])) { -block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first.")); -} else if (swap!=0&&swap!=1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +sgn=sgn.slice(); +if ((satur!=0&&satur!=1&&satur!=2)) { +message("Do on overflow must be 0,1,2"); +ok=false; +} +if (size(sgn,1)==1) { +if (sgn<1) { +message("Number of inputs must be > 0"); +ok=false; +} else if (sgn==1) { +in1=-1; +in2=-2; +sgn=[]; +nout=1; +nout2=1; } else { -[model,graphics,ok]=check_io(model,graphics,[],1,1,[]); -frmt1=part(frmt1,1,3); -if (ok) { -ipar=[[length(fname1)],[_str2code[frmt1-1]],[0],[N],[M],[swap],[offset,_str2code[fname1-1]],[tmask1,outmask.slice()]]; -if (prod[size(dstate)-1]!=(N*M)+3) { -dstate=[[-1],[-1],[lunit],[zeros(N*M,1)]]; +in1=-ones(sgn,1); +in2=2*in1; +sgn=ones(sgn,1); +nout=-1; +nout2=-2; } -model.dstate=dstate; -model.ipar=ipar; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +} else { +if (!and(abs(sgn)==1)) { +message("Signs can only be +1 or -1"); +ok=false; +} else { +in1=-ones(size(sgn,1),1); +in2=2*in1; +nout=-1; +nout2=-2; } } +it=Datatype*ones(1,size(in1,1)); +ot=Datatype; +if (Datatype==1) { +model.sim=list("summation",4); +} else if (Datatype==2) { +model.sim=list("summation_z",4); +} else if (((Datatype<1)||(Datatype>8))) { +message("Datatype is not supported"); +ok=false; +} else { +if (satur==0) { +if (Datatype==3) { +model.sim=list("summation_i32n",4); +} else if (Datatype==4) { +model.sim=list("summation_i16n",4); +} else if (Datatype==5) { +model.sim=list("summation_i8n",4); +} else if (Datatype==6) { +model.sim=list("summation_ui32n",4); +} else if (Datatype==7) { +model.sim=list("summation_ui16n",4); +} else if (Datatype==8) { +model.sim=list("summation_ui8n",4); } - } +} else if (satur==1) { +if (Datatype==3) { +model.sim=list("summation_i32s",4); +} else if (Datatype==4) { +model.sim=list("summation_i16s",4); +} else if (Datatype==5) { +model.sim=list("summation_i8s",4); +} else if (Datatype==6) { +model.sim=list("summation_ui32s",4); +} else if (Datatype==7) { +model.sim=list("summation_ui16s",4); +} else if (Datatype==8) { +model.sim=list("summation_ui8s",4); } -/* autogenerated from "macros/Sources/CLKIN_f.sci" */ -function CLKIN_f() { - CLKIN_f.prototype.define = function CLKIN_f() { -prt=1; -model=scicos_model(); -model.sim="input"; -model.evtout=1; -model.ipar=prt; -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs=string(prt); -x=standard_define([1,1],model,exprs," "); - } - CLKIN_f.prototype.details = function CLKIN_f() { - } - CLKIN_f.prototype.get = function CLKIN_f() { - } - CLKIN_f.prototype.set = function CLKIN_f() { -x=arg1; -graphics=arg1.graphics; -model=arg1.model; -exprs=graphics.exprs; -exprs=exprs[1-1]; -while (true) { -[ok,prt,exprs]=scicos_getvalue("Set Event Input block parameters","Port number",list("vec",1),exprs); -prt=int(prt); -if (!ok) { -break; +} else if (satur==2) { +if (Datatype==3) { +model.sim=list("summation_i32e",4); +} else if (Datatype==4) { +model.sim=list("summation_i16e",4); +} else if (Datatype==5) { +model.sim=list("summation_i8e",4); +} else if (Datatype==6) { +model.sim=list("summation_ui32e",4); +} else if (Datatype==7) { +model.sim=list("summation_ui16e",4); +} else if (Datatype==8) { +model.sim=list("summation_ui8e",4); } -if (prt<=0) { -message("Port number must be a positive integer"); -} else { -model.ipar=prt; -model.evtout=1; -model.firing=-1; +} +} +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list([in1,in2],it),list([nout,nout2],ot),[],[]); +} +if (ok) { +model.rpar=satur; +model.ipar=sgn; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -8077,186 +7331,187 @@ break; } } } -/* autogenerated from "macros/Sources/TIME_f.sci" */ -function TIME_f() { - TIME_f.prototype.define = function TIME_f() { +/* autogenerated from "macros/Linear/SUM_f.sci" */ +function SUM_f() { + SUM_f.prototype.define = function SUM_f() { model=scicos_model(); -model.sim="timblk"; -model.out=1; +model.sim=list("plusblk",2); +model.in1=[[-1],[-1],[-1]]; +model.out=-1; model.blocktype="c"; -model.dep_ut=[false,true]; +model.dep_ut=[true,false]; gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +exprs=[]; +x=standard_define([1,1],model,exprs,gr_i); } - TIME_f.prototype.details = function TIME_f() { + SUM_f.prototype.details = function SUM_f() { } - TIME_f.prototype.get = function TIME_f() { + SUM_f.prototype.get = function SUM_f() { } - TIME_f.prototype.set = function TIME_f() { + SUM_f.prototype.set = function SUM_f() { x=arg1; } } -/* autogenerated from "macros/Sources/SampleCLK.sci" */ -function SampleCLK() { - SampleCLK.prototype.define = function SampleCLK() { +/* autogenerated from "macros/Linear/TCLSS.sci" */ +function TCLSS() { + TCLSS.prototype.define = function TCLSS() { +x0=0; +A=0; +B=1; +C=1; +D=0; +in1=1; +nx=size(x0,"*"); +out=1; model=scicos_model(); -model.sim="sampleclk"; -model.evtout=1; -model.rpar=[1,0]; -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs=[[sci2exp(1)],[sci2exp(0)]]; -x=standard_define([2,2],model,exprs," "); +model.sim=list("tcslti4",4); +model.in1=[[in1],[nx]]; +model.out=out; +model.evtin=1; +model.state=x0; +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="c"; +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; +gr_i=[]; +x=standard_define([3,2],model,exprs,gr_i); } - SampleCLK.prototype.details = function SampleCLK() { + TCLSS.prototype.details = function TCLSS() { } - SampleCLK.prototype.get = function SampleCLK() { + TCLSS.prototype.get = function TCLSS() { } - SampleCLK.prototype.set = function SampleCLK() { + TCLSS.prototype.set = function TCLSS() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")==7) { +exprs=exprs[[1:4,7]-1]; +} while (true) { -[ok,frequ,offset,exprs]=scicos_getvalue("Set block parameters",[["Sample time"],["Offset"]],list("vec",1,"vec",1),exprs); +[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break; } -if (frequ<0) { -message("Frequency must be a positif number"); -ok=false; +out=size(C,1); +if (out==0) { +out=[]; } -if (abs(offset)>frequ) { -message("The |Offset| must be less than the Frequency"); -ok=false; +in1=size(B,2); +if (in1==0) { +in1=[]; } +[ms,ns]=size(A); +if (ms!=ns) { +message("A matrix must be square"); +} else { +[model,graphics,ok]=check_io(model,graphics,[[in1],[ms]],out,1,[]); if (ok) { -if (or(model.rpar.slice()!=[[frequ],[offset]])) { -needcompile=4; -y=needcompile; -} -model.rpar=[[frequ],[offset]]; -model.evtout=1; -model.firing=-1; graphics.exprs=exprs; +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +if (D!=[]) { +if (norm(D,1)!=0) { +mmm=[true,true]; +} else { +mmm=[false,true]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; +} +} else { +model.dep_ut=[false,true]; +} +model.state=x0.slice(); +model.rpar=rpar; +if (D!=[]) { +model.sim=list("tcslti4",4); +} else { +model.sim=list("tcsltj4",4); +} x.graphics=graphics; x.model=model; break; } } -needcompile=resume(needcompile) +} } } -/* autogenerated from "macros/Sources/READC_f.sci" */ -function READC_f() { - READC_f.prototype.define = function READC_f() { -frmt="d "; -fname="foo"; -lunit=0; -N=20; -M=1; -rpar=[]; -tmask=0; -swap=0; -offset=1; -outmask=1; -ievt=0; -nout=size(outmask,"*"); -ipar=[[length(fname)],[_str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname-1]],[tmask],[outmask]]; +/* autogenerated from "macros/Linear/TCLSS_f.sci" */ +function TCLSS_f() { + TCLSS_f.prototype.define = function TCLSS_f() { +x0=0; +A=0; +B=1; +C=1; +D=0; +in1=1; +nx=size(x0,"*"); +out=1; model=scicos_model(); -model.sim=list("readc",2); -model.out=nout; +model.sim=list("tcslti",1); +model.in1=[[in1],[nx]]; +model.out=out; model.evtin=1; -model.evtout=[]; -model.dstate=[[1],[1],[lunit],[zeros(N*M,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname-1]],[tmask],[outmask]]; -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs=[["[]"],[sci2exp(outmask)],[fname],[frmt],[string(M)],[string(N)],[string(offset)],[string(swap)]]; +model.state=x0; +model.rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +model.blocktype="c"; +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(A))],[strcat(sci2exp(B))],[strcat(sci2exp(C))],[strcat(sci2exp(D))],[strcat(sci2exp(x0))]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - READC_f.prototype.details = function READC_f() { + TCLSS_f.prototype.details = function TCLSS_f() { } - READC_f.prototype.get = function READC_f() { + TCLSS_f.prototype.get = function TCLSS_f() { } - READC_f.prototype.set = function READC_f() { + TCLSS_f.prototype.set = function TCLSS_f() { x=arg1; -model=x.model; graphics=arg1.graphics; exprs=graphics.exprs; -out=model.out; -dstate=model.dstate; -ipar=model.ipar; -imask=9+ipar[1-1]; -tmask=ipar[imask-1]; -lunit=dstate[3-1]; -fname=exprs[3-1]; -frmt=exprs[4-1]; +model=arg1.model; +if (size(exprs,"*")==7) { +exprs=exprs[[1:4,7]-1]; +} while (true) { -[ok,tmask1,outmask,fname1,frmt1,M,N,offset,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"READC_f")],[" "],[gettext("Read from C binary file")]],[[gettext("Time Record Selection")],[gettext("Outputs Record Selection")],[gettext("Input File Name")],[gettext("Input Format")],[gettext("Record Size")],[gettext("Buffer Size")],[gettext("Initial Record Index")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["A matrix"],["B matrix"],["C matrix"],["D matrix"],["Initial state"]],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break; } -fname1=pathconvert(stripblanks(fname1),false,true); -frmt1=stripblanks(frmt1); -fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; -nout=size(outmask,"*"); -if (prod[size(tmask1)-1]>1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Time Record Selection")),gettext("Must be a scalar or an empty matrix.")); -} else if (and(frmt1!=fmts)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); -} else if (alreadyran&&fname1!=fname) { -block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input File Name")),gettext("End current simulation first.")); -} else if (N!=ipar[6-1]&&alreadyran) { -block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); -} else if (alreadyran&&size(tmask1)!=size(tmask)) { -block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Time Record Selection")),gettext("End current simulation first.")); -} else if (fname1=="") { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a file name.")); -} else if (M<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Record Size"),M),gettext("Strictly positive integer expected.")); -} else if (tmask1!=[]&&(tmask1<1||tmask1>M)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Time Record Selection"),tmask1),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); -} else if (nout==0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),gettext("Strictly positive integer expected.")); -} else if (nout>M) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); -} else if (max(outmask)>M||min(outmask)<1) { -block_parameter_error(msprintf(gettext("Wrong value for indexes in \'%s\' parameter: %s."),gettext("Outputs Record Selection"),strcat(string(outmask.slice())," ")),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); -} else if (N<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); -} else if (swap!=0&&swap!=1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); -} else if (offset<1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Initial Record Index"),offset),gettext("Strictly positive integer expected.")); +out=size(C,1); +if (out==0) { +out=[]; +} +in1=size(B,2); +if (in1==0) { +in1=[]; +} +[ms,ns]=size(A); +if (ms!=ns) { +message("A matrix must be square"); } else { -if (tmask1==[]) { -ievt=0; -tmask1=0; -outpt=[]; +[model,graphics,ok]=check_io(model,graphics,[[in1],[ms]],out,1,[]); +if (ok) { +graphics.exprs=exprs; +rpar=[[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; +if (D!=[]) { +if (norm(D,1)!=0) { +mmm=[true,true]; } else { -ievt=1; -outpt=1; +mmm=[false,true]; +} +if (or(model.dep_ut!=mmm)) { +model.dep_ut=mmm; } -out=size(outmask,"*"); -[model,graphics,ok]=check_io(model,graphics,[],out,1,outpt); -frmt1=part(frmt1,1,3); -if (ok) { -if (ievt==0) { -model.firing=-1; } else { -model.firing=0; +model.dep_ut=[false,true]; } -ipar=[[length(fname1)],[_str2code[frmt1-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname1-1]],[tmask1],[outmask.slice()]]; -if (prod[size(dstate)-1]!=(N*M)+3) { -dstate=[[-1],[-1],[lunit],[zeros(N*M,1)]]; +model.state=x0.slice(); +model.rpar=rpar; +if (D!=[]) { +model.sim=list("tcslti",1); +} else { +model.sim=list("tcsltj",1); } -model.dstate=dstate; -model.ipar=ipar; -graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; @@ -8265,277 +7520,112 @@ break; } } } -/* autogenerated from "macros/Sources/CLOCK_f.sci" */ -function CLOCK_f() { - CLOCK_f.prototype.define = function CLOCK_f() { -evtdly=EVTDLY_f("define"); -evtdly.graphics.orig=[320,232]; -evtdly.graphics.sz=[40,40]; -evtdly.graphics.flip=true; -evtdly.graphics.exprs=[["0.1"],["0.1"]]; -evtdly.graphics.pein=6; -evtdly.graphics.peout=3; -evtdly.model.rpar=0.1; -evtdly.model.firing=0.1; -output_port=CLKOUT_f("define"); -output_port.graphics.orig=[399,162]; -output_port.graphics.sz=[20,20]; -output_port.graphics.flip=true; -output_port.graphics.exprs="1"; -output_port.graphics.pein=5; -output_port.model.ipar=1; -split=CLKSPLIT_f("define"); -split.graphics.orig=[[380.71066],[172]]; -split.graphics.pein=3; -split.graphics.peout=[[5],[6]]; -gr_i=[]; -diagram=scicos_diagram(); -diagram.objs[1-1]=output_port; -diagram.objs[2-1]=evtdly; -diagram.objs[3-1]=scicos_link(xx=[[340],[340],[380.71]],yy=[[226.29],[172],[172]],ct=[5,-1],from=[2,1],to=[4,1]); -diagram.objs[4-1]=split; -diagram.objs[5-1]=scicos_link(xx=[[380.71],[399]],yy=[[172],[172]],ct=[5,-1],from=[4,1],to=[1,1]); -diagram.objs[6-1]=scicos_link(xx=[[380.71],[380.71],[340],[340]],yy=[[172],[302],[302],[277.71]],ct=[5,-1],from=[4,2],to=[2,1]); -x=scicos_block(); -x.gui="CLOCK_f"; -x.graphics.sz=[2,2]; -x.graphics.gr_i=gr_i; -x.graphics.peout=0; -x.model.sim="csuper"; -x.model.evtout=1; -x.model.blocktype="h"; -x.model.firing=false; -x.model.dep_ut=[false,false]; -x.model.rpar=diagram; - } - CLOCK_f.prototype.details = function CLOCK_f() { - } - CLOCK_f.prototype.get = function CLOCK_f() { - } - CLOCK_f.prototype.set = function CLOCK_f() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="EVTDLY_f") { -path=i; -break; -} -} -newpar=list(); -xx=arg1.model.rpar.objs[path-1]; -exprs=xx.graphics.exprs; -model=xx.model; -t0_old=model.firing; -dt_old=model.rpar; -model_n=model; -while (true) { -[ok,dt,t0,exprs0]=scicos_getvalue("Set Clock block parameters",[["Period"],["Init time"]],list("vec",1,"vec",1),exprs); -if (!ok) { -break; -} -if (dt<=0) { -message("period must be positive"); -ok=false; -} -if (ok) { -xx.graphics.exprs=exprs0; -model.rpar=dt; -model.firing=t0; -xx.model=model; -arg1.model.rpar.objs[path-1]=xx; -break; -} -} -if (!and([t0_old,dt_old]==[t0,dt])||!and(exprs0==exprs)) { -newpar[size(newpar)+1-1]=path; -} -if (t0_old!=t0) { -needcompile=2; -} else { -needcompile=0; -} -x=arg1; -y=needcompile; -typ=newpar; - } -} -/* autogenerated from "macros/Sources/CONST.sci" */ -function CONST() { - CONST.prototype.define = function CONST() { -C=1; +/* autogenerated from "macros/Linear/TIME_DELAY.sci" */ +function TIME_DELAY() { + TIME_DELAY.prototype.define = function TIME_DELAY() { +nin=1; +T=1; +init=0; +N=1024; model=scicos_model(); -model.sim=list("cstblk4",4); -model.in1=[]; -model.out=1; -model.rpar=C; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=strcat(sci2exp(C)); +model.sim=list("time_delay",4); +model.in1=[nin]; +model.out=nin; +model.rpar=[T,init]; +model.ipar=N; +model.blocktype="x"; +model.dep_ut=[false,true]; +exprs=[[string(T)],[string(init)],[string(N)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3.5,2],model,exprs,gr_i); } - CONST.prototype.details = function CONST() { + TIME_DELAY.prototype.details = function TIME_DELAY() { } - CONST.prototype.get = function CONST() { + TIME_DELAY.prototype.get = function TIME_DELAY() { } - CONST.prototype.set = function CONST() { + TIME_DELAY.prototype.set = function TIME_DELAY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +nin=model.in1[1-1]; while (true) { -[ok,C,exprs]=scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); +[ok,T,init,N,exprs]=scicos_getvalue("Set delay parameters",[["Delay"],["initial input"],["Buffer size"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -sz=size(C); -nout=size(C,"*"); -if (nout==0) { -message("C must have at least one element"); -} else if (and(sz>1)) { -message("C matrix is not supported, use CONST_m instead"); -} else { -model.rpar=C.slice(); -model.out=nout; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +if (N<2) { +message("Buffer must be larger than 2"); +ok=false; } +if (T<=0) { +message("Delay must be positive"); +ok=false; } - } +if (ok) { +[model,graphics,ok]=check_io(model,graphics,[-1],-1,[],[]); } -/* autogenerated from "macros/Sources/Sigbuilder.sci" */ -function Sigbuilder() { - Sigbuilder.prototype.define = function Sigbuilder() { -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["Sigbuilder","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=100,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="CURVE_c",graphics=scicos_graphics(orig=[329.63473,606.18517],sz=[40,40],flip=true,theta=0,exprs=[["3"],["[0,1,2]"],["[10,20,-30]"],["y"],["n"]],pin=[],pout=6,pein=4,peout=2,gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("curve_c",4),in1=[],in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[[0],[1],[2],[10],[20],[-30]],ipar=[[3],[3],[1]],opar=list(),blocktype="c",firing=0,dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_link(xx=[[349.63473],[349.49528]],yy=[[600.47089],[565.10704]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[3,1,1]); -scs_m_1.objs[3-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[[349.49528],[565.10704]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=2,peout=[[8],[4]],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[4-1]=scicos_link(xx=[[349.49528],[266.69602],[266.69602],[270.35525],[342.80795],[342.80795],[349.63473]],yy=[[565.10704],[565.10704],[680.99483],[680.99483],[680.99483],[651.89946],[651.89946]],id="drawlink",thick=[0,0],ct=[5,-1],from=[3,2,0],to=[1,1,1]); -scs_m_1.objs[5-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[398.20616,616.18517],sz=[20,20],flip=true,theta=0,exprs="1",pin=6,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[6-1]=scicos_link(xx=[[378.20616],[398.20616]],yy=[[626.18517],[626.18517]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[5,1,1]); -scs_m_1.objs[7-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[339.49528,505.10704],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[8-1]=scicos_link(xx=[[349.49528],[349.49528]],yy=[[565.10704],[535.10704]],id="drawlink",thick=[0,0],ct=[5,-1],from=[3,1,0],to=[7,1,1]); -model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); -gr_i=[]; -x=standard_define([3,2],model,[],gr_i); - } - Sigbuilder.prototype.details = function Sigbuilder() { - } - Sigbuilder.prototype.get = function Sigbuilder() { - } - Sigbuilder.prototype.set = function Sigbuilder() { -ppath=list(0); -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="CURVE_c") { -ppath[1-1]=i; +if (ok) { +graphics.exprs=exprs; +model.rpar=[[T],[init]]; +model.ipar=N; +model.dep_ut=[false,true]; +x.graphics=graphics; +x.model=model; break; } } -newpar=list(); -y=0; -for (path in ppath) { -np=size(path,"*"); -spath=list(); -for (k=1;k<=np;k+=1) { -spath[$+1-1]="model"; -spath[$+1-1]="rpar"; -spath[$+1-1]="objs"; -spath[$+1-1]=path[k-1]; -} -xx=arg1[spath-1]; -execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (diffobjs(xxn,xx)) { -model=xx.model; -model_n=xxn.model; -if (!is_modelica_block(xx)) { -modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); -if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { -needcompile=1; -} -if (or(model.firing!=model_n.firing)) { -needcompile=2; -} -if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { -needcompile=4; -} -if (model.sim=="input"||model.sim=="output") { -if (model.ipar!=model_n.ipar) { -needcompile=4; -} -} -if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { -needcompile=4; -} -if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { -needcompile=4; -} -if (prod[size(model_n.sim)-1]>1) { -if (model_n.sim[2-1]>1000) { -if (model.sim[1-1]!=model_n.sim[1-1]) { -needcompile=4; -} -} -} -} else { -modified=or(model_n!=model); -eq=model.equations; -eqn=model_n.equations; -if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { -needcompile=4; -} -} -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=path; -y=max(y,needcompile); -} -} -x=arg1; -typ=newpar; } } -/* autogenerated from "macros/Sources/Modulo_Count.sci" */ -function Modulo_Count() { - Modulo_Count.prototype.define = function Modulo_Count() { -ini_c=0; -base=3; +/* autogenerated from "macros/Linear/VARIABLE_DELAY.sci" */ +function VARIABLE_DELAY() { + VARIABLE_DELAY.prototype.define = function VARIABLE_DELAY() { +nin=1; +T=1; +init=0; +N=1024; model=scicos_model(); -model.sim=list("modulo_count",4); -model.evtin=1; -model.out=1; -model.dstate=ini_c; -model.ipar=base; -model.blocktype="c"; +model.sim=list("variable_delay",4); +model.in1=[[nin],[1]]; +model.out=nin; +model.rpar=[T,init]; +model.ipar=N; +model.blocktype="d"; model.dep_ut=[false,false]; -exprs=[[string(ini_c)],[string(base)]]; +exprs=[[string(T)],[string(init)],[string(N)]]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } - Modulo_Count.prototype.details = function Modulo_Count() { + VARIABLE_DELAY.prototype.details = function VARIABLE_DELAY() { } - Modulo_Count.prototype.get = function Modulo_Count() { + VARIABLE_DELAY.prototype.get = function VARIABLE_DELAY() { } - Modulo_Count.prototype.set = function Modulo_Count() { + VARIABLE_DELAY.prototype.set = function VARIABLE_DELAY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +nin=model.in1[1-1]; while (true) { -[ok,ini_c,base,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"Modulo_Count")],[" "],[gettext("Modulo counter (0 to N counter)")],[" "]],[[gettext("Initial State (zero or positive number)")],[gettext("Upper Limit (positive number)")]],list("vec",1,"vec",1),exprs); -ini_c=int(ini_c); -base=int(base); +[ok,T,init,N,exprs]=scicos_getvalue("Set delay parameters",[["Max delay"],["initial input"],["Buffer size"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (ini_c<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Initial State\' parameter: %d."),ini_c),gettext("Null or positive integer expected.")); -} else if (base<=0) { -block_parameter_error(msprintf(gettext("Wrong values for \'Upper Limit\' parameter: %d."),base),gettext("Strictly positive integer expected.")); -} else { +if (N<2) { +message("Buffer must be larger than 2"); +ok=false; +} +if (T<=0) { +message("Delay must be positive"); +ok=false; +} +if (ok) { +[model,graphics,ok]=check_io(model,graphics,[[-1],[1]],-1,[],[]); +} +if (ok) { graphics.exprs=exprs; -model.ipar=base; -model.dstate=ini_c; +model.rpar=[[T],[init]]; +model.ipar=N; x.graphics=graphics; x.model=model; break; @@ -8543,543 +7633,429 @@ break; } } } -/* autogenerated from "macros/Sources/CONST_m.sci" */ -function CONST_m() { - CONST_m.prototype.define = function CONST_m() { -C=[1]; +/* autogenerated from "macros/MatrixOp/CUMSUM.sci" */ +function CUMSUM() { + CUMSUM.prototype.define = function CUMSUM() { model=scicos_model(); -model.sim=list("cstblk4",4); -model.in1=[]; -model.out=size(C,1); -model.in2=[]; -model.out2=size(C,2); -model.rpar=C; -model.opar=list(); -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=sci2exp(C); +function_name="cumsum_m"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.out=-1; +model.out2=-2; +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(1)],[sci2exp(0)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,label,gr_i); } - CONST_m.prototype.details = function CONST_m() { + CUMSUM.prototype.details = function CUMSUM() { } - CONST_m.prototype.get = function CONST_m() { + CUMSUM.prototype.get = function CUMSUM() { } - CONST_m.prototype.set = function CONST_m() { + CUMSUM.prototype.set = function CUMSUM() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; +if (size(label,"*")==14) { +label[9-1]=[]; +} while (true) { -[ok,C,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CONST_m")],[" "],[gettext("Constant value generator")],[" "]],gettext("Constant Value"),list("vec",-1),exprs); +[ok,typ,decomptyp,lab]=scicos_getvalue("Set CUMSUM block parameters",[["Datatype(1=real double 2=Complex)"],["Sum along (0=the first non singleton dimension 1=Rows 2=Columns)"]],list("vec",1,"vec",1),label); if (!ok) { break; } -nout=size(C); -if (find(nout==0)!=[]) { -block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter"),gettext("Constant Value")),gettext("Constant value must have at least one element.")); +label=lab; +if ((typ==1)) { +if ((decomptyp==0)) { +function_name="cumsum_m"; +out=[-1,-2]; +} else if ((decomptyp==1)) { +function_name="cumsum_r"; +out=[-1,1]; +} else if ((decomptyp==2)) { +function_name="cumsum_c"; +out=[1,-2]; } else { -model.sim=list("cstblk4_m",4); -model.opar=list(C); -if ((type[C-1]==1)) { -if (isreal[C-1]) { +message("decomposition type is not supported"); +ok=false; +} +it=1; ot=1; +} else if ((typ==2)) { +if ((decomptyp==0)) { +function_name="cumsumz_m"; +} else if ((decomptyp==1)) { +function_name="cumsumz_r"; +} else if ((decomptyp==2)) { +function_name="cumsumz_c"; } else { -ot=2; +message("decomposition type is not supported"); +ok=false; } -} else if ((typeof(C)=="int32")) { -ot=3; -} else if ((typeof(C)=="int16")) { -ot=4; -} else if ((typeof(C)=="int8")) { -ot=5; -} else if ((typeof(C)=="uint32")) { -ot=6; -} else if ((typeof(C)=="uint16")) { -ot=7; -} else if ((typeof(C)=="uint8")) { -ot=8; +it=2; +ot=2; } else { -block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter"),gettext("Constant Value")),gettext("Value type must be a numeric type (double, complex, int, int8, ...).")); +message("Datatype is not supported"); ok=false; } +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +funtyp=4; if (ok) { -model.rpar=[]; -[model,graphics,ok]=set_io(model,graphics,list(),list(nout,ot),[],[]); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } +if (ok) { +model.sim=list(function_name,funtyp); +arg1.model=model; +graphics.exprs=label; +arg1.graphics=graphics; +x=arg1; +break; } } } } -/* autogenerated from "macros/Sources/CLKINV_f.sci" */ -function CLKINV_f() { - CLKINV_f.prototype.define = function CLKINV_f() { -prt=1; +/* autogenerated from "macros/MatrixOp/EXTRACT.sci" */ +function EXTRACT() { + EXTRACT.prototype.define = function EXTRACT() { model=scicos_model(); -model.sim="input"; -model.evtout=1; -model.ipar=prt; -model.blocktype="d"; -model.firing=-1; -model.dep_ut=[false,false]; -exprs=string(prt); +function_name="extract"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.out=1; +model.out2=1; +model.outtyp=1; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.rpar=[]; +model.ipar=[1,1,1,1]; +model.blocktype="c"; +model.firing=[]; +model.dep_ut=[true,false]; +label=[[sci2exp(1)],[sci2exp([1])],[sci2exp([1])]]; gr_i=[]; -x=standard_define([1,1],model,exprs,gr_i); +x=standard_define([3,2],model,label,gr_i); } - CLKINV_f.prototype.details = function CLKINV_f() { + EXTRACT.prototype.details = function EXTRACT() { } - CLKINV_f.prototype.get = function CLKINV_f() { + EXTRACT.prototype.get = function EXTRACT() { } - CLKINV_f.prototype.set = function CLKINV_f() { + EXTRACT.prototype.set = function EXTRACT() { x=arg1; graphics=arg1.graphics; +label=graphics.exprs; model=arg1.model; -exprs=graphics.exprs; -exprs=exprs[1-1]; +if (size(label,"*")==14) { +label[9-1]=[]; +} while (true) { -[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CLKINV_f")],[" "],[gettext("Event input port")],[" "]],"Port Number",list("vec",1),exprs); -prt=int(prt); +[ok,typ,a,b,exprs]=scicos_getvalue("Set EXTRACT Block",[["Datatype (1=real double 2=Complex)"],["Lines to extract"],["Columns to extract"]],list("vec",1,"mat",[1,-1],"mat",[1,-1]),label); +a=a.slice(); +b=b.slice(); if (!ok) { break; } -if (prt<=0) { -block_parameter_error(msprintf(gettext("Wrong values for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +if ((typ==1)) { +function_name="extract"; +ot=1; +it=1; +} else if ((typ==2)) { +function_name="extractz"; +ot=2; +it=2; } else { -model.ipar=prt; -model.evtout=1; -model.firing=-1; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} -} - } -} -/* autogenerated from "macros/Sources/FROMWSB.sci" */ -function FROMWSB() { - FROMWSB.prototype.define = function FROMWSB() { -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-159.096,811.104,-121.216,617.984,1323,1008,331,284,630,480,1426,231,1.4],Title="FROMWSB",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="FROMWS_c",graphics=scicos_graphics(orig=[260.37067,261.584],sz=[70,40],flip=true,theta=0,exprs=[["V"],["1"],["1"],["0"]],pin=[],pout=4,pein=2,peout=2,gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("fromws_c",4),in1=[],in2=[],intyp=1,out=-1,out2=-2,outtyp=-1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[-31],[1],[1],[0]],opar=list(),blocktype="d",firing=0,dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_link(xx=[[295.37067],[295.37067],[233.23733],[233.23733],[295.37067],[295.37067]],yy=[[255.86971],[223.45067],[223.45067],[337.85067],[337.85067],[307.29829]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[1,1,1]); -scs_m_1.objs[3-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[358.9421,271.584],sz=[20,20],flip=true,theta=0,exprs="1",pin=4,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[4-1]=scicos_link(xx=[[338.9421],[358.9421]],yy=[[281.584],[281.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); -model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); -gr_i=[]; -x=standard_define([5,2],model,[],gr_i); - } - FROMWSB.prototype.details = function FROMWSB() { - } - FROMWSB.prototype.get = function FROMWSB() { - } - FROMWSB.prototype.set = function FROMWSB() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="FROMWS_c") { -ppath=list(i); -break; -} -} -newpar=list(); -y=0; -for (path in ppath) { -np=size(path,"*"); -spath=list(); -for (k=1;k<=np;k+=1) { -spath[$+1-1]="model"; -spath[$+1-1]="rpar"; -spath[$+1-1]="objs"; -spath[$+1-1]=path[k-1]; -} -xx=arg1[spath-1]; -execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (!isequalbitwise[xxn-1][xx-1]) { -model=xx.model; -model_n=xxn.model; -if (!is_modelica_block(xx)) { -modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); -if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { -needcompile=1; -} -if (or(model.firing!=model_n.firing)) { -needcompile=2; -} -if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { -needcompile=4; -} -if (model.sim=="input"||model.sim=="output") { -if (model.ipar!=model_n.ipar) { -needcompile=4; -} -} -if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { -needcompile=4; -} -if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { -needcompile=4; +message("Datatype is not supported"); +ok=false; } -if (prod[size(model_n.sim)-1]>1) { -if (model_n.sim[2-1]>1000) { -if (model.sim[1-1]!=model_n.sim[1-1]) { -needcompile=4; +ma=size(a,1); +mb=size(b,1); +if ((ma==0||mb==0)) { +message("empty field"); +ok=false; } +for (i=1;i<=ma;i+=1) { +if ((a[i-1]<=0)) { +message("invalid index"); +ok=false; } } -} else { -modified=or(model_n!=model); -eq=model.equations; -eqn=model_n.equations; -if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { -needcompile=4; +for (j=1;j<=mb;j+=1) { +if ((b[j-1]<=0)) { +message("invalid index"); +ok=false; } } -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=path; -y=max(y,needcompile); +model.ipar=[[a],[b],[ma],[mb]]; +in1=[model.in1,model.in2]; +out=[ma,mb]; +funtyp=4; +if (ok) { +label=exprs; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +model.sim=list(function_name,funtyp); +graphics.exprs=label; +arg1.graphics=graphics; +arg1.model=model; +x=arg1; +break; } } -x=arg1; -typ=newpar; } } -/* autogenerated from "macros/Sources/STEP_FUNCTION.sci" */ -function STEP_FUNCTION() { - STEP_FUNCTION.prototype.define = function STEP_FUNCTION() { -scs_m_1=scicos_diagram(); -scs_m_1.objs[1-1]=STEP["define"-1]; -scs_m_1.objs[2-1]=OUT_f("define"); -scs_m_1.objs[3-1]=scicos_link(); -scs_m_1.objs[4-1]=scicos_link(); -blk=scs_m_1.objs[1-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[0,0]; -graphics.sz=[40,40]; -graphics.pein=4; -graphics.peout=4; -graphics.pout=3; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[1-1]=blk; -blk=scs_m_1.objs[2-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[80,10]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.pin=3; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[2-1]=blk; -lnk=scs_m_1.objs[3-1]; -lnk.from=[1,1,0]; -lnk.to=[2,1,1]; -scs_m_1.objs[3-1]=lnk; -lnk=scs_m_1.objs[4-1]; -lnk.xx=[0,20,-20,-20,20,1]; -lnk.yy=[0,-20,-20,60,60,1]; -lnk.ct=[5,-1]; -lnk.from=[1,1,0]; -lnk.to=[1,1,1]; -scs_m_1.objs[4-1]=lnk; -blk={}; -lnk={}; +/* autogenerated from "macros/MatrixOp/EXTTRI.sci" */ +function EXTTRI() { + EXTTRI.prototype.define = function EXTTRI() { model=scicos_model(); -model.sim="csuper"; -model.out=1; -model.out2=1; +function_name="extrilz"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.out=-1; +model.out2=-2; model.outtyp=1; -model.rpar=scs_m_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(1)],[sci2exp(1)]]; gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +x=standard_define([3,2],model,label,gr_i); } - STEP_FUNCTION.prototype.details = function STEP_FUNCTION() { + EXTTRI.prototype.details = function EXTTRI() { } - STEP_FUNCTION.prototype.get = function STEP_FUNCTION() { + EXTTRI.prototype.get = function EXTTRI() { } - STEP_FUNCTION.prototype.set = function STEP_FUNCTION() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="STEP") { -ppath=list(i); -break; -} -} -newpar=list(); -for (path in ppath) { -np=size(path,"*"); -spath=list(); -for (k=1;k<=np;k+=1) { -spath[$+1-1]="model"; -spath[$+1-1]="rpar"; -spath[$+1-1]="objs"; -spath[$+1-1]=path[k-1]; -} -xx=arg1[spath-1]; -execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (diffobjs(xxn,xx)) { -model=xx.model; -model_n=xxn.model; -if (!is_modelica_block(xx)) { -modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); -if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { -needcompile=1; -} -if (or(model.firing!=model_n.firing)) { -needcompile=2; -} -if (model.sim=="input"||model.sim=="output") { -if (model.ipar!=model_n.ipar) { -needcompile=4; -} -} -if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { -needcompile=4; -} -if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { -needcompile=4; + EXTTRI.prototype.set = function EXTTRI() { +x=arg1; +model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; +if (size(label,"*")==14) { +label[9-1]=[]; } -if (prod[size(model_n.sim)-1]>1) { -if (model_n.sim[2-1]>1000) { -if (model.sim[1-1]!=model_n.sim[1-1]) { -needcompile=4; +while (true) { +[ok,typ,decomptyp,lab]=scicos_getvalue("Set EXTTRI block parameters",[["Datatype(1=real double 2=Complex)"],["extraction type (1=lower 2=upper 3=diagonal)"]],list("vec",1,"vec",1),label); +if (!ok) { +break; } +label=lab; +if ((typ==1)) { +if ((decomptyp==1)) { +function_name="exttril"; +} else if ((decomptyp==2)) { +function_name="exttriu"; +} else if ((decomptyp==3)) { +function_name="extdiag"; +} else { +message("decomposition type is not supported"); +ok=false; } +it=1; +ot=1; +} else if ((typ==2)) { +if ((decomptyp==1)) { +function_name="exttrilz"; +} else if ((decomptyp==2)) { +function_name="exttriuz"; +} else if ((decomptyp==3)) { +function_name="extdiagz"; +} else { +message("decomposition type is not supported"); +ok=false; } +it=2; +ot=2; } else { -modified=or(model_n!=model); -eq=model.equations; -eqn=model_n.equations; -if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { -needcompile=4; +message("Datatype is not supported"); +ok=false; } +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +funtyp=4; +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=path; +if (ok) { +model.sim=list(function_name,funtyp); +arg1.model=model; +graphics.exprs=label; +arg1.graphics=graphics; +x=arg1; +break; } } -x=arg1; -y=needcompile; -typ=newpar; } } -/* autogenerated from "macros/Sources/GENSIN_f.sci" */ -function GENSIN_f() { - GENSIN_f.prototype.define = function GENSIN_f() { -rpar=[[1],[1],[0]]; +/* autogenerated from "macros/MatrixOp/MATBKSL.sci" */ +function MATBKSL() { + MATBKSL.prototype.define = function MATBKSL() { model=scicos_model(); -model.sim="gensin"; -model.in1=[]; -model.out=1; -model.out2=1; +function_name="mat_bksl"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in1=[[-1],[-1]]; +model.in2=[[-2],[-3]]; +model.intyp=[1,1]; +model.out=-2; +model.out2=-3; model.outtyp=1; -model.rpar=[[1],[1],[0]]; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.rpar=[]; +model.ipar=[]; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[string(rpar[1-1])],[string(rpar[2-1])],[string(rpar[3-1])]]; +model.firing=[]; +model.dep_ut=[true,false]; +label=[sci2exp(1)]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,label,gr_i); } - GENSIN_f.prototype.details = function GENSIN_f() { + MATBKSL.prototype.details = function MATBKSL() { } - GENSIN_f.prototype.get = function GENSIN_f() { + MATBKSL.prototype.get = function MATBKSL() { } - GENSIN_f.prototype.set = function GENSIN_f() { + MATBKSL.prototype.set = function MATBKSL() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; +label=graphics.exprs; model=arg1.model; +if (size(label,"*")==14) { +label[9-1]=[]; +} while (true) { -[ok,M,F,P,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"GENSIN_f")],[" "],[gettext("Sine wave generator")],[" "]],[[gettext("Magnitude")],[gettext("Frequency (rad/s)")],[gettext("Phase (rad)")]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,typ,exprs]=scicos_getvalue("Set MATBKSL Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } -if (F<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'Frequency\' parameter: %e."),F),gettext("Strictly positive integer expected.")); +if ((typ==1)) { +function_name="mat_bksl"; +ot=1; +it=[1,1]; +} else if ((typ==2)) { +function_name="matz_bksl"; +ot=2; +it=[2,2]; +} else { +message("Datatype is not supported"); ok=false; } +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +funtyp=4; if (ok) { -[model,graphics,ok]=check_io(model,graphics,[],1,[],[]); -model.rpar=[[M],[F],[P]]; -model.out2=1; -model.outtyp=1; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; +label=exprs; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +model.sim=list(function_name,funtyp); +graphics.exprs=label; +arg1.graphics=graphics; +arg1.model=model; +x=arg1; break; } } } } -/* autogenerated from "macros/MatrixOp/MATMUL.sci" */ -function MATMUL() { - MATMUL.prototype.define = function MATMUL() { +/* autogenerated from "macros/MatrixOp/MATCATH.sci" */ +function MATCATH() { + MATCATH.prototype.define = function MATCATH() { model=scicos_model(); -model.sim=list("matmul_m",4); -model.in1=[[-1],[-2]]; +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=-3; +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]; -model.ipar=1; -label=[sci2exp(model.ipar)]; +label=[sci2exp(2)]; gr_i=[]; -x=standard_define([3,2],model,label,gr_i); +x=standard_define([2,3],model,label,gr_i); } - MATMUL.prototype.details = function MATMUL() { + MATCATH.prototype.details = function MATCATH() { } - MATMUL.prototype.get = function MATMUL() { + MATCATH.prototype.get = function MATCATH() { } - MATMUL.prototype.set = function MATMUL() { + MATCATH.prototype.set = function MATCATH() { x=arg1; -graphics=x.graphics; +model=arg1.model; +graphics=arg1.graphics; label=graphics.exprs; -model=x.model; -if (model.ipar==[]) { -model.ipar=1; -} -if (size(label,"*")==1) { -label[2-1]=sci2exp(1); -} -if (size(label,"*")==2) { -label[3-1]=sci2exp(1); +if (size(label,"*")>1) { +label="size(evstr("+label[2-1]+"),\'*\')"; } while (true) { -[ok,dtype,rule,np,exprs]=scicos_getvalue([["Set MATMUL parameter"],["For the Multipication rule:"],[" 1= Matrix by Matrix"],[" 2= Matrix by Matrix element wise "],[" 3= Matrix by Scalar"],["In the third case the second input will be the scalar"]],[["Datatype(1=real double 2=Complex 3=int32 ...)"],["Multiplication rule"],["Do on Overflow(0=Nothing 1=Saturate 2=Error)"]],list("vec",1,"vec",1,"vec",1),label); +[ok,nin,lab]=scicos_getvalue("Set MATCATH block parameters",["Number of input"],list("vec",1),label); if (!ok) { break; } -rule=int(rule); -if ((dtype<1||dtype>8)) { -message("type is not supported"); -ok=false; -} -if ((rule<1||rule>3)) { -message("Multiplication rule must be only 1,2 or 3"); -ok=false; -} -if ((dtype==1||dtype==2)) { -np=0; -} -TABMIN=[[0],[0],[-(2^31)],[-(2^15)],[-(2^7)],[0],[0],[0]]; -TABMAX=[[0],[0],[(2^31)-1],[(2^15)-1],[(2^7)-1],[(2^32)-1],[(2^16)-1],[(2^8)-1]]; -if (rule==2) { -if (np==0) { -model.sim=list("matmul2_m",4); -} else if (np==1) { -model.sim=list("matmul2_s",4); -} else { -model.sim=list("matmul2_e",4); -} -} else if (rule==3) { -if (np==0) { -model.sim=list("matbyscal",4); -} else if (np==1) { -model.sim=list("matbyscal_s",4); -} else { -model.sim=list("matbyscal_e",4); -} -} else { -if ((dtype==1)) { -model.sim=list("matmul_m",4); -} else if ((dtype==2)) { -model.sim=list("matzmul_m",4); -} else if (dtype==3) { -if (np==0) { -model.sim=list("matmul_i32n",4); -} else if (np==1) { -model.sim=list("matmul_i32s",4); -} else { -model.sim=list("matmul_i32e",4); -} -} else if (dtype==4) { -if (np==0) { -model.sim=list("matmul_i16n",4); -} else if (np==1) { -model.sim=list("matmul_i16s",4); -} else { -model.sim=list("matmul_i16e",4); -} -} else if (dtype==5) { -if (np==0) { -model.sim=list("matmul_i8n",4); -} else if (np==1) { -model.sim=list("matmul_i8s",4); -} else { -model.sim=list("matmul_i8e",4); -} -} else if (dtype==6) { -if (np==0) { -model.sim=list("matmul_ui32n",4); -} else if (np==1) { -model.sim=list("matmul_ui32s",4); -} else { -model.sim=list("matmul_ui32e",4); -} -} else if (dtype==7) { -if (np==0) { -model.sim=list("matmul_ui16n",4); -} else if (np==1) { -model.sim=list("matmul_ui16s",4); -} else { -model.sim=list("matmul_ui16e",4); -} -} else if (dtype==8) { -if (np==0) { -model.sim=list("matmul_ui8n",4); -} else if (np==1) { -model.sim=list("matmul_ui8s",4); -} else { -model.sim=list("matmul_ui8e",4); -} -} -} -kmin=TABMIN[dtype-1]; -kmax=TABMAX[dtype-1]; -it=dtype*ones(1,2); -ot=dtype; -if (rule==1) { -in1=[[-1,-2],[-2,-3]]; -out=[-1,-3]; -} else if (rule==2) { -in1=[[-1,-2],[-1,-2]]; -out=[-1,-2]; -} else { -in1=[[-1,-2],[1,1]]; -out=[-1,-2]; -} +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) { -label=exprs; -model.ipar=rule; -model.rpar=[[kmin],[kmax]]; +funtyp=4; +model.sim=list("mat_cath",funtyp); graphics.exprs=label; -x.graphics=graphics; -x.model=model; -arg1=x; +arg1.graphics=graphics; +arg1.model=model; +x=arg1; break; } } } } -/* autogenerated from "macros/MatrixOp/MATMAGPHI.sci" */ -function MATMAGPHI() { - MATMAGPHI.prototype.define = function MATMAGPHI() { +/* autogenerated from "macros/MatrixOp/MATCATV.sci" */ +function MATCATV() { + MATCATV.prototype.define = function MATCATV() { +l1=[[2],[2]]; model=scicos_model(); -function_name="matz_abs"; +function_name="mat_catv"; funtyp=4; model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=-2; -model.intyp=2; -model.out=[[-1],[-1]]; -model.out2=[[-2],[-2]]; -model.outtyp=[1,1]; +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=[]; @@ -9089,99 +8065,100 @@ model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[sci2exp(1)]; +label=[sci2exp(2)]; gr_i=[]; -x=standard_define([3,2],model,label,gr_i); +x=standard_define([2,3],model,label,gr_i); } - MATMAGPHI.prototype.details = function MATMAGPHI() { + MATCATV.prototype.details = function MATCATV() { } - MATMAGPHI.prototype.get = function MATMAGPHI() { + MATCATV.prototype.get = function MATCATV() { } - MATMAGPHI.prototype.set = function MATMAGPHI() { + MATCATV.prototype.set = function MATCATV() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; -if (size(label,"*")==14) { -label[9-1]=[]; +if (size(label,"*")>1) { +label="size(evstr("+label[2-1]+"),\'*\')"; } while (true) { -[ok,decomptyp,lab]=scicos_getvalue("Set MATMAGPHI block parameters",["decomposition type (1=Complex2MAG&PHI 2=MAG&PHI2Complex)"],list("vec",1),label); +[ok,nin,lab]=scicos_getvalue("Set MATCATV block parameters",["Number od inputs"],list("vec",1),label); if (!ok) { break; } label=lab; -if ((decomptyp==1)) { -function_name="matz_abs"; -in1=[-1,-2]; -it=2; -out=[[-1,-2],[-1,-2]]; -ot=[1,1]; -} else if ((decomptyp==2)) { -function_name="matz_absc"; -in1=[[-1,-2],[-1,-2]]; -it=[1,1]; -out=[-1,-2]; -ot=2; -} else { -message("decomposition type is not supported"); -ok=false; -} -funtyp=4; -if (ok) { +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) { -model.sim=list(function_name,funtyp); -arg1.model=model; +funtyp=4; +model.sim=list("mat_catv",funtyp); graphics.exprs=label; arg1.graphics=graphics; +arg1.model=model; x=arg1; break; } } } } -/* autogenerated from "macros/MatrixOp/SQRT.sci" */ -function SQRT() { - SQRT.prototype.define = function SQRT() { +/* autogenerated from "macros/MatrixOp/MATDET.sci" */ +function MATDET() { + MATDET.prototype.define = function MATDET() { model=scicos_model(); -model.sim=list("mat_sqrt",4); +function_name="mat_det"; +funtyp=4; +model.sim=list(function_name,funtyp); model.in1=-1; -model.in2=-2; +model.in2=-1; model.intyp=1; +model.out=1; +model.out2=1; model.outtyp=1; -model.out=-1; -model.out2=-2; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.rpar=[]; +model.ipar=[]; +model.blocktype="c"; +model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - SQRT.prototype.details = function SQRT() { + MATDET.prototype.details = function MATDET() { } - SQRT.prototype.get = function SQRT() { + MATDET.prototype.get = function MATDET() { } - SQRT.prototype.set = function SQRT() { + MATDET.prototype.set = function MATDET() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; +if (size(label,"*")==14) { +label[9-1]=[]; +} while (true) { -[ok,typ,exprs]=scicos_getvalue("Set SQRT Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); +[ok,typ,exprs]=scicos_getvalue("Set MATDET Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((typ==1)) { -function_name="mat_sqrt"; +function_name="mat_det"; +ot=1; +it=1; } else if ((typ==2)) { -function_name="matz_sqrt"; +function_name="matz_det"; +ot=2; +it=2; } else { -message("type is not supported"); +message("Datatype is not supported"); ok=false; } -it=typ; -ot=typ; in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; @@ -9198,15 +8175,15 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATEXPM.sci" */ -function MATEXPM() { - MATEXPM.prototype.define = function MATEXPM() { +/* autogenerated from "macros/MatrixOp/MATDIAG.sci" */ +function MATDIAG() { + MATDIAG.prototype.define = function MATDIAG() { model=scicos_model(); -function_name="mat_expm"; +function_name="mat_diag"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; -model.in2=-1; +model.in2=1; model.intyp=1; model.out=-1; model.out2=-1; @@ -9224,11 +8201,11 @@ label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - MATEXPM.prototype.details = function MATEXPM() { + MATDIAG.prototype.details = function MATDIAG() { } - MATEXPM.prototype.get = function MATEXPM() { + MATDIAG.prototype.get = function MATDIAG() { } - MATEXPM.prototype.set = function MATEXPM() { + MATDIAG.prototype.set = function MATDIAG() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; @@ -9237,16 +8214,16 @@ if (size(label,"*")==14) { label[9-1]=[]; } while (true) { -[ok,typ,exprs]=scicos_getvalue("Set EXPM Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); +[ok,typ,exprs]=scicos_getvalue("Set MATDIAG Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((typ==1)) { -function_name="mat_expm"; +function_name="mat_diag"; ot=1; it=1; } else if ((typ==2)) { -function_name="matz_expm"; +function_name="matz_diag"; ot=2; it=2; } else { @@ -9269,18 +8246,18 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATPINV.sci" */ -function MATPINV() { - MATPINV.prototype.define = function MATPINV() { +/* autogenerated from "macros/MatrixOp/MATDIV.sci" */ +function MATDIV() { + MATDIV.prototype.define = function MATDIV() { model=scicos_model(); -function_name="mat_pinv"; +function_name="mat_div"; funtyp=4; model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=-2; -model.intyp=1; -model.out=-2; -model.out2=-1; +model.in1=[[-1],[-2]]; +model.in2=[[-3],[-3]]; +model.intyp=[1,1]; +model.out=-1; +model.out2=-2; model.outtyp=1; model.evtin=[]; model.evtout=[]; @@ -9295,11 +8272,11 @@ label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - MATPINV.prototype.details = function MATPINV() { + MATDIV.prototype.details = function MATDIV() { } - MATPINV.prototype.get = function MATPINV() { + MATDIV.prototype.get = function MATDIV() { } - MATPINV.prototype.set = function MATPINV() { + MATDIV.prototype.set = function MATDIV() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; @@ -9308,18 +8285,18 @@ if (size(label,"*")==14) { label[9-1]=[]; } while (true) { -[ok,typ,exprs]=scicos_getvalue("Set MATPINV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); +[ok,typ,exprs]=scicos_getvalue("Set MATDIV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((typ==1)) { -function_name="mat_pinv"; +function_name="mat_div"; ot=1; -it=1; +it=[1,1]; } else if ((typ==2)) { -function_name="matz_pinv"; +function_name="matz_div"; ot=2; -it=2; +it=[2,2]; } else { message("Datatype is not supported"); ok=false; @@ -9340,19 +8317,19 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATDIAG.sci" */ -function MATDIAG() { - MATDIAG.prototype.define = function MATDIAG() { +/* autogenerated from "macros/MatrixOp/MATEIG.sci" */ +function MATEIG() { + MATEIG.prototype.define = function MATEIG() { model=scicos_model(); -function_name="mat_diag"; +function_name="mat_vps"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; -model.in2=1; +model.in2=-1; model.intyp=1; model.out=-1; -model.out2=-1; -model.outtyp=1; +model.out2=1; +model.outtyp=2; model.evtin=[]; model.evtout=[]; model.state=[]; @@ -9362,68 +8339,89 @@ model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[sci2exp(1)]; +label=[[sci2exp(1)],[sci2exp(1)]]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - MATDIAG.prototype.details = function MATDIAG() { + MATEIG.prototype.details = function MATEIG() { } - MATDIAG.prototype.get = function MATDIAG() { + MATEIG.prototype.get = function MATEIG() { } - MATDIAG.prototype.set = function MATDIAG() { + MATEIG.prototype.set = function MATEIG() { x=arg1; +model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; -model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { -[ok,typ,exprs]=scicos_getvalue("Set MATDIAG Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); +[ok,typ,decomptyp,lab]=scicos_getvalue("Set MATEIG block parameters",[["Datatype(1=real double 2=Complex)"],["decomposition type (1=eig values 2=eig values+eig vectors"]],list("vec",1,"vec",1),label); if (!ok) { break; } +label=lab; if ((typ==1)) { -function_name="mat_diag"; -ot=1; +if ((decomptyp==1)) { +function_name="mat_vps"; +out=[-1,1]; +ot=2; +} else if ((decomptyp==2)) { +function_name="mat_vpv"; +out=[[-1,-1],[-1,-1]]; +ot=[2,2]; +} else { +message("decomposition type is not supported"); +ok=false; +} it=1; } else if ((typ==2)) { -function_name="matz_diag"; +if ((decomptyp==1)) { +function_name="matz_vps"; +out=[-1,1]; ot=2; +} else if ((decomptyp==2)) { +function_name="matz_vpv"; +out=[[-1,-1],[-1,-1]]; +ot=[2,2]; +} else { +message("decomposition type is not supported"); +ok=false; +} it=2; } else { message("Datatype is not supported"); ok=false; } -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; +in1=[-1,-1]; funtyp=4; if (ok) { -label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} +if (ok) { model.sim=list(function_name,funtyp); +arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; -arg1.model=model; x=arg1; break; } } } } -/* autogenerated from "macros/MatrixOp/MATZCONJ.sci" */ -function MATZCONJ() { - MATZCONJ.prototype.define = function MATZCONJ() { +/* autogenerated from "macros/MatrixOp/MATEXPM.sci" */ +function MATEXPM() { + MATEXPM.prototype.define = function MATEXPM() { model=scicos_model(); -function_name="matz_conj"; +function_name="mat_expm"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; -model.in2=-2; -model.intyp=2; +model.in2=-1; +model.intyp=1; model.out=-1; -model.out2=-2; -model.outtyp=2; +model.out2=-1; +model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; @@ -9433,16 +8431,53 @@ model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[]; +label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - MATZCONJ.prototype.details = function MATZCONJ() { + MATEXPM.prototype.details = function MATEXPM() { } - MATZCONJ.prototype.get = function MATZCONJ() { + MATEXPM.prototype.get = function MATEXPM() { } - MATZCONJ.prototype.set = function MATZCONJ() { + MATEXPM.prototype.set = function MATEXPM() { +x=arg1; +graphics=arg1.graphics; +label=graphics.exprs; +model=arg1.model; +if (size(label,"*")==14) { +label[9-1]=[]; +} +while (true) { +[ok,typ,exprs]=scicos_getvalue("Set EXPM Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); +if (!ok) { +break; +} +if ((typ==1)) { +function_name="mat_expm"; +ot=1; +it=1; +} else if ((typ==2)) { +function_name="matz_expm"; +ot=2; +it=2; +} else { +message("Datatype is not supported"); +ok=false; +} +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +funtyp=4; +if (ok) { +label=exprs; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +model.sim=list(function_name,funtyp); +graphics.exprs=label; +arg1.graphics=graphics; +arg1.model=model; x=arg1; +break; +} +} } } /* autogenerated from "macros/MatrixOp/MATINV.sci" */ @@ -9585,19 +8620,19 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATSUM.sci" */ -function MATSUM() { - MATSUM.prototype.define = function MATSUM() { +/* autogenerated from "macros/MatrixOp/MATMAGPHI.sci" */ +function MATMAGPHI() { + MATMAGPHI.prototype.define = function MATMAGPHI() { model=scicos_model(); -function_name="mat_sum"; +function_name="matz_abs"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; -model.intyp=1; -model.out=1; -model.out2=1; -model.outtyp=1; +model.intyp=2; +model.out=[[-1],[-1]]; +model.out2=[[-2],[-2]]; +model.outtyp=[1,1]; model.evtin=[]; model.evtout=[]; model.state=[]; @@ -9607,15 +8642,15 @@ model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[[sci2exp(1)],[sci2exp(0)]]; +label=[sci2exp(1)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } - MATSUM.prototype.details = function MATSUM() { + MATMAGPHI.prototype.details = function MATMAGPHI() { } - MATSUM.prototype.get = function MATSUM() { + MATMAGPHI.prototype.get = function MATMAGPHI() { } - MATSUM.prototype.set = function MATSUM() { + MATMAGPHI.prototype.set = function MATMAGPHI() { x=arg1; model=arg1.model; graphics=arg1.graphics; @@ -9624,48 +8659,27 @@ if (size(label,"*")==14) { label[9-1]=[]; } while (true) { -[ok,typ,decomptyp,lab]=scicos_getvalue("Set MATSUM block parameters",[["Datatype(1=real double 2=Complex)"],["Sum along (0=all 1=lines 2=Columns)"]],list("vec",1,"vec",1),label); +[ok,decomptyp,lab]=scicos_getvalue("Set MATMAGPHI block parameters",["decomposition type (1=Complex2MAG&PHI 2=MAG&PHI2Complex)"],list("vec",1),label); if (!ok) { break; } label=lab; -if ((typ==1)) { -if ((decomptyp==0)) { -function_name="mat_sum"; -out=[1,1]; -} else if ((decomptyp==2)) { -function_name="mat_suml"; -out=[-1,1]; -} else if ((decomptyp==1)) { -function_name="mat_sumc"; -out=[1,-2]; -} else { -message("decomposition type is not supported"); -ok=false; -} -it=1; -ot=1; -} else if ((typ==2)) { -if ((decomptyp==0)) { -function_name="matz_sum"; -out=[1,1]; -} else if ((decomptyp==2)) { -function_name="matz_suml"; -out=[-1,1]; -} else if ((decomptyp==1)) { -function_name="matz_sumc"; -out=[1,-2]; -} else { -message("decomposition type is not supported"); -ok=false; -} +if ((decomptyp==1)) { +function_name="matz_abs"; +in1=[-1,-2]; it=2; +out=[[-1,-2],[-1,-2]]; +ot=[1,1]; +} else if ((decomptyp==2)) { +function_name="matz_absc"; +in1=[[-1,-2],[-1,-2]]; +it=[1,1]; +out=[-1,-2]; ot=2; } else { -message("Datatype is not supported"); +message("decomposition type is not supported"); ok=false; } -in1=[model.in1,model.in2]; funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); @@ -9681,18 +8695,169 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATBKSL.sci" */ -function MATBKSL() { - MATBKSL.prototype.define = function MATBKSL() { +/* autogenerated from "macros/MatrixOp/MATMUL.sci" */ +function MATMUL() { + MATMUL.prototype.define = function MATMUL() { model=scicos_model(); -function_name="mat_bksl"; +model.sim=list("matmul_m",4); +model.in1=[[-1],[-2]]; +model.in2=[[-2],[-3]]; +model.out=-1; +model.out2=-3; +model.dep_ut=[true,false]; +model.ipar=1; +label=[sci2exp(model.ipar)]; +gr_i=[]; +x=standard_define([3,2],model,label,gr_i); + } + MATMUL.prototype.details = function MATMUL() { + } + MATMUL.prototype.get = function MATMUL() { + } + MATMUL.prototype.set = function MATMUL() { +x=arg1; +graphics=x.graphics; +label=graphics.exprs; +model=x.model; +if (model.ipar==[]) { +model.ipar=1; +} +if (size(label,"*")==1) { +label[2-1]=sci2exp(1); +} +if (size(label,"*")==2) { +label[3-1]=sci2exp(1); +} +while (true) { +[ok,dtype,rule,np,exprs]=scicos_getvalue([["Set MATMUL parameter"],["For the Multipication rule:"],[" 1= Matrix by Matrix"],[" 2= Matrix by Matrix element wise "],[" 3= Matrix by Scalar"],["In the third case the second input will be the scalar"]],[["Datatype(1=real double 2=Complex 3=int32 ...)"],["Multiplication rule"],["Do on Overflow(0=Nothing 1=Saturate 2=Error)"]],list("vec",1,"vec",1,"vec",1),label); +if (!ok) { +break; +} +rule=int(rule); +if ((dtype<1||dtype>8)) { +message("type is not supported"); +ok=false; +} +if ((rule<1||rule>3)) { +message("Multiplication rule must be only 1,2 or 3"); +ok=false; +} +if ((dtype==1||dtype==2)) { +np=0; +} +TABMIN=[[0],[0],[-(2^31)],[-(2^15)],[-(2^7)],[0],[0],[0]]; +TABMAX=[[0],[0],[(2^31)-1],[(2^15)-1],[(2^7)-1],[(2^32)-1],[(2^16)-1],[(2^8)-1]]; +if (rule==2) { +if (np==0) { +model.sim=list("matmul2_m",4); +} else if (np==1) { +model.sim=list("matmul2_s",4); +} else { +model.sim=list("matmul2_e",4); +} +} else if (rule==3) { +if (np==0) { +model.sim=list("matbyscal",4); +} else if (np==1) { +model.sim=list("matbyscal_s",4); +} else { +model.sim=list("matbyscal_e",4); +} +} else { +if ((dtype==1)) { +model.sim=list("matmul_m",4); +} else if ((dtype==2)) { +model.sim=list("matzmul_m",4); +} else if (dtype==3) { +if (np==0) { +model.sim=list("matmul_i32n",4); +} else if (np==1) { +model.sim=list("matmul_i32s",4); +} else { +model.sim=list("matmul_i32e",4); +} +} else if (dtype==4) { +if (np==0) { +model.sim=list("matmul_i16n",4); +} else if (np==1) { +model.sim=list("matmul_i16s",4); +} else { +model.sim=list("matmul_i16e",4); +} +} else if (dtype==5) { +if (np==0) { +model.sim=list("matmul_i8n",4); +} else if (np==1) { +model.sim=list("matmul_i8s",4); +} else { +model.sim=list("matmul_i8e",4); +} +} else if (dtype==6) { +if (np==0) { +model.sim=list("matmul_ui32n",4); +} else if (np==1) { +model.sim=list("matmul_ui32s",4); +} else { +model.sim=list("matmul_ui32e",4); +} +} else if (dtype==7) { +if (np==0) { +model.sim=list("matmul_ui16n",4); +} else if (np==1) { +model.sim=list("matmul_ui16s",4); +} else { +model.sim=list("matmul_ui16e",4); +} +} else if (dtype==8) { +if (np==0) { +model.sim=list("matmul_ui8n",4); +} else if (np==1) { +model.sim=list("matmul_ui8s",4); +} else { +model.sim=list("matmul_ui8e",4); +} +} +} +kmin=TABMIN[dtype-1]; +kmax=TABMAX[dtype-1]; +it=dtype*ones(1,2); +ot=dtype; +if (rule==1) { +in1=[[-1,-2],[-2,-3]]; +out=[-1,-3]; +} else if (rule==2) { +in1=[[-1,-2],[-1,-2]]; +out=[-1,-2]; +} else { +in1=[[-1,-2],[1,1]]; +out=[-1,-2]; +} +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (ok) { +label=exprs; +model.ipar=rule; +model.rpar=[[kmin],[kmax]]; +graphics.exprs=label; +x.graphics=graphics; +x.model=model; +arg1=x; +break; +} +} + } +} +/* autogenerated from "macros/MatrixOp/MATPINV.sci" */ +function MATPINV() { + MATPINV.prototype.define = function MATPINV() { +model=scicos_model(); +function_name="mat_pinv"; funtyp=4; model.sim=list(function_name,funtyp); -model.in1=[[-1],[-1]]; -model.in2=[[-2],[-3]]; -model.intyp=[1,1]; +model.in1=-1; +model.in2=-2; +model.intyp=1; model.out=-2; -model.out2=-3; +model.out2=-1; model.outtyp=1; model.evtin=[]; model.evtout=[]; @@ -9707,11 +8872,11 @@ label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - MATBKSL.prototype.details = function MATBKSL() { + MATPINV.prototype.details = function MATPINV() { } - MATBKSL.prototype.get = function MATBKSL() { + MATPINV.prototype.get = function MATPINV() { } - MATBKSL.prototype.set = function MATBKSL() { + MATPINV.prototype.set = function MATPINV() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; @@ -9720,18 +8885,18 @@ if (size(label,"*")==14) { label[9-1]=[]; } while (true) { -[ok,typ,exprs]=scicos_getvalue("Set MATBKSL Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); +[ok,typ,exprs]=scicos_getvalue("Set MATPINV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((typ==1)) { -function_name="mat_bksl"; +function_name="mat_pinv"; ot=1; -it=[1,1]; +it=1; } else if ((typ==2)) { -function_name="matz_bksl"; +function_name="matz_pinv"; ot=2; -it=[2,2]; +it=2; } else { message("Datatype is not supported"); ok=false; @@ -9848,20 +9013,19 @@ break; needcompile=resume(needcompile) } } -/* autogenerated from "macros/MatrixOp/MATCATV.sci" */ -function MATCATV() { - MATCATV.prototype.define = function MATCATV() { -l1=[[2],[2]]; +/* autogenerated from "macros/MatrixOp/MATSING.sci" */ +function MATSING() { + MATSING.prototype.define = function MATSING() { model=scicos_model(); -function_name="mat_catv"; +function_name="mat_sing"; 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.in1=-1; +model.in2=-2; +model.intyp=1; +model.out=-1; +model.out2=1; +model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; @@ -9871,39 +9035,169 @@ model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[sci2exp(2)]; +label=[[sci2exp(1)],[sci2exp(1)]]; gr_i=[]; -x=standard_define([2,3],model,label,gr_i); +x=standard_define([2,2],model,label,gr_i); } - MATCATV.prototype.details = function MATCATV() { + MATSING.prototype.details = function MATSING() { } - MATCATV.prototype.get = function MATCATV() { + MATSING.prototype.get = function MATSING() { } - MATCATV.prototype.set = function MATCATV() { + MATSING.prototype.set = function MATSING() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; -if (size(label,"*")>1) { -label="size(evstr("+label[2-1]+"),\'*\')"; +if (size(label,"*")==14) { +label[9-1]=[]; } while (true) { -[ok,nin,lab]=scicos_getvalue("Set MATCATV block parameters",["Number od inputs"],list("vec",1),label); +[ok,typ,decomptyp,lab]=scicos_getvalue("Set MATSVD block parameters",[["Datatype(1=real double 2=Complex)"],["decomposition type (1=singular values 2=sing values+matrix U & V)"]],list("vec",1,"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]; +if ((typ==1)) { +if ((decomptyp==1)) { +function_name="mat_sing"; +in1=[-1,-2]; +out=[-1,1]; +ot=1; +} else if ((decomptyp==2)) { +function_name="mat_svd"; +in1=[-1,-2]; +out=[[-1,-1],[-1,-2],[-2,-2]]; +ot=[1,1,1]; +} else { +message("decomposition type is not supported"); +ok=false; +} +it=1; +} else if ((typ==2)) { +if ((decomptyp==1)) { +function_name="matz_sing"; +in1=[-1,-2]; +out=[-1,1]; +ot=1; +} else if ((decomptyp==2)) { +function_name="matz_svd"; +in1=[-1,-2]; +out=[[-1,-1],[-1,-2],[-2,-2]]; +ot=[2,1,2]; +} else { +message("decomposition type is not supported"); +ok=false; +} +it=2; +} else { +message("Datatype is not supported"); +ok=false; +} +funtyp=4; +if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} if (ok) { -funtyp=4; -model.sim=list("mat_catv",funtyp); +model.sim=list(function_name,funtyp); +arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; +x=arg1; +break; +} +} + } +} +/* autogenerated from "macros/MatrixOp/MATSUM.sci" */ +function MATSUM() { + MATSUM.prototype.define = function MATSUM() { +model=scicos_model(); +function_name="mat_sum"; +funtyp=4; +model.sim=list(function_name,funtyp); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.out=1; +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(1)],[sci2exp(0)]]; +gr_i=[]; +x=standard_define([3,2],model,label,gr_i); + } + MATSUM.prototype.details = function MATSUM() { + } + MATSUM.prototype.get = function MATSUM() { + } + MATSUM.prototype.set = function MATSUM() { +x=arg1; +model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; +if (size(label,"*")==14) { +label[9-1]=[]; +} +while (true) { +[ok,typ,decomptyp,lab]=scicos_getvalue("Set MATSUM block parameters",[["Datatype(1=real double 2=Complex)"],["Sum along (0=all 1=lines 2=Columns)"]],list("vec",1,"vec",1),label); +if (!ok) { +break; +} +label=lab; +if ((typ==1)) { +if ((decomptyp==0)) { +function_name="mat_sum"; +out=[1,1]; +} else if ((decomptyp==2)) { +function_name="mat_suml"; +out=[-1,1]; +} else if ((decomptyp==1)) { +function_name="mat_sumc"; +out=[1,-2]; +} else { +message("decomposition type is not supported"); +ok=false; +} +it=1; +ot=1; +} else if ((typ==2)) { +if ((decomptyp==0)) { +function_name="matz_sum"; +out=[1,1]; +} else if ((decomptyp==2)) { +function_name="matz_suml"; +out=[-1,1]; +} else if ((decomptyp==1)) { +function_name="matz_sumc"; +out=[1,-2]; +} else { +message("decomposition type is not supported"); +ok=false; +} +it=2; +ot=2; +} else { +message("Datatype is not supported"); +ok=false; +} +in1=[model.in1,model.in2]; +funtyp=4; +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} +if (ok) { +model.sim=list(function_name,funtyp); arg1.model=model; +graphics.exprs=label; +arg1.graphics=graphics; x=arg1; break; } @@ -9973,64 +9267,38 @@ break; } } } -/* autogenerated from "macros/MatrixOp/RICC.sci" */ -function RICC() { - RICC.prototype.define = function RICC() { +/* autogenerated from "macros/MatrixOp/MATZCONJ.sci" */ +function MATZCONJ() { + MATZCONJ.prototype.define = function MATZCONJ() { model=scicos_model(); -function_name="ricc_m"; +function_name="matz_conj"; funtyp=4; model.sim=list(function_name,funtyp); -model.in1=[[-1],[-1],[-1]]; -model.in2=[[-1],[-1],[-1]]; -model.intyp=[1,1,1]; +model.in1=-1; +model.in2=-2; +model.intyp=2; model.out=-1; -model.out2=-1; -model.outtyp=1; +model.out2=-2; +model.outtyp=2; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; -model.ipar=[[1],[1]]; +model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[[sci2exp(1)],[sci2exp(1)]]; +label=[]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - RICC.prototype.details = function RICC() { + MATZCONJ.prototype.details = function MATZCONJ() { } - RICC.prototype.get = function RICC() { + MATZCONJ.prototype.get = function MATZCONJ() { } - RICC.prototype.set = function RICC() { -x=arg1; -graphics=arg1.graphics; -label=graphics.exprs; -model=arg1.model; -if (size(label,"*")==14) { -label[9-1]=[]; -} -while (true) { -[ok,tpe,mod,exprs]=scicos_getvalue("Set RICC Block",[["Type (1=Cont 2=Disc)"],["Model(1=Schr 2=sign(cont) inv(disc))"]],list("vec",1,"vec",1),label); -if (!ok) { -break; -} -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; -it=[1,1,1]; -ot=1; -label=exprs; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -if (ok) { -model.ipar=[[tpe],[mod]]; -graphics.exprs=label; -arg1.graphics=graphics; -arg1.model=model; + MATZCONJ.prototype.set = function MATZCONJ() { x=arg1; -break; -} -} } } /* autogenerated from "macros/MatrixOp/MATZREIM.sci" */ @@ -10108,58 +9376,57 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATCATH.sci" */ -function MATCATH() { - MATCATH.prototype.define = function MATCATH() { +/* autogenerated from "macros/MatrixOp/RICC.sci" */ +function RICC() { + RICC.prototype.define = function RICC() { model=scicos_model(); -function_name="mat_cath"; +function_name="ricc_m"; funtyp=4; model.sim=list(function_name,funtyp); -model.in1=[[-1],[-1]]; -model.in2=[[-2],[-3]]; -model.intyp=[1,1]; +model.in1=[[-1],[-1],[-1]]; +model.in2=[[-1],[-1],[-1]]; +model.intyp=[1,1,1]; model.out=-1; -model.out2=0; -model.outtyp=-1; +model.out2=-1; +model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; -model.ipar=[]; +model.ipar=[[1],[1]]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; -label=[sci2exp(2)]; +label=[[sci2exp(1)],[sci2exp(1)]]; gr_i=[]; -x=standard_define([2,3],model,label,gr_i); +x=standard_define([2,2],model,label,gr_i); } - MATCATH.prototype.details = function MATCATH() { + RICC.prototype.details = function RICC() { } - MATCATH.prototype.get = function MATCATH() { + RICC.prototype.get = function RICC() { } - MATCATH.prototype.set = function MATCATH() { + RICC.prototype.set = function RICC() { x=arg1; -model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; -if (size(label,"*")>1) { -label="size(evstr("+label[2-1]+"),\'*\')"; +model=arg1.model; +if (size(label,"*")==14) { +label[9-1]=[]; } while (true) { -[ok,nin,lab]=scicos_getvalue("Set MATCATH block parameters",["Number of input"],list("vec",1),label); +[ok,tpe,mod,exprs]=scicos_getvalue("Set RICC Block",[["Type (1=Cont 2=Disc)"],["Model(1=Schr 2=sign(cont) inv(disc))"]],list("vec",1,"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; +in1=[model.in1,model.in2]; +out=[model.out,model.out2]; +it=[1,1,1]; +ot=1; +label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { -funtyp=4; -model.sim=list("mat_cath",funtyp); +model.ipar=[[tpe],[mod]]; graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; @@ -10169,17 +9436,17 @@ break; } } } -/* autogenerated from "macros/MatrixOp/MATSING.sci" */ -function MATSING() { - MATSING.prototype.define = function MATSING() { +/* autogenerated from "macros/MatrixOp/ROOTCOEF.sci" */ +function ROOTCOEF() { + ROOTCOEF.prototype.define = function ROOTCOEF() { model=scicos_model(); -function_name="mat_sing"; +function_name="root_coef"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; -model.in2=-2; +model.in2=1; model.intyp=1; -model.out=-1; +model.out=-2; model.out2=1; model.outtyp=1; model.evtin=[]; @@ -10193,132 +9460,93 @@ model.firing=[]; model.dep_ut=[true,false]; label=[[sci2exp(1)],[sci2exp(1)]]; gr_i=[]; -x=standard_define([2,2],model,label,gr_i); +x=standard_define([3,2],model,label,gr_i); } - MATSING.prototype.details = function MATSING() { + ROOTCOEF.prototype.details = function ROOTCOEF() { } - MATSING.prototype.get = function MATSING() { + ROOTCOEF.prototype.get = function ROOTCOEF() { } - MATSING.prototype.set = function MATSING() { + ROOTCOEF.prototype.set = function ROOTCOEF() { x=arg1; -model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; +model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { -[ok,typ,decomptyp,lab]=scicos_getvalue("Set MATSVD block parameters",[["Datatype(1=real double 2=Complex)"],["decomposition type (1=singular values 2=sing values+matrix U & V)"]],list("vec",1,"vec",1),label); +[ok,typ,inp,exprs]=scicos_getvalue("Set ROOTCOEF Block",[["Datatype(1=real double 2=Complex)"],["input row size"]],list("vec",1,"vec",1),label); if (!ok) { break; } -label=lab; if ((typ==1)) { -if ((decomptyp==1)) { -function_name="mat_sing"; -in1=[-1,-2]; -out=[-1,1]; +function_name="root_coef"; ot=1; -} else if ((decomptyp==2)) { -function_name="mat_svd"; -in1=[-1,-2]; -out=[[-1,-1],[-1,-2],[-2,-2]]; -ot=[1,1,1]; -} else { -message("decomposition type is not supported"); -ok=false; -} it=1; } else if ((typ==2)) { -if ((decomptyp==1)) { -function_name="matz_sing"; -in1=[-1,-2]; -out=[-1,1]; -ot=1; -} else if ((decomptyp==2)) { -function_name="matz_svd"; -in1=[-1,-2]; -out=[[-1,-1],[-1,-2],[-2,-2]]; -ot=[2,1,2]; -} else { -message("decomposition type is not supported"); -ok=false; -} +function_name="rootz_coef"; +ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } +in1=[inp,model.in2]; +out=[inp+1,model.out2]; funtyp=4; if (ok) { +label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -} -if (ok) { model.sim=list(function_name,funtyp); -arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; +arg1.model=model; x=arg1; break; } } } } -/* autogenerated from "macros/MatrixOp/MATDET.sci" */ -function MATDET() { - MATDET.prototype.define = function MATDET() { +/* autogenerated from "macros/MatrixOp/SQRT.sci" */ +function SQRT() { + SQRT.prototype.define = function SQRT() { model=scicos_model(); -function_name="mat_det"; -funtyp=4; -model.sim=list(function_name,funtyp); +model.sim=list("mat_sqrt",4); model.in1=-1; -model.in2=-1; +model.in2=-2; model.intyp=1; -model.out=1; -model.out2=1; model.outtyp=1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=[]; -model.blocktype="c"; -model.firing=[]; +model.out=-1; +model.out2=-2; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } - MATDET.prototype.details = function MATDET() { + SQRT.prototype.details = function SQRT() { } - MATDET.prototype.get = function MATDET() { + SQRT.prototype.get = function SQRT() { } - MATDET.prototype.set = function MATDET() { + SQRT.prototype.set = function SQRT() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; -if (size(label,"*")==14) { -label[9-1]=[]; -} while (true) { -[ok,typ,exprs]=scicos_getvalue("Set MATDET Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); +[ok,typ,exprs]=scicos_getvalue("Set SQRT Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((typ==1)) { -function_name="mat_det"; -ot=1; -it=1; +function_name="mat_sqrt"; } else if ((typ==2)) { -function_name="matz_det"; -ot=2; -it=2; +function_name="matz_sqrt"; } else { -message("Datatype is not supported"); +message("type is not supported"); ok=false; } +it=typ; +ot=typ; in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; @@ -10427,1382 +9655,1046 @@ break; } } } -/* autogenerated from "macros/MatrixOp/ROOTCOEF.sci" */ -function ROOTCOEF() { - ROOTCOEF.prototype.define = function ROOTCOEF() { +/* autogenerated from "macros/Misc/AUTOMAT.sci" */ +function AUTOMAT() { + AUTOMAT.prototype.define = function AUTOMAT() { +NMode=2; +this.Minitial=1; +NX=1; +this.X0=[0.0]; +this.XP=[[1],[1]]; +C1=[2]; +C2=[1]; +exprs=[[string(NMode)],[string(this.Minitial)],[string(NX)],[sci2exp(this.X0)],[sci2exp(this.XP)],[sci2exp(C1)],[sci2exp(C2)]]; +ipar=[[NMode],[this.Minitial],[NX],[this.XP],[C1],[C2]]; +rpar=[this.X0]; model=scicos_model(); -function_name="root_coef"; -funtyp=4; -model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=1; -model.intyp=1; -model.out=-2; -model.out2=1; -model.outtyp=1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=[]; +model.sim=list("automat",10004); +model.in1=[[2*NX+1],[2*NX+1]]; +model.out=[[2],[2*NX]]; +model.state=ones(2*NX,1); +model.nzcross=1; model.blocktype="c"; -model.firing=[]; -model.dep_ut=[true,false]; -label=[[sci2exp(1)],[sci2exp(1)]]; +model.evtout=1; +model.firing=-1; +model.dep_ut=[false,true]; +model.ipar=ipar; +model.rpar=rpar; gr_i=[]; -x=standard_define([3,2],model,label,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - ROOTCOEF.prototype.details = function ROOTCOEF() { + AUTOMAT.prototype.details = function AUTOMAT() { } - ROOTCOEF.prototype.get = function ROOTCOEF() { + AUTOMAT.prototype.get = function AUTOMAT() { } - ROOTCOEF.prototype.set = function ROOTCOEF() { + AUTOMAT.prototype.set = function AUTOMAT() { x=arg1; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; model=arg1.model; -if (size(label,"*")==14) { -label[9-1]=[]; -} +ipar=model.ipar; +NMode=ipar[1-1]; +NX=ipar[3-1]; while (true) { -[ok,typ,inp,exprs]=scicos_getvalue("Set ROOTCOEF Block",[["Datatype(1=real double 2=Complex)"],["input row size"]],list("vec",1,"vec",1),label); -if (!ok) { +CX="C1"; +MSG0="\'Jump from Mode "; +MSG2=":[..;M_final(Guard=In("; +MSG3=").i);..]\'"; +MSG=MSG0+"1"+MSG2+"1"+MSG3; +VEC="\'mat\',[-1,1]"; +for (i=2;i<=NMode;i+=1) { +CX=CX+","+"C"+string(i); +MSG=MSG+";"+MSG0+string(i)+MSG2+string(i)+MSG3; +VEC=VEC+","+"\'mat\',[-1,1]"; +} +GTV="[ok,NMode,Minitial,NX,X0,XP,"+CX+",exprs]=scicos_getvalue(\'Set Finite state machine model\', [\'Number (finite-state) Modes\';\'Initial Mode\';\'Number of continuous-time states\';\'Continuous-time states intial values\';\'Xproperties of continuous-time states in each Mode\';"+MSG+"], list(\'vec\',1,\'vec\',1,\'vec\',1,\'mat\',[-1,-1],\'mat\',[-1,-1],"+VEC+"),exprs)"; +execstr(GTV); +if (!this.ok) { break; } -if ((typ==1)) { -function_name="root_coef"; -ot=1; -it=1; -} else if ((typ==2)) { -function_name="rootz_coef"; -ot=2; -it=2; +NMode_old=size(exprs,"*")-5; +ModifEncore=false; +if ((NMode_old>NMode)) { +exprs.slice(NMode+6-1,NMode_old+5)=[]; +ModifEncore=true; +} +if ((NMode_old<NMode)) { +exprs.slice(NMode_old+6-1,NMode+5)=exprs[NMode_old+4-1]; +ModifEncore=true; +} +if ((NX!=size(this.X0,"*"))) { +messagebox("the size of intial continuous-time states should be NX="+string(NX),"modal","error"); +ModifEncore=true; +} +[rXP,cXP]=size(this.XP); +if (cXP!=NX) { +messagebox("Xproperty matrix is not valid: it should have NX="+string(NX)+" columns","modal","error"); +ModifEncore=true; +} else if (((rXP!=NMode)&&(rXP>1))) { +messagebox("Xproperty matrix is not valid: it should have NMode="+string(NMode)+" or 1 row(s)","modal","error"); +ModifEncore=true; +} else if ((rXP==1)) { +for (i=1;i<=NMode-1;i+=1) { +this.XP=[[this.XP],[this.XP[1-1].slice()]]; +} +} +if ((NMode_old==NMode)&&(!ModifEncore)) { +this.XP=matrix(transpose(this.XP),NMode*NX,1); +ipar=[[NMode],[this.Minitial],[NX],[this.XP]]; +rpar=matrix(this.X0,NX,1); +INP=ones(NMode,1); +if (NX>0) { +OUT=[[2],[2*NX]]; } else { -message("Datatype is not supported"); -ok=false; +OUT=[2]; } -in1=[inp,model.in2]; -out=[inp+1,model.out2]; -funtyp=4; -if (ok) { -label=exprs; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -model.sim=list(function_name,funtyp); -graphics.exprs=label; -arg1.graphics=graphics; -arg1.model=model; -x=arg1; +MaxModes=1; +nzcross=0; +for (i=1;i<=NMode;i+=1) { +Ci=evstr(exprs[5+i-1]); +ipar=[[ipar],[Ci]]; +INP[i-1][1-1]=2*NX+length(Ci); +if ((nzcross<length(Ci))) { +nzcross=length(Ci); +} +if ((MaxModes<max(Ci))) { +MaxModes=max(Ci); +imax=i; +} +} +if (MaxModes>NMode) { +messagebox([["Number of Modes should be "+string(MaxModes)],["A destination Mode in Mode#"+string(imax)+"\'s targets is invalid!"]],"modal","error"); +ModifEncore=true; +} +if (MaxModes<NMode) { +messagebox(["There is an unused Mode or the Number of Modes should be "+string(MaxModes)],"modal","error"); +ModifEncore=true; +} +} +if (!ModifEncore) { +[model,graphics,this.ok]=check_io(model,graphics,INP,OUT,[],[1]); +if (!this.ok) { +break; +} +model.nzcross=nzcross; +model.state=ones(2*NX,1); +graphics.gr_i[1-1][1-1]="txt=[\'Automaton\';\'nM="+string(NMode)+",nX="+string(NX)+"\'];"; +graphics.exprs=exprs; +x.graphics=graphics; +model.ipar=ipar; +model.rpar=rpar; +x.model=model; break; } } } } -/* autogenerated from "macros/MatrixOp/EXTRACT.sci" */ -function EXTRACT() { - EXTRACT.prototype.define = function EXTRACT() { +/* autogenerated from "macros/Misc/BACKLASH.sci" */ +function BACKLASH() { + BACKLASH.prototype.define = function BACKLASH() { +exprs=[["0"],["1"],["1"]]; model=scicos_model(); -function_name="extract"; -funtyp=4; -model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=-2; -model.intyp=1; +model.sim=list("backlash",4); +model.in1=1; model.out=1; -model.out2=1; -model.outtyp=1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=[1,1,1,1]; +model.rpar=[[0],[1]]; +model.nzcross=2; model.blocktype="c"; -model.firing=[]; model.dep_ut=[true,false]; -label=[[sci2exp(1)],[sci2exp([1])],[sci2exp([1])]]; gr_i=[]; -x=standard_define([3,2],model,label,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - EXTRACT.prototype.details = function EXTRACT() { + BACKLASH.prototype.details = function BACKLASH() { } - EXTRACT.prototype.get = function EXTRACT() { + BACKLASH.prototype.get = function BACKLASH() { } - EXTRACT.prototype.set = function EXTRACT() { + BACKLASH.prototype.set = function BACKLASH() { x=arg1; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; model=arg1.model; -if (size(label,"*")==14) { -label[9-1]=[]; -} +rpar=model.rpar; while (true) { -[ok,typ,a,b,exprs]=scicos_getvalue("Set EXTRACT Block",[["Datatype (1=real double 2=Complex)"],["Lines to extract"],["Columns to extract"]],list("vec",1,"mat",[1,-1],"mat",[1,-1]),label); -a=a.slice(); -b=b.slice(); +[ok,ini,gap,zcr,exprs]=scicos_getvalue("Set backlash parameters",[["initial output"],["gap"],["use zero-crossing (0:no, 1:yes)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if ((typ==1)) { -function_name="extract"; -ot=1; -it=1; -} else if ((typ==2)) { -function_name="extractz"; -ot=2; -it=2; +if (ok) { +graphics.exprs=exprs; +rpar[1-1]=ini; +rpar[2-1]=gap; +if (zcr!=0) { +model.nzcross=2; } else { -message("Datatype is not supported"); -ok=false; -} -ma=size(a,1); -mb=size(b,1); -if ((ma==0||mb==0)) { -message("empty field"); -ok=false; -} -for (i=1;i<=ma;i+=1) { -if ((a[i-1]<=0)) { -message("invalid index"); -ok=false; -} -} -for (j=1;j<=mb;j+=1) { -if ((b[j-1]<=0)) { -message("invalid index"); -ok=false; -} +model.nzcross=0; } -model.ipar=[[a],[b],[ma],[mb]]; -in1=[model.in1,model.in2]; -out=[ma,mb]; -funtyp=4; -if (ok) { -label=exprs; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -model.sim=list(function_name,funtyp); -graphics.exprs=label; -arg1.graphics=graphics; -arg1.model=model; -x=arg1; +model.rpar=rpar; +x.graphics=graphics; +x.model=model; break; } } } } -/* autogenerated from "macros/MatrixOp/MATEIG.sci" */ -function MATEIG() { - MATEIG.prototype.define = function MATEIG() { +/* autogenerated from "macros/Misc/BOUNCE.sci" */ +function BOUNCE() { + BOUNCE.prototype.define = function BOUNCE() { +n=2; +k=1; +ipar=[]; +for (i=1;i<=n;i+=1) { +for (j=i+1;j<=n;j+=1) { +ipar[k-1]=i; +k=k+1; +ipar[k-1]=j; +k=k+1; +} +} +walls=[[0],[5],[0],[5]]; +x=[[2],[2.5]]; +xd=[[0],[0]]; +y=[[3],[5]]; +yd=[[0],[0]]; +g=9.81; +C=0; +rpar1=ones(n,1); +rpar2=rpar1; +state=[x,xd,y,yd]; +state=transpose(state); model=scicos_model(); -function_name="mat_vps"; -funtyp=4; -model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=-1; -model.intyp=1; -model.out=-1; -model.out2=1; -model.outtyp=2; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=[]; +model.sim=list("bounce_ball",4); +model.in1=[]; +model.out=[[n],[n]]; +model.state=state.slice(); +model.rpar=[[rpar1],[rpar2],[walls],[g],[C]]; +model.ipar=ipar; +model.nzcross=n*(n-1)/2+4*n; model.blocktype="c"; -model.firing=[]; -model.dep_ut=[true,false]; -label=[[sci2exp(1)],[sci2exp(1)]]; +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(rpar1))],[strcat(sci2exp(rpar2))],[strcat(sci2exp(walls))],[strcat(sci2exp(x))],[strcat(sci2exp(xd))],[strcat(sci2exp(y))],[strcat(sci2exp(yd))]]; gr_i=[]; -x=standard_define([2,2],model,label,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - MATEIG.prototype.details = function MATEIG() { + BOUNCE.prototype.details = function BOUNCE() { } - MATEIG.prototype.get = function MATEIG() { + BOUNCE.prototype.get = function BOUNCE() { } - MATEIG.prototype.set = function MATEIG() { + BOUNCE.prototype.set = function BOUNCE() { x=arg1; -model=arg1.model; graphics=arg1.graphics; -label=graphics.exprs; -if (size(label,"*")==14) { -label[9-1]=[]; +exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")<9) { +exprs[8-1]="9.81"; +exprs[9-1]="0"; } while (true) { -[ok,typ,decomptyp,lab]=scicos_getvalue("Set MATEIG block parameters",[["Datatype(1=real double 2=Complex)"],["decomposition type (1=eig values 2=eig values+eig vectors"]],list("vec",1,"vec",1),label); +[ok,rpar1,rpar2,walls,xt,xd,y,yd,g,C,exprs]=scicos_getvalue(["Set Bounce Block"],[["Mass"],["Radius"],["[xmin,xmax,ymin,ymax]"],["xpos"],["xdpos"],["ypos"],["ydpos"],["g (gravity)"],["C (aerodynamic coeff"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1),exprs); if (!ok) { break; } -label=lab; -if ((typ==1)) { -if ((decomptyp==1)) { -function_name="mat_vps"; -out=[-1,1]; -ot=2; -} else if ((decomptyp==2)) { -function_name="mat_vpv"; -out=[[-1,-1],[-1,-1]]; -ot=[2,2]; -} else { -message("decomposition type is not supported"); -ok=false; +xt=xt.slice(); +y=y.slice(); +xd=xd.slice(); +yd=yd.slice(); +rpar1=rpar1.slice(); +rpar2=rpar2.slice(); +n=size(xt,"*"); +walls=walls.slice(); +if (walls[1-1]>walls[2-1]) { +walls=walls[[2,1]-1]; } -it=1; -} else if ((typ==2)) { -if ((decomptyp==1)) { -function_name="matz_vps"; -out=[-1,1]; -ot=2; -} else if ((decomptyp==2)) { -function_name="matz_vpv"; -out=[[-1,-1],[-1,-1]]; -ot=[2,2]; -} else { -message("decomposition type is not supported"); -ok=false; +if (walls[3-1]>walls[3-1]) { +walls=walls[[3,4]-1]; } -it=2; -} else { -message("Datatype is not supported"); +if (n!=size(y,"*")||n!=size(rpar1,"*")||n!=size(rpar2,"*")||n!=size(xd,"*")||n!=size(yd,"*")) { +message("All vectors must have equal size"); +ok=false; +} else if (!(min([[rpar1],[rpar2]])>0)) { +message("Mass and radius must be >0"); ok=false; } -in1=[-1,-1]; -funtyp=4; -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (!ok) { +break; } +[model,graphics,ok]=check_io(model,graphics,[],[n,n],[],[]); if (ok) { -model.sim=list(function_name,funtyp); -arg1.model=model; -graphics.exprs=label; -arg1.graphics=graphics; -x=arg1; +k=1; +ipar=[]; +for (i=1;i<=n;i+=1) { +for (j=i+1;j<=n;j+=1) { +ipar[k-1]=i; +k=k+1; +ipar[k-1]=j; +k=k+1; +} +} +model.rpar=[[rpar1],[rpar2],[walls],[g],[C]]; +model.ipar=ipar; +state=[xt,xd,y,yd]; +state=transpose(state); +model.state=state.slice(); +model.nzcross=n*(n-1)/2+4*n; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; break; } } } } -/* autogenerated from "macros/MatrixOp/CUMSUM.sci" */ -function CUMSUM() { - CUMSUM.prototype.define = function CUMSUM() { +/* autogenerated from "macros/Misc/BOUNCEXY.sci" */ +function BOUNCEXY() { + BOUNCEXY.prototype.define = function BOUNCEXY() { +win=-1; +imode=1; +clrs=[[1],[2]]; +siz=[[1],[1]]; +xmin=-5; +xmax=5; +ymin=0; +ymax=15; model=scicos_model(); -function_name="cumsum_m"; -funtyp=4; -model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=-2; -model.intyp=1; -model.out=-1; -model.out2=-2; -model.outtyp=1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=[]; -model.blocktype="c"; +model.sim=list("bouncexy",4); +model.in1=[[-1],[-1]]; +model.in2=[[1],[1]]; +model.intyp=[[1],[1]]; +model.evtin=1; +z=[]; +for (i=1;i<=size(clrs,"*");i+=1) { +z[6*(i-1)+1-1]=0; +z[6*(i-1)+2-1]=0; +z[6*(i-1)+3-1]=2*siz[i-1]; +z[6*(i-1)+4-1]=2*siz[i-1]; +z[6*(i-1)+5-1]=0.000; +z[6*(i-1)+6-1]=64.0*360.000; +} +model.dstate=z; +model.rpar=[[xmin],[xmax],[ymin],[ymax]]; +model.ipar=[[win],[imode],[clrs.slice()]]; +model.blocktype="d"; model.firing=[]; -model.dep_ut=[true,false]; -label=[[sci2exp(1)],[sci2exp(0)]]; +model.dep_ut=[false,false]; +exprs=[[strcat(sci2exp(clrs))],[strcat(sci2exp(siz))],[strcat(sci2exp(win))],[strcat(sci2exp(1))],[strcat(sci2exp(xmin))],[strcat(sci2exp(xmax))],[strcat(sci2exp(ymin))],[strcat(sci2exp(ymax))]]; gr_i=[]; -x=standard_define([3,2],model,label,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - CUMSUM.prototype.details = function CUMSUM() { + BOUNCEXY.prototype.details = function BOUNCEXY() { } - CUMSUM.prototype.get = function CUMSUM() { + BOUNCEXY.prototype.get = function BOUNCEXY() { } - CUMSUM.prototype.set = function CUMSUM() { + BOUNCEXY.prototype.set = function BOUNCEXY() { x=arg1; -model=arg1.model; graphics=arg1.graphics; -label=graphics.exprs; -if (size(label,"*")==14) { -label[9-1]=[]; -} +exprs=graphics.exprs; +model=arg1.model; +dstate=model.dstate; while (true) { -[ok,typ,decomptyp,lab]=scicos_getvalue("Set CUMSUM block parameters",[["Datatype(1=real double 2=Complex)"],["Sum along (0=the first non singleton dimension 1=Rows 2=Columns)"]],list("vec",1,"vec",1),label); +[ok,clrs,siz,win,imode,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",[["colors"],["radii"],["window number (-1 for automatic)"],["animation mode (0,1)"],["Xmin"],["Xmax"],["Ymin"],["Ymax"]],list("vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -label=lab; -if ((typ==1)) { -if ((decomptyp==0)) { -function_name="cumsum_m"; -out=[-1,-2]; -} else if ((decomptyp==1)) { -function_name="cumsum_r"; -out=[-1,1]; -} else if ((decomptyp==2)) { -function_name="cumsum_c"; -out=[1,-2]; -} else { -message("decomposition type is not supported"); +mess=[]; +if (size(clrs,"*")!=size(siz,"*")) { +mess=[[mess],["colors and radii must have equal size (number of balls)"],[" "]]; ok=false; } -it=1; -ot=1; -} else if ((typ==2)) { -if ((decomptyp==0)) { -function_name="cumsumz_m"; -} else if ((decomptyp==1)) { -function_name="cumsumz_r"; -} else if ((decomptyp==2)) { -function_name="cumsumz_c"; -} else { -message("decomposition type is not supported"); +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; ok=false; } -it=2; -ot=2; -} else { -message("Datatype is not supported"); +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; ok=false; } -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; -funtyp=4; -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (xmin>=xmax) { +mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +ok=false; } -if (ok) { -model.sim=list(function_name,funtyp); -arg1.model=model; -graphics.exprs=label; -arg1.graphics=graphics; -x=arg1; +if (!ok) { +message(mess); +} else { +rpar=[[xmin],[xmax],[ymin],[ymax]]; +ipar=[[win],[imode],[clrs.slice()]]; +z=[]; +for (i=1;i<=size(clrs,"*");i+=1) { +z[6*(i-1)+1-1]=0; +z[6*(i-1)+2-1]=0; +z[6*(i-1)+3-1]=2*siz[i-1]; +z[6*(i-1)+4-1]=2*siz[i-1]; +z[6*(i-1)+5-1]=0.000; +z[6*(i-1)+6-1]=64.0*360.000; +} +model.dstate=z; +model.rpar=rpar; +model.ipar=ipar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; break; } } } } -/* autogenerated from "macros/MatrixOp/MATDIV.sci" */ -function MATDIV() { - MATDIV.prototype.define = function MATDIV() { +/* autogenerated from "macros/Misc/BPLATFORM.sci" */ +function BPLATFORM() { + BPLATFORM.prototype.define = function BPLATFORM() { +plen=2; +csiz=2; +phi=0; +xmin=-5; +xmax=5; +ymin=0; +ymax=15; model=scicos_model(); -function_name="mat_div"; -funtyp=4; -model.sim=list(function_name,funtyp); -model.in1=[[-1],[-2]]; -model.in2=[[-3],[-3]]; -model.intyp=[1,1]; -model.out=-1; -model.out2=-2; -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(1)]; +model.sim=list("bplatform2",5); +model.in1=[[1],[1]]; +model.evtin=1; +model.dstate=0; +model.rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=string(model.rpar); gr_i=[]; -x=standard_define([2,2],model,label,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - MATDIV.prototype.details = function MATDIV() { + BPLATFORM.prototype.details = function BPLATFORM() { } - MATDIV.prototype.get = function MATDIV() { + BPLATFORM.prototype.get = function BPLATFORM() { } - MATDIV.prototype.set = function MATDIV() { + BPLATFORM.prototype.set = function BPLATFORM() { x=arg1; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; model=arg1.model; -if (size(label,"*")==14) { -label[9-1]=[]; -} +dstate=model.dstate; while (true) { -[ok,typ,exprs]=scicos_getvalue("Set MATDIV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); +[ok,plen,csiz,phi,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",[["pendulum length"],["cart size (square side)"],["slope"],["Xmin"],["Xmax"],["Ymin"],["Ymax"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if ((typ==1)) { -function_name="mat_div"; -ot=1; -it=[1,1]; -} else if ((typ==2)) { -function_name="matz_div"; -ot=2; -it=[2,2]; -} else { -message("Datatype is not supported"); +mess=[]; +if (plen<=0||csiz<=0) { +mess=[[mess],["Pendulum length and cart size must be positive."],[" "]]; ok=false; } -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; -funtyp=4; -if (ok) { -label=exprs; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -model.sim=list(function_name,funtyp); -graphics.exprs=label; -arg1.graphics=graphics; -arg1.model=model; -x=arg1; +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; +} +if (xmin>=xmax) { +mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +ok=false; +} +if (!ok) { +message(mess); +} else { +rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; +model.rpar=rpar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; break; } } } } -/* autogenerated from "macros/MatrixOp/EXTTRI.sci" */ -function EXTTRI() { - EXTTRI.prototype.define = function EXTTRI() { +/* autogenerated from "macros/Misc/CBLOCK.sci" */ +function CBLOCK() { + 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(); -function_name="extrilz"; -funtyp=4; -model.sim=list(function_name,funtyp); -model.in1=-1; -model.in2=-2; -model.intyp=1; -model.out=-1; -model.out2=-2; -model.outtyp=1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=[]; -model.blocktype="c"; -model.firing=[]; +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]; -label=[[sci2exp(1)],[sci2exp(1)]]; +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([3,2],model,label,gr_i); +x=standard_define([4,2],model,label,gr_i); } - EXTTRI.prototype.details = function EXTTRI() { + CBLOCK.prototype.details = function CBLOCK() { } - EXTTRI.prototype.get = function EXTTRI() { + CBLOCK.prototype.get = function CBLOCK() { } - EXTTRI.prototype.set = function EXTTRI() { + CBLOCK.prototype.set = function CBLOCK() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; -if (size(label,"*")==14) { -label[9-1]=[]; -} while (true) { -[ok,typ,decomptyp,lab]=scicos_getvalue("Set EXTTRI block parameters",[["Datatype(1=real double 2=Complex)"],["extraction type (1=lower 2=upper 3=diagonal)"]],list("vec",1,"vec",1),label); +[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-1]); if (!ok) { break; } -label=lab; -if ((typ==1)) { -if ((decomptyp==1)) { -function_name="exttril"; -} else if ((decomptyp==2)) { -function_name="exttriu"; -} else if ((decomptyp==3)) { -function_name="extdiag"; +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 { -message("decomposition type is not supported"); +funtyp=2004; +} +if ([[ci],[co]]!=[]) { +if (max([[ci],[co]])>1) { +message("vector event links not supported"); ok=false; } -it=1; -ot=1; -} else if ((typ==2)) { -if ((decomptyp==1)) { -function_name="exttrilz"; -} else if ((decomptyp==2)) { -function_name="exttriuz"; -} else if ((decomptyp==3)) { -function_name="extdiagz"; +} +depu=stripblanks(depu); +if (part(depu,1)=="y") { +depu=true; } else { -message("decomposition type is not supported"); -ok=false; +depu=false; } -it=2; -ot=2; +dept=stripblanks(dept); +if (part(dept,1)=="y") { +dept=true; } else { -message("Datatype is not supported"); -ok=false; +dept=false; } -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; -funtyp=4; -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +dep_ut=[depu,dept]; +if (funam==" ") { +break; +} +if (model.sim[1-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(function_name,funtyp); -arg1.model=model; +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; -arg1.graphics=graphics; -x=arg1; +x.graphics=graphics; break; } } - } } -/* autogenerated from "macros/Threshold/NEGTOPOS_f.sci" */ -function NEGTOPOS_f() { - NEGTOPOS_f.prototype.define = function NEGTOPOS_f() { -model=scicos_model(); -model.sim=list("zcross",1); -model.nzcross=1; -model.in1=1; -model.evtout=1; -model.rpar=[[-1],[-1],[0],[-1]]; -model.blocktype="z"; -model.firing=-1; -model.dep_ut=[true,false]; -gr_i=[]; -x=standard_define([2,2],model,[],gr_i); - } - NEGTOPOS_f.prototype.details = function NEGTOPOS_f() { - } - NEGTOPOS_f.prototype.get = function NEGTOPOS_f() { - } - NEGTOPOS_f.prototype.set = function NEGTOPOS_f() { -x=arg1; -x.model.firing=-1; +if (ok||cancel) { +break; +} +} } } -/* autogenerated from "macros/Threshold/ZCROSS_f.sci" */ -function ZCROSS_f() { - ZCROSS_f.prototype.define = function ZCROSS_f() { -rpar=[[-1],[-1],[0],[0]]; -in1=1; +/* autogenerated from "macros/Misc/CBLOCK4.sci" */ +function CBLOCK4() { + CBLOCK4.prototype.define = function CBLOCK4() { +funam="toto"; model=scicos_model(); -model.sim=list("zcross",1); -model.in1=in1; -model.nzcross=in1; -model.evtout=1; -model.rpar=[[-1],[-1],[0],[0]]; -model.blocktype="z"; -model.firing=-1; +model.sim=list(" ",2004); +model.in1=1; +model.in2=1; +model.intyp=1; +model.out=1; +model.out2=1; +model.outtyp=1; model.dep_ut=[true,false]; -exprs=strcat(sci2exp(in1)); +label=list([[funam],["n"],[sci2exp([model.in1,model.in2])],[sci2exp(model.intyp)],[sci2exp([model.out,model.out2])],[sci2exp(model.outtyp)],[sci2exp(model.evtin)],[sci2exp(model.evtout)],[sci2exp(model.state)],[sci2exp(model.dstate)],[sci2exp(model.odstate)],[sci2exp(model.rpar)],[sci2exp(model.ipar)],[sci2exp(model.opar)],[sci2exp(model.nmode)],[sci2exp(model.nzcross)],[sci2exp(model.firing)],["y"],["n"]],[]); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([4,2],model,label,gr_i); } - ZCROSS_f.prototype.details = function ZCROSS_f() { + CBLOCK4.prototype.details = function CBLOCK4() { } - ZCROSS_f.prototype.get = function ZCROSS_f() { + CBLOCK4.prototype.get = function CBLOCK4() { } - ZCROSS_f.prototype.set = function ZCROSS_f() { + CBLOCK4.prototype.set = function CBLOCK4() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; while (true) { -[ok,in1,exprs]=scicos_getvalue([["Set Zero-Crossing parameters"],["All surfaces must cross together"]],"Input size",list("vec",1),exprs); +[ok,function_name,impli,in1,it,out,ot,ci,co,xx,z,oz,rpar,ipar,opar,nmode,nzcr,auto0,depu,dept,lab]=scicos_getvalue("Set C-Block4 block parameters",[["Simulation function"],["Is block implicit? (y,n)"],["Input ports sizes"],["Input ports type"],["Output port sizes"],["Output ports type"],["Input event ports sizes"],["Output events ports sizes"],["Initial continuous state"],["Initial discrete state"],["Initial object state"],["Real parameters vector"],["Integer parameters vector"],["Object parameters list"],["Number of modes"],["Number of zero crossings"],["Initial firing vector (<0 for no firing)"],["Direct feedthrough (y or n)"],["Time dependence (y or n)"]],list("str",1,"str",1,"mat",[-1,2],"vec",-1,"mat",[-1,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"lis",-1,"vec",-1,"vec",-1,"lis",-1,"vec",1,"vec",1,"vec","sum(%8)","str",1,"str",1),label[1-1]); if (!ok) { break; } -in1=int(in1); -if (in1<=0) { -message("Block must have at least one input"); +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); +ci=int(ci.slice()); +nevin=size(ci,1); +co=int(co.slice()); +nevout=size(co,1); +if (part(impli,1)=="y") { +funtyp=12004; } else { -kk=0; -for (jj=1;jj<=in1;jj+=1) { -kk=kk+2^(in1+jj-1); -} -model.rpar=[[-ones(kk,1)],[zeros(2^(2*in1)-kk,1)]]; -graphics.exprs=exprs; -model.in1=in1; -model.nzcross=in1; -model.firing=-1; -x.graphics=graphics; -x.model=model; -break; -} +funtyp=2004; } - } +if ([[ci],[co]]!=[]) { +if (max([[ci],[co]])>1) { +message("vector event links not supported"); +ok=false; } -/* autogenerated from "macros/Threshold/POSTONEG_f.sci" */ -function POSTONEG_f() { - POSTONEG_f.prototype.define = function POSTONEG_f() { -rpar=[[-1],[-1],[-1],[0]]; -model=scicos_model(); -model.sim=list("zcross",1); -model.nzcross=1; -model.in1=1; -model.evtout=1; -model.rpar=[[-1],[-1],[-1],[0]]; -model.blocktype="z"; -model.dep_ut=[true,false]; -model.firing=[-1]; -gr_i=[]; -x=standard_define([2,2],model,[],gr_i); - } - POSTONEG_f.prototype.details = function POSTONEG_f() { - } - POSTONEG_f.prototype.get = function POSTONEG_f() { - } - POSTONEG_f.prototype.set = function POSTONEG_f() { -x=arg1; -x.model.firing=[-1]; - } } -/* autogenerated from "macros/Threshold/GENERAL_f.sci" */ -function GENERAL_f() { - GENERAL_f.prototype.define = function GENERAL_f() { -rpar=[[0],[0],[0],[0]]; -in1=1; -out=1; -model=scicos_model(); -model.sim=list("zcross",1); -model.nzcross=in1; -model.in1=in1; -model.evtout=ones(out,1); -model.rpar=[[0],[0],[0],[0]]; -model.blocktype="z"; -model.firing=-ones(out,1); -model.dep_ut=[true,false]; -exprs=[[strcat(sci2exp(in1))],[strcat(sci2exp(out))]]; -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); - } - GENERAL_f.prototype.details = function GENERAL_f() { - } - GENERAL_f.prototype.get = function GENERAL_f() { - } - GENERAL_f.prototype.set = function GENERAL_f() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -rpar=model.rpar; -in1=model.in1; -out=model.evtout; -nin=sum(in1); -nout=sum(out); -[ok,in1,out,exprs]=scicos_getvalue("Set General Zero-Crossing parameters",[["Input size"],["Number of event output"]],list("vec",1,"vec",1),exprs); -if (ok) { -[model,graphics,ok]=check_io(model,graphics,in1,[],[],ones(out,1)); if (ok) { -nout1=out; -nin1=in1; -if (nout==nout1&&nin==nin1) { -rp=matrix(rpar,nout,2^(2*nin)); +depu=stripblanks(depu); +if (part(depu,1)=="y") { +depu=true; } else { -rp=-1*ones(nout1,2^(2*nin1)); -} -n=size(rp,2)/2; -result=x_mdialog("routing matrix",string(1,nout1),string(1,2^(2*nin1)),string(rp.slice().slice())); -if (result!=[]) { -rp.slice(1-1,nout1).slice(1-1,2*n)=evstr(result); -model.nzcross=in1; -model.rpar=rp.slice(); -model.firing=-ones(out,1); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; +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-1]!=funam||sign(size(model.state,"*"))!=sign(nx)||sign(size(model.dstate,"*"))!=sign(nz)||model.nzcross!=nzcr||sign(size(model.evtout,"*"))!=sign(nevout)) { +tt=[]; } -/* autogenerated from "macros/Electrical/PotentialSensor.sci" */ -function PotentialSensor() { - PotentialSensor.prototype.define = function PotentialSensor() { -model=scicos_model(); -model.in1=[1]; -model.out=[1]; -model.rpar=[]; -model.sim="PotentialSensor"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="PotentialSensor"; -mo.inputs="p"; -mo.outputs=["v"]; -model.equations=mo; -gr_i=[]; -x=standard_define([2,2],model,"",list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["E"]; - } - PotentialSensor.prototype.details = function PotentialSensor() { - } - PotentialSensor.prototype.get = function PotentialSensor() { - } - PotentialSensor.prototype.set = function PotentialSensor() { -x=arg1; - } +tt=label[2-1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ci,co); } -/* autogenerated from "macros/Electrical/SineVoltage.sci" */ -function SineVoltage() { - SineVoltage.prototype.define = function SineVoltage() { -model=scicos_model(); -model.in1=[1]; -model.out=[1]; -V=1; -ph=0; -frq=1; -offset=0; -start=0; -model.rpar=[[V],[ph],[frq],[offset],[start]]; -model.sim="SineVoltage"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="SineVoltage"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list([["V"],["phase"],["freqHz"],["offset"],["startTime"]],list(V,ph,frq,offset,start)); -model.equations=mo; -exprs=[[string(V)],[string(ph)],[string(frq)],[string(offset)],[string(start)]]; -gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; - } - SineVoltage.prototype.details = function SineVoltage() { - } - SineVoltage.prototype.get = function SineVoltage() { - } - SineVoltage.prototype.set = function SineVoltage() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; +if (ok) { while (true) { -[ok,V,ph,frq,offset,start,exprs]=scicos_getvalue("Set voltage source parameter",[["Amplitude (Volt)"],["phase (rad)"],["Frequency (Hz)"],["Voltageoffset (V)"],["Timeoffset (s)"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,tt,cancel]=this.CC4[funam-1][tt-1]; if (!ok) { +if (cancel) { break; } -model.rpar=[[V],[ph],[frq],[offset],[start]]; -model.equations.parameters[2-1]=list(V,ph,frq,offset,start); -graphics.exprs=exprs; -x.graphics=graphics; +} else { +model.sim=list(funam,funtyp); +model.state=xx; +model.dstate=z; +model.odstate=oz; +model.rpar=rpar; +model.ipar=ipar; +model.opar=opar; +model.firing=auto0; +model.nzcross=nzcr; +model.nmode=nmode; +model.dep_ut=dep_ut; +label[2-1]=tt; x.model=model; +graphics.exprs=label; +x.graphics=graphics; break; } - } -} -/* autogenerated from "macros/Electrical/CCS.sci" */ -function CCS() { - CCS.prototype.define = function CCS() { -ModelName="CCS"; -PrametersValue=[]; -ParametersName=[]; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[2,50,1,0],[70,98,2,0],[70,2,-2,0]]; -PortName=[["Iin"],["p"],["n"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; } -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; +if (ok||cancel) { +break; } -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; } } -model=scicos_model(); -mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs=[]; -gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; -model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2.1,3],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; - } - CCS.prototype.details = function CCS() { - } - CCS.prototype.get = function CCS() { - } - CCS.prototype.set = function CCS() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -x=arg1; } } -/* autogenerated from "macros/Electrical/PMOS.sci" */ -function PMOS() { - PMOS.prototype.define = function PMOS() { +/* autogenerated from "macros/Misc/CONSTRAINT2_c.sci" */ +function CONSTRAINT2_c() { + CONSTRAINT2_c.prototype.define = function CONSTRAINT2_c() { +x0=[0]; +xd0=[0]; +id=[0]; model=scicos_model(); -W=50.0e-6; -L=6.0e-6; -Beta=0.0105e-3; -Vt=-1; -K2=0.41; -K5=0.839; -dW=-2.5e-6; -dL=-2.1e-6; -RDS=1.e+7; -model.sim="PMOS"; +model.sim=list("constraint_c",10004); +model.in1=1; +model.out=[[1],[1]]; +model.state=[[x0],[xd0]]; +model.ipar=id; model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="PMOS"; -mo.outputs=[["D"],["B"],["S"]]; -mo.inputs="G"; -mo.parameters=list([["W"],["L"],["Beta"],["Vt"],["K2"],["K5"],["dW"],["dL"],["RDS"]],[[W],[L],[Beta],[Vt],[K2],[K5],[dW],[dL],[RDS]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[[string(W)],[string(L)],[string(Beta)],[string(Vt)],[string(K2)],[string(K5)],[string(dW)],[string(dL)],[string(RDS)]]; +model.dep_ut=[false,true]; +exprs=list(strcat(sci2exp(x0)),strcat(sci2exp(xd0)),strcat(sci2exp(id))); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=[["I"],["I"],["I"]]; +x=standard_define([3,2],model,exprs,gr_i); } - PMOS.prototype.details = function PMOS() { + CONSTRAINT2_c.prototype.details = function CONSTRAINT2_c() { } - PMOS.prototype.get = function PMOS() { + CONSTRAINT2_c.prototype.get = function CONSTRAINT2_c() { } - PMOS.prototype.set = function PMOS() { + CONSTRAINT2_c.prototype.set = function CONSTRAINT2_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,W,L,Beta,Vt,K2,K5,dW,dL,RDS,exprs]=scicos_getvalue("Set PMOS Transistor parameters",[["Width [m]"],["Length [m]"],["Transconductance parameter [A/(V*V)]"],["Zero bias threshold voltage [V]"],["Bulk threshold parameter"],["Reduction of pinch-off region"],["Narrowing of channel [m]"],["Shortening of channel [m]"],["Drain-Source-Resistance [Ohm]"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); +ask_again=false; +[ok,x0,xd0,id,exprs]=scicos_getvalue("Set Constraint block parameters",[["Initial guess values of states x"],["Initial guess values of derivative x\'"],["Id(i)=1: if x\'(i) is present in the feedback, else Id(i)=0"]],list("vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -model.equations.parameters[2-1]=list(W,L,Beta,Vt,K2,K5,dW,dL,RDS); +x0=x0.slice(); +N=size(x0,"*"); +xd0=xd0.slice(); +Nxd=size(xd0,"*"); +id=id.slice(); +Nid=size(id,"*"); +if ((N!=Nxd)||(N!=Nid)) { +message("incompatible sizes, states, their derivatives, and ID should be the same size "); +ask_again=true; +} +if ((N<=0&&!ask_again)) { +x_message("number of states (constraints) must be > 0 "); +ask_again=true; +} +if ((!ask_again)) { +for (i=1;i<=N;i+=1) { +if (!((id[i-1]==0)||(id[i-1]==1))) { +ask_again=true; +x_message([["Id(i) must be either"],["0 when x\'(i) is not present in the feedback"],["1: when x\'(i) is present in the feedback"]]); +break; +} +if ((id[i-1]==0)) { +id[i-1]=-1; +} +} +} +if (!ask_again) { graphics.exprs=exprs; +model.state=[[x0],[xd0]]; +model.out=[[N],[N]]; +model.in1=N; +model.ipar=id; x.graphics=graphics; x.model=model; break; } +} } } -/* autogenerated from "macros/Electrical/Inductor.sci" */ -function Inductor() { - Inductor.prototype.define = function Inductor() { +/* autogenerated from "macros/Misc/CONSTRAINT_c.sci" */ +function CONSTRAINT_c() { + CONSTRAINT_c.prototype.define = function CONSTRAINT_c() { +x0=[[0],[0]]; model=scicos_model(); -model.in1=[1]; -model.out=[1]; -L=1.e-5; -model.rpar=L; -model.sim="Inductor"; +model.sim=list("constraint_c",10004); +model.in1=1; +model.out=1; +model.ipar=0; +model.state=x0; model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="Inductor"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list("L",list(L)); -model.equations=mo; -exprs=string(L); +model.dep_ut=[false,true]; +exprs="0"; gr_i=[]; -x=standard_define([2,0.9],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; +x=standard_define([3,2],model,exprs,gr_i); } - Inductor.prototype.details = function Inductor() { + CONSTRAINT_c.prototype.details = function CONSTRAINT_c() { } - Inductor.prototype.get = function Inductor() { + CONSTRAINT_c.prototype.get = function CONSTRAINT_c() { } - Inductor.prototype.set = function Inductor() { + CONSTRAINT_c.prototype.set = function CONSTRAINT_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,L,exprs]=scicos_getvalue("Set Inductor block parameter","L (H)",list("vec",1),exprs); +[ok,x0,exprs]=scicos_getvalue("Set solver block parameters","Initial guess values",list("vec",-1),exprs); if (!ok) { break; } -model.rpar=L; -model.equations.parameters[2-1]=list(L); +x0=x0.slice(); +N=size(x0,"*"); +if (N<=0) { +message("number of states (constraints) must be > 0 "); +} else { +[model,graphics,ok]=check_io(model,graphics,N,N,[],[]); +if (ok) { graphics.exprs=exprs; +model.state=[[x0],[zeros(N,1)]]; +model.out=N; +model.in1=N; +model.ipar=-1*ones(N,1); x.graphics=graphics; x.model=model; break; } +} +} } } -/* autogenerated from "macros/Electrical/Diode.sci" */ -function Diode() { - Diode.prototype.define = function Diode() { -Ids=1.e-6; -Vt=0.04; -Maxexp=15; -R=1.e8; +/* autogenerated from "macros/Misc/DEADBAND.sci" */ +function DEADBAND() { + DEADBAND.prototype.define = function DEADBAND() { +minp=-.5; +maxp=.5; +rpar=[[maxp],[minp]]; model=scicos_model(); -model.rpar=[[Ids],[Vt],[Maxexp],[R]]; +model.sim=list("deadband",4); model.in1=1; +model.nzcross=2; +model.nmode=1; model.out=1; -model.sim="Diode"; +model.rpar=rpar; model.blocktype="c"; model.dep_ut=[true,false]; -mo=modelica(); -mo.model="Diode"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list(["Ids","Vt","Maxexp","R"],list(Ids,Vt,Maxexp,R)); -model.equations=mo; -exprs=string([[Ids],[Vt],[Maxexp],[R]]); +exprs=[[string(maxp)],[string(minp)],[string(model.nmode)]]; gr_i=[]; -x=standard_define([2,1],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; +x=standard_define([2,2],model,exprs,gr_i); } - Diode.prototype.details = function Diode() { + DEADBAND.prototype.details = function DEADBAND() { } - Diode.prototype.get = function Diode() { + DEADBAND.prototype.get = function DEADBAND() { } - Diode.prototype.set = function Diode() { + DEADBAND.prototype.set = function DEADBAND() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,Ids,Vt,Maxexp,R,exprs]=scicos_getvalue("Set Diode block parameter",[["Saturation cuurent (A)"],["Voltage equivalent to temperature (Volt)"],["Max exponent for linear continuation"],["R (ohm)"]],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,maxp,minp,zeroc,exprs]=scicos_getvalue("Set Deadband parameters",[["End of dead band"],["Start of dead band"],["zero crossing (0:no, 1:yes)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -model.rpar=[[Ids],[Vt],[Maxexp],[R]]; -model.equations.parameters=list(["Ids","Vt","Maxexp","R"],list(Ids,Vt,Maxexp,R)); +if (maxp<=minp) { +message("Upper limit must be > Lower limit"); +} else { +rpar=[[maxp],[minp]]; +model.rpar=rpar; +if (zeroc!=0) { +model.nzcross=2; +model.nmode=1; +} else { +model.nzcross=0; +model.nmode=0; +} graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } - } -} -/* autogenerated from "macros/Electrical/IdealTransformer.sci" */ -function IdealTransformer() { - IdealTransformer.prototype.define = function IdealTransformer() { -ModelName="IdealTransformer"; -PrametersValue=[1]; -ParametersName=["N"]; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[2.5,90,2,0],[2.5,10,2,0],[97.5,90,-2,0],[97.5,10,-2,0]]; -PortName=[["p1"],["n1"],["p2"],["n2"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; } + } } +/* autogenerated from "macros/Misc/DEBUG.sci" */ +function DEBUG() { + DEBUG.prototype.define = function DEBUG() { model=scicos_model(); -mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs=["1"]; +model.sim=list("%debug_scicos",99); +model.blocktype="d"; +exprs=list("","xcos_debug_gui(flag,block);"); gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; -model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; +x=standard_define([8,2],model,exprs,gr_i); } - IdealTransformer.prototype.details = function IdealTransformer() { + DEBUG.prototype.details = function DEBUG() { } - IdealTransformer.prototype.get = function IdealTransformer() { + DEBUG.prototype.get = function DEBUG() { } - IdealTransformer.prototype.set = function IdealTransformer() { + DEBUG.prototype.set = function DEBUG() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -model=arg1.model; -x=arg1; -exprs=x.graphics.exprs; -while (true) { -[ok,N,exprs]=scicos_getvalue([["Set Transformer block parameters:"],[""],["N:"+" Turn ratio (N1/N2)"]],["N"],list("vec",1),exprs); -if (!ok) { -break; +textmp=exprs[2-1]; +ok=true; +while (1==1) { +[txt]=this.dialog[[["Enter scilab instructions for debugging."],[" Inputs are block and flag, output is block"]]-1][textmp-1]; +if (txt!=[]) { +tt=["block=debug_scicos(block,flag)"]; +if (execstr("deff(tt,txt)","errcatch")==0) { +warnMode=warning("query"); +warning("off"); +save(this.TMPDIR+"/debug_scicos",this.debug_scicos); +warning(warnMode); +exprs[2-1]=txt; +if ((scicos_debug()!=2&&scicos_debug()!=3)) { +scicos_debug(2); } -x.model.equations.parameters[2-1]=list(N); -x.graphics.exprs=exprs; break; +} else { +message([["Error in the instructions"],[lasterror()]]); } - } -} -/* autogenerated from "macros/Electrical/Ground.sci" */ -function Ground() { - Ground.prototype.define = function Ground() { -model=scicos_model(); -model.in1=[1]; -model.out=[]; -model.sim="Ground"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="Ground"; -mo.inputs="p"; -model.equations=mo; -exprs=""; -gr_i=[]; -x=standard_define([1,1],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; - } - Ground.prototype.details = function Ground() { - } - Ground.prototype.get = function Ground() { - } - Ground.prototype.set = function Ground() { -x=arg1; - } -} -/* autogenerated from "macros/Electrical/CVS.sci" */ -function CVS() { - CVS.prototype.define = function CVS() { -ModelName="CVS"; -PrametersValue=[]; -ParametersName=[]; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[2,50,1,0],[70,98,2,0],[70,2,-2,0]]; -PortName=[["vin"],["p"],["n"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; +} else { +ok=false; +break; } -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; } -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; +if (ok) { +graphics.exprs=exprs; +x.graphics=graphics; } + } } -model=scicos_model(); -mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs=[]; -gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; -model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2.1,3],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; +/* autogenerated from "macros/Misc/DEBUG_SCICOS.sci" */ +function DEBUG_SCICOS() { + DEBUG_SCICOS.prototype.define = function DEBUG_SCICOS() { +x=DEBUG("define"); } - CVS.prototype.details = function CVS() { + DEBUG_SCICOS.prototype.details = function DEBUG_SCICOS() { } - CVS.prototype.get = function CVS() { + DEBUG_SCICOS.prototype.get = function DEBUG_SCICOS() { } - CVS.prototype.set = function CVS() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -x=arg1; + DEBUG_SCICOS.prototype.set = function DEBUG_SCICOS() { +arg1.gui="DEBUG"; +[x,y,typ]=DEBUG("set",arg1); } } -/* autogenerated from "macros/Electrical/Resistor.sci" */ -function Resistor() { - Resistor.prototype.define = function Resistor() { +/* autogenerated from "macros/Misc/DIFF_f.sci" */ +function DIFF_f() { + DIFF_f.prototype.define = function DIFF_f() { +x0=[[0],[0]]; model=scicos_model(); -R=0.01; -model.rpar=R; -model.sim="resistor"; +model.sim=list("diffblk",10001); +model.in1=1; +model.out=1; +model.state=x0; model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="Resistor"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list("R",list(R)); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=string(R); +model.dep_ut=[false,true]; +exprs=[[strcat(sci2exp(x0[1-1]))],[strcat(sci2exp(x0[2-1]))]]; gr_i=[]; -x=standard_define([2,1],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; +x=standard_define([2,2],model,exprs,gr_i); } - Resistor.prototype.details = function Resistor() { + DIFF_f.prototype.details = function DIFF_f() { } - Resistor.prototype.get = function Resistor() { + DIFF_f.prototype.get = function DIFF_f() { } - Resistor.prototype.set = function Resistor() { + DIFF_f.prototype.set = function DIFF_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,R,exprs]=scicos_getvalue("Set Resistor block parameter","R (ohm)",list("vec",1),exprs); +[ok,x0,xd0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["Initial state"],["Initial Derivative"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -model.rpar=R; -model.equations.parameters[2-1]=list(R); graphics.exprs=exprs; +model.state=[[x0.slice()],[xd0.slice()]]; x.graphics=graphics; x.model=model; break; } +x.model.firing=[]; } } -/* autogenerated from "macros/Electrical/PNP.sci" */ -function PNP() { - PNP.prototype.define = function PNP() { -ModelName="PNP"; -PrametersValue=[[50],[0.1],[0],[0.02],[1.200e-10],[5.000e-09],[1.000e-12],[4.000e-13],[5.000e-13],[0.8],[0.4],[0.8],[0.333],[1.000e-15],[1.000e-15],[0.02585],[40]]; -ParametersName=[["Bf"],["Br"],["Is"],["Vak"],["Tauf"],["Taur"],["Ccs"],["Cje"],["Cjc"],["Phie"],["Me"],["Phic"],["Mc"],["Gbc"],["Gbe"],["Vt"],["EMinMax"]]; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[100,90,-2,0],[0,50,2,0],[100,10,-2,0]]; -PortName=[["C"],["B"],["E"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; -} -} -model=scicos_model(); -mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs=[["50"],["0.1"],["1.e-16"],["0.02"],["0.12e-9"],["5e-9"],["1e-12"],["0.4e-12"],["0.5e-12"],["0.8"],["0.4"],["0.8"],["0.333"],["1e-15"],["1e-15"],["0.02585"],["40"]]; -gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; -model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; +/* autogenerated from "macros/Misc/DSUPER.sci" */ +function DSUPER() { + DSUPER.prototype.define = function DSUPER() { } - PNP.prototype.details = function PNP() { + DSUPER.prototype.details = function DSUPER() { } - PNP.prototype.get = function PNP() { + DSUPER.prototype.get = function DSUPER() { } - PNP.prototype.set = function PNP() { -x=arg1; + DSUPER.prototype.set = function DSUPER() { +y=this.needcompile; +typ=list(); graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; +if ((length(graphics.exprs)==0)) { +warnBlockByUID(arg1.model.label,gettext("Invalid masked block.")); x=arg1; -exprs=x.graphics.exprs; -while (true) { -[ok,Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax,exprs]=scicos_getvalue([["Set PNP block parameters:"],[""]],[["Bf : Forward beta"],["Br : Reverse beta"],["Is : Transport saturation current"],["Vak : Early voltage (inverse), 1/Volt"],["Tauf: Ideal forward transit time"],["Taur: Ideal reverse transit time"],["Ccs : Collector-substrat(ground) cap."],["Cje : Base-emitter zero bias depletion cap."],["Cjc : Base-coll. zero bias depletion cap."],["Phie: Base-emitter diffusion voltage"],["Me : Base-emitter gradation exponent"],["Phic: Base-collector diffusion voltage"],["Mc : Base-collector gradation exponent"],["Gbc : Base-collector conductance"],["Gbe : Base-emitter conductance"],["Vt : Voltage equivalent of temperature"],["EMinMax: if x > EMinMax, the exp(x) function is linearized"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; -} -x.model.equations.parameters[2-1]=list(Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax); -x.graphics.exprs=exprs; -break; -} - } -} -/* autogenerated from "macros/Electrical/NPN.sci" */ -function NPN() { - NPN.prototype.define = function NPN() { -ModelName="NPN"; -PrametersValue=[[50],[0.1],[0],[0.02],[1.200e-10],[5.000e-09],[1.000e-12],[4.000e-13],[5.000e-13],[0.8],[0.4],[0.8],[0.333],[1.000e-15],[1.000e-15],[0.02585],[40]]; -ParametersName=[["Bf"],["Br"],["Is"],["Vak"],["Tauf"],["Taur"],["Ccs"],["Cje"],["Cjc"],["Phie"],["Me"],["Phic"],["Mc"],["Gbc"],["Gbe"],["Vt"],["EMinMax"]]; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[100,90,-2,0],[0,50,2,0],[100,10,-2,0]]; -PortName=[["C"],["B"],["E"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; +return; } -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; +exprs=graphics.exprs[1-1]; +exprs0=graphics.exprs[2-1][1-1]; +btitre=graphics.exprs[2-1][2-1][1-1]; +bitems=graphics.exprs[2-1][2-1].slice(2-1,$); +if (exprs0==[]) { +x=arg1; +return; } -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; +context=[arg1.model.rpar.props.context]; +[PREVAR_scicos_context,ierr]=script2var(context,PREVAR_scicos_context); +if (ierr!=0) { +x=arg1; +return; } +tt="scicos_context."+exprs0[1-1]; +for (i=2;i<=size(exprs0,1);i+=1) { +tt=tt+",scicos_context."+exprs0[i-1]; } -model=scicos_model(); -mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs=[["50"],["0.1"],["1.e-16"],["0.02"],["0.12e-9"],["5e-9"],["1e-12"],["0.4e-12"],["0.5e-12"],["0.8"],["0.4"],["0.8"],["0.333"],["1e-15"],["1e-15"],["0.02585"],["40"]]; -gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; -model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; - } - NPN.prototype.details = function NPN() { - } - NPN.prototype.get = function NPN() { - } - NPN.prototype.set = function NPN() { +ss=graphics.exprs[2-1][3-1]; +scicos_context=PREVAR_scicos_context; +execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)"); +if (this.ok) { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; +PREVAR_scicos_context=scicos_context; +sblock=x.model.rpar; +[sblock,%w,needcompile2,this.ok]=do_eval(sblock,list(),scicos_context); +y=max(2,this.needcompile,needcompile2); +x.graphics.exprs[1-1]=exprs; +x.model.rpar=sblock; +} else { x=arg1; -exprs=x.graphics.exprs; -while (true) { -[ok,Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax,exprs]=scicos_getvalue([["Set NPN block parameters:"],[""]],[["Bf : Forward beta"],["Br : Reverse beta"],["Is : Transport saturation current"],["Vak : Early voltage (inverse), 1/Volt"],["Tauf: Ideal forward transit time"],["Taur: Ideal reverse transit time"],["Ccs : Collector-substrat(ground) cap."],["Cje : Base-emitter zero bias depletion cap."],["Cjc : Base-coll. zero bias depletion cap."],["Phie: Base-emitter diffusion voltage"],["Me : Base-emitter gradation exponent"],["Phic: Base-collector diffusion voltage"],["Mc : Base-collector gradation exponent"],["Gbc : Base-collector conductance"],["Gbe : Base-emitter conductance"],["Vt : Voltage equivalent of temperature"],["EMinmax: if x > EMinMax, the exp(x) is linearized"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; } -x.model.equations.parameters[2-1]=list(Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax); -x.graphics.exprs=exprs; -break; -} - } -} -/* autogenerated from "macros/Electrical/CurrentSensor.sci" */ -function CurrentSensor() { - CurrentSensor.prototype.define = function CurrentSensor() { -model=scicos_model(); -model.in1=1; -model.out=[[1],[1]]; -model.sim="CurrentSensor"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="CurrentSensor"; -mo.inputs="p"; -mo.outputs=[["n"],["i"]]; -model.equations=mo; -exprs=[]; -gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=[["I"],["E"]]; - } - CurrentSensor.prototype.details = function CurrentSensor() { - } - CurrentSensor.prototype.get = function CurrentSensor() { - } - CurrentSensor.prototype.set = function CurrentSensor() { -x=arg1; } } -/* autogenerated from "macros/Electrical/ConstantVoltage.sci" */ -function ConstantVoltage() { - ConstantVoltage.prototype.define = function ConstantVoltage() { -V=0.01; +/* autogenerated from "macros/Misc/EDGETRIGGER.sci" */ +function EDGETRIGGER() { + EDGETRIGGER.prototype.define = function EDGETRIGGER() { +edge=1; model=scicos_model(); -model.rpar=V; +model.sim=list("edgetrig",4); model.in1=1; model.out=1; -model.sim="ConstantVoltage"; +model.dstate=0; +model.nzcross=1; +model.ipar=sign(edge); model.blocktype="c"; -model.dep_ut=[false,false]; -mo=modelica(); -mo.model="ConstantVoltage"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list("V",list(V)); -model.equations=mo; -exprs=string(V); +model.dep_ut=[true,false]; +exprs=[string(edge)]; gr_i=[]; -x=standard_define([1.5,1.1],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; +x=standard_define([3,2],model,exprs,gr_i); } - ConstantVoltage.prototype.details = function ConstantVoltage() { + EDGETRIGGER.prototype.details = function EDGETRIGGER() { } - ConstantVoltage.prototype.get = function ConstantVoltage() { + EDGETRIGGER.prototype.get = function EDGETRIGGER() { } - ConstantVoltage.prototype.set = function ConstantVoltage() { + EDGETRIGGER.prototype.set = function EDGETRIGGER() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,V,exprs]=scicos_getvalue("Set ConstantVoltage block parameter","V (volt)",list("vec",1),exprs); +[ok,edge,exprs]=scicos_getvalue("Set edge trigger block parameters",["rising (1), falling (-1), both (0)"],list("vec",1),exprs); if (!ok) { break; } -model.rpar=V; -model.equations.parameters[2-1]=list(V); +model.ipar=sign(edge); graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -11810,560 +10702,559 @@ break; } } } -/* autogenerated from "macros/Electrical/VVsourceAC.sci" */ -function VVsourceAC() { - VVsourceAC.prototype.define = function VVsourceAC() { +/* autogenerated from "macros/Misc/EDGE_TRIGGER.sci" */ +function EDGE_TRIGGER() { + EDGE_TRIGGER.prototype.define = function EDGE_TRIGGER() { +scs_m_1=scicos_diagram(); +scs_m_1.objs[1-1]=this.EDGETRIGGER["define"-1]; +scs_m_1.objs[2-1]=IFTHEL_f("define"); +scs_m_1.objs[3-1]=IN_f("define"); +scs_m_1.objs[4-1]=CLKOUTV_f("define"); +scs_m_1.objs[5-1]=scicos_link(); +scs_m_1.objs[6-1]=scicos_link(); +scs_m_1.objs[7-1]=scicos_link(); +blk=scs_m_1.objs[1-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[60,0]; +graphics.sz=[60,40]; +graphics.exprs="0"; +model.ipar=0; +graphics.pin=5; +graphics.pout=6; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[1-1]=blk; +blk=scs_m_1.objs[2-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[160,0]; +graphics.sz=[60,40]; +graphics.exprs=[["0"],["0"]]; +model.evtin=[]; +model.nzcross=0; +model.nmode=0; +graphics.pin=6; +graphics.peout=[[7],[0]]; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[2-1]=blk; +blk=scs_m_1.objs[3-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[0,10]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.pout=5; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[3-1]=blk; +blk=scs_m_1.objs[4-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[170,-60]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.pein=7; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[4-1]=blk; +lnk=scs_m_1.objs[5-1]; +lnk.from=[3,1,0]; +lnk.to=[1,1,1]; +scs_m_1.objs[5-1]=lnk; +lnk=scs_m_1.objs[6-1]; +lnk.from=[1,1,0]; +lnk.to=[2,1,1]; +scs_m_1.objs[6-1]=lnk; +lnk=scs_m_1.objs[7-1]; +lnk.ct=[5,-1]; +lnk.from=[2,1,0]; +lnk.to=[4,1,1]; +scs_m_1.objs[7-1]=lnk; +blk={}; +lnk={}; model=scicos_model(); -model.in1=[[1],[1]]; -model.out=[1]; -VA=220; -FR=50; -model.rpar=[FR]; -model.sim="VVsourceAC"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="VVsourceAC"; -mo.inputs=["p","VA"]; -mo.outputs="n"; -mo.parameters=list(["f"],list(FR)); -model.equations=mo; -exprs=[string(FR)]; +model.sim="csuper"; +model.in1=1; +model.evtout=1; +model.rpar=scs_m_1; gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I","E"]; -x.graphics.out_implicit=["I"]; +x=standard_define([3,2],model,[],gr_i); } - VVsourceAC.prototype.details = function VVsourceAC() { + EDGE_TRIGGER.prototype.details = function EDGE_TRIGGER() { } - VVsourceAC.prototype.get = function VVsourceAC() { + EDGE_TRIGGER.prototype.get = function EDGE_TRIGGER() { } - VVsourceAC.prototype.set = function VVsourceAC() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,FR,exprs]=scicos_getvalue("Set voltage source parameter",["Frequency (Hz)"],list("vec",-1),exprs); -if (!ok) { + EDGE_TRIGGER.prototype.set = function EDGE_TRIGGER() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="EDGETRIGGER") { +ppath=list(i); break; } -model.rpar=[FR]; -model.equations.parameters[2-1]=list(FR); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; } - } +newpar=list(); +y=0; +for (path in ppath) { +np=size(path,"*"); +spath=list(); +for (k=1;k<=np;k+=1) { +spath[$+1-1]="model"; +spath[$+1-1]="rpar"; +spath[$+1-1]="objs"; +spath[$+1-1]=path[k-1]; } -/* autogenerated from "macros/Electrical/VoltageSensor.sci" */ -function VoltageSensor() { - VoltageSensor.prototype.define = function VoltageSensor() { -model=scicos_model(); -model.in1=1; -model.out=[[1],[1]]; -model.sim="VoltageSensor"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="VoltageSensor"; -mo.inputs="p"; -mo.outputs=[["n"],["v"]]; -model.equations=mo; -exprs=[]; -gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=[["I"],["E"]]; - } - VoltageSensor.prototype.details = function VoltageSensor() { - } - VoltageSensor.prototype.get = function VoltageSensor() { - } - VoltageSensor.prototype.set = function VoltageSensor() { -x=arg1; - } +xx=arg1[spath-1]; +execstr("xxn="+xx.gui+"(\'set\',xx)"); +if (diffobjs(this.xxn,xx)) { +model=xx.model; +model_n=this.xxn.model; +if (!is_modelica_block(xx)) { +modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); +if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { +needcompile=1; } -/* autogenerated from "macros/Electrical/VariableResistor.sci" */ -function VariableResistor() { - VariableResistor.prototype.define = function VariableResistor() { -model=scicos_model(); -model.sim="VariableResistor"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="VariableResistor"; -mo.inputs=["p","R"]; -mo.outputs="n"; -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[]; -gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I","E"]; -x.graphics.out_implicit=["I"]; - } - VariableResistor.prototype.details = function VariableResistor() { - } - VariableResistor.prototype.get = function VariableResistor() { - } - VariableResistor.prototype.set = function VariableResistor() { -x=arg1; - } +if (or(model.firing!=model_n.firing)) { +needcompile=2; } -/* autogenerated from "macros/Electrical/Switch.sci" */ -function Switch() { - Switch.prototype.define = function Switch() { -model=scicos_model(); -Ron=0.01; -Roff=1e5; -S=[["Ron"],["Roff"]]; -Z=eval(S); -model.sim="Switch"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model=model.sim; -mo.inputs=[["p"],["inp"]]; -mo.outputs="n"; -mo.parameters=list(S,Z); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -model.rpar=Z; -exprs=string(Z); -gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=[["I"],["E"]]; -x.graphics.out_implicit=["I"]; - } - Switch.prototype.details = function Switch() { - } - Switch.prototype.get = function Switch() { - } - Switch.prototype.set = function Switch() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,Ron,Roff,exprs]=scicos_getvalue("Set non-ideal electrical switch parameters",[["Resistance in On state (Ohm)"],["Resistance in Off state (Ohm)"]],list("vec",1,"vec",1),exprs); -if (!ok) { -break; +if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { +needcompile=4; } -model.equations.parameters[2-1]=list(Ron,Roff); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; +if (model.sim=="input"||model.sim=="output") { +if (model.ipar!=model_n.ipar) { +needcompile=4; +} +} +if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { +needcompile=4; +} +if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { +needcompile=4; +} +if (prod(size(model_n.sim))>1) { +if (model_n.sim[2-1]>1000) { +if (model.sim[1-1]!=model_n.sim[1-1]) { +needcompile=4; +} +} +} +} else { +modified=or(model_n!=model); +eq=model.equations; +eqn=model_n.equations; +if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { +needcompile=4; +} +} +arg1[spath-1]=this.xxn; +newpar[size(newpar)+1-1]=path; +y=max(y,needcompile); } - } } -/* autogenerated from "macros/Electrical/MOTOR.sci" */ -function MOTOR() { - MOTOR.prototype.define = function MOTOR() { -model=scicos_model(); -model.out=[[1],[1]]; -model.in1=[1]; -model.sim="motor"; -model.blocktype="c"; -model.dep_ut=[true,false]; -gr_i=[]; -exprs=""; -x=standard_define([2,2],model,exprs,gr_i); -x.graphics.out_implicit=[["I"],["I"]]; -x.graphics.in_implicit=["I"]; - } - MOTOR.prototype.details = function MOTOR() { - } - MOTOR.prototype.get = function MOTOR() { - } - MOTOR.prototype.set = function MOTOR() { x=arg1; +typ=newpar; } } -/* autogenerated from "macros/Electrical/NMOS.sci" */ -function NMOS() { - NMOS.prototype.define = function NMOS() { -model=scicos_model(); -W=20.e-6; -L=6.e-6; -Beta=0.041e-3; -Vt=0.8; -K2=1.144; -K5=0.7311; -dW=-2.5e-6; -dL=-1.5e-6; -RDS=1.e+7; -model.sim="NMOS"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="NMOS"; -mo.outputs=[["D"],["B"],["S"]]; -mo.inputs="G"; -mo.parameters=list([["W"],["L"],["Beta"],["Vt"],["K2"],["K5"],["dW"],["dL"],["RDS"]],[[W],[L],[Beta],[Vt],[K2],[K5],[dW],[dL],[RDS]]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=[[string(W)],[string(L)],[string(Beta)],[string(Vt)],[string(K2)],[string(K5)],[string(dW)],[string(dL)],[string(RDS)]]; +/* autogenerated from "macros/Misc/ENDBLK.sci" */ +function ENDBLK() { + ENDBLK.prototype.define = function ENDBLK() { +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-159.096,811.104,-121.216,617.984,1323,1008,331,284,630,480,0,7,1.4],Title="ENDBLK",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="END_c",graphics=scicos_graphics(orig=[272.104,249.11733],sz=[40,40],flip=true,theta=0,exprs="1.000E+08",pin=[],pout=[],pein=2,peout=2,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim=list("scicosexit",4),in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=1.000e+08,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_link(xx=[[292.104],[292.104],[261.83733],[261.83733],[292.104],[292.104]],yy=[[243.40305],[234.45067],[234.45067],[305.584],[305.584],[294.83162]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[1,1,1]); +model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=[["I"],["I"],["I"]]; +x=standard_define([2,2],model,[],gr_i); } - NMOS.prototype.details = function NMOS() { + ENDBLK.prototype.details = function ENDBLK() { } - NMOS.prototype.get = function NMOS() { + ENDBLK.prototype.get = function ENDBLK() { } - NMOS.prototype.set = function NMOS() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,W,L,Beta,Vt,K2,K5,dW,dL,RDS,exprs]=scicos_getvalue("Set NMOS Transistor block parameters",[["Width [m]"],["Length [m]"],["Transconductance parameter [A/(V*V)]"],["Zero bias threshold voltage [V]"],["Bulk threshold parameter"],["Reduction of pinch-off region"],["Narrowing of channel [m]"],["Shortening of channel [m]"],["Drain-Source-Resistance [Ohm]"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); -if (!ok) { + ENDBLK.prototype.set = function ENDBLK() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="END_c") { +ppath=list(i); break; } -model.equations.parameters[2-1]=list(W,L,Beta,Vt,K2,K5,dW,dL,RDS); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; } - } +newpar=list(); +y=0; +for (path in ppath) { +np=size(path,"*"); +spath=list(); +for (k=1;k<=np;k+=1) { +spath[$+1-1]="model"; +spath[$+1-1]="rpar"; +spath[$+1-1]="objs"; +spath[$+1-1]=path[k-1]; } -/* autogenerated from "macros/Electrical/VsourceAC.sci" */ -function VsourceAC() { - VsourceAC.prototype.define = function VsourceAC() { -model=scicos_model(); -model.in1=[1]; -model.out=[1]; -VA=220; -FR=50; -model.rpar=[[VA],[FR]]; -model.sim="VsourceAC"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model="VsourceAC"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list([["VA"],["f"]],list(VA,FR)); -model.equations=mo; -exprs=[[string(VA)],[string(FR)]]; -gr_i=[]; -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; - } - VsourceAC.prototype.details = function VsourceAC() { - } - VsourceAC.prototype.get = function VsourceAC() { - } - VsourceAC.prototype.set = function VsourceAC() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,VA,FR,exprs]=scicos_getvalue("Set voltage source parameter",[["Amplitude (Volt)"],["Frequency (Hz)"]],list("vec",-1,"vec",-1),exprs); -if (!ok) { -break; +xx=arg1[spath-1]; +execstr("xxn="+xx.gui+"(\'set\',xx)"); +if (!this.isequalbitwise[this.xxn-1][xx-1]) { +model=xx.model; +model_n=this.xxn.model; +if (!is_modelica_block(xx)) { +modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); +if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { +needcompile=1; +} +if (or(model.firing!=model_n.firing)) { +needcompile=2; +} +if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))||(size(model.evtin,"*")!=size(model_n.evtin,"*"))) { +needcompile=4; +} +if (model.sim=="input"||model.sim=="output") { +if (model.ipar!=model_n.ipar) { +needcompile=4; +} +} +if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { +needcompile=4; +} +if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { +needcompile=4; +} +if (prod(size(model_n.sim))>1) { +if (model_n.sim[2-1]>1000) { +if (model.sim[1-1]!=model_n.sim[1-1]) { +needcompile=4; +} +} +} +} else { +modified=or(model_n!=model); +eq=model.equations; +eqn=model_n.equations; +if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { +needcompile=4; +} +} +arg1[spath-1]=this.xxn; +newpar[size(newpar)+1-1]=path; +y=max(y,needcompile); } -model.rpar=[[VA],[FR]]; -model.equations.parameters[2-1]=list(VA,FR); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; } +x=arg1; +typ=newpar; } } -/* autogenerated from "macros/Electrical/OpAmp.sci" */ -function OpAmp() { - OpAmp.prototype.define = function OpAmp() { -S=[]; -Z=[]; +/* autogenerated from "macros/Misc/Extract_Activation.sci" */ +function Extract_Activation() { + Extract_Activation.prototype.define = function Extract_Activation() { +scs_m_1=scicos_diagram(); +scs_m_1.objs[1-1]=IFTHEL_f("define"); +scs_m_1.objs[2-1]=CLKSOMV_f("define"); +scs_m_1.objs[3-1]=IN_f("define"); +scs_m_1.objs[4-1]=CLKOUTV_f("define"); +scs_m_1.objs[5-1]=scicos_link(); +scs_m_1.objs[6-1]=scicos_link(); +scs_m_1.objs[7-1]=scicos_link(); +scs_m_1.objs[8-1]=scicos_link(); +blk=scs_m_1.objs[1-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[80,0]; +graphics.sz=[60,40]; +graphics.exprs=[["0"],["0"]]; +model.evtin=[]; +model.nzcross=0; +model.nmode=0; +graphics.pin=7; +graphics.peout=[[5],[6]]; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[1-1]=blk; +blk=scs_m_1.objs[2-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[80,-80]; +graphics.sz=[80,40]; +graphics.pein=[[5],[6]]; +graphics.peout=8; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[2-1]=blk; +blk=scs_m_1.objs[3-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[0,10]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.pout=7; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[3-1]=blk; +blk=scs_m_1.objs[4-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[110,-140]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.pein=8; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[4-1]=blk; +lnk=scs_m_1.objs[5-1]; +lnk.ct=[5,-1]; +lnk.from=[1,1,0]; +lnk.to=[2,1,1]; +scs_m_1.objs[5-1]=lnk; +lnk=scs_m_1.objs[6-1]; +lnk.ct=[5,-1]; +lnk.from=[1,2,0]; +lnk.to=[2,2,1]; +scs_m_1.objs[6-1]=lnk; +lnk=scs_m_1.objs[7-1]; +lnk.from=[3,1,0]; +lnk.to=[1,1,1]; +scs_m_1.objs[7-1]=lnk; +lnk=scs_m_1.objs[8-1]; +lnk.ct=[5,-1]; +lnk.from=[2,1,0]; +lnk.to=[4,1,1]; +scs_m_1.objs[8-1]=lnk; +blk={}; +lnk={}; model=scicos_model(); -model.sim="OpAmp"; -model.blocktype="c"; -model.dep_ut=[true,false]; -mo=modelica(); -mo.model=model.sim; -mo.inputs=[["in_p"],["in_n"]]; -mo.outputs=["out"]; -mo.parameters=list(S,Z); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -model.rpar=Z; -exprs=string(Z); +model.sim="csuper"; +model.in1=1; +model.evtout=1; +model.rpar=scs_m_1; gr_i=[]; -x=standard_define([3,5],model,exprs,gr_i); -x.graphics.in_implicit=[["I"],["I"]]; -x.graphics.out_implicit=["I"]; +x=standard_define([3,2],model,[],gr_i); } - OpAmp.prototype.details = function OpAmp() { + Extract_Activation.prototype.details = function Extract_Activation() { } - OpAmp.prototype.get = function OpAmp() { + Extract_Activation.prototype.get = function Extract_Activation() { } - OpAmp.prototype.set = function OpAmp() { + Extract_Activation.prototype.set = function Extract_Activation() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (false) { -[ok,OLGain,SatH,SatL,exprs]=scicos_getvalue("Set the Operational Amplifier parameters",[["Open Loop Gain"],["Positive saturation voltage"],["Negative saturation voltage"]],list("vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; -} -model.equations.parameters[2-1]=list(OLGain,SatH,SatL); -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} } } -/* autogenerated from "macros/Electrical/Capacitor.sci" */ -function Capacitor() { - Capacitor.prototype.define = function Capacitor() { +/* autogenerated from "macros/Misc/HYSTHERESIS.sci" */ +function HYSTHERESIS() { + HYSTHERESIS.prototype.define = function HYSTHERESIS() { +in1=1; +ipar=[0]; +nzz=2; +rpar=[[1],[0],[1],[0]]; model=scicos_model(); -C=0.01; -v=0; -model.rpar=[[C],[v]]; -model.sim="Capacitor"; +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]; -mo=modelica(); -mo.model="Capacitor"; -mo.inputs="p"; -mo.outputs="n"; -mo.parameters=list(["C","v"],list(C,v),[0,1]); -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -exprs=string([[C],[v]]); +exprs=[[string(rpar)],[string(sign(nzz))]]; gr_i=[]; -x=standard_define([2,1.1],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I"]; +x=standard_define([2,2],model,exprs,gr_i); } - Capacitor.prototype.details = function Capacitor() { + HYSTHERESIS.prototype.details = function HYSTHERESIS() { } - Capacitor.prototype.get = function Capacitor() { + HYSTHERESIS.prototype.get = function HYSTHERESIS() { } - Capacitor.prototype.set = function Capacitor() { + HYSTHERESIS.prototype.set = function HYSTHERESIS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,C,v,exprs]=scicos_getvalue("Set Capacitor block parameter",[["C (F)"],["Initial Voltage"]],list("vec",1,"vec",1),exprs); +[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; } -model.rpar=C; -model.equations.parameters[2-1]=list(C,v); +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; } - } -} -/* autogenerated from "macros/Electrical/Gyrator.sci" */ -function Gyrator() { - Gyrator.prototype.define = function Gyrator() { -ModelName="Gyrator"; -PrametersValue=[[1],[1]]; -ParametersName=[["G1"],["G2"]]; -model=scicos_model(); -Typein=[]; -Typeout=[]; -MI=[]; -MO=[]; -P=[[2.5,90,2,0],[2.5,10,2,0],[97.5,90,-2,0],[97.5,10,-2,0]]; -PortName=[["p1"],["n1"],["p2"],["n2"]]; -for (i=1;i<=size(P,"r");i+=1) { -if (P[i-1][3-1]==1) { -Typein=[[Typein],["E"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==2) { -Typein=[[Typein],["I"]]; -MI=[[MI],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-1) { -Typeout=[[Typeout],["E"]]; -MO=[[MO],[PortName[i-1]]]; -} -if (P[i-1][3-1]==-2) { -Typeout=[[Typeout],["I"]]; -MO=[[MO],[PortName[i-1]]]; } + } } +/* autogenerated from "macros/Misc/IMPSPLIT_f.sci" */ +function IMPSPLIT_f() { + IMPSPLIT_f.prototype.define = function IMPSPLIT_f() { model=scicos_model(); +model.sim="limpsplit"; mo=modelica(); -model.sim=ModelName; -mo.inputs=MI; -mo.outputs=MO; -model.rpar=PrametersValue; -mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); -exprs=[["1"],["1"]]; -gr_i=[]; -model.blocktype="c"; -model.dep_ut=[false,true]; -mo.model=ModelName; +mo.model="limpsplit"; +mo.inputs="n"; +mo.outputs=[["n"],["n"]]; model.equations=mo; -model.in1=ones(size(MI,"*"),1); -model.out=ones(size(MO,"*"),1); -x=standard_define([2,2],model,exprs,list(gr_i,0)); -x.graphics.in_implicit=Typein; -x.graphics.out_implicit=Typeout; +model.in1=ones(size(mo.inputs,"*"),1); +model.out=ones(size(mo.outputs,"*"),1); +x=standard_define([1,1]/3,model,[],[]); +x.graphics.in_implicit=["I"]; +x.graphics.out_implicit=["I","I"]; } - Gyrator.prototype.details = function Gyrator() { + IMPSPLIT_f.prototype.details = function IMPSPLIT_f() { } - Gyrator.prototype.get = function Gyrator() { + IMPSPLIT_f.prototype.get = function IMPSPLIT_f() { } - Gyrator.prototype.set = function Gyrator() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; + IMPSPLIT_f.prototype.set = function IMPSPLIT_f() { x=arg1; -exprs=x.graphics.exprs; -while (true) { -[ok,G1,G2,exprs]=scicos_getvalue([["Set Gyrator block parameters:"],[""],["G1: Gyration conductance"],["G2: Gyration conductance"]],[["G1"],["G2"]],list("vec",1,"vec",1),exprs); -if (!ok) { -break; -} -x.model.equations.parameters[2-1]=list(G1,G2); -x.graphics.exprs=exprs; -break; -} } } -/* autogenerated from "macros/Misc/DEADBAND.sci" */ -function DEADBAND() { - DEADBAND.prototype.define = function DEADBAND() { -minp=-.5; -maxp=.5; -rpar=[[maxp],[minp]]; +/* autogenerated from "macros/Misc/LOGICAL_OP.sci" */ +function LOGICAL_OP() { + LOGICAL_OP.prototype.define = function LOGICAL_OP() { +in1=[[-1],[-1]]; +ipar=[0]; +nin=2; model=scicos_model(); -model.sim=list("deadband",4); -model.in1=1; -model.nzcross=2; -model.nmode=1; -model.out=1; -model.rpar=rpar; +model.sim=list("logicalop",4); +model.in1=in1; +model.out=-1; +model.ipar=ipar; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[string(maxp)],[string(minp)],[string(model.nmode)]]; +exprs=[[string(nin)],[string(ipar)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - DEADBAND.prototype.details = function DEADBAND() { + LOGICAL_OP.prototype.details = function LOGICAL_OP() { } - DEADBAND.prototype.get = function DEADBAND() { + LOGICAL_OP.prototype.get = function LOGICAL_OP() { } - DEADBAND.prototype.set = function DEADBAND() { + LOGICAL_OP.prototype.set = function LOGICAL_OP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +if (size(exprs,1)==2) { +exprs=[[exprs],[sci2exp(1)],[sci2exp(0)]]; +} while (true) { -[ok,maxp,minp,zeroc,exprs]=scicos_getvalue("Set Deadband parameters",[["End of dead band"],["Start of dead band"],["zero crossing (0:no, 1:yes)"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,nin,rule,Datatype,tp,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["Operator: AND (0), OR (1), NAND (2), NOR (3), XOR (4), NOT (5)","Datatype (1=double 3=int32 ...)"],["Bitwise Rule(0=No 1=yes)"]],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (maxp<=minp) { -message("Upper limit must be > Lower limit"); +nin=int(nin); +rule=int(rule); +tp=int(tp); +if (nin<1) { +message("Number of inputs must be >=1 "); +ok=false; +} else if ((rule<0)||(rule>5)) { +message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); +ok=false; +} else if ((rule==5)&&(nin>1)) { +message("Only one input allowed for NOT operation"); +nin=1; +} else if (((Datatype==1)&&(tp!=0))) { +message("Bitwise Rule is only activated when Data type is integer"); +ok=false; +} +if (ok) { +if ((tp!=0)) { +tp=1; +} +if (Datatype==1) { +model.sim=list("logicalop",4); +model.ipar=[rule]; } else { -rpar=[[maxp],[minp]]; -model.rpar=rpar; -if (zeroc!=0) { -model.nzcross=2; -model.nmode=1; +if (Datatype==3) { +model.sim=list("logicalop_i32",4); +} else if (Datatype==4) { +model.sim=list("logicalop_i16",4); +} else if (Datatype==5) { +model.sim=list("logicalop_i8",4); +} else if (Datatype==6) { +model.sim=list("logicalop_ui32",4); +} else if (Datatype==7) { +model.sim=list("logicalop_ui16",4); +} else if (Datatype==8) { +model.sim=list("logicalop_ui8",4); } else { -model.nzcross=0; -model.nmode=0; +message("Datatype is not supported"); +ok=false; +} +model.ipar=[[rule],[tp]]; +} +if (ok) { +it=Datatype*ones(nin,1); +ot=Datatype; +in1=[-ones(nin,1),-2*ones(nin,1)]; +if ((rule!=5)&&(nin==1)) { +out=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} else { +out=[-1,-2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} +} +if (ok) { +if (rule==0) { +label="AND"; +} else if (rule==1) { +label="OR"; +} else if (rule==2) { +label="NAND"; +} else if (rule==3) { +label="NOR"; +} else if (rule==4) { +label="XOR"; +} else if (rule==5) { +label="NOT"; } graphics.exprs=exprs; +graphics.style=["blockWithLabel;displayedLabel="+label]; x.graphics=graphics; x.model=model; break; } } - } } -/* autogenerated from "macros/Misc/SUPER_f.sci" */ -function SUPER_f() { - SUPER_f.prototype.define = function SUPER_f() { -scs=scicos_diagram(); -scs.props.title="Super Block"; -in1=IN_f("define"); -in1.graphics.orig=[40,40]; -in1.graphics.sz=[20,20]; -out=OUT_f("define"); -out.graphics.orig=[240,40]; -out.graphics.sz=[20,20]; -scs.objs[1-1]=in1; -scs.objs[2-1]=out; -model=scicos_model(); -model.sim="super"; -model.in1=1; -model.out=1; -model.rpar=scs; -model.blocktype="h"; -model.dep_ut=[false,false]; -gr_i=[]; -x=standard_define([2,2],model,[],gr_i); - } - SUPER_f.prototype.details = function SUPER_f() { - } - SUPER_f.prototype.get = function SUPER_f() { - } - SUPER_f.prototype.set = function SUPER_f() { -xcos(arg1.model.rpar); } } /* autogenerated from "macros/Misc/MBLOCK.sci" */ function MBLOCK() { MBLOCK.prototype.define = function MBLOCK() { -in1=["u1"]; -intype=["I"]; -out=[["y1"],["y2"]]; -outtype=[["I"],["E"]]; +this.in1=["u1"]; +this.intype=["I"]; +this.out=[["y1"],["y2"]]; +this.outtype=[["I"],["E"]]; param=[["R"],["L"]]; paramv=list(0.1,.0001); pprop=[[0],[0]]; nameF="generic"; -exprs=tlist(["MBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(in1.slice()),sci2exp(intype.slice()),sci2exp(out.slice()),sci2exp(outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); +exprs=tlist(["MBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(this.in1.slice()),sci2exp(this.intype.slice()),sci2exp(this.out.slice()),sci2exp(this.outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); model=scicos_model(); model.blocktype="c"; model.dep_ut=[false,true]; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { +for (i=1;i<=lstsize(paramv);i+=1) { model.rpar=[[model.rpar],[paramv[i-1].slice()]]; } mo=modelica(); mo.model=nameF; mo.parameters=list(param,paramv); model.sim=list(mo.model,30004); -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; model.in1=ones(size(mo.inputs,"r"),1); model.out=ones(size(mo.outputs,"r"),1); model.equations=mo; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); -x.graphics.in_implicit=intype; -x.graphics.out_implicit=outtype; +x.graphics.in_implicit=this.intype; +x.graphics.out_implicit=this.outtype; } MBLOCK.prototype.details = function MBLOCK() { } @@ -12374,7 +11265,7 @@ x=arg1; model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -if (type[exprs-1]==15) { +if (this.type[exprs-1]==15) { paramv=list(); pprop=[]; for (i=1;i<=size(model.rpar,"*");i+=1) { @@ -12396,7 +11287,7 @@ messagebox("Error in evaluation of variables.","modal","error"); ok=false; } if (ok) { -for (i=1;i<=size(in1,"*");i+=1) { +for (i=1;i<=size(this.in1,"*");i+=1) { r=false; ierr=execstr("r=validvar(in(i))","errcatch"); if (!r) { @@ -12405,11 +11296,11 @@ break; } } if (!ok) { -messagebox([["Invalid variable name for the input "+string(i)+"."],["\""+in1[i-1]+"\""],["Please choose another variable name."]],"modal","error"); +messagebox([["Invalid variable name for the input "+string(i)+"."],["\""+this.in1[i-1]+"\""],["Please choose another variable name."]],"modal","error"); } } if (ok) { -for (i=1;i<=size(out,"*");i+=1) { +for (i=1;i<=size(this.out,"*");i+=1) { r=false; ierr=execstr("r=validvar(out(i))","errcatch"); if (!r) { @@ -12418,7 +11309,7 @@ break; } } if (!ok) { -messagebox([["Invalid variable name for the output "+string(i)+"."],["\""+out[i-1]+"\""],["Please choose another variable name."]],"modal","error"); +messagebox([["Invalid variable name for the output "+string(i)+"."],["\""+this.out[i-1]+"\""],["Please choose another variable name."]],"modal","error"); } } if (ok) { @@ -12436,8 +11327,8 @@ messagebox([["Invalid variable name for the parameter "+string(i)+"."],["\""+par } } if (ok) { -for (i=1;i<=size(intype,"*");i+=1) { -if (intype[i-1]!="E"&&intype[i-1]!="I") { +for (i=1;i<=size(this.intype,"*");i+=1) { +if (this.intype[i-1]!="E"&&this.intype[i-1]!="I") { messagebox("Input type should be \'E\' or \'I\'!","modal","error"); ok=false; break; @@ -12445,8 +11336,8 @@ break; } } if (ok) { -for (i=1;i<=size(outtype,"*");i+=1) { -if (outtype[i-1]!="E"&&outtype[i-1]!="I") { +for (i=1;i<=size(this.outtype,"*");i+=1) { +if (this.outtype[i-1]!="E"&&this.outtype[i-1]!="I") { messagebox("Output type should be \'E\' or \'I\'!","modal","error"); ok=false; break; @@ -12454,13 +11345,13 @@ break; } } if (ok) { -if (or(size(intype)!=size(in1))) { +if (or(size(this.intype)!=size(this.in1))) { messagebox("Input variables are not well defined!","modal","error"); ok=false; } } if (ok) { -if (or(size(outtype)!=size(out))) { +if (or(size(this.outtype)!=size(this.out))) { messagebox("Output variables are not well defined!","modal","error"); ok=false; } @@ -12479,34 +11370,34 @@ ok=false; } } if (ok) { -if (funam=="") { +if (this.funam=="") { messagebox("The filename is not defined!","modal","error"); ok=false; } } if (ok) { -[dirF,nameF,extF]=fileparts(funam); +[dirF,nameF,extF]=fileparts(this.funam); if ((extF!=""&&extF!=".mo")||(dirF!=""&&extF!=".mo")) { messagebox("Filename extention should be \'.mo \' !","modal","error"); ok=false; } } if (ok) { -intypex=find(intype=="I"); -outtypex=find(outtype=="I"); -[model,graphics,ok]=set_io(model,graphics,list([ones(in1),ones(in1)],ones(in1)),list([ones(out),ones(out)],ones(out)),[],[],intypex,outtypex); +intypex=find(this.intype=="I"); +outtypex=find(this.outtype=="I"); +[model,graphics,ok]=set_io(model,graphics,list([ones(this.in1),ones(this.in1)],ones(this.in1)),list([ones(this.out),ones(this.out)],ones(this.out)),[],[],intypex,outtypex); } if (ok) { Tparam_lab=evstr(Tparam); Tparam_sz=size(Tparam_lab,"*"); -if (Tparam_sz>lstsize[lab_2-1]) { -for (i=1;i<=(Tparam_sz-lstsize[lab_2-1]);i+=1) { +if (Tparam_sz>lstsize(lab_2)) { +for (i=1;i<=(Tparam_sz-lstsize(lab_2));i+=1) { lab_2[$+1-1]="0"; } -} else if (Tparam_sz<lstsize[lab_2-1]) { +} else if (Tparam_sz<lstsize(lab_2)) { lab_2_tmp=list(); if (Tparam_sz!=0) { -for (i=1;i<=(lstsize[lab_2-1]-Tparam_sz);i+=1) { +for (i=1;i<=(lstsize(lab_2)-Tparam_sz);i+=1) { lab_2_tmp[i-1]=lab_2[i-1]; } } @@ -12544,8 +11435,8 @@ execstr("paramv("+string(i)+")=%v"+string(i)); } } if (ok) { -if (extF==".mo"&&fileinfo(funam)!=[]) { -tt=mgetl(funam); +if (extF==".mo"&&fileinfo(this.funam)!=[]) { +tt=mgetl(this.funam); } else { tt=exprs.funtxt; mo=model.equations; @@ -12553,7 +11444,7 @@ if (mo.model!=nameF) { tt=[]; } } -[ok,tt]=MODCOM(funam,tt,in1,out,param,paramv,pprop); +[ok,tt]=MODCOM(this.funam,tt,this.in1,this.out,param,paramv,pprop); if (!ok) { break; } @@ -12561,8 +11452,8 @@ break; if (ok) { mo=modelica(); mo.model=nameF; -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; if (max(pprop)>0) { mo.parameters=list(transpose(param),paramv,transpose(pprop)); } else { @@ -12570,10 +11461,10 @@ mo.parameters=list(transpose(param),paramv); } model.equations=mo; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { +for (i=1;i<=lstsize(paramv);i+=1) { model.rpar=[[model.rpar],[paramv[i-1].slice()]]; } -model.sim[1-1]=funam; +model.sim[1-1]=this.funam; exprs.in1=lab_1[1-1]; exprs.intype=lab_1[2-1]; exprs.out=lab_1[3-1]; @@ -12581,8 +11472,8 @@ exprs.outtype=lab_1[4-1]; exprs.param=lab_1[5-1]; exprs.paramv=list(); if (Tparam_sz!=0) { -if (type[lab_2-1]==15) { -for (i=1;i<=lstsize[lab_2-1];i+=1) { +if (this.type[lab_2-1]==15) { +for (i=1;i<=lstsize(lab_2);i+=1) { exprs.paramv[i-1]=lab_2[i-1]; } } else { @@ -12596,10 +11487,66 @@ exprs.nameF=lab_1[7-1]; exprs.funtxt=tt; x.model=model; graphics.gr_i[1-1][1-1]="txt=[\'Modelica\';\' "+nameF+" \'];"; -graphics.in_implicit=intype; -graphics.out_implicit=outtype; +graphics.in_implicit=this.intype; +graphics.out_implicit=this.outtype; +graphics.exprs=exprs; +x.graphics=graphics; +break; +} +} + } +} +/* autogenerated from "macros/Misc/MEMORY_f.sci" */ +function MEMORY_f() { + MEMORY_f.prototype.define = function MEMORY_f() { +z=0; +in1=1; +exprs=[[string(z)],[string(1)]]; +model=scicos_model(); +model.sim="memo"; +model.in1=in1; +model.out=in1; +model.evtin=1; +model.dstate=0; +model.rpar=z; +model.blocktype="m"; +model.dep_ut=[false,false]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + MEMORY_f.prototype.details = function MEMORY_f() { + } + MEMORY_f.prototype.get = function MEMORY_f() { + } + MEMORY_f.prototype.set = function MEMORY_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,a,inh,exprs]=scicos_getvalue("Set memory block parameters",[["initial condition"],["Inherit (1: no, 0: yes)"]],list("vec",-1,"vec",1),exprs); +if (!ok) { +break; +} +if (inh==0) { +inh=[]; +} else { +inh=1; +} +[model,graphics,ok]=check_io(model,graphics,-1,-1,inh,[]); +out=size(a,"*"); +if (out==0) { +ok=false; +messagebox("Initial condition empty","modal","error"); +} +in1=out; +if (ok) { graphics.exprs=exprs; +model.rpar=a; +model.in1=in1; +model.out=out; x.graphics=graphics; +x.model=model; break; } } @@ -12608,35 +11555,35 @@ break; /* autogenerated from "macros/Misc/MPBLOCK.sci" */ function MPBLOCK() { MPBLOCK.prototype.define = function MPBLOCK() { -in1=["u"]; -intype=["I"]; -out=[["y1"],["y2"]]; -outtype=[["I"],["I"]]; +this.in1=["u"]; +this.intype=["I"]; +this.out=[["y1"],["y2"]]; +this.outtype=[["I"],["I"]]; param=[]; paramv=list(); pprop=[]; nameF="myModel"; -exprs=tlist(["MPBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(in1.slice()),sci2exp(intype.slice()),sci2exp(out.slice()),sci2exp(outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); +exprs=tlist(["MPBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(this.in1.slice()),sci2exp(this.intype.slice()),sci2exp(this.out.slice()),sci2exp(this.outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); model=scicos_model(); model.blocktype="c"; model.dep_ut=[true,true]; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { +for (i=1;i<=lstsize(paramv);i+=1) { model.rpar=[[model.rpar],[paramv[i-1].slice()]]; } mo=modelica(); mo.model=nameF; mo.parameters=list(param,paramv); model.sim=list(mo.model,10004); -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; model.in1=ones(size(mo.inputs,"r"),1); model.out=ones(size(mo.outputs,"r"),1); model.equations=mo; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); -x.graphics.in_implicit=intype; -x.graphics.out_implicit=outtype; +x.graphics.in_implicit=this.intype; +x.graphics.out_implicit=this.outtype; } MPBLOCK.prototype.details = function MPBLOCK() { } @@ -12647,7 +11594,7 @@ x=arg1; model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -if (type[exprs-1]==15) { +if (this.type[exprs-1]==15) { paramv=list(); pprop=[]; for (i=1;i<=size(model.rpar,"*");i+=1) { @@ -12669,7 +11616,7 @@ x_message("Error in evaluation of variables."); ok=false; } if (ok) { -for (i=1;i<=size(in1,"*");i+=1) { +for (i=1;i<=size(this.in1,"*");i+=1) { r=false; ierr=execstr("r=validvar(in(i))","errcatch"); if (!r) { @@ -12678,11 +11625,11 @@ break; } } if (!ok) { -x_message([["Invalid variable name for the input "+string(i)+"."],["\""+in1[i-1]+"\""],["Please choose another variable name."]]); +x_message([["Invalid variable name for the input "+string(i)+"."],["\""+this.in1[i-1]+"\""],["Please choose another variable name."]]); } } if (ok) { -for (i=1;i<=size(out,"*");i+=1) { +for (i=1;i<=size(this.out,"*");i+=1) { r=false; ierr=execstr("r=validvar(out(i))","errcatch"); if (!r) { @@ -12691,7 +11638,7 @@ break; } } if (!ok) { -x_message([["Invalid variable name for the output "+string(i)+"."],["\""+out[i-1]+"\""],["Please choose another variable name."]]); +x_message([["Invalid variable name for the output "+string(i)+"."],["\""+this.out[i-1]+"\""],["Please choose another variable name."]]); } } if (ok) { @@ -12709,8 +11656,8 @@ x_message([["Invalid variable name for the parameter "+string(i)+"."],["\""+para } } if (ok) { -for (i=1;i<=size(intype,"*");i+=1) { -if (intype[i-1]!="E"&&intype[i-1]!="I") { +for (i=1;i<=size(this.intype,"*");i+=1) { +if (this.intype[i-1]!="E"&&this.intype[i-1]!="I") { x_message("Input type should be \'E\' or \'I\'!"); ok=false; break; @@ -12718,8 +11665,8 @@ break; } } if (ok) { -for (i=1;i<=size(outtype,"*");i+=1) { -if (outtype[i-1]!="E"&&outtype[i-1]!="I") { +for (i=1;i<=size(this.outtype,"*");i+=1) { +if (this.outtype[i-1]!="E"&&this.outtype[i-1]!="I") { x_message("Output type should be \'E\' or \'I\'!"); ok=false; break; @@ -12727,13 +11674,13 @@ break; } } if (ok) { -if (or(size(intype)!=size(in1))) { +if (or(size(this.intype)!=size(this.in1))) { x_message("Input variables are not well defined!"); ok=false; } } if (ok) { -if (or(size(outtype)!=size(out))) { +if (or(size(this.outtype)!=size(this.out))) { x_message("Output variables are not well defined!"); ok=false; } @@ -12752,31 +11699,31 @@ ok=false; } } if (ok) { -if (funam=="") { +if (this.funam=="") { x_message("The model name is not defined!"); ok=false; } } if (ok) { -[dirF,nameF,extF]=fileparts(funam); +[dirF,nameF,extF]=fileparts(this.funam); if ((extF!="")||(dirF!="")) { x_message("Invalid model name!"); ok=false; } } if (ok) { -intypex=find(intype=="I"); -outtypex=find(outtype=="I"); -[model,graphics,ok]=set_io(model,graphics,list([ones(in1),ones(in1)],ones(in1)),list([ones(out),ones(out)],ones(out)),[],[],intypex,outtypex); +intypex=find(this.intype=="I"); +outtypex=find(this.outtype=="I"); +[model,graphics,ok]=set_io(model,graphics,list([ones(this.in1),ones(this.in1)],ones(this.in1)),list([ones(this.out),ones(this.out)],ones(this.out)),[],[],intypex,outtypex); } if (ok) { Tparam_lab=evstr(Tparam); Tparam_sz=size(Tparam_lab,"*"); -if (Tparam_sz>lstsize[lab_2-1]) { -for (i=1;i<=(Tparam_sz-lstsize[lab_2-1]);i+=1) { +if (Tparam_sz>lstsize(lab_2)) { +for (i=1;i<=(Tparam_sz-lstsize(lab_2));i+=1) { lab_2[$+1-1]="0"; } -} else if (Tparam_sz<lstsize[lab_2-1]) { +} else if (Tparam_sz<lstsize(lab_2)) { lab_2_tmp=list(); if (Tparam_sz!=0) { for (i=1;i<=Tparam_sz;i+=1) { @@ -12824,8 +11771,8 @@ execstr("paramv("+string(i)+")=%v"+string(i)); if (ok) { mo=modelica(); mo.model=nameF; -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; if (pprop!=[]) { if (max(pprop)>0) { mo.parameters=list(transpose(param),paramv,transpose(pprop)); @@ -12835,10 +11782,10 @@ mo.parameters=list(transpose(param),paramv); } model.equations=mo; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { -model.rpar=[[model.rpar],[double[paramv[i-1].slice()-1]]]; +for (i=1;i<=lstsize(paramv);i+=1) { +model.rpar=[[model.rpar],[double(paramv[i-1].slice())]]; } -model.sim[1-1]=funam; +model.sim[1-1]=this.funam; exprs.in1=lab_1[1-1]; exprs.intype=lab_1[2-1]; exprs.out=lab_1[3-1]; @@ -12846,8 +11793,8 @@ exprs.outtype=lab_1[4-1]; exprs.param=lab_1[5-1]; exprs.paramv=list(); if (Tparam_sz!=0) { -if (type[lab_2-1]==15) { -for (i=1;i<=lstsize[lab_2-1];i+=1) { +if (this.type[lab_2-1]==15) { +for (i=1;i<=lstsize(lab_2);i+=1) { exprs.paramv[i-1]=lab_2[i-1]; } } else { @@ -12861,8 +11808,8 @@ exprs.nameF=lab_1[7-1]; exprs.funtxt=""; x.model=model; graphics.gr_i[1-1][1-1]="txt=[\' "+nameF+" \'];"; -graphics.in_implicit=intype; -graphics.out_implicit=outtype; +graphics.in_implicit=this.intype; +graphics.out_implicit=this.outtype; graphics.exprs=exprs; x.graphics=graphics; break; @@ -12870,209 +11817,229 @@ break; } } } -/* autogenerated from "macros/Misc/fortran_block.sci" */ -function fortran_block() { - fortran_block.prototype.define = function fortran_block() { +/* autogenerated from "macros/Misc/PAL_f.sci" */ +function PAL_f() { + PAL_f.prototype.define = function PAL_f() { +scs=scicos_diagram(); +scs.props.title="Palette"; model=scicos_model(); -model.sim=list(" ",1001); -model.in1=1; -model.out=1; -model.evtin=[]; -model.evtout=[]; -model.state=[]; -model.dstate=[]; -model.rpar=[]; -model.ipar=0; -model.blocktype="c"; -model.firing=[]; -model.dep_ut=[true,false]; -funam="forty"; -label=list([[sci2exp(model.in1)],[sci2exp(model.out)],[strcat(sci2exp(model.rpar))],[funam]],list([])); +model.sim="palette"; +model.in1=[]; +model.out=[]; +model.rpar=scs; +model.blocktype="h"; +model.dep_ut=[false,false]; gr_i=[]; -x=standard_define([4,2],model,label,gr_i); +x=standard_define([2,2],model,[],gr_i); +x.graphics.id=scs.props.title[1-1]; } - fortran_block.prototype.details = function fortran_block() { + PAL_f.prototype.details = function PAL_f() { } - fortran_block.prototype.get = function fortran_block() { + PAL_f.prototype.get = function PAL_f() { } - fortran_block.prototype.set = function fortran_block() { + PAL_f.prototype.set = function PAL_f() { +[x,newparameters,needcompile,edited]=scicos(arg1.model.rpar); +arg1.graphics.id=x.props.title[1-1]; +arg1.model.rpar=x; +x=arg1; +y=[]; +typ=[]; +%exit=resume(false) + } +} +/* autogenerated from "macros/Misc/PENDULUM_ANIM.sci" */ +function PENDULUM_ANIM() { + PENDULUM_ANIM.prototype.define = function PENDULUM_ANIM() { +plen=2; +csiz=2; +phi=0; +xmin=-5; +xmax=5; +ymin=-5; +ymax=5; +model=scicos_model(); +model.sim=list("anim_pen",5); +model.in1=[[1],[1]]; +model.evtin=1; +model.dstate=0; +model.rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=string(model.rpar); +gr_i=[]; +x=standard_define([3,3],model,exprs,gr_i); + } + PENDULUM_ANIM.prototype.details = function PENDULUM_ANIM() { + } + PENDULUM_ANIM.prototype.get = function PENDULUM_ANIM() { + } + PENDULUM_ANIM.prototype.set = function PENDULUM_ANIM() { x=arg1; -model=arg1.model; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; +model=arg1.model; +dstate=model.dstate; while (true) { -[ok,i,o,rpar,funam,lab]=scicos_getvalue("Set fortran_block parameters",[["input ports sizes"],["output port sizes"],["System parameters vector"],["function name"]],list("vec",-1,"vec",-1,"vec",-1,"str",-1),label[1-1]); +[ok,plen,csiz,phi,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",[["pendulum length"],["cart size (square side)"],["slope"],["Xmin"],["Xmax"],["Ymin"],["Ymax"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (funam==" ") { -break; +mess=[]; +if (plen<=0||csiz<=0) { +mess=[[mess],["Pendulum length and cart size must be positive."],[" "]]; +ok=false; } -label[1-1]=lab; -rpar=rpar.slice(); -i=int(i.slice()); -ni=size(i,1); -o=int(o.slice()); -no=size(o,1); -tt=label[2-1]; -if (model.sim[1-1]!=funam||size(model.in1,"*")!=size(i,"*")||size(model.out,"*")!=size(o,"*")) { -tt=[]; +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; } -[ok,tt]=FORTR(funam,tt,i,o); -if (!ok) { -break; +if (xmin>=xmax) { +mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +ok=false; } -[model,graphics,ok]=check_io(model,graphics,i,o,[],[]); -if (ok) { -model.sim[1-1]=funam; +if (!ok) { +message(mess); +} else { +rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; model.rpar=rpar; -label[2-1]=tt; -x.model=model; -graphics.exprs=label; +graphics.exprs=exprs; x.graphics=graphics; +x.model=model; break; } } } } -/* autogenerated from "macros/Misc/DIFF_f.sci" */ -function DIFF_f() { - DIFF_f.prototype.define = function DIFF_f() { -x0=[[0],[0]]; +/* autogenerated from "macros/Misc/RATELIMITER.sci" */ +function RATELIMITER() { + RATELIMITER.prototype.define = function RATELIMITER() { +minp=-1; +maxp=1; +rpar=[[maxp],[minp]]; model=scicos_model(); -model.sim=list("diffblk",10001); +model.sim=list("ratelimiter",4); model.in1=1; model.out=1; -model.state=x0; +model.rpar=rpar; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(x0[1-1]))],[strcat(sci2exp(x0[2-1]))]]; +model.dep_ut=[true,false]; +exprs=[[string(maxp)],[string(minp)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3.5,2],model,exprs,gr_i); } - DIFF_f.prototype.details = function DIFF_f() { + RATELIMITER.prototype.details = function RATELIMITER() { } - DIFF_f.prototype.get = function DIFF_f() { + RATELIMITER.prototype.get = function RATELIMITER() { } - DIFF_f.prototype.set = function DIFF_f() { + RATELIMITER.prototype.set = function RATELIMITER() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,x0,xd0,exprs]=scicos_getvalue("Set continuous linear system parameters",[["Initial state"],["Initial Derivative"]],list("vec",1,"vec",1),exprs); +[ok,maxp,minp,exprs]=scicos_getvalue("Set rate limiter parameters",[["max slope"],["min slope"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } +if (maxp<=minp||maxp<=0||minp>=0) { +message("We must have max_slope> 0 > min_slope."); +} else { +rpar=[[maxp],[minp]]; +model.rpar=rpar; graphics.exprs=exprs; -model.state=[[x0.slice()],[xd0.slice()]]; x.graphics=graphics; x.model=model; break; } -x.model.firing=[]; - } -} -/* autogenerated from "macros/Misc/BOUNCE.sci" */ -function BOUNCE() { - BOUNCE.prototype.define = function BOUNCE() { -n=2; -k=1; -ipar=[]; -for (i=1;i<=n;i+=1) { -for (j=i+1;j<=n;j+=1) { -ipar[k-1]=i; -k=k+1; -ipar[k-1]=j; -k=k+1; } + } } -walls=[[0],[5],[0],[5]]; -x=[[2],[2.5]]; -xd=[[0],[0]]; -y=[[3],[5]]; -yd=[[0],[0]]; -g=9.81; -C=0; -rpar1=ones(n,1); -rpar2=rpar1; -state=[x,xd,y,yd]; -state=transpose(state); +/* autogenerated from "macros/Misc/RELATIONALOP.sci" */ +function RELATIONALOP() { + RELATIONALOP.prototype.define = function RELATIONALOP() { +ipar=[2]; +label="<"; model=scicos_model(); -model.sim=list("bounce_ball",4); -model.in1=[]; -model.out=[[n],[n]]; -model.state=state.slice(); -model.rpar=[[rpar1],[rpar2],[walls],[g],[C]]; +model.sim=list("relationalop",4); +model.in1=[[1],[1]]; +model.out=1; model.ipar=ipar; -model.nzcross=n*(n-1)/2+4*n; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=[[strcat(sci2exp(rpar1))],[strcat(sci2exp(rpar2))],[strcat(sci2exp(walls))],[strcat(sci2exp(x))],[strcat(sci2exp(xd))],[strcat(sci2exp(y))],[strcat(sci2exp(yd))]]; +model.dep_ut=[true,false]; +exprs=[[string(ipar)],[string(0)]]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); +x.graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label]; } - BOUNCE.prototype.details = function BOUNCE() { + RELATIONALOP.prototype.details = function RELATIONALOP() { } - BOUNCE.prototype.get = function BOUNCE() { + RELATIONALOP.prototype.get = function RELATIONALOP() { } - BOUNCE.prototype.set = function BOUNCE() { + RELATIONALOP.prototype.set = function RELATIONALOP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")<9) { -exprs[8-1]="9.81"; -exprs[9-1]="0"; +if (size(exprs,1)==2) { +exprs=[[exprs],[sci2exp(1)]]; } while (true) { -[ok,rpar1,rpar2,walls,xt,xd,y,yd,g,C,exprs]=scicos_getvalue(["Set Bounce Block"],[["Mass"],["Radius"],["[xmin,xmax,ymin,ymax]"],["xpos"],["xdpos"],["ypos"],["ydpos"],["g (gravity)"],["C (aerodynamic coeff"]],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1),exprs); +[ok,rule,zcr,Datatype,exprs]=scicos_getvalue("Set parameters",[["Operator: == (0), ~= (1), < (2), <= (3), > (4), >= (5)"],["Use zero crossing (no: 0), (yes: 1)","Datatype (1=double 3=int32 ...)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -xt=xt.slice(); -y=y.slice(); -xd=xd.slice(); -yd=yd.slice(); -rpar1=rpar1.slice(); -rpar2=rpar2.slice(); -n=size(xt,"*"); -walls=walls.slice(); -if (walls[1-1]>walls[2-1]) { -walls=walls[[2,1]-1]; -} -if (walls[3-1]>walls[3-1]) { -walls=walls[[3,4]-1]; +rule=int(rule); +if (zcr!=0) { +zcr=1; } -if (n!=size(y,"*")||n!=size(rpar1,"*")||n!=size(rpar2,"*")||n!=size(xd,"*")||n!=size(yd,"*")) { -message("All vectors must have equal size"); -ok=false; -} else if (!(min([[rpar1],[rpar2]])>0)) { -message("Mass and radius must be >0"); +if ((rule<0)||(rule>5)) { +message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); ok=false; } -if (!ok) { -break; +if ((Datatype==1)) { +model.sim=list("relational_op",4); +} else if ((Datatype==3||Datatype==9)) { +model.sim=list("relational_op_i32",4); +} else if ((Datatype==4)) { +model.sim=list("relational_op_i16",4); +} else if ((Datatype==5)) { +model.sim=list("relational_op_i8",4); +} else if ((Datatype==6)) { +model.sim=list("relational_op_ui32",4); +} else if ((Datatype==7)) { +model.sim=list("relational_op_ui16",4); +} else if ((Datatype==8)) { +model.sim=list("relational_op_ui8",4); +} else { +message("Datatype is not supported"); +ok=false; } -[model,graphics,ok]=check_io(model,graphics,[],[n,n],[],[]); if (ok) { -k=1; -ipar=[]; -for (i=1;i<=n;i+=1) { -for (j=i+1;j<=n;j+=1) { -ipar[k-1]=i; -k=k+1; -ipar[k-1]=j; -k=k+1; +it=Datatype*ones(1,2); +ot=Datatype; +in1=[[-1,-2],[-1,-2]]; +out=[-1,-2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } +if (ok) { +if (rule==0) { +label="=="; +} else if (rule==1) { +label="~="; +} else if (rule==2) { +label="<"; +} else if (rule==3) { +label="≤"; +} else if (rule==4) { +label=">"; +} else if (rule==5) { +label="≥"; } -model.rpar=[[rpar1],[rpar2],[walls],[g],[C]]; -model.ipar=ipar; -state=[xt,xd,y,yd]; -state=transpose(state); -model.state=state.slice(); -model.nzcross=n*(n-1)/2+4*n; graphics.exprs=exprs; +graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label]; +model.ipar=[rule]; +model.nzcross=zcr; +model.nmode=zcr; x.graphics=graphics; x.model=model; break; @@ -13080,98 +12047,120 @@ break; } } } -/* autogenerated from "macros/Misc/scifunc_block_m.sci" */ -function scifunc_block_m() { - scifunc_block_m.prototype.define = function scifunc_block_m() { -in1=1; -out=1; -clkin=[]; -clkout=[]; -x0=[]; -z0=[]; -typ="c"; -auto=[]; -rpar=[]; -it=1; +/* autogenerated from "macros/Misc/SPLIT_f.sci" */ +function SPLIT_f() { + SPLIT_f.prototype.define = function SPLIT_f() { model=scicos_model(); -model.sim=list("scifunc",3); -model.in1=in1; -model.in2=in1; -model.intyp=it; -model.out=out; -model.out2=out; -model.outtyp=it; -model.evtin=clkin; -model.evtout=clkout; -model.state=x0; -model.dstate=z0; -model.rpar=rpar; -model.ipar=0; -model.opar=list(); -model.blocktype=typ; -model.firing=auto; +model.sim="lsplit"; +model.in1=-1; +model.out=[[-1],[-1],[-1]]; +model.blocktype="c"; 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)"," "," "," ")); +x=standard_define([1,1]/3,model,[],[]); + } + SPLIT_f.prototype.details = function SPLIT_f() { + } + SPLIT_f.prototype.get = function SPLIT_f() { + } + SPLIT_f.prototype.set = function SPLIT_f() { +x=arg1; + } +} +/* autogenerated from "macros/Misc/SUPER_f.sci" */ +function SUPER_f() { + SUPER_f.prototype.define = function SUPER_f() { +scs=scicos_diagram(); +scs.props.title="Super Block"; +in1=IN_f("define"); +in1.graphics.orig=[40,40]; +in1.graphics.sz=[20,20]; +out=OUT_f("define"); +out.graphics.orig=[240,40]; +out.graphics.sz=[20,20]; +scs.objs[1-1]=in1; +scs.objs[2-1]=out; +model=scicos_model(); +model.sim="super"; +model.in1=1; +model.out=1; +model.rpar=scs; +model.blocktype="h"; +model.dep_ut=[false,false]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,[],gr_i); } - scifunc_block_m.prototype.details = function scifunc_block_m() { + SUPER_f.prototype.details = function SUPER_f() { } - scifunc_block_m.prototype.get = function scifunc_block_m() { + SUPER_f.prototype.get = function SUPER_f() { } - scifunc_block_m.prototype.set = function scifunc_block_m() { -needcompile=0; + SUPER_f.prototype.set = function SUPER_f() { +xcos(arg1.model.rpar); + } +} +/* autogenerated from "macros/Misc/TEXT_f.sci" */ +function TEXT_f() { + TEXT_f.prototype.define = function TEXT_f() { +font=2; +siz=1; +model=scicos_model(); +model.sim="text"; +model.rpar="Text"; +model.ipar=[[font],[siz]]; +exprs=[["Text"],[string(font)],[string(siz)]]; +graphics=scicos_graphics(); +graphics.orig=[0,0]; +graphics.sz=[2,1]; +graphics.exprs=exprs; +x=mlist(["Text","graphics","model","void","gui"],graphics,model," ","TEXT_f"); + } + TEXT_f.prototype.details = function TEXT_f() { + } + TEXT_f.prototype.get = function TEXT_f() { + } + TEXT_f.prototype.set = function TEXT_f() { x=arg1; -model=arg1.model; graphics=arg1.graphics; +orig=graphics.orig; 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; +model=arg1.model; +if (size(exprs,"*")==1) { +exprs=[[exprs],["3"],["1"]]; } -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)-1]; -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); +while (true) { +[ok,txt,font,siz,exprs]=scicos_getvalue("Set Text block parameters",[["Text"],["Font number"],["Font size"]],list("str",-1,"vec",1,"vec",1),exprs); 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 (font<=0||font>6) { +message("Font number must be greater than 0 and less than 7"); +ok=false; } -if (or(model.opar!=tt)) { -needcompile=4; +if (siz<0) { +message("Font size must be positive"); +ok=false; } -model.opar=tt; -model.firing=auto; -model.dep_ut=dep_ut; -x.model=model; -exprs[2-1]=tt; +if (ok) { graphics.exprs=exprs; +gh_winpal=gca(); +default_font_style=gh_winpal.font_style; +default_font_size=gh_winpal.font_size; +default_font_color=gh_winpal.font_color; +gh_winpal.font_style=font; +gh_winpal.font_size=siz; +r=xstringl(0,0,exprs[1-1],evstr(exprs[2-1]),evstr(exprs[3-1])); +gh_winpal.font_style=default_font_style; +gh_winpal.font_size=default_font_size; +gh_winpal.font_color=default_font_color; +sz=r.slice(3-1,4); +graphics.sz=sz; x.graphics=graphics; +ipar=[[font],[siz]]; +model.rpar=txt; +model.ipar=ipar; +x.model=model; break; } } -needcompile=resume(needcompile) } } /* autogenerated from "macros/Misc/c_block.sci" */ @@ -13248,75 +12237,100 @@ break; } } } -/* autogenerated from "macros/Misc/CONSTRAINT2_c.sci" */ -function CONSTRAINT2_c() { - CONSTRAINT2_c.prototype.define = function CONSTRAINT2_c() { -x0=[0]; -xd0=[0]; -id=[0]; +/* autogenerated from "macros/Misc/fortran_block.sci" */ +function fortran_block() { + fortran_block.prototype.define = function fortran_block() { model=scicos_model(); -model.sim=list("constraint_c",10004); +model.sim=list(" ",1001); model.in1=1; -model.out=[[1],[1]]; -model.state=[[x0],[xd0]]; -model.ipar=id; +model.out=1; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.rpar=[]; +model.ipar=0; model.blocktype="c"; -model.dep_ut=[false,true]; -exprs=list(strcat(sci2exp(x0)),strcat(sci2exp(xd0)),strcat(sci2exp(id))); +model.firing=[]; +model.dep_ut=[true,false]; +funam="forty"; +label=list([[sci2exp(model.in1)],[sci2exp(model.out)],[strcat(sci2exp(model.rpar))],[funam]],list([])); gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([4,2],model,label,gr_i); } - CONSTRAINT2_c.prototype.details = function CONSTRAINT2_c() { + fortran_block.prototype.details = function fortran_block() { } - CONSTRAINT2_c.prototype.get = function CONSTRAINT2_c() { + fortran_block.prototype.get = function fortran_block() { } - CONSTRAINT2_c.prototype.set = function CONSTRAINT2_c() { + fortran_block.prototype.set = function fortran_block() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +graphics=arg1.graphics; +label=graphics.exprs; while (true) { -ask_again=false; -[ok,x0,xd0,id,exprs]=scicos_getvalue("Set Constraint block parameters",[["Initial guess values of states x"],["Initial guess values of derivative x\'"],["Id(i)=1: if x\'(i) is present in the feedback, else Id(i)=0"]],list("vec",-1,"vec",-1,"vec",-1),exprs); +[ok,i,o,rpar,funam,lab]=scicos_getvalue("Set fortran_block parameters",[["input ports sizes"],["output port sizes"],["System parameters vector"],["function name"]],list("vec",-1,"vec",-1,"vec",-1,"str",-1),label[1-1]); if (!ok) { break; } -x0=x0.slice(); -N=size(x0,"*"); -xd0=xd0.slice(); -Nxd=size(xd0,"*"); -id=id.slice(); -Nid=size(id,"*"); -if ((N!=Nxd)||(N!=Nid)) { -message("incompatible sizes, states, their derivatives, and ID should be the same size "); -ask_again=true; +if (funam==" ") { +break; } -if ((N<=0&&!ask_again)) { -x_message("number of states (constraints) must be > 0 "); -ask_again=true; +label[1-1]=lab; +rpar=rpar.slice(); +i=int(i.slice()); +ni=size(i,1); +o=int(o.slice()); +no=size(o,1); +tt=label[2-1]; +if (model.sim[1-1]!=funam||size(model.in1,"*")!=size(i,"*")||size(model.out,"*")!=size(o,"*")) { +tt=[]; } -if ((!ask_again)) { -for (i=1;i<=N;i+=1) { -if (!((id[i-1]==0)||(id[i-1]==1))) { -ask_again=true; -x_message([["Id(i) must be either"],["0 when x\'(i) is not present in the feedback"],["1: when x\'(i) is present in the feedback"]]); +[ok,tt]=FORTR(funam,tt,i,o); +if (!ok) { break; } -if ((id[i-1]==0)) { -id[i-1]=-1; +[model,graphics,ok]=check_io(model,graphics,i,o,[],[]); +if (ok) { +model.sim[1-1]=funam; +model.rpar=rpar; +label[2-1]=tt; +x.model=model; +graphics.exprs=label; +x.graphics=graphics; +break; } } + } } -if (!ask_again) { +/* autogenerated from "macros/Misc/func_block.sci" */ +function func_block() { + func_block.prototype.define = function func_block() { +model=scicos_model(); +model.sim=" "; +model.in1=1; +model.out=1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs="v=sin(u);y=u*v"; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + func_block.prototype.details = function func_block() { + } + func_block.prototype.get = function func_block() { + } + func_block.prototype.set = function func_block() { +model=arg1.model; +graphics=arg1.graphics; +exprs=graphics.exprs; +x=arg1; +model=x.model; +[ok,mac,exprs]=this.genfunc[exprs-1]; +if (ok) { +model.sim=mac; graphics.exprs=exprs; -model.state=[[x0],[xd0]]; -model.out=[[N],[N]]; -model.in1=N; -model.ipar=id; -x.graphics=graphics; x.model=model; -break; -} +x.graphics=graphics; } } } @@ -13417,502 +12431,6 @@ break; needcompile=resume(needcompile) } } -/* autogenerated from "macros/Misc/DSUPER.sci" */ -function DSUPER() { - DSUPER.prototype.define = function DSUPER() { - } - DSUPER.prototype.details = function DSUPER() { - } - DSUPER.prototype.get = function DSUPER() { - } - DSUPER.prototype.set = function DSUPER() { -y=needcompile; -typ=list(); -graphics=arg1.graphics; -if ((length(graphics.exprs)==0)) { -warnBlockByUID(arg1.model.label,gettext("Invalid masked block.")); -x=arg1; -return; -} -exprs=graphics.exprs[1-1]; -exprs0=graphics.exprs[2-1][1-1]; -btitre=graphics.exprs[2-1][2-1][1-1]; -bitems=graphics.exprs[2-1][2-1].slice(2-1,$); -if (exprs0==[]) { -x=arg1; -return; -} -context=[arg1.model.rpar.props.context]; -[PREVAR_scicos_context,ierr]=script2var(context,PREVAR_scicos_context); -if (ierr!=0) { -x=arg1; -return; -} -tt="scicos_context."+exprs0[1-1]; -for (i=2;i<=size(exprs0,1);i+=1) { -tt=tt+",scicos_context."+exprs0[i-1]; -} -ss=graphics.exprs[2-1][3-1]; -scicos_context=PREVAR_scicos_context; -execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)"); -if (ok) { -x=arg1; -PREVAR_scicos_context=scicos_context; -sblock=x.model.rpar; -[sblock,%w,needcompile2,ok]=do_eval(sblock,list(),scicos_context); -y=max(2,needcompile,needcompile2); -x.graphics.exprs[1-1]=exprs; -x.model.rpar=sblock; -} else { -x=arg1; -} - } -} -/* autogenerated from "macros/Misc/EDGE_TRIGGER.sci" */ -function EDGE_TRIGGER() { - EDGE_TRIGGER.prototype.define = function EDGE_TRIGGER() { -scs_m_1=scicos_diagram(); -scs_m_1.objs[1-1]=EDGETRIGGER["define"-1]; -scs_m_1.objs[2-1]=IFTHEL_f("define"); -scs_m_1.objs[3-1]=IN_f("define"); -scs_m_1.objs[4-1]=CLKOUTV_f("define"); -scs_m_1.objs[5-1]=scicos_link(); -scs_m_1.objs[6-1]=scicos_link(); -scs_m_1.objs[7-1]=scicos_link(); -blk=scs_m_1.objs[1-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[60,0]; -graphics.sz=[60,40]; -graphics.exprs="0"; -model.ipar=0; -graphics.pin=5; -graphics.pout=6; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[1-1]=blk; -blk=scs_m_1.objs[2-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[160,0]; -graphics.sz=[60,40]; -graphics.exprs=[["0"],["0"]]; -model.evtin=[]; -model.nzcross=0; -model.nmode=0; -graphics.pin=6; -graphics.peout=[[7],[0]]; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[2-1]=blk; -blk=scs_m_1.objs[3-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[0,10]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.pout=5; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[3-1]=blk; -blk=scs_m_1.objs[4-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[170,-60]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.pein=7; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[4-1]=blk; -lnk=scs_m_1.objs[5-1]; -lnk.from=[3,1,0]; -lnk.to=[1,1,1]; -scs_m_1.objs[5-1]=lnk; -lnk=scs_m_1.objs[6-1]; -lnk.from=[1,1,0]; -lnk.to=[2,1,1]; -scs_m_1.objs[6-1]=lnk; -lnk=scs_m_1.objs[7-1]; -lnk.ct=[5,-1]; -lnk.from=[2,1,0]; -lnk.to=[4,1,1]; -scs_m_1.objs[7-1]=lnk; -blk={}; -lnk={}; -model=scicos_model(); -model.sim="csuper"; -model.in1=1; -model.evtout=1; -model.rpar=scs_m_1; -gr_i=[]; -x=standard_define([3,2],model,[],gr_i); - } - EDGE_TRIGGER.prototype.details = function EDGE_TRIGGER() { - } - EDGE_TRIGGER.prototype.get = function EDGE_TRIGGER() { - } - EDGE_TRIGGER.prototype.set = function EDGE_TRIGGER() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="EDGETRIGGER") { -ppath=list(i); -break; -} -} -newpar=list(); -y=0; -for (path in ppath) { -np=size(path,"*"); -spath=list(); -for (k=1;k<=np;k+=1) { -spath[$+1-1]="model"; -spath[$+1-1]="rpar"; -spath[$+1-1]="objs"; -spath[$+1-1]=path[k-1]; -} -xx=arg1[spath-1]; -execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (diffobjs(xxn,xx)) { -model=xx.model; -model_n=xxn.model; -if (!is_modelica_block(xx)) { -modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); -if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { -needcompile=1; -} -if (or(model.firing!=model_n.firing)) { -needcompile=2; -} -if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { -needcompile=4; -} -if (model.sim=="input"||model.sim=="output") { -if (model.ipar!=model_n.ipar) { -needcompile=4; -} -} -if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { -needcompile=4; -} -if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { -needcompile=4; -} -if (prod[size(model_n.sim)-1]>1) { -if (model_n.sim[2-1]>1000) { -if (model.sim[1-1]!=model_n.sim[1-1]) { -needcompile=4; -} -} -} -} else { -modified=or(model_n!=model); -eq=model.equations; -eqn=model_n.equations; -if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { -needcompile=4; -} -} -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=path; -y=max(y,needcompile); -} -} -x=arg1; -typ=newpar; - } -} -/* autogenerated from "macros/Misc/PAL_f.sci" */ -function PAL_f() { - PAL_f.prototype.define = function PAL_f() { -scs=scicos_diagram(); -scs.props.title="Palette"; -model=scicos_model(); -model.sim="palette"; -model.in1=[]; -model.out=[]; -model.rpar=scs; -model.blocktype="h"; -model.dep_ut=[false,false]; -gr_i=[]; -x=standard_define([2,2],model,[],gr_i); -x.graphics.id=scs.props.title[1-1]; - } - PAL_f.prototype.details = function PAL_f() { - } - PAL_f.prototype.get = function PAL_f() { - } - PAL_f.prototype.set = function PAL_f() { -[x,newparameters,needcompile,edited]=scicos(arg1.model.rpar); -arg1.graphics.id=x.props.title[1-1]; -arg1.model.rpar=x; -x=arg1; -y=[]; -typ=[]; -%exit=resume(false) - } -} -/* autogenerated from "macros/Misc/RATELIMITER.sci" */ -function RATELIMITER() { - RATELIMITER.prototype.define = function RATELIMITER() { -minp=-1; -maxp=1; -rpar=[[maxp],[minp]]; -model=scicos_model(); -model.sim=list("ratelimiter",4); -model.in1=1; -model.out=1; -model.rpar=rpar; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(maxp)],[string(minp)]]; -gr_i=[]; -x=standard_define([3.5,2],model,exprs,gr_i); - } - RATELIMITER.prototype.details = function RATELIMITER() { - } - RATELIMITER.prototype.get = function RATELIMITER() { - } - RATELIMITER.prototype.set = function RATELIMITER() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,maxp,minp,exprs]=scicos_getvalue("Set rate limiter parameters",[["max slope"],["min slope"]],list("vec",1,"vec",1),exprs); -if (!ok) { -break; -} -if (maxp<=minp||maxp<=0||minp>=0) { -message("We must have max_slope> 0 > min_slope."); -} else { -rpar=[[maxp],[minp]]; -model.rpar=rpar; -graphics.exprs=exprs; -x.graphics=graphics; -x.model=model; -break; -} -} - } -} -/* autogenerated from "macros/Misc/DEBUG.sci" */ -function DEBUG() { - DEBUG.prototype.define = function DEBUG() { -model=scicos_model(); -model.sim=list("%debug_scicos",99); -model.blocktype="d"; -exprs=list("","xcos_debug_gui(flag,block);"); -gr_i=[]; -x=standard_define([8,2],model,exprs,gr_i); - } - DEBUG.prototype.details = function DEBUG() { - } - DEBUG.prototype.get = function DEBUG() { - } - DEBUG.prototype.set = function DEBUG() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -textmp=exprs[2-1]; -ok=true; -while (1==1) { -[txt]=dialog[[["Enter scilab instructions for debugging."],[" Inputs are block and flag, output is block"]]-1][textmp-1]; -if (txt!=[]) { -tt=["block=debug_scicos(block,flag)"]; -if (execstr("deff(tt,txt)","errcatch")==0) { -warnMode=warning("query"); -warning("off"); -save(TMPDIR+"/debug_scicos",debug_scicos); -warning(warnMode); -exprs[2-1]=txt; -if ((scicos_debug()!=2&&scicos_debug()!=3)) { -scicos_debug(2); -} -break; -} else { -message([["Error in the instructions"],[lasterror()]]); -} -} else { -ok=false; -break; -} -} -if (ok) { -graphics.exprs=exprs; -x.graphics=graphics; -} - } -} -/* autogenerated from "macros/Misc/RELATIONALOP.sci" */ -function RELATIONALOP() { - RELATIONALOP.prototype.define = function RELATIONALOP() { -ipar=[2]; -label="<"; -model=scicos_model(); -model.sim=list("relationalop",4); -model.in1=[[1],[1]]; -model.out=1; -model.ipar=ipar; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(ipar)],[string(0)]]; -gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); -x.graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label]; - } - RELATIONALOP.prototype.details = function RELATIONALOP() { - } - RELATIONALOP.prototype.get = function RELATIONALOP() { - } - RELATIONALOP.prototype.set = function RELATIONALOP() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -if (size(exprs,1)==2) { -exprs=[[exprs],[sci2exp(1)]]; -} -while (true) { -[ok,rule,zcr,Datatype,exprs]=scicos_getvalue("Set parameters",[["Operator: == (0), ~= (1), < (2), <= (3), > (4), >= (5)"],["Use zero crossing (no: 0), (yes: 1)","Datatype (1=double 3=int32 ...)"]],list("vec",1,"vec",1,"vec",1),exprs); -if (!ok) { -break; -} -rule=int(rule); -if (zcr!=0) { -zcr=1; -} -if ((rule<0)||(rule>5)) { -message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); -ok=false; -} -if ((Datatype==1)) { -model.sim=list("relational_op",4); -} else if ((Datatype==3||Datatype==9)) { -model.sim=list("relational_op_i32",4); -} else if ((Datatype==4)) { -model.sim=list("relational_op_i16",4); -} else if ((Datatype==5)) { -model.sim=list("relational_op_i8",4); -} else if ((Datatype==6)) { -model.sim=list("relational_op_ui32",4); -} else if ((Datatype==7)) { -model.sim=list("relational_op_ui16",4); -} else if ((Datatype==8)) { -model.sim=list("relational_op_ui8",4); -} else { -message("Datatype is not supported"); -ok=false; -} -if (ok) { -it=Datatype*ones(1,2); -ot=Datatype; -in1=[[-1,-2],[-1,-2]]; -out=[-1,-2]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); -} -if (ok) { -if (rule==0) { -label="=="; -} else if (rule==1) { -label="~="; -} else if (rule==2) { -label="<"; -} else if (rule==3) { -label="≤"; -} else if (rule==4) { -label=">"; -} else if (rule==5) { -label="≥"; -} -graphics.exprs=exprs; -graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label]; -model.ipar=[rule]; -model.nzcross=zcr; -model.nmode=zcr; -x.graphics=graphics; -x.model=model; -break; -} -} - } -} -/* autogenerated from "macros/Misc/CONSTRAINT_c.sci" */ -function CONSTRAINT_c() { - CONSTRAINT_c.prototype.define = function CONSTRAINT_c() { -x0=[[0],[0]]; -model=scicos_model(); -model.sim=list("constraint_c",10004); -model.in1=1; -model.out=1; -model.ipar=0; -model.state=x0; -model.blocktype="c"; -model.dep_ut=[false,true]; -exprs="0"; -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); - } - CONSTRAINT_c.prototype.details = function CONSTRAINT_c() { - } - CONSTRAINT_c.prototype.get = function CONSTRAINT_c() { - } - CONSTRAINT_c.prototype.set = function CONSTRAINT_c() { -x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; -model=arg1.model; -while (true) { -[ok,x0,exprs]=scicos_getvalue("Set solver block parameters","Initial guess values",list("vec",-1),exprs); -if (!ok) { -break; -} -x0=x0.slice(); -N=size(x0,"*"); -if (N<=0) { -message("number of states (constraints) must be > 0 "); -} else { -[model,graphics,ok]=check_io(model,graphics,N,N,[],[]); -if (ok) { -graphics.exprs=exprs; -model.state=[[x0],[zeros(N,1)]]; -model.out=N; -model.in1=N; -model.ipar=-1*ones(N,1); -x.graphics=graphics; -x.model=model; -break; -} -} -} - } -} -/* autogenerated from "macros/Misc/IMPSPLIT_f.sci" */ -function IMPSPLIT_f() { - IMPSPLIT_f.prototype.define = function IMPSPLIT_f() { -model=scicos_model(); -model.sim="limpsplit"; -mo=modelica(); -mo.model="limpsplit"; -mo.inputs="n"; -mo.outputs=[["n"],["n"]]; -model.equations=mo; -model.in1=ones(size(mo.inputs,"*"),1); -model.out=ones(size(mo.outputs,"*"),1); -x=standard_define([1,1]/3,model,[],[]); -x.graphics.in_implicit=["I"]; -x.graphics.out_implicit=["I","I"]; - } - IMPSPLIT_f.prototype.details = function IMPSPLIT_f() { - } - IMPSPLIT_f.prototype.get = function IMPSPLIT_f() { - } - IMPSPLIT_f.prototype.set = function IMPSPLIT_f() { -x=arg1; - } -} /* autogenerated from "macros/Misc/generic_block2.sci" */ function generic_block2() { generic_block2.prototype.define = function generic_block2() { @@ -14012,101 +12530,6 @@ break; needcompile=resume(needcompile) } } -/* autogenerated from "macros/Misc/Extract_Activation.sci" */ -function Extract_Activation() { - Extract_Activation.prototype.define = function Extract_Activation() { -scs_m_1=scicos_diagram(); -scs_m_1.objs[1-1]=IFTHEL_f("define"); -scs_m_1.objs[2-1]=CLKSOMV_f("define"); -scs_m_1.objs[3-1]=IN_f("define"); -scs_m_1.objs[4-1]=CLKOUTV_f("define"); -scs_m_1.objs[5-1]=scicos_link(); -scs_m_1.objs[6-1]=scicos_link(); -scs_m_1.objs[7-1]=scicos_link(); -scs_m_1.objs[8-1]=scicos_link(); -blk=scs_m_1.objs[1-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[80,0]; -graphics.sz=[60,40]; -graphics.exprs=[["0"],["0"]]; -model.evtin=[]; -model.nzcross=0; -model.nmode=0; -graphics.pin=7; -graphics.peout=[[5],[6]]; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[1-1]=blk; -blk=scs_m_1.objs[2-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[80,-80]; -graphics.sz=[80,40]; -graphics.pein=[[5],[6]]; -graphics.peout=8; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[2-1]=blk; -blk=scs_m_1.objs[3-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[0,10]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.pout=7; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[3-1]=blk; -blk=scs_m_1.objs[4-1]; -graphics=blk.graphics; -model=blk.model; -graphics.orig=[110,-140]; -graphics.sz=[20,20]; -graphics.exprs=["1"]; -model.ipar=1; -graphics.pein=8; -blk.graphics=graphics; -blk.model=model; -scs_m_1.objs[4-1]=blk; -lnk=scs_m_1.objs[5-1]; -lnk.ct=[5,-1]; -lnk.from=[1,1,0]; -lnk.to=[2,1,1]; -scs_m_1.objs[5-1]=lnk; -lnk=scs_m_1.objs[6-1]; -lnk.ct=[5,-1]; -lnk.from=[1,2,0]; -lnk.to=[2,2,1]; -scs_m_1.objs[6-1]=lnk; -lnk=scs_m_1.objs[7-1]; -lnk.from=[3,1,0]; -lnk.to=[1,1,1]; -scs_m_1.objs[7-1]=lnk; -lnk=scs_m_1.objs[8-1]; -lnk.ct=[5,-1]; -lnk.from=[2,1,0]; -lnk.to=[4,1,1]; -scs_m_1.objs[8-1]=lnk; -blk={}; -lnk={}; -model=scicos_model(); -model.sim="csuper"; -model.in1=1; -model.evtout=1; -model.rpar=scs_m_1; -gr_i=[]; -x=standard_define([3,2],model,[],gr_i); - } - Extract_Activation.prototype.details = function Extract_Activation() { - } - Extract_Activation.prototype.get = function Extract_Activation() { - } - Extract_Activation.prototype.set = function Extract_Activation() { -x=arg1; - } -} /* autogenerated from "macros/Misc/generic_block3.sci" */ function generic_block3() { generic_block3.prototype.define = function generic_block3() { @@ -14161,11 +12584,11 @@ message("vector event links not supported"); ok=false; } } -if (type[opar-1]!=15) { +if (this.type[opar-1]!=15) { message("object parameter must be a list"); ok=false; } -if (type[oz-1]!=15) { +if (this.type[oz-1]!=15) { message("discrete object state must be a list"); ok=false; } @@ -14210,168 +12633,330 @@ break; needcompile=resume(needcompile) } } -/* autogenerated from "macros/Misc/DEBUG_SCICOS.sci" */ -function DEBUG_SCICOS() { - DEBUG_SCICOS.prototype.define = function DEBUG_SCICOS() { -x=DEBUG["define"-1]; +/* autogenerated from "macros/Misc/scifunc_block.sci" */ +function scifunc_block() { + scifunc_block.prototype.define = function scifunc_block() { +in1=1; +out=1; +clkin=[]; +clkout=[]; +x0=[]; +z0=[]; +typ="c"; +auto=[]; +rpar=[]; +model=scicos_model(); +model.sim=list("scifunc",3); +model.in1=in1; +model.out=out; +model.evtin=clkin; +model.evtout=clkout; +model.state=x0; +model.dstate=z0; +model.rpar=rpar; +model.ipar=0; +model.opar=list(); +model.blocktype=typ; +model.firing=auto; +model.dep_ut=[true,false]; +exprs=list([[sci2exp(in1)],[sci2exp(out)],[sci2exp(clkin)],[sci2exp(clkout)],[strcat(sci2exp(x0))],[strcat(sci2exp(z0))],[strcat(sci2exp(rpar))],[sci2exp(auto)]],list("y1=sin(u1)"," "," ","y1=sin(u1)"," "," "," ")); +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); } - DEBUG_SCICOS.prototype.details = function DEBUG_SCICOS() { + scifunc_block.prototype.details = function scifunc_block() { } - DEBUG_SCICOS.prototype.get = function DEBUG_SCICOS() { + scifunc_block.prototype.get = function scifunc_block() { } - DEBUG_SCICOS.prototype.set = function DEBUG_SCICOS() { -arg1.gui="DEBUG"; -[x,y,typ]=DEBUG["set"-1][arg1-1]; + scifunc_block.prototype.set = function scifunc_block() { +needcompile=0; +x=arg1; +model=arg1.model; +graphics=arg1.graphics; +exprs=graphics.exprs; +if (size(exprs[1-1],"*")==8) { +exprs[1-1][9-1]="0"; +} +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("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec","sum(%4)","vec",1),exprs[1-1]); +if (!ok) { +break; +} +exprs[1-1]=lab; +xx=xx.slice(); +z=z.slice(); +rpar=rpar.slice(); +nrp=prod(size(rpar)); +i=int(i.slice()); +ni=size(i,1); +o=int(o.slice()); +no=size(o,1); +ci=int(ci.slice()); +nci=size(ci,1); +co=int(co.slice()); +nco=size(co,1); +[ok,tt,dep_ut]=genfunc1(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]=check_io(model,graphics,i,o,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) } } -/* autogenerated from "macros/Misc/EDGETRIGGER.sci" */ -function EDGETRIGGER() { - EDGETRIGGER.prototype.define = function EDGETRIGGER() { -edge=1; +/* autogenerated from "macros/Misc/scifunc_block_m.sci" */ +function scifunc_block_m() { + scifunc_block_m.prototype.define = function scifunc_block_m() { +in1=1; +out=1; +clkin=[]; +clkout=[]; +x0=[]; +z0=[]; +typ="c"; +auto=[]; +rpar=[]; +it=1; model=scicos_model(); -model.sim=list("edgetrig",4); -model.in1=1; -model.out=1; -model.dstate=0; -model.nzcross=1; -model.ipar=sign[edge-1]; -model.blocktype="c"; +model.sim=list("scifunc",3); +model.in1=in1; +model.in2=in1; +model.intyp=it; +model.out=out; +model.out2=out; +model.outtyp=it; +model.evtin=clkin; +model.evtout=clkout; +model.state=x0; +model.dstate=z0; +model.rpar=rpar; +model.ipar=0; +model.opar=list(); +model.blocktype=typ; +model.firing=auto; model.dep_ut=[true,false]; -exprs=[string(edge)]; +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([3,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - EDGETRIGGER.prototype.details = function EDGETRIGGER() { + scifunc_block_m.prototype.details = function scifunc_block_m() { } - EDGETRIGGER.prototype.get = function EDGETRIGGER() { + scifunc_block_m.prototype.get = function scifunc_block_m() { } - EDGETRIGGER.prototype.set = function EDGETRIGGER() { + scifunc_block_m.prototype.set = function scifunc_block_m() { +needcompile=0; x=arg1; +model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -model=arg1.model; while (true) { -[ok,edge,exprs]=scicos_getvalue("Set edge trigger block parameters",["rising (1), falling (-1), both (0)"],list("vec",1),exprs); +[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; } -model.ipar=sign[edge-1]; +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; -x.model=model; break; } +} +needcompile=resume(needcompile) } } -/* autogenerated from "macros/Misc/TEXT_f.sci" */ -function TEXT_f() { - TEXT_f.prototype.define = function TEXT_f() { -font=2; -siz=1; +/* autogenerated from "macros/NonLinear/ABSBLK_f.sci" */ +function ABSBLK_f() { + ABSBLK_f.prototype.define = function ABSBLK_f() { model=scicos_model(); -model.sim="text"; -model.rpar="Text"; -model.ipar=[[font],[siz]]; -exprs=[["Text"],[string(font)],[string(siz)]]; -graphics=scicos_graphics(); -graphics.orig=[0,0]; -graphics.sz=[2,1]; -graphics.exprs=exprs; -x=mlist(["Text","graphics","model","void","gui"],graphics,model," ","TEXT_f"); +model.sim=list("absblk",1); +model.in1=-1; +model.out=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +gr_i=[]; +x=standard_define([2,2],model,[],gr_i); } - TEXT_f.prototype.details = function TEXT_f() { + ABSBLK_f.prototype.details = function ABSBLK_f() { } - TEXT_f.prototype.get = function TEXT_f() { + ABSBLK_f.prototype.get = function ABSBLK_f() { } - TEXT_f.prototype.set = function TEXT_f() { + ABSBLK_f.prototype.set = function ABSBLK_f() { +x=arg1; + } +} +/* autogenerated from "macros/NonLinear/ABS_VALUE.sci" */ +function ABS_VALUE() { + ABS_VALUE.prototype.define = function ABS_VALUE() { +nu=-1; +model=scicos_model(); +model.sim=list("absolute_value",4); +model.in1=nu; +model.out=nu; +model.nzcross=nu; +model.nmode=nu; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[string([1])]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + ABS_VALUE.prototype.details = function ABS_VALUE() { + } + ABS_VALUE.prototype.get = function ABS_VALUE() { + } + ABS_VALUE.prototype.set = function ABS_VALUE() { x=arg1; graphics=arg1.graphics; -orig=graphics.orig; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==1) { -exprs=[[exprs],["3"],["1"]]; -} while (true) { -[ok,txt,font,siz,exprs]=scicos_getvalue("Set Text block parameters",[["Text"],["Font number"],["Font size"]],list("str",-1,"vec",1,"vec",1),exprs); +[ok,zcr,exprs]=scicos_getvalue("Set block parameters",["use zero_crossing (1: yes) (0:no)"],list("vec",1),exprs); if (!ok) { break; } -if (font<=0||font>6) { -message("Font number must be greater than 0 and less than 7"); -ok=false; -} -if (siz<0) { -message("Font size must be positive"); -ok=false; -} -if (ok) { graphics.exprs=exprs; -gh_winpal=gca(); -default_font_style=gh_winpal.font_style; -default_font_size=gh_winpal.font_size; -default_font_color=gh_winpal.font_color; -gh_winpal.font_style=font; -gh_winpal.font_size=siz; -r=xstringl(0,0,exprs[1-1],evstr(exprs[2-1]),evstr(exprs[3-1])); -gh_winpal.font_style=default_font_style; -gh_winpal.font_size=default_font_size; -gh_winpal.font_color=default_font_color; -sz=r.slice(3-1,4); -graphics.sz=sz; +if (ok) { +if (zcr!=0) { +model.nmode=-1; +model.nzcross=-1; +} else { +model.nmode=0; +model.nzcross=0; +} x.graphics=graphics; -ipar=[[font],[siz]]; -model.rpar=txt; -model.ipar=ipar; x.model=model; break; } } } } -/* autogenerated from "macros/Misc/HYSTHERESIS.sci" */ -function HYSTHERESIS() { - HYSTHERESIS.prototype.define = function HYSTHERESIS() { +/* autogenerated from "macros/NonLinear/COSBLK_f.sci" */ +function COSBLK_f() { + COSBLK_f.prototype.define = function COSBLK_f() { 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.sim="cosblk"; +model.in1=-1; +model.out=-1; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[string(rpar)],[string(sign[nzz-1])]]; +gr_i=[]; +x=standard_define([2,2],model,[],gr_i); + } + COSBLK_f.prototype.details = function COSBLK_f() { + } + COSBLK_f.prototype.get = function COSBLK_f() { + } + COSBLK_f.prototype.set = function COSBLK_f() { +x=arg1; + } +} +/* autogenerated from "macros/NonLinear/DLRADAPT_f.sci" */ +function DLRADAPT_f() { + DLRADAPT_f.prototype.define = function DLRADAPT_f() { +p=[[0],[1]]; +rn=[]; +rd=[[math.complex(0.2,0.8),math.complex(0.2,-0.8)],[math.complex(0.3,0.7),math.complex(0.3,-0.7)]]; +g=[[1],[1]]; +last_u=[]; +last_y=[[0],[0]]; +model=scicos_model(); +model.sim="dlradp"; +model.in1=[[1],[1]]; +model.out=1; +model.evtin=1; +model.dstate=[[last_u],[last_y]]; +model.rpar=[[p.slice()],[real(rn.slice())],[imag(rn.slice())],[real(rd.slice())],[imag(rd.slice())],[g.slice()]]; +model.ipar=[[0],[2],[2]]; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[true,false]; +exprs=[[sci2exp(p)],[sci2exp(rn)],[sci2exp(rd,0)],[sci2exp(g)],[sci2exp(last_u)],[sci2exp(last_y)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - HYSTHERESIS.prototype.details = function HYSTHERESIS() { + DLRADAPT_f.prototype.details = function DLRADAPT_f() { } - HYSTHERESIS.prototype.get = function HYSTHERESIS() { + DLRADAPT_f.prototype.get = function DLRADAPT_f() { } - HYSTHERESIS.prototype.set = function HYSTHERESIS() { + DLRADAPT_f.prototype.set = function DLRADAPT_f() { 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); +[ok,p,rn,rd,g,last_u,last_y,exprs]=scicos_getvalue("Set block parameters",[["Vector of p mesh points"],["Numerator roots (one line for each mesh)"],["Denominator roots (one line for each mesh)"],["Vector of gain at mesh points"],["past inputs (Num degree values)"],["past outputs (Den degree values)"]],list("vec",-1,"mat",[-1,-1],"mat",["size(%1,\'*\')","-1"],"vec","size(%1,\'*\')","vec","size(%2,2)","vec","size(%3,2)"),exprs); if (!ok) { break; } -if (low_lim>high_lim) { -message("switch on value must be larger than switch off value"); +m=size(rn,2); +[npt,n]=size(rd); +if (m>=n) { +message("Transfer must be strictly proper"); +} else if (size(rn,1)!=0&&size(rn,1)!=size(p,"*")) { +message("Numerator roots matrix row size\'s is incorrect"); } else { +rpar=[[p.slice()],[real(rn.slice())],[imag(rn.slice())],[real(rd.slice())],[imag(rd.slice())],[g.slice()]]; +ipar=[[m],[n],[npt]]; +model.dstate=[[last_u.slice()],[last_y.slice()]]; +model.rpar=rpar; +model.ipar=ipar; 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; @@ -14379,469 +12964,449 @@ break; } } } -/* autogenerated from "macros/Misc/CBLOCK.sci" */ -function CBLOCK() { - CBLOCK.prototype.define = function CBLOCK() { +/* autogenerated from "macros/NonLinear/EXPBLK_f.sci" */ +function EXPBLK_f() { + EXPBLK_f.prototype.define = function EXPBLK_f() { in1=1; -out=1; -clkin=[]; -clkout=[]; -x0=[]; -z0=[]; -typ="c"; -auto=[]; -rpar=[]; -ipar=[]; -funam="toto"; -ng=0; +a=math.E; 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.sim="expblk"; +model.in1=-1; +model.out=-1; +model.rpar=a; +model.blocktype="c"; 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"]),[]); +exprs=["%e"]; gr_i=[]; -x=standard_define([4,2],model,label,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - CBLOCK.prototype.details = function CBLOCK() { + EXPBLK_f.prototype.details = function EXPBLK_f() { } - CBLOCK.prototype.get = function CBLOCK() { + EXPBLK_f.prototype.get = function EXPBLK_f() { } - CBLOCK.prototype.set = function CBLOCK() { + EXPBLK_f.prototype.set = function EXPBLK_f() { x=arg1; -model=arg1.model; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")==2) { +exprs=exprs[2-1]; +} 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-1]); +[ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); 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; +if (or(a<=0)) { +message("a^u : a must be positive"); } else { -depu=false; +graphics.exprs=exprs; +model.rpar=a; +x.graphics=graphics; +x.model=model; +break; } -dept=stripblanks(dept); -if (part(dept,1)=="y") { -dept=true; -} else { -dept=false; } -dep_ut=[depu,dept]; -if (funam==" ") { -break; + } } -if (model.sim[1-1]!=funam||sign[size(model.state,"*")-1]!=sign[nx-1]||sign[size(model.dstate,"*")-1]!=sign[nz-1]||model.nzcross!=ng||sign[size(model.evtout,"*")-1]!=sign[nevout-1]) { -tt=[]; +/* autogenerated from "macros/NonLinear/EXPBLK_m.sci" */ +function EXPBLK_m() { + EXPBLK_m.prototype.define = function EXPBLK_m() { +in1=1; +a=math.E; +model=scicos_model(); +model.sim=list("expblk_m",4); +model.in1=-1; +model.in2=-2; +model.out=-1; +model.out2=-2; +model.intyp=1; +model.outtyp=1; +model.rpar=a; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=["%e"]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + EXPBLK_m.prototype.details = function EXPBLK_m() { + } + EXPBLK_m.prototype.get = function EXPBLK_m() { + } + EXPBLK_m.prototype.set = function EXPBLK_m() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")==2) { +exprs=exprs[2-1]; } -tt=label[2-1]; while (true) { -[ok,tt,cancel]=CFORTR2[funam-1][tt-1]; +[ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); if (!ok) { -if (cancel) { break; } +if (or(a<=0)) { +message("a^u : a must be positive"); } 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; +graphics.exprs=exprs; +model.rpar=a; x.graphics=graphics; +x.model=model; break; } } + } } -if (ok||cancel) { -break; -} -} +/* autogenerated from "macros/NonLinear/FSV_f.sci" */ +function FSV_f() { + FSV_f.prototype.define = function FSV_f() { +in1=1; +model=scicos_model(); +model.sim=list("fsv",1); +model.in1=in1; +model.out=in1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=" "; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + FSV_f.prototype.details = function FSV_f() { + } + FSV_f.prototype.get = function FSV_f() { + } + FSV_f.prototype.set = function FSV_f() { +x=arg1; } } -/* autogenerated from "macros/Misc/CBLOCK4.sci" */ -function CBLOCK4() { - CBLOCK4.prototype.define = function CBLOCK4() { -funam="toto"; +/* autogenerated from "macros/NonLinear/INTRP2BLK_f.sci" */ +function INTRP2BLK_f() { + INTRP2BLK_f.prototype.define = function INTRP2BLK_f() { +a=[[0],[1]]; +b=[[0],[1]]; +c=[[0,1],[1,2]]; model=scicos_model(); -model.sim=list(" ",2004); -model.in1=1; -model.in2=1; -model.intyp=1; +model.sim=list("intrp2",1); +model.in1=[[1],[1]]; model.out=1; -model.out2=1; -model.outtyp=1; +model.rpar=[[a],[b],[c.slice()]]; +model.ipar=[[2],[2]]; +model.blocktype="c"; model.dep_ut=[true,false]; -label=list([[funam],["n"],[sci2exp([model.in1,model.in2])],[sci2exp(model.intyp)],[sci2exp([model.out,model.out2])],[sci2exp(model.outtyp)],[sci2exp(model.evtin)],[sci2exp(model.evtout)],[sci2exp(model.state)],[sci2exp(model.dstate)],[sci2exp(model.odstate)],[sci2exp(model.rpar)],[sci2exp(model.ipar)],[sci2exp(model.opar)],[sci2exp(model.nmode)],[sci2exp(model.nzcross)],[sci2exp(model.firing)],["y"],["n"]],[]); +exprs=[[strcat(sci2exp(a))],[strcat(sci2exp(b))],[strcat(sci2exp(c,0))]]; gr_i=[]; -x=standard_define([4,2],model,label,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - CBLOCK4.prototype.details = function CBLOCK4() { + INTRP2BLK_f.prototype.details = function INTRP2BLK_f() { } - CBLOCK4.prototype.get = function CBLOCK4() { + INTRP2BLK_f.prototype.get = function INTRP2BLK_f() { } - CBLOCK4.prototype.set = function CBLOCK4() { + INTRP2BLK_f.prototype.set = function INTRP2BLK_f() { x=arg1; -model=arg1.model; graphics=arg1.graphics; -label=graphics.exprs; +exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,function_name,impli,in1,it,out,ot,ci,co,xx,z,oz,rpar,ipar,opar,nmode,nzcr,auto0,depu,dept,lab]=scicos_getvalue("Set C-Block4 block parameters",[["Simulation function"],["Is block implicit? (y,n)"],["Input ports sizes"],["Input ports type"],["Output port sizes"],["Output ports type"],["Input event ports sizes"],["Output events ports sizes"],["Initial continuous state"],["Initial discrete state"],["Initial object state"],["Real parameters vector"],["Integer parameters vector"],["Object parameters list"],["Number of modes"],["Number of zero crossings"],["Initial firing vector (<0 for no firing)"],["Direct feedthrough (y or n)"],["Time dependence (y or n)"]],list("str",1,"str",1,"mat",[-1,2],"vec",-1,"mat",[-1,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"lis",-1,"vec",-1,"vec",-1,"lis",-1,"vec",1,"vec",1,"vec","sum(%8)","str",1,"str",1),label[1-1]); +[ok,a,b,c,exprs]=scicos_getvalue("Set Interpolation block parameters",[["X coord."],["Y coord."],["Z values"]],list("vec",-1,"vec",-1,"mat",[-1,-1]),exprs); 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); -ci=int(ci.slice()); -nevin=size(ci,1); -co=int(co.slice()); -nevout=size(co,1); -if (part(impli,1)=="y") { -funtyp=12004; +if (size(a,"*")!=size(c,"c")||size(b,"*")!=size(c,"r")) { +message("incompatible dimension"); +} else if (min(a.slice(2-1,$)-a.slice(1-1,$-1))<=0||min(b.slice(2-1,$)-b.slice(1-1,$-1))<=0) { +message("X and Y must be strictly increasing"); } else { -funtyp=2004; -} -if ([[ci],[co]]!=[]) { -if (max([[ci],[co]])>1) { -message("vector event links not supported"); -ok=false; -} -} if (ok) { -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==" ") { +graphics.exprs=exprs; +model.rpar=[[a.slice()],[b.slice()],[c.slice()]]; +model.ipar=[[size(a,"*")],[size(b,"*")]]; +x.graphics=graphics; +x.model=model; break; } -if (model.sim[1-1]!=funam||sign[size(model.state,"*")-1]!=sign[nx-1]||sign[size(model.dstate,"*")-1]!=sign[nz-1]||model.nzcross!=nzcr||sign[size(model.evtout,"*")-1]!=sign[nevout-1]) { -tt=[]; } -tt=label[2-1]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ci,co); } -if (ok) { + } +} +/* autogenerated from "macros/NonLinear/INTRPLBLK_f.sci" */ +function INTRPLBLK_f() { + INTRPLBLK_f.prototype.define = function INTRPLBLK_f() { +a=[[0],[1]]; +b=[[0],[1]]; +model=scicos_model(); +model.sim="intrpl"; +model.in1=1; +model.out=1; +model.rpar=[[a],[b]]; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[strcat(sci2exp(a))],[strcat(sci2exp(b))]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + INTRPLBLK_f.prototype.details = function INTRPLBLK_f() { + } + INTRPLBLK_f.prototype.get = function INTRPLBLK_f() { + } + INTRPLBLK_f.prototype.set = function INTRPLBLK_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,tt,cancel]=CC4[funam-1][tt-1]; +[ok,a,b,exprs]=scicos_getvalue("Set Interpolation block parameters",[["X coord."],["Y coord."]],list("vec",-1,"vec",-1),exprs); if (!ok) { -if (cancel) { break; } +if (size(a,"*")!=size(b,"*")) { +message("X and Y must have the same size"); +} else if (min(a.slice(2-1,$)-a.slice(1-1,$-1))<=0) { +message("X must be strictly increasing"); } else { -model.sim=list(funam,funtyp); -model.state=xx; -model.dstate=z; -model.odstate=oz; -model.rpar=rpar; -model.ipar=ipar; -model.opar=opar; -model.firing=auto0; -model.nzcross=nzcr; -model.nmode=nmode; -model.dep_ut=dep_ut; -label[2-1]=tt; -x.model=model; -graphics.exprs=label; +if (ok) { +graphics.exprs=exprs; +model.rpar=[[a.slice()],[b.slice()]]; x.graphics=graphics; +x.model=model; break; } } -if (ok||cancel) { -break; -} } + } } +/* autogenerated from "macros/NonLinear/INVBLK.sci" */ +function INVBLK() { + INVBLK.prototype.define = function INVBLK() { +in1=-1; +model=scicos_model(); +model.sim=list("invblk4",4); +model.in1=in1; +model.out=in1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=" "; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + INVBLK.prototype.details = function INVBLK() { + } + INVBLK.prototype.get = function INVBLK() { + } + INVBLK.prototype.set = function INVBLK() { +x=arg1; } } -/* autogenerated from "macros/Misc/BOUNCEXY.sci" */ -function BOUNCEXY() { - BOUNCEXY.prototype.define = function BOUNCEXY() { -win=-1; -imode=1; -clrs=[[1],[2]]; -siz=[[1],[1]]; -xmin=-5; -xmax=5; -ymin=0; -ymax=15; +/* autogenerated from "macros/NonLinear/INVBLK_f.sci" */ +function INVBLK_f() { + INVBLK_f.prototype.define = function INVBLK_f() { +in1=-1; model=scicos_model(); -model.sim=list("bouncexy",4); -model.in1=[[-1],[-1]]; -model.in2=[[1],[1]]; -model.intyp=[[1],[1]]; -model.evtin=1; -z=[]; -for (i=1;i<=size(clrs,"*");i+=1) { -z[6*(i-1)+1-1]=0; -z[6*(i-1)+2-1]=0; -z[6*(i-1)+3-1]=2*siz[i-1]; -z[6*(i-1)+4-1]=2*siz[i-1]; -z[6*(i-1)+5-1]=0.000; -z[6*(i-1)+6-1]=64.0*360.000; +model.sim="invblk"; +model.in1=in1; +model.out=in1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=" "; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + INVBLK_f.prototype.details = function INVBLK_f() { + } + INVBLK_f.prototype.get = function INVBLK_f() { + } + INVBLK_f.prototype.set = function INVBLK_f() { +x=arg1; + } } -model.dstate=z; -model.rpar=[[xmin],[xmax],[ymin],[ymax]]; -model.ipar=[[win],[imode],[clrs.slice()]]; -model.blocktype="d"; -model.firing=[]; -model.dep_ut=[false,false]; -exprs=[[strcat(sci2exp(clrs))],[strcat(sci2exp(siz))],[strcat(sci2exp(win))],[strcat(sci2exp(1))],[strcat(sci2exp(xmin))],[strcat(sci2exp(xmax))],[strcat(sci2exp(ymin))],[strcat(sci2exp(ymax))]]; +/* autogenerated from "macros/NonLinear/LOGBLK_f.sci" */ +function LOGBLK_f() { + LOGBLK_f.prototype.define = function LOGBLK_f() { +in1=1; +a=math.E; +model=scicos_model(); +model.sim="logblk"; +model.in1=-1; +model.out=-1; +model.rpar=a; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs="%e"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - BOUNCEXY.prototype.details = function BOUNCEXY() { + LOGBLK_f.prototype.details = function LOGBLK_f() { } - BOUNCEXY.prototype.get = function BOUNCEXY() { + LOGBLK_f.prototype.get = function LOGBLK_f() { } - BOUNCEXY.prototype.set = function BOUNCEXY() { + LOGBLK_f.prototype.set = function LOGBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -dstate=model.dstate; +if (size(exprs,"*")==2) { +exprs=exprs[2-1]; +} while (true) { -[ok,clrs,siz,win,imode,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",[["colors"],["radii"],["window number (-1 for automatic)"],["animation mode (0,1)"],["Xmin"],["Xmax"],["Ymin"],["Ymax"]],list("vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,a,exprs]=scicos_getvalue("Set log block parameters","Basis (>1)",list("vec",1),exprs); if (!ok) { break; } -mess=[]; -if (size(clrs,"*")!=size(siz,"*")) { -mess=[[mess],["colors and radii must have equal size (number of balls)"],[" "]]; -ok=false; -} -if (win<-1) { -mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; -ok=false; -} -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (xmin>=xmax) { -mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; -ok=false; -} -if (!ok) { -message(mess); +if (a<=1) { +message("Basis must be larger than 1"); } else { -rpar=[[xmin],[xmax],[ymin],[ymax]]; -ipar=[[win],[imode],[clrs.slice()]]; -z=[]; -for (i=1;i<=size(clrs,"*");i+=1) { -z[6*(i-1)+1-1]=0; -z[6*(i-1)+2-1]=0; -z[6*(i-1)+3-1]=2*siz[i-1]; -z[6*(i-1)+4-1]=2*siz[i-1]; -z[6*(i-1)+5-1]=0.000; -z[6*(i-1)+6-1]=64.0*360.000; -} -model.dstate=z; -model.rpar=rpar; -model.ipar=ipar; +if (ok) { graphics.exprs=exprs; +model.rpar=a; x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/Misc/scifunc_block.sci" */ -function scifunc_block() { - scifunc_block.prototype.define = function scifunc_block() { -in1=1; -out=1; -clkin=[]; -clkout=[]; -x0=[]; -z0=[]; -typ="c"; -auto=[]; -rpar=[]; +/* autogenerated from "macros/NonLinear/LOOKUP2D.sci" */ +function LOOKUP2D() { + LOOKUP2D.prototype.define = function LOOKUP2D() { model=scicos_model(); -model.sim=list("scifunc",3); -model.in1=in1; -model.out=out; -model.evtin=clkin; -model.evtout=clkout; -model.state=x0; -model.dstate=z0; -model.rpar=rpar; -model.ipar=0; -model.opar=list(); -model.blocktype=typ; -model.firing=auto; +xx=[1:4]; +yy=[1:3]; +zz=[[4,5,6],[16,19,20],[10,18,23],[6,3,-1]]; +Method=1; +Graf="n"; +Nx=length(xx); +Ny=length(yy); +model.sim=list("lookup2d",4); +model.in1=[[1],[1]]; +model.out=1; +model.rpar=[[xx.slice()],[yy.slice()],[zz.slice()]]; +model.ipar=[[Nx],[Ny],[Method]]; +model.blocktype="c"; model.dep_ut=[true,false]; -exprs=list([[sci2exp(in1)],[sci2exp(out)],[sci2exp(clkin)],[sci2exp(clkout)],[strcat(sci2exp(x0))],[strcat(sci2exp(z0))],[strcat(sci2exp(rpar))],[sci2exp(auto)]],list("y1=sin(u1)"," "," ","y1=sin(u1)"," "," "," ")); +exprs=list(strcat(sci2exp(xx)),strcat(sci2exp(yy)),strcat(sci2exp(zz)),sci2exp(Method),Graf); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2.5,2],model,exprs,gr_i); } - scifunc_block.prototype.details = function scifunc_block() { + LOOKUP2D.prototype.details = function LOOKUP2D() { } - scifunc_block.prototype.get = function scifunc_block() { + LOOKUP2D.prototype.get = function LOOKUP2D() { } - scifunc_block.prototype.set = function scifunc_block() { -needcompile=0; + LOOKUP2D.prototype.set = function LOOKUP2D() { x=arg1; model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -if (size(exprs[1-1],"*")==8) { -exprs[1-1][9-1]="0"; -} +ok=false; +SaveExit=false; 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("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec","sum(%4)","vec",1),exprs[1-1]); +Ask_again=false; +[ok,xx,yy,zz,Method,graf,exprs]=scicos_getvalue("2D Lookup table parameters",[["Row index input values"],["Column index input values"],["Table data"],["Lookup method(1..5)"],["Launch graphic window(y/n)?"]],list("vec",-1,"vec",-1,"mat",[-1,-1],"vec",1,"str",1),exprs); if (!ok) { break; } -exprs[1-1]=lab; +mtd=int(Method); +if (mtd<1) { +mtd=1; +} +if (mtd>6) { +mtd=6; +} +if (graf!="y"&&graf!="Y") { +graf="n"; +} +exprs[5-1]="n"; +exprs[4-1]=sci2exp(mtd); +METHOD=getmethod(mtd); +if (!Ask_again) { xx=xx.slice(); -z=z.slice(); -rpar=rpar.slice(); -nrp=prod[size(rpar)-1]; -i=int(i.slice()); -ni=size(i,1); -o=int(o.slice()); -no=size(o,1); -ci=int(ci.slice()); -nci=size(ci,1); -co=int(co.slice()); -nco=size(co,1); -[ok,tt,dep_ut]=genfunc1(exprs[2-1],i,o,nci,nco,size(xx,1),size(z,1),nrp,"c"); -dep_ut[2-1]=(1==deptime); -if (!ok) { -break; +yy=yy.slice(); +[nx,mx]=size(xx); +[ny,my]=size(yy); +[nz,mz]=size(zz); +if (((nx<=1)||(ny<=1))) { +x_message("input row/column data size should be greater than one"); +Ask_again=true; } -[model,graphics,ok]=check_io(model,graphics,i,o,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 (!((nx==nz)&&(ny==mz))) { +x_message("incompatible size of x and y"); +Ask_again=true; } -if (or(model.opar!=tt)) { -needcompile=4; +[ok]=test_increasing(xx); +if ((!ok)) { +x_message("Row input values must be monotonically increasing"); +Ask_again=true; } -model.opar=tt; -model.firing=auto; -model.dep_ut=dep_ut; -x.model=model; -exprs[2-1]=tt; +[ok]=test_increasing(yy); +if ((!ok)) { +x_message("Column input values must be monotonically increasing"); +Ask_again=true; +} +} +if (!Ask_again) { +if ((graf=="Y"||graf=="y")) { +gh=gcf(); +curwin=gh.figure_id; +save_curwin=curwin; +gh2=scf(); +curwin=max(winsid())+1; +plot3d(xx,yy,zz,35,45,"X@Y@Z",[5,2,4]); +curwin=save_curwin; +gh.figure_id=curwin; +} +model.rpar=[[xx.slice()],[yy.slice()],[zz.slice()]]; +model.ipar=[[nx],[ny],[mtd]]; graphics.exprs=exprs; +x.model=model; x.graphics=graphics; break; } } -needcompile=resume(needcompile) } } -/* autogenerated from "macros/Misc/BACKLASH.sci" */ -function BACKLASH() { - BACKLASH.prototype.define = function BACKLASH() { -exprs=[["0"],["1"],["1"]]; +/* autogenerated from "macros/NonLinear/LOOKUP_f.sci" */ +function LOOKUP_f() { + LOOKUP_f.prototype.define = function LOOKUP_f() { model=scicos_model(); -model.sim=list("backlash",4); +model.sim="lookup"; model.in1=1; model.out=1; -model.rpar=[[0],[1]]; -model.nzcross=2; +model.rpar=[[-2],[-1],[1],[2],[-1],[1],[-1],[1]]; model.blocktype="c"; model.dep_ut=[true,false]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([2,2],model,[],gr_i); } - BACKLASH.prototype.details = function BACKLASH() { + LOOKUP_f.prototype.details = function LOOKUP_f() { } - BACKLASH.prototype.get = function BACKLASH() { + LOOKUP_f.prototype.get = function LOOKUP_f() { } - BACKLASH.prototype.set = function BACKLASH() { + LOOKUP_f.prototype.set = function LOOKUP_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; rpar=model.rpar; +n=size(rpar,"*")/2; +xx=rpar.slice(1-1,n); +yy=rpar.slice(n+1-1,2*n); while (true) { -[ok,ini,gap,zcr,exprs]=scicos_getvalue("Set backlash parameters",[["initial output"],["gap"],["use zero-crossing (0:no, 1:yes)"]],list("vec",1,"vec",1,"vec",1),exprs); +[ln,fun]=where() +if (!or(fun=="do_eval")) { +[xx,yy,ok,gc]=edit_curv(xx,yy,"axy"); +} else { +ok=true; +} if (!ok) { break; } -if (ok) { -graphics.exprs=exprs; -rpar[1-1]=ini; -rpar[2-1]=gap; -if (zcr!=0) { -model.nzcross=2; -} else { -model.nzcross=0; +n=size(xx,"*"); +if (or(xx.slice(2-1,n)-xx.slice(1-1,n-1)<=0)) { +message("You have not defined a function"); +ok=false; } -model.rpar=rpar; +if (ok) { +model.rpar=[[xx.slice()],[yy.slice()]]; x.graphics=graphics; x.model=model; break; @@ -14849,61 +13414,66 @@ break; } } } -/* autogenerated from "macros/Misc/BPLATFORM.sci" */ -function BPLATFORM() { - BPLATFORM.prototype.define = function BPLATFORM() { -plen=2; -csiz=2; -phi=0; -xmin=-5; -xmax=5; -ymin=0; -ymax=15; +/* autogenerated from "macros/NonLinear/MAXMIN.sci" */ +function MAXMIN() { + MAXMIN.prototype.define = function MAXMIN() { model=scicos_model(); -model.sim=list("bplatform2",5); -model.in1=[[1],[1]]; -model.evtin=1; -model.dstate=0; -model.rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=string(model.rpar); +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"; } - BPLATFORM.prototype.details = function BPLATFORM() { + MAXMIN.prototype.details = function MAXMIN() { } - BPLATFORM.prototype.get = function BPLATFORM() { + MAXMIN.prototype.get = function MAXMIN() { } - BPLATFORM.prototype.set = function BPLATFORM() { + MAXMIN.prototype.set = function MAXMIN() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -dstate=model.dstate; while (true) { -[ok,plen,csiz,phi,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",[["pendulum length"],["cart size (square side)"],["slope"],["Xmin"],["Xmax"],["Ymin"],["Ymax"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[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; } -mess=[]; -if (plen<=0||csiz<=0) { -mess=[[mess],["Pendulum length and cart size must be positive."],[" "]]; -ok=false; +if (zcr!=0) { +zcr=-1; } -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; +if (mm!=1) { +mm=2; } -if (xmin>=xmax) { -mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +if (nin!=1&&nin!=2) { +message("Wrong number of inputs, only 1 and 2 allowed"); ok=false; } -if (!ok) { -message(mess); +if (ok) { +if (nin==1) { +[model,graphics,ok]=check_io(model,graphics,-1,1,[],[]); } else { -rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; -model.rpar=rpar; +[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; @@ -14912,281 +13482,232 @@ break; } } } -/* autogenerated from "macros/Misc/func_block.sci" */ -function func_block() { - func_block.prototype.define = function func_block() { +/* autogenerated from "macros/NonLinear/MAX_f.sci" */ +function MAX_f() { + MAX_f.prototype.define = function MAX_f() { +in1=-1; model=scicos_model(); -model.sim=" "; -model.in1=1; +model.sim="maxblk"; +model.in1=in1; model.out=1; +model.dstate=[[0],[0]]; model.blocktype="c"; model.dep_ut=[true,false]; -exprs="v=sin(u);y=u*v"; +exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - func_block.prototype.details = function func_block() { + MAX_f.prototype.details = function MAX_f() { } - func_block.prototype.get = function func_block() { + MAX_f.prototype.get = function MAX_f() { } - func_block.prototype.set = function func_block() { -model=arg1.model; -graphics=arg1.graphics; -exprs=graphics.exprs; + MAX_f.prototype.set = function MAX_f() { x=arg1; -model=x.model; -[ok,mac,exprs]=genfunc[exprs-1]; -if (ok) { -model.sim=mac; -graphics.exprs=exprs; -x.model=model; -x.graphics=graphics; -} } } -/* autogenerated from "macros/Misc/SPLIT_f.sci" */ -function SPLIT_f() { - SPLIT_f.prototype.define = function SPLIT_f() { +/* autogenerated from "macros/NonLinear/MIN_f.sci" */ +function MIN_f() { + MIN_f.prototype.define = function MIN_f() { +in1=-1; model=scicos_model(); -model.sim="lsplit"; -model.in1=-1; -model.out=[[-1],[-1],[-1]]; +model.sim="minblk"; +model.in1=in1; +model.out=1; +model.dstate=[[0],[0]]; model.blocktype="c"; model.dep_ut=[true,false]; -x=standard_define([1,1]/3,model,[],[]); +exprs=sci2exp(in1); +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); } - SPLIT_f.prototype.details = function SPLIT_f() { + MIN_f.prototype.details = function MIN_f() { } - SPLIT_f.prototype.get = function SPLIT_f() { + MIN_f.prototype.get = function MIN_f() { } - SPLIT_f.prototype.set = function SPLIT_f() { + MIN_f.prototype.set = function MIN_f() { x=arg1; } } -/* autogenerated from "macros/Misc/PENDULUM_ANIM.sci" */ -function PENDULUM_ANIM() { - PENDULUM_ANIM.prototype.define = function PENDULUM_ANIM() { -plen=2; -csiz=2; -phi=0; -xmin=-5; -xmax=5; -ymin=-5; -ymax=5; +/* autogenerated from "macros/NonLinear/POWBLK_f.sci" */ +function POWBLK_f() { + POWBLK_f.prototype.define = function POWBLK_f() { +in1=1; +a=1.5; model=scicos_model(); -model.sim=list("anim_pen",5); -model.in1=[[1],[1]]; -model.evtin=1; -model.dstate=0; -model.rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; -model.blocktype="d"; -model.dep_ut=[false,false]; -exprs=string(model.rpar); +model.sim="powblk"; +model.in1=-1; +model.out=-1; +model.rpar=a; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=string(a); gr_i=[]; -x=standard_define([3,3],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - PENDULUM_ANIM.prototype.details = function PENDULUM_ANIM() { + POWBLK_f.prototype.details = function POWBLK_f() { } - PENDULUM_ANIM.prototype.get = function PENDULUM_ANIM() { + POWBLK_f.prototype.get = function POWBLK_f() { } - PENDULUM_ANIM.prototype.set = function PENDULUM_ANIM() { + POWBLK_f.prototype.set = function POWBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -dstate=model.dstate; +if (size(exprs,"*")==2) { +exprs=exprs[2-1]; +} while (true) { -[ok,plen,csiz,phi,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",[["pendulum length"],["cart size (square side)"],["slope"],["Xmin"],["Xmax"],["Ymin"],["Ymax"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,a,exprs]=scicos_getvalue("Set u^a block parameters","to the power of",list("vec",1),exprs); if (!ok) { break; } -mess=[]; -if (plen<=0||csiz<=0) { -mess=[[mess],["Pendulum length and cart size must be positive."],[" "]]; -ok=false; -} -if (ymin>=ymax) { -mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; -ok=false; -} -if (xmin>=xmax) { -mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; -ok=false; -} -if (!ok) { -message(mess); -} else { -rpar=[[plen],[csiz],[phi],[xmin],[xmax],[ymin],[ymax]]; -model.rpar=rpar; graphics.exprs=exprs; +if (a==int(a)) { +model.ipar=a; +model.rpar=[]; +} else { +model.rpar=a; +model.ipar=[]; +} +model.firing=[]; x.graphics=graphics; x.model=model; break; } -} } } -/* autogenerated from "macros/Misc/LOGICAL_OP.sci" */ -function LOGICAL_OP() { - LOGICAL_OP.prototype.define = function LOGICAL_OP() { -in1=[[-1],[-1]]; -ipar=[0]; -nin=2; +/* autogenerated from "macros/NonLinear/PRODUCT.sci" */ +function PRODUCT() { + PRODUCT.prototype.define = function PRODUCT() { +sgn=[[1],[-1]]; model=scicos_model(); -model.sim=list("logicalop",4); -model.in1=in1; +model.sim=list("product",4); +model.in1=[[-1],[-1]]; model.out=-1; -model.ipar=ipar; +model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[string(nin)],[string(ipar)]]; +exprs=sci2exp(sgn); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,3],model,exprs,gr_i); } - LOGICAL_OP.prototype.details = function LOGICAL_OP() { + PRODUCT.prototype.details = function PRODUCT() { } - LOGICAL_OP.prototype.get = function LOGICAL_OP() { + PRODUCT.prototype.get = function PRODUCT() { } - LOGICAL_OP.prototype.set = function LOGICAL_OP() { + PRODUCT.prototype.set = function PRODUCT() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; -if (size(exprs,1)==2) { -exprs=[[exprs],[sci2exp(1)],[sci2exp(0)]]; -} +exprs=graphics.exprs; while (true) { -[ok,nin,rule,Datatype,tp,exprs]=scicos_getvalue("Set parameters",[["number of inputs"],["Operator: AND (0), OR (1), NAND (2), NOR (3), XOR (4), NOT (5)","Datatype (1=double 3=int32 ...)"],["Bitwise Rule(0=No 1=yes)"]],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); +[ok,sgn,exprs]=scicos_getvalue([[" Set multiplication block parameters"],["(multiplication is set with + 1, division with -1)"],[""]],"Number of inputs or sign vector",list("vec",-1),exprs); if (!ok) { break; } -nin=int(nin); -rule=int(rule); -tp=int(tp); -if (nin<1) { -message("Number of inputs must be >=1 "); -ok=false; -} else if ((rule<0)||(rule>5)) { -message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); -ok=false; -} else if ((rule==5)&&(nin>1)) { -message("Only one input allowed for NOT operation"); -nin=1; -} else if (((Datatype==1)&&(tp!=0))) { -message("Bitwise Rule is only activated when Data type is integer"); +sgn=sgn.slice(); +if (size(sgn,1)==1) { +if (sgn<1) { +message("Number of inputs must be > 0"); ok=false; -} -if (ok) { -if ((tp!=0)) { -tp=1; -} -if (Datatype==1) { -model.sim=list("logicalop",4); -model.ipar=[rule]; +} else if (sgn==1) { +in1=-1; +sgn=[]; +nout=1; } else { -if (Datatype==3) { -model.sim=list("logicalop_i32",4); -} else if (Datatype==4) { -model.sim=list("logicalop_i16",4); -} else if (Datatype==5) { -model.sim=list("logicalop_i8",4); -} else if (Datatype==6) { -model.sim=list("logicalop_ui32",4); -} else if (Datatype==7) { -model.sim=list("logicalop_ui16",4); -} else if (Datatype==8) { -model.sim=list("logicalop_ui8",4); +in1=-ones(sgn,1); +sgn=ones(sgn,1); +nout=-1; +} } else { -message("Datatype is not supported"); +if (!and(abs(sgn)==1)) { +message("Signs can only be +1 or -1"); ok=false; -} -model.ipar=[[rule],[tp]]; -} -if (ok) { -it=Datatype*ones(nin,1); -ot=Datatype; -in1=[-ones(nin,1),-2*ones(nin,1)]; -if ((rule!=5)&&(nin==1)) { -out=[1,1]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } else { -out=[-1,-2]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +in1=-ones(size(sgn,1),1); +nout=-1; } } if (ok) { -if (rule==0) { -label="AND"; -} else if (rule==1) { -label="OR"; -} else if (rule==2) { -label="NAND"; -} else if (rule==3) { -label="NOR"; -} else if (rule==4) { -label="XOR"; -} else if (rule==5) { -label="NOT"; +[model,graphics,ok]=check_io(model,graphics,in1,nout,[],[]); } +if (ok) { +model.ipar=sgn; graphics.exprs=exprs; -graphics.style=["blockWithLabel;displayedLabel="+label]; x.graphics=graphics; x.model=model; break; } } + } } +/* autogenerated from "macros/NonLinear/PROD_f.sci" */ +function PROD_f() { + PROD_f.prototype.define = function PROD_f() { +model=scicos_model(); +model.sim=list("prod",2); +model.in1=[[-1],[-1]]; +model.out=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +x=standard_define([1,1],model,[],[]); + } + PROD_f.prototype.details = function PROD_f() { + } + PROD_f.prototype.get = function PROD_f() { + } + PROD_f.prototype.set = function PROD_f() { +x=arg1; } } -/* autogenerated from "macros/Misc/MEMORY_f.sci" */ -function MEMORY_f() { - MEMORY_f.prototype.define = function MEMORY_f() { -z=0; -in1=1; -exprs=[[string(z)],[string(1)]]; +/* autogenerated from "macros/NonLinear/QUANT_f.sci" */ +function QUANT_f() { + QUANT_f.prototype.define = function QUANT_f() { +pas=0.1; +meth=1; model=scicos_model(); -model.sim="memo"; -model.in1=in1; -model.out=in1; -model.evtin=1; -model.dstate=0; -model.rpar=z; -model.blocktype="m"; -model.dep_ut=[false,false]; +model.sim="qzrnd"; +model.in1=-1; +model.out=-1; +model.rpar=pas; +model.ipar=meth; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[string(pas)],[string(meth)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - MEMORY_f.prototype.details = function MEMORY_f() { + QUANT_f.prototype.details = function QUANT_f() { } - MEMORY_f.prototype.get = function MEMORY_f() { + QUANT_f.prototype.get = function QUANT_f() { } - MEMORY_f.prototype.set = function MEMORY_f() { + QUANT_f.prototype.set = function QUANT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,a,inh,exprs]=scicos_getvalue("Set memory block parameters",[["initial condition"],["Inherit (1: no, 0: yes)"]],list("vec",-1,"vec",1),exprs); +[ok,pas,meth,exprs]=scicos_getvalue("Set parameters",[["Step"],["Quantization Type (1-4)"]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if (inh==0) { -inh=[]; +if (meth<1||meth>4) { +message("Quantization Type must be from 1 to 4"); } else { -inh=1; -} -[model,graphics,ok]=check_io(model,graphics,-1,-1,inh,[]); -out=size(a,"*"); -if (out==0) { -ok=false; -messagebox("Initial condition empty","modal","error"); +rpar=pas; +model.rpar=rpar; +model.ipar=meth; +switch (meth) { +case 1: +model.sim="qzrnd"; +case 2: +model.sim="qztrn"; +case 3: +model.sim="qzflr"; +case 4: +model.sim="qzcel"; } -in1=out; -if (ok) { graphics.exprs=exprs; -model.rpar=a; -model.in1=in1; -model.out=out; x.graphics=graphics; x.model=model; break; @@ -15194,322 +13715,443 @@ break; } } } -/* autogenerated from "macros/Misc/AUTOMAT.sci" */ -function AUTOMAT() { - AUTOMAT.prototype.define = function AUTOMAT() { -NMode=2; -Minitial=1; -NX=1; -X0=[0.0]; -XP=[[1],[1]]; -C1=[2]; -C2=[1]; -exprs=[[string(NMode)],[string(Minitial)],[string(NX)],[sci2exp(X0)],[sci2exp(XP)],[sci2exp(C1)],[sci2exp(C2)]]; -ipar=[[NMode],[Minitial],[NX],[XP],[C1],[C2]]; -rpar=[X0]; +/* autogenerated from "macros/NonLinear/SATURATION.sci" */ +function SATURATION() { + SATURATION.prototype.define = function SATURATION() { +minp=-1; +maxp=1; +rpar=[[maxp],[minp]]; model=scicos_model(); -model.sim=list("automat",10004); -model.in1=[[2*NX+1],[2*NX+1]]; -model.out=[[2],[2*NX]]; -model.state=ones(2*NX,1); -model.nzcross=1; -model.blocktype="c"; -model.evtout=1; -model.firing=-1; -model.dep_ut=[false,true]; -model.ipar=ipar; +model.sim=list("satur",4); +model.in1=1; +model.nzcross=2; +model.nmode=1; +model.out=1; model.rpar=rpar; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[string(maxp)],[string(minp)],[string(model.nmode)]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - AUTOMAT.prototype.details = function AUTOMAT() { + SATURATION.prototype.details = function SATURATION() { } - AUTOMAT.prototype.get = function AUTOMAT() { + SATURATION.prototype.get = function SATURATION() { } - AUTOMAT.prototype.set = function AUTOMAT() { + SATURATION.prototype.set = function SATURATION() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -ipar=model.ipar; -NMode=ipar[1-1]; -NX=ipar[3-1]; while (true) { -CX="C1"; -MSG0="\'Jump from Mode "; -MSG2=":[..;M_final(Guard=In("; -MSG3=").i);..]\'"; -MSG=MSG0+"1"+MSG2+"1"+MSG3; -VEC="\'mat\',[-1,1]"; -for (i=2;i<=NMode;i+=1) { -CX=CX+","+"C"+string(i); -MSG=MSG+";"+MSG0+string(i)+MSG2+string(i)+MSG3; -VEC=VEC+","+"\'mat\',[-1,1]"; -} -GTV="[ok,NMode,Minitial,NX,X0,XP,"+CX+",exprs]=scicos_getvalue(\'Set Finite state machine model\', [\'Number (finite-state) Modes\';\'Initial Mode\';\'Number of continuous-time states\';\'Continuous-time states intial values\';\'Xproperties of continuous-time states in each Mode\';"+MSG+"], list(\'vec\',1,\'vec\',1,\'vec\',1,\'mat\',[-1,-1],\'mat\',[-1,-1],"+VEC+"),exprs)"; -execstr(GTV); +[ok,maxp,minp,zeroc,exprs]=scicos_getvalue("Set Saturation parameters",[["Upper limit"],["Lower limit"],["zero crossing (0:no, 1:yes)"]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -NMode_old=size(exprs,"*")-5; -ModifEncore=false; -if ((NMode_old>NMode)) { -exprs.slice(NMode+6-1,NMode_old+5)=[]; -ModifEncore=true; +if (maxp<=minp) { +message("Upper limit must be > Lower limit"); +} else { +rpar=[[maxp],[minp]]; +model.rpar=rpar; +if (zeroc!=0) { +model.nzcross=2; +model.nmode=1; +} else { +model.nzcross=0; +model.nmode=0; } -if ((NMode_old<NMode)) { -exprs.slice(NMode_old+6-1,NMode+5)=exprs[NMode_old+4-1]; -ModifEncore=true; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } -if ((NX!=size(X0,"*"))) { -messagebox("the size of intial continuous-time states should be NX="+string(NX),"modal","error"); -ModifEncore=true; } -[rXP,cXP]=size(XP); -if (cXP!=NX) { -messagebox("Xproperty matrix is not valid: it should have NX="+string(NX)+" columns","modal","error"); -ModifEncore=true; -} else if (((rXP!=NMode)&&(rXP>1))) { -messagebox("Xproperty matrix is not valid: it should have NMode="+string(NMode)+" or 1 row(s)","modal","error"); -ModifEncore=true; -} else if ((rXP==1)) { -for (i=1;i<=NMode-1;i+=1) { -XP=[[XP],[XP[1-1].slice()]]; + } } +/* autogenerated from "macros/NonLinear/SAT_f.sci" */ +function SAT_f() { + SAT_f.prototype.define = function SAT_f() { +minp=-1; +maxp=1; +slope=1; +rpar=[[minp],[maxp],[slope]]; +model=scicos_model(); +model.sim=list("lusat",1); +model.in1=1; +model.nzcross=2; +model.out=1; +model.rpar=[[minp],[maxp],[slope]]; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[string(minp)],[string(maxp)],[string(slope)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + SAT_f.prototype.details = function SAT_f() { + } + SAT_f.prototype.get = function SAT_f() { + } + SAT_f.prototype.set = function SAT_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,minp,maxp,pente,exprs]=scicos_getvalue("Set Saturation parameters",[["Min"],["Max"],["Slope"]],list("vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break; } -if ((NMode_old==NMode)&&(!ModifEncore)) { -XP=matrix(transpose(XP),NMode*NX,1); -ipar=[[NMode],[Minitial],[NX],[XP]]; -rpar=matrix(X0,NX,1); -INP=ones(NMode,1); -if (NX>0) { -OUT=[[2],[2*NX]]; +if (maxp<=0) { +message("Max must be strictly positive"); +} else if (pente<=0) { +message("Slope must be strictly positive"); } else { -OUT=[2]; +rpar=[[minp/pente],[maxp/pente],[pente]]; +model.rpar=rpar; +model.firing=[]; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } -MaxModes=1; -nzcross=0; -for (i=1;i<=NMode;i+=1) { -Ci=evstr(exprs[5+i-1]); -ipar=[[ipar],[Ci]]; -INP[i-1][1-1]=2*NX+length(Ci); -if ((nzcross<length(Ci))) { -nzcross=length(Ci); } -if ((MaxModes<max(Ci))) { -MaxModes=max(Ci); -imax=i; + } +} +/* autogenerated from "macros/NonLinear/SIGNUM.sci" */ +function SIGNUM() { + SIGNUM.prototype.define = function SIGNUM() { +nu=-1; +model=scicos_model(); +model.sim=list("signum",4); +model.in1=nu; +model.out=nu; +model.nzcross=nu; +model.nmode=nu; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[string([1])]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + SIGNUM.prototype.details = function SIGNUM() { + } + SIGNUM.prototype.get = function SIGNUM() { + } + SIGNUM.prototype.set = function SIGNUM() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,zcr,exprs]=scicos_getvalue("Set block parameters",["use zero_crossing (1: yes) (0:no)"],list("vec",1),exprs); +if (!ok) { +break; } +graphics.exprs=exprs; +if (ok) { +if (zcr!=0) { +model.nmode=-1; +model.nzcross=-1; +} else { +model.nmode=0; +model.nzcross=0; } -if (MaxModes>NMode) { -messagebox([["Number of Modes should be "+string(MaxModes)],["A destination Mode in Mode#"+string(imax)+"\'s targets is invalid!"]],"modal","error"); -ModifEncore=true; +x.graphics=graphics; +x.model=model; +break; } -if (MaxModes<NMode) { -messagebox(["There is an unused Mode or the Number of Modes should be "+string(MaxModes)],"modal","error"); -ModifEncore=true; } + } } -if (!ModifEncore) { -[model,graphics,ok]=check_io(model,graphics,INP,OUT,[],[1]); +/* autogenerated from "macros/NonLinear/SINBLK_f.sci" */ +function SINBLK_f() { + SINBLK_f.prototype.define = function SINBLK_f() { +model=scicos_model(); +model.sim="sinblk"; +model.in1=-1; +model.out=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=" "; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + SINBLK_f.prototype.details = function SINBLK_f() { + } + SINBLK_f.prototype.get = function SINBLK_f() { + } + SINBLK_f.prototype.set = function SINBLK_f() { +x=arg1; + } +} +/* autogenerated from "macros/NonLinear/TANBLK_f.sci" */ +function TANBLK_f() { + TANBLK_f.prototype.define = function TANBLK_f() { +in1=-1; +model=scicos_model(); +model.sim="tanblk"; +model.in1=in1; +model.out=in1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=sci2exp(in1); +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + TANBLK_f.prototype.details = function TANBLK_f() { + } + TANBLK_f.prototype.get = function TANBLK_f() { + } + TANBLK_f.prototype.set = function TANBLK_f() { +x=arg1; +x.model.firing=[]; + } +} +/* autogenerated from "macros/NonLinear/TrigFun.sci" */ +function TrigFun() { + TrigFun.prototype.define = function TrigFun() { +model=scicos_model(); +model.sim=list("sin_blk",4); +model.in1=-1; +model.out=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs="sin"; +gr_i=[]; +x=standard_define([4,2],model,exprs,gr_i); + } + TrigFun.prototype.details = function TrigFun() { + } + TrigFun.prototype.get = function TrigFun() { + } + TrigFun.prototype.set = function TrigFun() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +PREVAR_FF=[["sin"],["cos"],["tan"],["asin"],["acos"],["atan"],["sinh"],["cosh"],["tanh"],["asinh"],["acosh"],["atanh"]]; +PREVAR_GG=[["Choose among "+strcat(PREVAR_FF.slice(1-1,4),", ")],[strcat(PREVAR_FF.slice(5-1,$),", ")]]; +while (true) { +[ok,fun,exprs]=scicos_getvalue(PREVAR_GG,"Function",list("str",1),exprs); if (!ok) { break; } -model.nzcross=nzcross; -model.state=ones(2*NX,1); -graphics.gr_i[1-1][1-1]="txt=[\'Automaton\';\'nM="+string(NMode)+",nX="+string(NX)+"\'];"; +if (find(PREVAR_FF==fun)==[]) { +message("Sorry but "+fun+" is not in the list!"); +} else { graphics.exprs=exprs; +execstr("model.sim=list(\'"+fun+"_blk\',4)"); x.graphics=graphics; -model.ipar=ipar; -model.rpar=rpar; x.model=model; break; } } } } -/* autogenerated from "macros/Misc/ENDBLK.sci" */ -function ENDBLK() { - ENDBLK.prototype.define = function ENDBLK() { -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-159.096,811.104,-121.216,617.984,1323,1008,331,284,630,480,0,7,1.4],Title="ENDBLK",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="END_c",graphics=scicos_graphics(orig=[272.104,249.11733],sz=[40,40],flip=true,theta=0,exprs="1.000E+08",pin=[],pout=[],pein=2,peout=2,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim=list("scicosexit",4),in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=1.000e+08,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_link(xx=[[292.104],[292.104],[261.83733],[261.83733],[292.104],[292.104]],yy=[[243.40305],[234.45067],[234.45067],[305.584],[305.584],[294.83162]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[1,1,1]); -model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); +/* autogenerated from "macros/PDE/PDE.sci" */ +function PDE() { + PDE.prototype.define = function PDE() { +model=scicos_model(); +model.state=zeros(10,1); +model.sim=list("PDE",0); +model.in1=[[1],[1],[1],[1],[1]]; +model.out=[[10],[0]]; +model.blocktype="c"; +model.dep_ut=[false,true]; +params_pde=tlist([["paramspde"],["a"],["b"],["txt_exp"],["check_op1"],["a1"],["b1"],["check_op2"],["a2"],["b2"],["check_op3"],["a3"],["b3"],["check_op4"],["a4"],["b4"],["check_op5"],["a5"],["b5"],["check_op6"],["a6"],["b6"],["check_op7"],["a7"],["b7"],["discr_cst"],["discr_non_cst"],["signe"],["rad_automatique"],["rad_manuel"],["methode"],["ord1"],["ord2"],["ord3"],["degre"],["nnode"],["txt_pas"],["CI"],["dCI"],["CLa"],["CLa_exp"],["CLb"],["CLb_exp"],["points"]],"","","","0","","IN_EDP1(t)","0","","IN_EDP2(t)","0","","IN_EDP3(t)","0","","IN_EDP4(t)","0","","IN_EDP5(t)","0","","IN_EDP6(t)","0","","IN_EDP7(t)","0","0","0","0","0","0","","","","","","","","","0","IN_CL1(t)","0","IN_CL2(t)",""); +label=list(params_pde,[],""); gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +x=standard_define([3,3],model,label,gr_i); } - ENDBLK.prototype.details = function ENDBLK() { + PDE.prototype.details = function PDE() { } - ENDBLK.prototype.get = function ENDBLK() { + PDE.prototype.get = function PDE() { } - ENDBLK.prototype.set = function ENDBLK() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="END_c") { -ppath=list(i); -break; + PDE.prototype.set = function PDE() { +x=arg1; +graphics=arg1.graphics; +label=graphics.exprs; +model=arg1.model; +params_pde=label[1-1]; +while (true) { +[ln,fun]=where() +if (!or(fun=="do_eval")) { +[ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde]=IHM_EDP(params_pde); +if (ok) { +return; } +} else { +if (exists("%scicos_context")) { +[ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde]=setvalue_IHM_EDP(params_pde); } -newpar=list(); -y=0; -for (path in ppath) { -np=size(path,"*"); -spath=list(); -for (k=1;k<=np;k+=1) { -spath[$+1-1]="model"; -spath[$+1-1]="rpar"; -spath[$+1-1]="objs"; -spath[$+1-1]=path[k-1]; } -xx=arg1[spath-1]; -execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (!isequalbitwise[xxn-1][xx-1]) { -model=xx.model; -model_n=xxn.model; -if (!is_modelica_block(xx)) { -modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); -if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { -needcompile=1; +okk=false; +rdnom="PDE"; +ok1=true; +while (true) { +[okk,rdnom,lab]=scicos_getvalue("PLEASE, GIVE US THE BLOCK\'s NAME. ","New block\'s name :",list("str",1),label[3-1]); +if (okk==false) { +ok1=false; +return; } -if (or(model.firing!=model_n.firing)) { -needcompile=2; +label[3-1]=lab; +rdnom=stripblanks(rdnom); +if (rdnom==emptystr()) { +ok1=false; +x_message("sorry C file name not defined"); } -if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))||(size(model.evtin,"*")!=size(model_n.evtin,"*"))) { -needcompile=4; +if (ok1) { +break; } -if (model.sim=="input"||model.sim=="output") { -if (model.ipar!=model_n.ipar) { -needcompile=4; } +if ((choix==0)) { +ind4=strindex(a4,"x"); +ind1=strindex(a1,"x"); +ind2=strindex(a2,"x"); +if ((ind4!=[]||ind1!=[]||ind2!=[])) { +if ((signe==1)) { +delta=1; +} else if ((signe==2)) { +delta=-1; +} else if ((signe==0)) { +delta=0; +} else { +x_message([["le discriminant n\'est pas constant,"],["Vous devez choisir son signe dans l\'IHM"]]); +return; } -if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { -needcompile=4; +} else { +delta=evstr(a4)^2-4*evstr(a1)*evstr(a2); } -if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { -needcompile=4; +if ((delta==[])) { +delta=0; } -if (prod[size(model_n.sim)-1]>1) { -if (model_n.sim[2-1]>1000) { -if (model.sim[1-1]!=model_n.sim[1-1]) { -needcompile=4; +type_meth=this.arbre_decision[delta-1]; } +[flag_type,rdnom,DF_type,tt]=translate(CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,type_meth,degre,a_domaine,b_domaine,Nbr_maillage,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,rdnom,mesures); +Nbr=Nbr_maillage; +if (((CLa_type==1)&&(DF_type==0||DF_type==1))||((CLb_type==1)&&(DF_type==0||DF_type==2))) { +Nbr=Nbr+1; } +if ((mesures==[])) { +out=Nbr_maillage; +} else { +out=[[Nbr_maillage],[size(mesures,"*")]]; } +if ((flag_type==1)) { +model.sim=list(rdnom,2004); +if ((find(oper==1)!=[])) { +model.state=zeros(2*Nbr_maillage,1); } else { -modified=or(model_n!=model); -eq=model.equations; -eqn=model_n.equations; -if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { -needcompile=4; +model.state=zeros(Nbr_maillage,1); } +} else if ((flag_type==2)) { +model.sim=list(rdnom,12004); +if ((find(oper==1)!=[])) { +if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) { +model.state=zeros(6*Nbr_maillage,1); +} else if ((type_meth==1)) { +model.state=zeros(4*Nbr,1); +} else { +model.state=zeros(4*Nbr_maillage,1); } -arg1[spath-1]=xxn; -newpar[size(newpar)+1-1]=path; -y=max(y,needcompile); +} else { +if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) { +model.state=zeros(4*Nbr_maillage,1); +} else if ((type_meth==1)) { +model.state=zeros(2*Nbr,1); +} else { +model.state=zeros(2*Nbr_maillage,1); } } -x=arg1; -typ=newpar; +} +[ok1]=CFORTREDP(rdnom,tt); +if (!ok1) { +break; +} +if (!ok) { +[model,graphics,ok]=check_io(model,graphics,ones(k,1),out.slice(),[],[]); +} +label[1-1]=params_pde; +label[2-1]=tt; +graphics.exprs=label; +x.graphics=graphics; +x.model=model; +break; +} } } -/* autogenerated from "macros/IntegerOp/INTMUL.sci" */ -function INTMUL() { - INTMUL.prototype.define = function INTMUL() { -sgn=0; +/* autogenerated from "macros/Sinks/AFFICH_m.sci" */ +function AFFICH_m() { + AFFICH_m.prototype.define = function AFFICH_m() { +font=1; +fontsize=1; +colr=1; +nt=5; +nd=1; +in1=[1,1]; model=scicos_model(); -model.sim=list("matmul_i32",4); -model.in1=[[-1],[-2]]; -model.out=-1; -model.in2=[[-2],[-3]]; -model.out2=-3; -model.intyp=[3,3]; -model.outtyp=3; -model.rpar=[]; -model.ipar=sgn; +model.sim=list("affich2",4); +model.in1=in1[1-1][1-1]; +model.in2=in1[1-1][2-1]; +model.evtin=1; +model.dstate=[[-1],[0],[0],[1],[1],[0],[zeros(in1[1-1][1-1]*in1[1-1][2-1],1)]]; +model.ipar=[[font],[fontsize],[colr],[1000],[nt],[nd],[in1[1-1][1-1]]]; model.blocktype="c"; +model.firing=[]; model.dep_ut=[true,false]; -exprs=[[sci2exp(3)],[sci2exp(0)]]; +model.label=""; +exprs=[[sci2exp([model.in1,model.in2])],[string(font)],[string(fontsize)],[string(colr)],[string(nt)],[string(nd)],[string(0)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - INTMUL.prototype.details = function INTMUL() { + AFFICH_m.prototype.details = function AFFICH_m() { } - INTMUL.prototype.get = function INTMUL() { + AFFICH_m.prototype.get = function AFFICH_m() { } - INTMUL.prototype.set = function INTMUL() { + AFFICH_m.prototype.set = function AFFICH_m() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,Datatype,np,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"INTMUL")],[" "],[gettext("Integer matrix multiplication")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Do on Overflow (0:Nothing, 1:Saturate, 2:Error)")]],list("vec",1,"vec",1),exprs); +[ok,in1,font,fontsize,colr,nt,nd,herit,exprs]=scicos_getvalue("Set parameters",[["Input Size","Font number"],["Font size"],["Color"],["Total number of digits"],["Number of rational part digits"],["Block inherits (1) or not (0)"]],list("mat",[1,2],"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -it=Datatype*ones(1,2); -ot=Datatype; -if ((np!=0&&np!=1&&np!=2)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Do on Overflow"),np),msprintf(gettext("Must be in the interval %s."),"[0, 2]")); +mess=[]; +if (font<=0) { +mess=[[mess],["Font number must be positive"],[" "]]; ok=false; -} else if (Datatype==3) { -if (np==0) { -model.sim=list("matmul_i32n",4); -} else if (np==1) { -model.sim=list("matmul_i32s",4); -} else { -model.sim=list("matmul_i32e",4); -} -} else if (Datatype==4) { -if (np==0) { -model.sim=list("matmul_i16n",4); -} else if (np==1) { -model.sim=list("matmul_i16s",4); -} else { -model.sim=list("matmul_i16e",4); } -} else if (Datatype==5) { -if (np==0) { -model.sim=list("matmul_i8n",4); -} else if (np==1) { -model.sim=list("matmul_i8s",4); -} else { -model.sim=list("matmul_i8e",4); +if (fontsize<=0) { +mess=[[mess],["Font size must be positive"],[" "]]; +ok=false; } -} else if (Datatype==6) { -if (np==0) { -model.sim=list("matmul_ui32n",4); -} else if (np==1) { -model.sim=list("matmul_ui32s",4); -} else { -model.sim=list("matmul_ui32e",4); +if (nt<=3) { +mess=[[mess],["Total number of digits must be greater than 3"],[" "]]; +ok=false; } -} else if (Datatype==7) { -if (np==0) { -model.sim=list("matmul_ui16n",4); -} else if (np==1) { -model.sim=list("matmul_ui16s",4); -} else { -model.sim=list("matmul_ui16e",4); +if (nd<0) { +mess=[[mess],["Number of rational part digits must be ","greater or equal 0"],[" "]]; +ok=false; } -} else if (Datatype==8) { -if (np==0) { -model.sim=list("matmul_ui8n",4); -} else if (np==1) { -model.sim=list("matmul_ui8s",4); -} else { -model.sim=list("matmul_ui8e",4); +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); } -} else { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),ot),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +if (!or(herit==[0,1])) { +mess=[[mess],["Accept inherited values are 0 and 1"],[" "]]; ok=false; } -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); +} if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +[model,graphics,ok]=set_io(model,graphics,list(in1,1),list(),ones(1-herit,1),[]); } if (ok) { -model.ipar=np; +model.ipar=[[font],[fontsize],[colr],[nt],[nd],[in1[1-1][1-1]]]; +model.dstate=[[-1],[0],[0],[1],[1],[0],[zeros(in1[1-1][1-1]*in1[1-1][2-1],1)]]; +model.evtin=ones(1-herit,1); graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -15518,368 +14160,277 @@ break; } } } -/* autogenerated from "macros/IntegerOp/CONVERT.sci" */ -function CONVERT() { - CONVERT.prototype.define = function CONVERT() { -sgn=2; +/* autogenerated from "macros/Sinks/BARXY.sci" */ +function BARXY() { + BARXY.prototype.define = function BARXY() { model=scicos_model(); -model.sim=list("convert",4); -model.in1=-1; -model.out=-1; -model.in2=-2; -model.out2=-2; -model.intyp=1; -model.outtyp=3; -model.rpar=[]; -model.ipar=sgn; -model.blocktype="c"; +xmin=-15; +xmax=15; +ymin=-15; +ymax=15; +model.sim=list("BARXY_sim",5); +model.blocktype="d"; model.dep_ut=[true,false]; -exprs=[[sci2exp(1)],[sci2exp(3)],[sci2exp(0)]]; -gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +model.in1=[[-1],[-1]]; +model.intyp=[1]; +model.out=[]; +model.evtin=[1]; +model.rpar=[[xmin],[xmax],[ymin],[ymax]]; +model.ipar=1; +x=standard_define([2,2],model,[],[]); +x.graphics.in_implicit=["E","E"]; +x.graphics.out_implicit=[]; +x.graphics.exprs=[["-15"],["15"],["-15"],["15"],["1"]]; } - CONVERT.prototype.details = function CONVERT() { + BARXY.prototype.details = function BARXY() { } - CONVERT.prototype.get = function CONVERT() { + BARXY.prototype.get = function BARXY() { } - CONVERT.prototype.set = function CONVERT() { + BARXY.prototype.set = function BARXY() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,it,ot,np,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CONVERT")],[" "],[gettext("Type conversion")],[" "]],[[gettext("Input Type (1:double, 3:int32, 4:int16, 5:int8, ...)")],[gettext("Output Type (1:double, 3:int32, 4:int16, 5:int8, ...)")],[gettext("Do on Overflow (0:Nothing, 1:Saturate, 2:Error)")]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,xmin,xmax,ymin,ymax,thickness,exprs]=scicos_getvalue("Set Scope parameters",[["Xmin"],["Xmax"],["Ymin"],["Ymax"],["Segs Thickness"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (it==2) { -it=1; +mess=[]; +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; } -if (ot==2) { -ot=1; +if (xmin>=xmax) { +mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +ok=false; } -if ((np!=0&&np!=1&&np!=2)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Do on Overflow"),np),msprintf(gettext("Must be in the interval %s."),"[0, 2]")); +if (thickness<=0) { +mess=[[mess],["Thickness must be strictly positive."]]; ok=false; -} else if ((it>8||it<1)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Type"),it),msprintf(gettext("Must be in the interval %s."),"[1, 8]")); +} +if (!ok) { +message(mess); +} else { +model.rpar=[[xmin],[xmax],[ymin],[ymax]]; +model.ipar=thickness; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} + } +} +/* autogenerated from "macros/Sinks/CANIMXY.sci" */ +function CANIMXY() { + CANIMXY.prototype.define = function CANIMXY() { +win=-1; +clrs=-4; +N=2; +siz=1; +wpos=[[-1],[-1]]; +wdim=[[-1],[-1]]; +xmin=-15; +xmax=15; +ymin=-15; +ymax=+15; +nbr_curves=1; +model=scicos_model(); +model.sim=list("canimxy",4); +model.in1=[[1],[1]]; +model.in2=[[1],[1]]; +model.intyp=[[1],[1]]; +model.evtin=1; +model.rpar=[[xmin],[xmax],[ymin],[ymax]]; +model.ipar=[[win],[1],[N],[clrs],[siz],[0],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +exprs=[[string(nbr_curves)],[string(clrs)],[string(siz)],[string(win)],["[]"],["[]"],[string(xmin)],[string(xmax)],[string(ymin)],[string(ymax)],[string(N)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + CANIMXY.prototype.details = function CANIMXY() { + } + CANIMXY.prototype.get = function CANIMXY() { + } + CANIMXY.prototype.set = function CANIMXY() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,nbr_curves,clrs,siz,win,wpos,wdim,xmin,xmax,ymin,ymax,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of Curves"],["color (>0) or mark (<0)"],["line or mark size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin"],["Xmax"],["Ymin"],["Ymax"],["Buffer size"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break; +} +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; ok=false; -} else if ((ot>8||ot<1)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Output Type"),ot),msprintf(gettext("Must be in the interval %s."),"[1, 8]")); +} +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok=false; } -model.sim=list("convert",4); -if ((it==ot)) { -model.ipar=1; -} else { -if ((np==0)) { -if ((it==1)) { -if ((ot==3)) { -model.ipar=2; -} else if ((ot==4)) { -model.ipar=3; -} else if ((ot==5)) { -model.ipar=4; -} else if ((ot==6)) { -model.ipar=5; -} else if ((ot==7)) { -model.ipar=6; -} else if ((ot==8)) { -model.ipar=7; +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; +ok=false; } -} else if ((it==3)) { -if ((ot==1)) { -model.ipar=8; -} else if ((ot==4)) { -model.ipar=9; -} else if ((ot==5)) { -model.ipar=10; -} else if ((ot==6)) { -model.ipar=1; -} else if ((ot==7)) { -model.ipar=11; -} else if ((ot==8)) { -model.ipar=12; +if (nbr_curves<=0) { +mess=[[mess],["Number of curves cannot be negative or null"],[" "]]; +ok=false; } -} else if ((it==4)) { -if ((ot==1)) { -model.ipar=13; -} else if ((ot==3)) { -model.ipar=14; -} else if ((ot==5)) { -model.ipar=15; -} else if ((ot==6)) { -model.ipar=16; -} else if ((ot==7)) { -model.ipar=1; -} else if ((ot==8)) { -model.ipar=17; +if (N<1) { +mess=[[mess],["Buffer size must be at least 1"],[" "]]; +ok=false; } -} else if ((it==5)) { -if ((ot==1)) { -model.ipar=18; -} else if ((ot==3)) { -model.ipar=19; -} else if ((ot==4)) { -model.ipar=20; -} else if ((ot==6)) { -model.ipar=21; -} else if ((ot==7)) { -model.ipar=22; -} else if ((ot==8)) { -model.ipar=1; +if (N==1&&clrs>0) { +mess=[[mess],["Buffer size must be at least 2"],[" "]]; +ok=false; } -} else if ((it==6)) { -if ((ot==1)) { -model.ipar=23; -} else if ((ot==3)) { -model.ipar=1; -} else if ((ot==4)) { -model.ipar=24; -} else if ((ot==5)) { -model.ipar=25; -} else if ((ot==7)) { -model.ipar=26; -} else if ((ot==8)) { -model.ipar=27; +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; } -} else if ((it==7)) { -if ((ot==1)) { -model.ipar=28; -} else if ((ot==3)) { -model.ipar=29; -} else if ((ot==4)) { -model.ipar=1; -} else if ((ot==5)) { -model.ipar=30; -} else if ((ot==6)) { -model.ipar=31; -} else if ((ot==8)) { -model.ipar=32; +if (xmin>=xmax) { +mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +ok=false; } -} else if ((it==8)) { -if ((ot==1)) { -model.ipar=33; -} else if ((ot==3)) { -model.ipar=34; -} else if ((ot==4)) { -model.ipar=35; -} else if ((ot==5)) { -model.ipar=1; -} else if ((ot==6)) { -model.ipar=36; -} else if ((ot==7)) { -model.ipar=37; +if (!ok) { +message(mess); +} else { +in1=nbr_curves*ones(2,1); +in2=ones(2,1); +[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); +if (wpos==[]) { +wpos=[[-1],[-1]]; } +if (wdim==[]) { +wdim=[[-1],[-1]]; } -} else if ((np==1)) { -if ((it==1)) { -if ((ot==3)) { -model.ipar=38; -} else if ((ot==4)) { -model.ipar=39; -} else if ((ot==5)) { -model.ipar=40; -} else if ((ot==6)) { -model.ipar=41; -} else if ((ot==7)) { -model.ipar=42; -} else if ((ot==8)) { -model.ipar=43; +rpar=[[xmin],[xmax],[ymin],[ymax]]; +ipar=[[win],[1],[N],[clrs],[siz],[0],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.rpar=rpar; +model.ipar=ipar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } -} else if ((it==3)) { -if ((ot==1)) { -model.ipar=8; -} else if ((ot==4)) { -model.ipar=44; -} else if ((ot==5)) { -model.ipar=45; -} else if ((ot==6)) { -model.ipar=46; -} else if ((ot==7)) { -model.ipar=47; -} else if ((ot==8)) { -model.ipar=48; } -} else if ((it==4)) { -if ((ot==1)) { -model.ipar=13; -} else if ((ot==3)) { -model.ipar=14; -} else if ((ot==5)) { -model.ipar=49; -} else if ((ot==6)) { -model.ipar=50; -} else if ((ot==7)) { -model.ipar=51; -} else if ((ot==8)) { -model.ipar=52; + } } -} else if ((it==5)) { -if ((ot==1)) { -model.ipar=18; -} else if ((ot==3)) { -model.ipar=19; -} else if ((ot==4)) { -model.ipar=20; -} else if ((ot==6)) { -model.ipar=53; -} else if ((ot==7)) { -model.ipar=54; -} else if ((ot==8)) { -model.ipar=55; +/* autogenerated from "macros/Sinks/CANIMXY3D.sci" */ +function CANIMXY3D() { + CANIMXY3D.prototype.define = function CANIMXY3D() { +win=-1; +N=2; +clrs=[[1],[2],[3],[4],[5],[6],[7],[13]]; +siz=[[1],[1],[1],[1],[1],[1],[1],[1]]; +wpos=[[-1],[-1]]; +wdim=[[-1],[-1]]; +param3ds=[[50],[280]]; +vec_x=[[-15],[15]]; +vec_y=[[-15],[15]]; +vec_z=[[-15],[15]]; +nbr_curves=1; +model=scicos_model(); +model.sim=list("canimxy3d",4); +model.in1=[[1],[1],[1]]; +model.evtin=1; +model.in2=[[1],[1],[1]]; +model.intyp=[[1],[1],[1]]; +model.rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; +model.ipar=[[win],[8],[N],[clrs.slice()],[siz.slice()],[8],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +exprs=[[string(nbr_curves)],[strcat(string(clrs)," ")],[strcat(string(siz)," ")],[string(win)],["[]"],["[]"],[strcat(string(vec_x)," ")],[strcat(string(vec_y)," ")],[strcat(string(vec_z)," ")],[strcat(string(param3ds)," ")],[string(N)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + CANIMXY3D.prototype.details = function CANIMXY3D() { + } + CANIMXY3D.prototype.get = function CANIMXY3D() { + } + CANIMXY3D.prototype.set = function CANIMXY3D() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,nbr_curves,clrs,siz,win,wpos,wdim,vec_x,vec_y,vec_z,param3ds,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of curves"],["color (>0) or mark (<0)"],["line or mark size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin and Xmax"],["Ymin and Ymax"],["Zmin and Zmax"],["Alpha and Theta"],["Buffer size"]],list("vec",1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs); +if (!ok) { +break; } -} else if ((it==6)) { -if ((ot==1)) { -model.ipar=23; -} else if ((ot==3)) { -model.ipar=56; -} else if ((ot==4)) { -model.ipar=57; -} else if ((ot==5)) { -model.ipar=58; -} else if ((ot==7)) { -model.ipar=59; -} else if ((ot==8)) { -model.ipar=60; +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; +ok=false; } -} else if ((it==7)) { -if ((ot==1)) { -model.ipar=28; -} else if ((ot==3)) { -model.ipar=29; -} else if ((ot==4)) { -model.ipar=61; -} else if ((ot==5)) { -model.ipar=62; -} else if ((ot==6)) { -model.ipar=31; -} else if ((ot==8)) { -model.ipar=63; +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; +ok=false; } -} else if ((it==8)) { -if ((ot==1)) { -model.ipar=33; -} else if ((ot==3)) { -model.ipar=34; -} else if ((ot==4)) { -model.ipar=35; -} else if ((ot==5)) { -model.ipar=64; -} else if ((ot==6)) { -model.ipar=36; -} else if ((ot==7)) { -model.ipar=37; +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; +ok=false; } +if (size(clrs,"*")!=size(siz,"*")) { +mess=[[mess],["Colors and Size must have same size"],[" "]]; +ok=false; } -} else if ((np==2)) { -if ((it==1)) { -if ((ot==3)) { -model.ipar=65; -} else if ((ot==4)) { -model.ipar=66; -} else if ((ot==5)) { -model.ipar=67; -} else if ((ot==6)) { -model.ipar=68; -} else if ((ot==7)) { -model.ipar=69; -} else if ((ot==8)) { -model.ipar=70; +if (nbr_curves<=0) { +mess=[[mess],["Number of curves cannot be negative or null"],[" "]]; +ok=false; } -} else if ((it==3)) { -if ((ot==1)) { -model.ipar=8; -} else if ((ot==4)) { -model.ipar=71; -} else if ((ot==5)) { -model.ipar=72; -} else if ((ot==6)) { -model.ipar=73; -} else if ((ot==7)) { -model.ipar=74; -} else if ((ot==8)) { -model.ipar=75; +if (size(clrs,"*")<nbr_curves) { +mess=[[mess],["You must have at least same size for clrs and the number of curves"],[" "]]; +ok=false; } -} else if ((it==4)) { -if ((ot==1)) { -model.ipar=13; -} else if ((ot==3)) { -model.ipar=14; -} else if ((ot==5)) { -model.ipar=76; -} else if ((ot==6)) { -model.ipar=77; -} else if ((ot==7)) { -model.ipar=78; -} else if ((ot==8)) { -model.ipar=79; +if (N<1) { +mess=[[mess],["Buffer size must be at least 1"],[" "]]; +ok=false; } -} else if ((it==5)) { -if ((ot==1)) { -model.ipar=18; -} else if ((ot==3)) { -model.ipar=19; -} else if ((ot==4)) { -model.ipar=20; -} else if ((ot==6)) { -model.ipar=80; -} else if ((ot==7)) { -model.ipar=81; -} else if ((ot==8)) { -model.ipar=82; +if (N<2) { +for (i=1;i<=nbr_curves;i+=1) { +if (clrs[i-1]>0) { +mess=[[mess],["Buffer size must be at least 2 or Change a color (must be <0)"],[" "]]; +ok=false; } -} else if ((it==6)) { -if ((ot==1)) { -model.ipar=23; -} else if ((ot==3)) { -model.ipar=83; -} else if ((ot==4)) { -model.ipar=84; -} else if ((ot==5)) { -model.ipar=85; -} else if ((ot==7)) { -model.ipar=86; -} else if ((ot==8)) { -model.ipar=87; } -} else if ((it==7)) { -if ((ot==1)) { -model.ipar=28; -} else if ((ot==3)) { -model.ipar=29; -} else if ((ot==4)) { -model.ipar=88; -} else if ((ot==5)) { -model.ipar=89; -} else if ((ot==6)) { -model.ipar=31; -} else if ((ot==8)) { -model.ipar=90; } -} else if ((it==8)) { -if ((ot==1)) { -model.ipar=33; -} else if ((ot==3)) { -model.ipar=34; -} else if ((ot==4)) { -model.ipar=35; -} else if ((ot==5)) { -model.ipar=91; -} else if ((ot==6)) { -model.ipar=36; -} else if ((ot==7)) { -model.ipar=37; +if (vec_y[1-1]>=vec_y[2-1]) { +mess=[[mess],["Ymax must be higher than Ymin"],[" "]]; +ok=false; } +if (vec_x[1-1]>=vec_x[2-1]) { +mess=[[mess],["Xmax must be higher than Xmin"],[" "]]; +ok=false; } +if (vec_z[1-1]>=vec_z[2-1]) { +mess=[[mess],["Zmax must be higher than Zmin"],[" "]]; +ok=false; } +if (!ok) { +message(mess); +} else { +in1=nbr_curves*ones(3,1); +in2=ones(3,1); +[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); +if (wpos==[]) { +wpos=[[-1],[-1]]; } -in1=[model.in1,model.in2]; -out=[model.out,model.out2]; -if (ok) { -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (wdim==[]) { +wdim=[[-1],[-1]]; } -if (ok) { +rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; +size_siz=size(siz,"*"); +ipar=[[win],[size_siz],[N],[clrs.slice()],[siz.slice()],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.rpar=rpar; +model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -15888,161 +14439,180 @@ break; } } } -/* autogenerated from "macros/IntegerOp/SRFLIPFLOP.sci" */ -function SRFLIPFLOP() { - SRFLIPFLOP.prototype.define = function SRFLIPFLOP() { -scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["SRFLIPFLOP"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[298.504,201.45067],sz=[40,40],flip=true,theta=0,exprs=[["[0 1;1 0;1 0;1 0;0 1;0 1;0 0;0 0]"],["1"]],pin=[[4],[10],[12]],pout=[[3],[8]],pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit=[["E"],["E"]]),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=[[1],[1]],out2=[[1],[1]],outtyp=[[5],[5]],evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[[[0,1],[1,0],[1,0],[1,0],[0,1],[0,1],[0,0],[0,0]]-1]),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[2-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.23733,254.25067],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=6,pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8[0-1]),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[3-1]=scicos_link(xx=[[347.07543],[363.03733],[363.03733]],yy=[[228.11733],[228.11733],[248.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[5,1,1]); -scs_m.objs[4-1]=scicos_link(xx=[[290.6659],[272.104],[272.104],[289.93257]],yy=[[274.25067],[274.25067],[231.45067],[231.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[1,1,1]); -scs_m.objs[5-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[363.03733,248.584],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=3,pout=[[6],[14]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[6-1]=scicos_link(xx=[[363.03733],[363.03733],[344.95162]],yy=[[248.584],[274.25067],[274.25067]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[2,1,1]); -scs_m.objs[7-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[367.07543,204.784],sz=[20,20],flip=true,theta=0,exprs="2",pin=8,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[8-1]=scicos_link(xx=[[347.07543],[367.07543]],yy=[[214.784],[214.784]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,2,0],to=[7,1,1]); -scs_m.objs[9-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[249.93257,211.45067],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=10,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[10-1]=scicos_link(xx=[[269.93257],[289.93257]],yy=[[221.45067],[221.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[9,1,0],to=[1,2,1]); -scs_m.objs[11-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[249.93257,201.45067],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=12,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[12-1]=scicos_link(xx=[[269.93257],[289.93257]],yy=[[211.45067],[211.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[11,1,0],to=[1,3,1]); -scs_m.objs[13-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[383.03733,238.584],sz=[20,20],flip=true,theta=0,exprs="1",pin=14,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[14-1]=scicos_link(xx=[[363.03733],[383.03733]],yy=[[248.584],[248.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,2,0],to=[13,1,1]); +/* autogenerated from "macros/Sinks/CEVENTSCOPE.sci" */ +function CEVENTSCOPE() { + CEVENTSCOPE.prototype.define = function CEVENTSCOPE() { +nclock=1; +win=-1; +clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; +wdim=[[600],[400]]; +wpos=[[-1],[-1]]; +per=30; model=scicos_model(); -model.sim="csuper"; -model.in1=[[1],[1]]; -model.in2=[[1],[1]]; -model.out=[[1],[1]]; -model.out2=[[1],[1]]; -model.intyp=[5,5]; -model.outtyp=[5,5]; -model.blocktype="h"; -model.firing=false; -model.dep_ut=[true,false]; -model.rpar=scs_m; +model.sim=list("cevscpe",4); +model.evtin=1; +model.rpar=per; +model.ipar=[[win],[1],[clrs[nclock-1]],[wpos.slice()],[wdim.slice()]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[sci2exp(nclock)],[strcat(sci2exp(clrs[nclock-1])," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(per)]]; gr_i=[]; -x=standard_define([2,3],model,[],gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - SRFLIPFLOP.prototype.details = function SRFLIPFLOP() { + CEVENTSCOPE.prototype.details = function CEVENTSCOPE() { } - SRFLIPFLOP.prototype.get = function SRFLIPFLOP() { + CEVENTSCOPE.prototype.get = function CEVENTSCOPE() { } - SRFLIPFLOP.prototype.set = function SRFLIPFLOP() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="DOLLAR_m") { -path=i; -break; -} -} -newpar=list(); -xx=arg1.model.rpar.objs[path-1]; -exprs=xx.graphics.exprs[1-1]; -model=xx.model; -init_old=model.odstate[1-1]; + CEVENTSCOPE.prototype.set = function CEVENTSCOPE() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; while (true) { -[ok,init,exprs0]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"SRFLIPFLOP")],[" "],[gettext("SR flip-flop")],[" "],[gettext("The \'Initial Value\' must be 0 or 1 of type int8")],[gettext(" - Negative values are considered as int8(0)")],[gettext(" - Positive values are considered as int8(1)")],[" "]],gettext("Initial Value"),list("vec",1),exprs); +[ok,nclock,clrs,win,wpos,wdim,per,exprs]=scicos_getvalue("Set Scope parameters",[["Number of event inputs"],["colors c (>0) or mark (<0)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Refresh period"]],list("vec",1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",1),exprs); +nclock=int(nclock); +clrs=int(clrs); +win=int(win); if (!ok) { break; } -if (init<=0) { -init=int8[0-1]; -} else if (init>0) { -init=int8[1-1]; +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; +ok=false; +} +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; +ok=false; +} +if (nclock<=0) { +mess=[[mess],["Block must have at least one input event"],[" "]]; +ok=false; +} +if (size(clrs,"*")!=nclock) { +mess=[[mess],["Inputs color c size must be equal to Number of inputs"],[" "]]; +ok=false; +} +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; +ok=false; +} +if (per<=0) { +mess=[[mess],["Refresh period must be positive"],[" "]]; +ok=false; } if (ok) { -xx.graphics.exprs[1-1]=exprs0; -model.odstate[1-1]=init; -xx.model=model; -arg1.model.rpar.objs[path-1]=xx; -break; +[model,graphics,ok]=set_io(model,graphics,list(),list(),ones(nclock,1),[]); +} else { +message([["Some specified values are inconsistent:"],[" "],[mess]]); } +if (ok) { +if (wpos==[]) { +wpos=[[-1],[-1]]; +} +if (wdim==[]) { +wdim=[[-1],[-1]]; +} +rpar=per; +ipar=[[win],[1],[clrs.slice()],[wpos.slice()],[wdim.slice()]]; +model.rpar=rpar; +model.ipar=ipar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } -needcompile=0; -if (init_old!=init) { -newpar[size(newpar)+1-1]=path; -needcompile=2; } -x=arg1; -y=needcompile; -typ=newpar; } } -/* autogenerated from "macros/IntegerOp/BITSET.sci" */ -function BITSET() { - BITSET.prototype.define = function BITSET() { +/* autogenerated from "macros/Sinks/CFSCOPE.sci" */ +function CFSCOPE() { + CFSCOPE.prototype.define = function CFSCOPE() { +win=-1; +wdim=[[600],[400]]; +wpos=[[-1],[-1]]; +clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; +N=2; +ymin=-15; +ymax=+15; +per=30; model=scicos_model(); -model.sim=list("bit_set_32",4); -model.in1=1; -model.in2=1; -model.out=1; -model.out2=1; -model.intyp=3; -model.outtyp=3; -model.opar=list(uint32[0-1]); +model.sim=list("cfscope",4); +model.evtin=1; +model.rpar=[[0],[ymin],[ymax],[per]]; +model.ipar=[[win],[1],[N],[clrs],[wpos],[wdim],[1],[1]]; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[sci2exp(3)],[sci2exp(0)]]; +exprs=[[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(ymin)],[string(ymax)],[string(per)],[string(N)],[string([1])]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - BITSET.prototype.details = function BITSET() { + CFSCOPE.prototype.details = function CFSCOPE() { } - BITSET.prototype.get = function BITSET() { + CFSCOPE.prototype.get = function CFSCOPE() { } - BITSET.prototype.set = function BITSET() { + CFSCOPE.prototype.set = function CFSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,Datatype,bit,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"BITSET")],[" "],[gettext("Set a bit")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Index of Bit (0 is least significant)")]],list("vec",1,"vec",1),exprs); +[ok,clrs,win,wpos,wdim,ymin,ymax,per,N,wu,exprs]=scicos_getvalue("Set Scope parameters",[["Color (>0) or mark (<0) vector (8 entries)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin"],["Ymax"],["Refresh period"],["Buffer size","Links to view"]],list("vec",8,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",-1),exprs); if (!ok) { break; } -in1=[model.in1,model.in2]; -if (floor[bit-1]!=bit) { -block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; ok=false; } -if ((Datatype==3)||(Datatype==6)) { -if (bit>31||bit<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok=false; } -bit=uint32[bit-1]; -n=2^bit; -n=uint32[n-1]; -model.sim=list("bit_set_32",4); -} else if ((Datatype==4)||(Datatype==7)) { -if (bit>15||bit<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; ok=false; } -bit=uint16[bit-1]; -n=2^bit; -n=uint16[n-1]; -model.sim=list("bit_set_16",4); -} else if ((Datatype==5)||(Datatype==8)) { -if (bit>7||bit<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); +if (per<=0) { +mess=[[mess],["Refresh period must be positive"],[" "]]; ok=false; } -bit=uint8[bit-1]; -n=2^bit; -n=uint8[n-1]; -model.sim=list("bit_set_8",4); -} else { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +if (N<2) { +mess=[[mess],["Buffer size must be at least 2"],[" "]]; ok=false; } -if (ok) { -it=Datatype; -ot=Datatype; -out=[1,1]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; +} +if (wu<0) { +mess=[[mess],["Link to view must be positive"],[" "]]; +ok=false; +} +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (ok) { +if (wpos==[]) { +wpos=[[-1],[-1]]; +} +if (wdim==[]) { +wdim=[[-1],[-1]]; +} +rpar=[[0],[ymin],[ymax],[per]]; +if (size(clrs,"*")>8) { +clrs=clrs.slice(1-1,8); +} +if (size(clrs,"*")<8) { +clrs[8-1]=0; +} +ipar=[[win],[1],[N],[clrs.slice()],[wpos.slice()],[wdim.slice()],[size(wu,"*")],[wu.slice()]]; +model.rpar=rpar; +model.ipar=ipar; +model.firing=[]; +model.dep_ut=[true,false]; graphics.exprs=exprs; -model.opar=list(n); x.graphics=graphics; x.model=model; break; @@ -16050,574 +14620,810 @@ break; } } } -/* autogenerated from "macros/IntegerOp/JKFLIPFLOP.sci" */ -function JKFLIPFLOP() { - JKFLIPFLOP.prototype.define = function JKFLIPFLOP() { -scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["JKFLIPFLOP"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.96961,261.584],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=7,pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8[0-1]),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="-1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=-1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=3,pout=[],pein=[],peout=[[7],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[3-1]=scicos_link(xx=[[357.15774],[362.99107],[379.71726]],yy=[[277.1131],[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,1,1]); -scs_m_1.objs[4-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[240.01488,267.1131],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[5-1]=scicos_link(xx=[[260.01488],[280.01488]],yy=[[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[1,1,1]); -scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[7-1]=scicos_link(xx=[[408.28869],[408.28869]],yy=[[241.39881],[211.39881]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); -scs_m.objs[2-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[292.52452,323.54888],sz=[60,40],flip=true,theta=0,exprs=[],pin=14,pout=[],pein=[],peout=8,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[3-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[302.79613,202.52782],sz=[40,40],flip=true,theta=0,exprs=[["[0;1;1;1;0;0;1;0]"],["0"]],pin=[[5],[16],[18]],pout=4,pein=8,peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=1,out2=1,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[[[0],[1],[1],[1],[0],[0],[1],[0]]-1]),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[4-1]=scicos_link(xx=[[351.36756],[368.82793],[368.82793]],yy=[[222.52782],[222.52782],[223.06473]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[10,1,1]); -scs_m.objs[5-1]=scicos_link(xx=[[291.39818],[274.18235],[274.18235],[294.2247]],yy=[[281.584],[281.584],[232.52782],[232.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); -scs_m.objs[6-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[368.82793,243.45067],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=11,pout=[[7],[20]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[7-1]=scicos_link(xx=[[368.82793],[368.82793],[345.68389]],yy=[[243.45067],[281.584],[281.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[6,1,0],to=[1,1,1]); -scs_m.objs[8-1]=scicos_link(xx=[[322.52452],[374.69743],[374.69743],[322.79613]],yy=[[317.8346],[317.8346],[248.24211],[248.24211]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[3,1,1]); -scs_m.objs[9-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[377.63217,159.25363],sz=[60,40],flip=true,theta=0,exprs=[["1"],["5"],["5"],["0"]],pin=12,pout=22,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[5],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[10-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[368.82793],[223.06473]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=4,pout=[[11],[12]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[11-1]=scicos_link(xx=[[368.82793],[368.82793]],yy=[[223.06473],[243.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[6,1,1]); -scs_m.objs[12-1]=scicos_link(xx=[[368.82793],[368.82793],[369.06074]],yy=[[223.06473],[177.7867],[179.25363]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,2,0],to=[9,1,1]); -scs_m.objs[13-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[243.95309,333.54888],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=14,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[14-1]=scicos_link(xx=[[263.95309],[283.95309]],yy=[[343.54888],[343.54888]],id="drawlink",thick=[0,0],ct=[1,1],from=[13,1,0],to=[2,1,1]); -scs_m.objs[15-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[254.2247,212.52782],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=16,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[16-1]=scicos_link(xx=[[274.2247],[294.2247]],yy=[[222.52782],[222.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[15,1,0],to=[3,2,1]); -scs_m.objs[17-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[254.2247,202.52782],sz=[20,20],flip=true,theta=0,exprs="3",pin=[],pout=18,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=3,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[18-1]=scicos_link(xx=[[274.2247],[294.2247]],yy=[[212.52782],[212.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[17,1,0],to=[3,3,1]); -scs_m.objs[19-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[388.82793,233.45067],sz=[20,20],flip=true,theta=0,exprs="1",pin=20,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[20-1]=scicos_link(xx=[[368.82793],[388.82793]],yy=[[243.45067],[243.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[6,2,0],to=[19,1,1]); -scs_m.objs[21-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[466.2036,169.25363],sz=[20,20],flip=true,theta=0,exprs="2",pin=22,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[22-1]=scicos_link(xx=[[446.2036],[466.2036]],yy=[[179.25363],[179.25363]],id="drawlink",thick=[0,0],ct=[1,1],from=[9,1,0],to=[21,1,1]); +/* autogenerated from "macros/Sinks/CLKOUTV_f.sci" */ +function CLKOUTV_f() { + CLKOUTV_f.prototype.define = function CLKOUTV_f() { +prt=1; model=scicos_model(); -model.sim="csuper"; -model.in1=[[1],[1],[1]]; -model.in2=[[1],[1],[1]]; -model.out=[[1],[1]]; -model.out2=[[1],[1]]; -model.intyp=[5,1,5]; -model.outtyp=[5,5]; -model.blocktype="h"; -model.firing=false; -model.dep_ut=[true,false]; -model.rpar=scs_m; -gr_i=[]; -x=standard_define([2,3],model,[],gr_i); +model.sim="output"; +model.evtin=1; +model.ipar=prt; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +exprs=string(prt); +x=standard_define([1,1],model,exprs," "); } - JKFLIPFLOP.prototype.details = function JKFLIPFLOP() { + CLKOUTV_f.prototype.details = function CLKOUTV_f() { } - JKFLIPFLOP.prototype.get = function JKFLIPFLOP() { + CLKOUTV_f.prototype.get = function CLKOUTV_f() { } - JKFLIPFLOP.prototype.set = function JKFLIPFLOP() { -for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { -o=arg1.model.rpar.objs[i-1]; -if (typeof(o)=="Block"&&o.gui=="DOLLAR_m") { -path=i; + CLKOUTV_f.prototype.set = function CLKOUTV_f() { +x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +while (true) { +[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CLKOUTV_f")],[" "],[gettext("Event output port")]],gettext("Port number"),list("vec",1),exprs); +if (!ok) { +break; +} +prt=int(prt); +if (prt<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +} else { +model.ipar=prt; +model.evtin=1; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; break; } } -newpar=list(); -xx=arg1.model.rpar.objs[path-1]; -exprs=xx.graphics.exprs[1-1]; -model=xx.model; -init_old=model.odstate[1-1]; + } +} +/* autogenerated from "macros/Sinks/CLKOUT_f.sci" */ +function CLKOUT_f() { + CLKOUT_f.prototype.define = function CLKOUT_f() { +prt=1; +model=scicos_model(); +model.sim="output"; +model.evtin=1; +model.ipar=prt; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +exprs=string(prt); +x=standard_define([1,1],model,exprs," "); + } + CLKOUT_f.prototype.details = function CLKOUT_f() { + } + CLKOUT_f.prototype.get = function CLKOUT_f() { + } + CLKOUT_f.prototype.set = function CLKOUT_f() { +x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +exprs=exprs[1-1]; while (true) { -[ok,init,exprs0]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"JKFLIPFLOP")],[" "],[gettext("JK flip-flop")],[" "],[gettext("The \'Initial Value\' must be 0 or 1 of type int8")],[gettext(" - Negative values are considered as int8(0)")],[gettext(" - Positive values are considered as int8(1)")],[" "]],gettext("Initial Value"),list("vec",1),exprs); +[ok,prt,exprs]=scicos_getvalue("Set Event Output block parameters","Port number",list("vec",1),exprs); if (!ok) { break; } -if (init<=0) { -init=int8[0-1]; -} else if (init>0) { -init=int8[1-1]; -} -if (ok) { -xx.graphics.exprs[1-1]=exprs0; -model.odstate[1-1]=init; -xx.model=model; -arg1.model.rpar.objs[path-1]=xx; +prt=int(prt); +if (prt<=0) { +message("Port number must be a positive integer"); +} else { +model.ipar=prt; +model.evtin=1; +model.firing=[]; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; break; } } -needcompile=0; -if (init_old!=init) { -newpar[size(newpar)+1-1]=1; -needcompile=2; + } } +/* autogenerated from "macros/Sinks/CMAT3D.sci" */ +function CMAT3D() { + CMAT3D.prototype.define = function CMAT3D() { +cmin=0; +cmax=100; +colormap=this.jetcolormap[25-1]; +size_c=25; +x=-1; +y=-1; +size_x=1; +size_y=1; +model=scicos_model(); +model.sim=list("cmat3d",4); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.evtin=1; +model.ipar=[[cmin],[cmax],[size_c],[size_x],[size_y]]; +model.rpar=[[colormap.slice()],[x],[y]]; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs=[[strcat(string(x)," ")],[strcat(string(y)," ")],[string("jetcolormap(25)")],[string(cmin)],[string(cmax)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + CMAT3D.prototype.details = function CMAT3D() { + } + CMAT3D.prototype.get = function CMAT3D() { + } + CMAT3D.prototype.set = function CMAT3D() { x=arg1; -y=needcompile; -typ=newpar; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,vec_x,vec_y,colormap,cmin,cmax,exprs]=scicos_getvalue("Set Scope parameters",[["Bounds Vector X (-1 for standard)"],["Bounds Vector Y (-1 for standard)"],["ColorMap"],["Zmin"],["Zmax"]],list("vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1),exprs); +if (!ok) { +break; +} +mess=[]; +if (size(vec_x,"*")!=size(vec_y,"*")) { +mess=[[mess],["Vector X and Vector Y must have the same size"],[" "]]; +ok=false; +} +if (cmax<=cmin) { +mess=[[mess],["Error with minimum and maximum value"],[" "]]; +ok=false; +} +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); +} +if (ok) { +size_x=size(vec_x,"*"); +size_c=size(colormap.slice(),1); +ipar=[[cmin],[cmax],[size_c],[size_x]]; +rpar=[[colormap.slice()],[vec_x.slice()],[vec_y.slice()]]; +model.ipar=ipar; +model.rpar=rpar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} } } -/* autogenerated from "macros/IntegerOp/DLATCH.sci" */ -function DLATCH() { - DLATCH.prototype.define = function DLATCH() { -scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DLATCH"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[0-1]),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[233.37693,320.30536],sz=[60,60],flip=true,theta=0,exprs=[["0"],["1"]],pin=13,pout=[],pein=[],peout=[[6],[0]],gr_i=list([["txt=[\'If in>0\';\' \';\' then else\'];"],["xstringb(orig(1),orig(2),txt,sz(1),sz(2),\'fill\');"]],8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); -scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=[["2"],["1"],["5"],["0"]],pin=[[15],[7]],pout=5,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=9,pein=6,peout=[],gr_i=list("xstringb(orig(1),orig(2),\'S/H\',sz(1),sz(2),\'fill\')",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[5-1]=scicos_link(xx=[[221.46044],[225.15013]],yy=[[280.24498],[280.24498]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,1,1]); -scs_m.objs[6-1]=scicos_link(xx=[[253.37693],[253.72156]],yy=[[314.59108],[305.95927]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[4,1,1]); -scs_m.objs[7-1]=scicos_link(xx=[[138.19704],[144.31759]],yy=[[273.44465],[273.57832]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,2,1]); -scs_m.objs[8-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[317.46698,309.46812],sz=[60,40],flip=true,theta=0,exprs=[["1"],["5"],["5"],["0"]],pin=11,pout=17,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[5],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[9-1]=scicos_link(xx=[[282.29299],[305.09603],[305.09603]],yy=[[280.24498],[280.52797],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[10,1,1]); -scs_m.objs[10-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[305.09603,280.83282],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=9,pout=[[11],[19]],pein=[],peout=[],gr_i=list([],8),id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[11-1]=scicos_link(xx=[[305.09603],[305.09603],[308.89555]],yy=[[280.83282],[329.46812],[329.46812]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[8,1,1]); -scs_m.objs[12-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[184.8055,340.30536],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=13,pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[13-1]=scicos_link(xx=[[204.8055],[224.8055]],yy=[[350.30536],[350.30536]],id="drawlink",thick=[0,0],ct=[1,1],from=[12,1,0],to=[2,1,1]); -scs_m.objs[14-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[104.31759,276.91165],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=15,pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[15-1]=scicos_link(xx=[[124.31759],[144.31759]],yy=[[286.91165],[286.91165]],id="drawlink",thick=[0,0],ct=[1,1],from=[14,1,0],to=[3,1,1]); -scs_m.objs[16-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[406.03841,319.46812],sz=[20,20],flip=true,theta=0,exprs="2",pin=17,pout=[],pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[17-1]=scicos_link(xx=[[386.03841],[406.03841]],yy=[[329.46812],[329.46812]],id="drawlink",thick=[0,0],ct=[1,1],from=[8,1,0],to=[16,1,1]); -scs_m.objs[18-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[325.09603,270.83282],sz=[20,20],flip=true,theta=0,exprs="1",pin=19,pout=[],pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[19-1]=scicos_link(xx=[[305.09603],[325.09603]],yy=[[280.83282],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,2,0],to=[18,1,1]); +/* autogenerated from "macros/Sinks/CMATVIEW.sci" */ +function CMATVIEW() { + CMATVIEW.prototype.define = function CMATVIEW() { +cmin=0; +cmax=100; +size_c=25; +colormap=this.jetcolormap[size_c-1]; +alpha_c=0.24; +beta_c=1; model=scicos_model(); -model.sim="csuper"; -model.in1=[[1],[1]]; -model.in2=[[1],[1]]; -model.out=[[1],[1]]; -model.out2=[[1],[1]]; -model.intyp=[5,-1]; -model.outtyp=[5,5]; -model.blocktype="h"; -model.firing=false; +model.sim=list("cmatview",4); +model.in1=-1; +model.in2=-2; +model.intyp=1; +model.evtin=1; +model.ipar=[[cmin],[cmax],[size_c]]; +model.rpar=[[alpha_c],[beta_c],[colormap.slice()]]; +model.blocktype="c"; model.dep_ut=[true,false]; -model.rpar=scs_m; +exprs=[[string("jetcolormap(25)")],[string(cmin)],[string(cmax)]]; gr_i=[]; -x=standard_define([2,3],model,[],gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - DLATCH.prototype.details = function DLATCH() { + CMATVIEW.prototype.details = function CMATVIEW() { } - DLATCH.prototype.get = function DLATCH() { + CMATVIEW.prototype.get = function CMATVIEW() { } - DLATCH.prototype.set = function DLATCH() { + CMATVIEW.prototype.set = function CMATVIEW() { x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,colormap,cmin,cmax,exprs]=scicos_getvalue("Set Scope parameters",[["ColorMap"],["Minimum level range"],["Maximum level range"]],list("vec",-1,"vec",1,"vec",1),exprs); +if (!ok) { +break; +} +mess=[]; +if (cmax<=cmin) { +mess=[[mess],["Error with minimum and maximum value"],[" "]]; +ok=false; +} +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); +} +if (ok) { +size_c=size(colormap.slice(),1); +sol=inv([[cmin,1],[cmax,1]])*[[1],[size_c/3]]; +alpha_c=sol[1-1]; +beta_c=sol[2-1]; +ipar=[[cmin],[cmax],[size_c]]; +rpar=[[alpha_c],[beta_c],[colormap.slice()]]; +model.ipar=ipar; +model.rpar=rpar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} } } -/* autogenerated from "macros/IntegerOp/BITCLEAR.sci" */ -function BITCLEAR() { - BITCLEAR.prototype.define = function BITCLEAR() { +/* autogenerated from "macros/Sinks/CMSCOPE.sci" */ +function CMSCOPE() { + CMSCOPE.prototype.define = function CMSCOPE() { +win=-1; +in1=[[1],[1]]; +wdim=[[-1],[-1]]; +wpos=[[-1],[-1]]; +clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; +N=20; +ymin=[[-1],[-5]]; +ymax=[[1],[5]]; +per=[[30],[30]]; +yy=[[transpose(ymin.slice())],[transpose(ymax.slice())]]; +period=transpose(per.slice()); model=scicos_model(); -model.sim=list("bit_clear_32",4); -model.in1=1; -model.in2=1; -model.out=1; -model.out2=1; -model.intyp=3; -model.outtyp=3; -model.opar=list(int32[0-1]); +model.sim=list("cmscope",4); +model.in1=in1; +model.in2=[[1],[1]]; +model.intyp=[[1],[1]]; +model.evtin=1; +model.rpar=[[0],[period.slice()],[yy.slice()]]; +model.ipar=[[win],[size(in1,"*")],[N],[wpos.slice()],[wdim.slice()],[in1.slice()],[clrs.slice(1-1,sum(in1))]]; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[sci2exp(3)],[sci2exp(0)]]; +exprs=[[strcat(string(in1)," ")],[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp([])],[strcat(string(ymin)," ")],[strcat(string(ymax)," ")],[strcat(string(per)," ")],[string(N)],[string(0)],[emptystr()]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - BITCLEAR.prototype.details = function BITCLEAR() { + CMSCOPE.prototype.details = function CMSCOPE() { } - BITCLEAR.prototype.get = function BITCLEAR() { + CMSCOPE.prototype.get = function CMSCOPE() { } - BITCLEAR.prototype.set = function BITCLEAR() { + CMSCOPE.prototype.set = function CMSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,Datatype,bit,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"BITCLEAR")],[" "],[gettext("Clear a bit")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Index of Bit (0 is least significant)")]],list("vec",1,"vec",1),exprs); +[ok,in1,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs]=scicos_getvalue("Set Scope parameters",[["Input ports sizes"],["Drawing colors (>0) or mark (<0)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin vector"],["Ymax vector"],["Refresh period"],["Buffer size"],["Accept herited events 0/1","Name of Scope (label&Id)"]],list("vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec",1,"vec",1,"str",1),exprs); if (!ok) { break; } -in1=[model.in1,model.in2]; -if (floor[bit-1]!=bit) { -block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); +mess=[]; +if (size(in1,"*")<=0) { +mess=[[mess],["Block must have at least one input port"],[" "]]; ok=false; -} else if ((Datatype==3)||(Datatype==6)) { -if (bit>31||bit<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); +} +if (min(in1)<=0) { +mess=[[mess],["Port sizes must be positive"],[" "]]; ok=false; -} else { -bit=uint32[bit-1]; -n=(2^32-1)-2^bit; -n=uint32[n-1]; -model.sim=list("bit_clear_32",4); } -} else if ((Datatype==4)||(Datatype==7)) { -if (bit>15||bit<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); +if (size(clrs,"*")<sum(in1)) { +mess=[[mess],["Not enough colors defined (at least "+string(sum(in1))+")"],[" "]]; ok=false; -} else { -bit=uint16[bit-1]; -n=(2^16-1)-2^bit; -n=uint16[n-1]; -model.sim=list("bit_clear_16",4); } -} else if ((Datatype==5)||(Datatype==8)) { -if (bit>7||bit<0) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; ok=false; -} else { -bit=uint8[bit-1]; -n=(2^8-1)-2^bit; -n=uint8[n-1]; -model.sim=list("bit_clear_8",4); } -} else { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; +ok=false; +} +if (win<-1) { +mess=[[mess],["Window number can\'t be < -1"],[" "]]; +ok=false; +} +if (size(per,"*")!=size(ymin,"*")) { +mess=[[mess],["Size of Refresh Period must equal size of Ymin/Ymax vector"],[" "]]; +ok=false; +} +for (i=1;i<=size(per,"*");i+=1) { +if ((per[i-1]<=0)) { +mess=[[mess],["Refresh Period must be positive"],[" "]]; +ok=false; +} +} +if (N<2) { +mess=[[mess],["Buffer size must be at least 2"],[" "]]; +ok=false; +} +if (or(ymin>=ymax)) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; +} +if (!or(heritance==[0,1])) { +mess=[[mess],["Accept herited events must be 0 or 1"],[" "]]; ok=false; } +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); +} if (ok) { -it=Datatype; -ot=Datatype; -out=[1,1]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +in1=in1.slice(); +a=size(in1,1); +in2=ones(a,1); +[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(a,1)),list(),ones(1-heritance,1),[]); } if (ok) { +if (wpos==[]) { +wpos=[[-1],[-1]]; +} +if (wdim==[]) { +wdim=[[-1],[-1]]; +} +if (ok) { +period=transpose(per.slice()); +yy=[[transpose(ymin.slice())],[transpose(ymax.slice())]]; +rpar=[[0],[period.slice()],[yy.slice()]]; +clrs=clrs.slice(1-1,sum(in1)); +ipar=[[win],[size(in1,"*")],[N],[wpos.slice()],[wdim.slice()],[in1.slice()],[clrs.slice()],[heritance]]; +model.evtin=ones(1-heritance,1); +model.dstate=[]; +model.rpar=rpar; +model.ipar=ipar; +model.label=nom; +graphics.id=nom; graphics.exprs=exprs; -model.opar=list(n); x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/IntegerOp/EXTRACTBITS.sci" */ -function EXTRACTBITS() { - EXTRACTBITS.prototype.define = function EXTRACTBITS() { -numb=[]; +/* autogenerated from "macros/Sinks/CSCOPE.sci" */ +function CSCOPE() { + CSCOPE.prototype.define = function CSCOPE() { +win=-1; +wdim=[[600],[400]]; +wpos=[[-1],[-1]]; +clrs=[[1],[3],[5],[7],[9],[11],[13],[15]]; +N=20; +ymin=-15; +ymax=+15; +per=30; model=scicos_model(); -model.sim=list("extract_bit_32_UH0",4); -model.in1=1; +model.sim=list("cscope",4); +model.in1=-1; model.in2=1; -model.out=1; -model.out2=1; -model.intyp=3; -model.outtyp=3; -model.ipar=[0,numb]; +model.evtin=1; +model.rpar=[[0],[ymin],[ymax],[per]]; +model.ipar=[[win],[1],[N],[clrs],[wpos],[wdim]]; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[sci2exp(3)],[sci2exp(1)],[sci2exp(0)],[sci2exp(0)]]; +exprs=[[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(ymin)],[string(ymax)],[string(per)],[string(N)],[transpose(string(0))],[emptystr()]]; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - EXTRACTBITS.prototype.details = function EXTRACTBITS() { + CSCOPE.prototype.details = function CSCOPE() { } - EXTRACTBITS.prototype.get = function EXTRACTBITS() { + CSCOPE.prototype.get = function CSCOPE() { } - EXTRACTBITS.prototype.set = function EXTRACTBITS() { + CSCOPE.prototype.set = function CSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,Datatype,rule,bit,scal,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"EXTRACTBITS")],[" "],[gettext("Bits Extraction")],[" "],[gettext(" - Bits to Extract:")],[gettext(" 1 Upper Half")],[gettext(" 2 Lower Half")],[gettext(" 3 Range from MSB")],[gettext(" 4 Range to LSB")],[gettext(" 5 Range of Bits")],[gettext(" - Number of Bits or Index of bit : Index 0 is LSB")],[gettext(" If \'Bits to Extract\' is set to \'Range of bits\': [Start, End]")],[" "]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Bits to extract")],[gettext("Number of Bits or Index of Bit")],[gettext("Treat Bit Field as an Integer (0:No, 1:Yes)")]],list("vec",1,"vec",1,"vec",-1,"vec",1),exprs); +[ok,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs]=scicos_getvalue("Set Scope parameters",[["Color (>0) or mark (<0) vector (8 entries)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin"],["Ymax"],["Refresh period"],["Buffer size","Accept herited events 0/1","Name of Scope (label&Id)"]],list("vec",8,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"str",1),exprs); if (!ok) { break; } -bitstr=strcat(string(bit.slice())," "); -if ((rule<1)||(rule>5)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Bits to Extract"),rule),msprintf(gettext("Must be in the interval %s."),"[1, 5]")); +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; ok=false; -} else if (scal<0||scal>1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Treat Bit Field as an Integer"),scal),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +} +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok=false; -} else { -in1=[model.in1,model.in2]; -bit=int(bit); -rule=int(rule); -if ((rule==3)||(rule==4)) { -if ((size(bit,"*")!=1)) { -block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must be a single value.")); +} +if (win<-1) { +mess=[[mess],["Window number can\'t be < -1"],[" "]]; ok=false; -} else { -numb=bit; } -} else if ((rule==5)) { -if ((size(bit,"*")!=2)) { -block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must have this form: [Start, End].")); +if (per<=0) { +mess=[[mess],["Refresh period must be positive"],[" "]]; ok=false; -} else if (bit[1-1]>bit[2-1]) { -block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("\'Start\' must be less than \'End\'."))); +} +if (N<2) { +mess=[[mess],["Buffer size must be at least 2"],[" "]]; ok=false; -} else { -numb=bit[2-1]-bit[1-1]; } -} else { -bit=0; -numb=[]; +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; } +if (!or(heritance==[0,1])) { +mess=[[mess],["Accept herited events must be 0 or 1"],[" "]]; +ok=false; +} +if (!ok) { +message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (ok) { -if ((Datatype==3||Datatype==6)) { -if (or(bit.slice()>31)||or(bit.slice()<0)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 31]")); -ok=false; +[model,graphics,ok]=set_io(model,graphics,list([-1,1],1),list(),ones(1-heritance,1),[]); } -switch (rule) { -case 1: -switch (scal) { -case 0: -model.sim=list("extract_bit_32_UH0",4); -case 1: -switch (Datatype) { -case 3: -model.sim=list("extract_bit_32_UH1",4); -case 6: -model.sim=list("extract_bit_u32_UH1",4); +if (ok) { +if (wpos==[]) { +wpos=[[-1],[-1]]; } +if (wdim==[]) { +wdim=[[-1],[-1]]; } -case 2: -model.sim=list("extract_bit_32_LH",4); -case 3: -switch (scal) { -case 0: -model.sim=list("extract_bit_32_MSB0",4); -case 1: -switch (Datatype) { -case 3: -model.sim=list("extract_bit_32_MSB1",4); -case 6: -model.sim=list("extract_bit_u32_MSB1",4); +rpar=[[0],[ymin],[ymax],[per]]; +ipar=[[win],[1],[N],[clrs.slice()],[wpos.slice()],[wdim.slice()]]; +model.rpar=rpar; +model.ipar=ipar; +model.evtin=ones(1-heritance,1); +model.label=nom; +graphics.id=nom; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } } -case 4: -model.sim=list("extract_bit_32_LSB",4); -case 5: -switch (scal) { -case 0: -model.sim=list("extract_bit_32_RB0",4); -case 1: -switch (Datatype) { -case 3: -model.sim=list("extract_bit_32_RB1",4); -case 6: -model.sim=list("extract_bit_u32_RB1",4); + } } +/* autogenerated from "macros/Sinks/CSCOPXY.sci" */ +function CSCOPXY() { + CSCOPXY.prototype.define = function CSCOPXY() { +win=-1; +clrs=4; +siz=1; +wdim=[[600],[400]]; +wpos=[[-1],[-1]]; +N=2; +xmin=-15; +xmax=15; +ymin=-15; +ymax=+15; +nbr_curves=1; +model=scicos_model(); +model.sim=list("cscopxy",4); +model.in1=[[1],[1]]; +model.in2=[[1],[1]]; +model.intyp=[[1],[1]]; +model.evtin=1; +model.rpar=[[xmin],[xmax],[ymin],[ymax]]; +model.ipar=[[win],[1],[N],[clrs],[siz],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[string(nbr_curves)],[sci2exp(clrs)],[sci2exp(siz)],[string(win)],[sci2exp([])],[sci2exp(wdim)],[string(xmin)],[string(xmax)],[string(ymin)],[string(ymax)],[string(N)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + CSCOPXY.prototype.details = function CSCOPXY() { + } + CSCOPXY.prototype.get = function CSCOPXY() { + } + CSCOPXY.prototype.set = function CSCOPXY() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,nbr_curves,clrs,siz,win,wpos,wdim,xmin,xmax,ymin,ymax,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of Curves"],["color (>0) or mark (<0)"],["line or mark size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin"],["Xmax"],["Ymin"],["Ymax"],["Buffer size"]],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break; } +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; +ok=false; } -} else if ((Datatype==4||Datatype==7)) { -if (or(bit.slice()>15)||or(bit.slice()<0)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 15]")); +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok=false; } -switch (rule) { -case 1: -switch (scal) { -case 0: -model.sim=list("extract_bit_16_UH0",4); -case 1: -switch (Datatype) { -case 4: -model.sim=list("extract_bit_16_UH1",4); -case 7: -model.sim=list("extract_bit_u16_UH1",4); +if (nbr_curves<=0) { +mess=[[mess],["Number of Curves cannot be negative or null"],[" "]]; +ok=false; } +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; +ok=false; } -case 2: -model.sim=list("extract_bit_16_LH",4); -case 3: -switch (scal) { -case 0: -model.sim=list("extract_bit_16_MSB0",4); -case 1: -switch (Datatype) { -case 4: -model.sim=list("extract_bit_16_MSB1",4); -case 7: -model.sim=list("extract_bit_u16_MSB1",4); +if (N<1) { +mess=[[mess],["Buffer size must be at least 1"],[" "]]; +ok=false; } +if (N==1&&clrs>0) { +mess=[[mess],["Buffer size must be at least 2"],[" "]]; +ok=false; } -case 4: -model.sim=list("extract_bit_16_LSB",4); -case 5: -switch (scal) { -case 0: -model.sim=list("extract_bit_16_RB0",4); -case 1: -switch (Datatype) { -case 4: -model.sim=list("extract_bit_16_RB1",4); -case 7: -model.sim=list("extract_bit_u16_RB1",4); +if (ymin>=ymax) { +mess=[[mess],["Ymax must be greater than Ymin"],[" "]]; +ok=false; } +if (xmin>=xmax) { +mess=[[mess],["Xmax must be greater than Xmin"],[" "]]; +ok=false; } +if (!ok) { +message(mess); +} else { +in1=nbr_curves*ones(2,1); +in2=ones(2,1); +[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); +if (wpos==[]) { +wpos=[[-1],[-1]]; } -} else if ((Datatype==5||Datatype==8)) { -if (or(bit.slice()>7)||or(bit.slice()<0)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 7]")); +if (wdim==[]) { +wdim=[[-1],[-1]]; +} +rpar=[[xmin],[xmax],[ymin],[ymax]]; +ipar=[[win],[1],[N],[clrs],[siz],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.rpar=rpar; +model.ipar=ipar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} + } +} +/* autogenerated from "macros/Sinks/CSCOPXY3D.sci" */ +function CSCOPXY3D() { + CSCOPXY3D.prototype.define = function CSCOPXY3D() { +win=-1; +clrs=[[1],[2],[3],[4],[5],[6],[7],[13]]; +siz=[[1],[1],[1],[1],[1],[1],[1],[1]]; +wdim=[[600],[400]]; +wpos=[[-1],[-1]]; +N=2; +param3ds=[[50],[280]]; +vec_x=[[-15],[15]]; +vec_y=[[-15],[15]]; +vec_z=[[-15],[15]]; +nbr_curves=1; +model=scicos_model(); +model.sim=list("cscopxy3d",4); +model.in1=[[1],[1],[1]]; +model.in2=[[1],[1],[1]]; +model.intyp=[[1],[1],[1]]; +model.evtin=1; +model.rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; +model.ipar=[[win],[8],[N],[clrs.slice()],[siz.slice()],[8],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[string(nbr_curves)],[strcat(string(clrs)," ")],[strcat(string(siz)," ")],[string(win)],[sci2exp([])],[sci2exp(wdim)],[strcat(string(vec_x)," ")],[strcat(string(vec_y)," ")],[strcat(string(vec_z)," ")],[strcat(string(param3ds)," ")],[string(N)]]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + CSCOPXY3D.prototype.details = function CSCOPXY3D() { + } + CSCOPXY3D.prototype.get = function CSCOPXY3D() { + } + CSCOPXY3D.prototype.set = function CSCOPXY3D() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,nbr_curves,clrs,siz,win,wpos,wdim,vec_x,vec_y,vec_z,param3ds,N,exprs]=scicos_getvalue("Set Scope parameters",[["Number of curves"],["color (>0) or mark (<0)"],["Line or Mark Size"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Xmin and Xmax"],["Ymin and Ymax"],["Zmin and Zmax"],["Alpha and Theta"],["Buffer size"]],list("vec",1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",2,"vec",2,"vec",2,"vec",2,"vec",1),exprs); +if (!ok) { +break; +} +mess=[]; +if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { +mess=[[mess],["Window position must be [] or a 2 vector"],[" "]]; ok=false; } -switch (rule) { -case 1: -switch (scal) { -case 0: -model.sim=list("extract_bit_8_UH0",4); -case 1: -switch (Datatype) { -case 5: -model.sim=list("extract_bit_8_UH1",4); -case 8: -model.sim=list("extract_bit_u8_UH1",4); +if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { +mess=[[mess],["Window dim must be [] or a 2 vector"],[" "]]; +ok=false; } +if (size(clrs,"*")!=size(siz,"*")) { +mess=[[mess],["Colors and Size must have same size"],[" "]]; +ok=false; } -case 2: -model.sim=list("extract_bit_8_LH",4); -case 3: -switch (scal) { -case 0: -model.sim=list("extract_bit_8_MSB0",4); -case 1: -switch (Datatype) { -case 5: -model.sim=list("extract_bit_8_MSB1",4); -case 8: -model.sim=list("extract_bit_u8_MSB1",4); +if (nbr_curves<=0) { +mess=[[mess],["Number of curves cannot be negative or null"],[" "]]; +ok=false; } +if (win<-1) { +mess=[[mess],["Window number cannot be inferior than -1"],[" "]]; +ok=false; } -case 4: -model.sim=list("extract_bit_8_LSB",4); -case 5: -switch (scal) { -case 0: -model.sim=list("extract_bit_8_RB0",4); -case 1: -switch (Datatype) { -case 5: -model.sim=list("extract_bit_8_RB1",4); -case 8: -model.sim=list("extract_bit_u8_RB1",4); +if (N<1) { +mess=[[mess],["Buffer size must be at least 1"],[" "]]; +ok=false; +} +if (N<2) { +for (i=1;i<=size(clrs,"*");i+=1) { +if (clrs[i-1]>0) { +mess=[[mess],["Buffer size must be at least 2 or Change a color (must be >0)"],[" "]]; +ok=false; } } } -} else { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +if (vec_y[1-1]>=vec_y[2-1]) { +mess=[[mess],["Ymax must be higher than Ymin"],[" "]]; ok=false; } +if (vec_x[1-1]>=vec_x[2-1]) { +mess=[[mess],["Xmax must be higher than Xmin"],[" "]]; +ok=false; } -if (ok) { -it=Datatype; -ot=Datatype; -out=[1,1]; -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +if (vec_z[1-1]>=vec_z[2-1]) { +mess=[[mess],["Zmax must be higher than Zmin"],[" "]]; +ok=false; } if (ok) { +in1=nbr_curves*ones(3,1); +in2=ones(3,1); +[model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); +if (wpos==[]) { +wpos=[[-1],[-1]]; +} +if (wdim==[]) { +wdim=[[-1],[-1]]; +} +rpar=[[vec_x.slice()],[vec_y.slice()],[vec_z.slice()],[param3ds.slice()]]; +size_siz=size(siz,"*"); +ipar=[[win],[size_siz],[N],[clrs.slice()],[siz.slice()],[1],[wpos.slice()],[wdim.slice()],[nbr_curves]]; +model.rpar=rpar; +model.ipar=ipar; graphics.exprs=exprs; -model.ipar=[[int(bit.slice())],[int(numb.slice())]]; x.graphics=graphics; x.model=model; break; +} else { +message(mess); } } } } -/* autogenerated from "macros/IntegerOp/SHIFT.sci" */ -function SHIFT() { - SHIFT.prototype.define = function SHIFT() { -sgn=[[0],[0]]; -OPER=0; +/* autogenerated from "macros/Sinks/OUTIMPL_f.sci" */ +function OUTIMPL_f() { + OUTIMPL_f.prototype.define = function OUTIMPL_f() { model=scicos_model(); -model.sim=list("shift_32_LA",4); -model.in1=-1; -model.out=-1; -model.in2=-2; -model.out2=-2; -model.intyp=3; -model.outtyp=3; -model.rpar=[]; -model.ipar=sgn; +model.in1=[-1]; +model.in2=[1]; +prt=1; +model.sim="outimpl"; +model.ipar=[1]; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[sci2exp(3)],[sci2exp(0)],[sci2exp(0)]]; +model.dep_ut=[false,false]; +mo=modelica(); +mo.model="PORT"; +mo.inputs="n"; +model.equations=mo; +exprs="1"; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([1,1],model,exprs,gr_i); +x.graphics.in_implicit=["I"]; } - SHIFT.prototype.details = function SHIFT() { + OUTIMPL_f.prototype.details = function OUTIMPL_f() { } - SHIFT.prototype.get = function SHIFT() { + OUTIMPL_f.prototype.get = function OUTIMPL_f() { } - SHIFT.prototype.set = function SHIFT() { + OUTIMPL_f.prototype.set = function OUTIMPL_f() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")==2) { +exprs=exprs[1-1]; +} while (true) { -[ok,Datatype,nb,np,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"SHIFT")],[" "],[gettext("Shift/Rotates bits")]],[[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)")],[gettext("Number of Bits to Shift Left (Negative number to shift right)")],[gettext("Shift Type (0:Arithmetic, 1:Circular)")]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"OUTIMPL_f")],[" "],[gettext("Implicit output port")]],gettext("Port number"),list("vec",1),exprs); if (!ok) { break; } -if ((np!=0&&np!=1)) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Shift Type"),np),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); -ok=false; -} -it=Datatype; -ot=Datatype; -if ((Datatype==3||Datatype==6)) { -if (nb>0) { -switch (np) { -case 0: -model.sim=list("shift_32_LA",4); -case 1: -model.sim=list("shift_32_LC",4); -} -} else if (nb<0) { -switch (np) { -case 0: -switch (Datatype) { -case 3: -model.sim=list("shift_32_RA",4); -case 6: -model.sim=list("shift_u32_RA",4); +prt=int(prt); +if (prt<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +} else { +if (model.ipar!=prt) { +needcompile=4; +y=needcompile; } -case 1: -model.sim=list("shift_32_RC",4); +model.ipar=prt; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } } -} else if ((Datatype==4||Datatype==7)) { -if (nb>0) { -switch (np) { -case 0: -model.sim=list("shift_16_LA",4); -case 1: -model.sim=list("shift_16_LC",4); + } } -} else if (nb<0) { -switch (np) { -case 0: -switch (Datatype) { -case 4: -model.sim=list("shift_16_RA",4); -case 7: -model.sim=list("shift_u16_RA",4); +/* autogenerated from "macros/Sinks/OUT_f.sci" */ +function OUT_f() { + OUT_f.prototype.define = function OUT_f() { +n=-1; +prt=1; +model=scicos_model(); +model.sim="output"; +model.in1=-1; +model.in2=-2; +model.intyp=-1; +model.ipar=prt; +model.blocktype="c"; +model.dep_ut=[false,false]; +exprs=string(prt); +gr_i=[]; +x=standard_define([1,1],model,exprs,gr_i); + } + OUT_f.prototype.details = function OUT_f() { + } + OUT_f.prototype.get = function OUT_f() { + } + OUT_f.prototype.set = function OUT_f() { +x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +if (size(exprs,"*")==2) { +exprs=exprs[1-1]; } -case 1: -model.sim=list("shift_16_RC",4); +while (true) { +[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"OUT_f")],[" "],[gettext("Regular output port")]],gettext("Port number"),list("vec",1),exprs); +if (!ok) { +break; } +prt=int(prt); +if (prt<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +} else { +model.ipar=prt; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; } -} else if ((Datatype==5||Datatype==8)) { -if (nb>0) { -switch (np) { -case 0: -model.sim=list("shift_8_LA",4); -case 1: -model.sim=list("shift_8_LC",4); } -} else if (nb<0) { -switch (np) { -case 0: -switch (Datatype) { -case 5: -model.sim=list("shift_8_RA",4); -case 8: -model.sim=list("shift_u8_RA",4); + } } -case 1: -model.sim=list("shift_8_RC",4); +/* autogenerated from "macros/Sinks/TOWS_c.sci" */ +function TOWS_c() { + TOWS_c.prototype.define = function TOWS_c() { +nu=-1; +nz=128; +varnam="A"; +herit=0; +model=scicos_model(); +model.sim=list("tows_c",4); +model.in1=[nu]; +model.in2=-2; +model.intyp=-1; +model.out=[]; +model.evtin=[1]; +model.evtout=[]; +model.rpar=[]; +model.ipar=[[nz],[length(varnam)],[transpose(this.ascii[varnam-1])]]; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +gr_i=[]; +exprs=[[string(nz)],[string(varnam)],[string(herit)]]; +x=standard_define([4,2],model,exprs,gr_i); + } + TOWS_c.prototype.details = function TOWS_c() { + } + TOWS_c.prototype.get = function TOWS_c() { + } + TOWS_c.prototype.set = function TOWS_c() { +x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +while (true) { +[ok,nz,varnam,herit,exprs]=scicos_getvalue("Set Xcos buffer block",[["Size of buffer"],["Scilab variable name"],["Inherit (no:0, yes:1)"]],list("vec",1,"str",1,"vec",1),exprs); +if (!ok) { +break; } +if ((nz<=0)) { +message("Size of buffer must be positive"); +ok=false; } -} else { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +r=false; +ierr=execstr("r = validvar(varnam)","errcatch"); +if (!r||ierr!=0||length(varnam)>19) { +message([["Invalid variable name."],["Please choose another variable name."]]); ok=false; } +execstr("if type("+varnam+") <> 17 | or(fieldnames("+varnam+") <> [\"values\"; \"time\"]) then"+" message([\"Protected variable name.\"; \"Please choose another variable name.\"]);"+" ok = %f;"+" end","errcatch"); if (ok) { -[model,graphics,ok]=set_io(model,graphics,list([-1,-2],it),list([-1,-2],ot),[],[]); +[model,graphics,ok]=set_io(model,graphics,list([-1,-2],-1),list(),ones(1-herit,1),[]); +if (herit==1) { +model.blocktype="x"; +} else { +model.blocktype="d"; } -if (ok) { -model.ipar=nb; +model.ipar=[[nz],[length(varnam)],[transpose(this.ascii[varnam-1])]]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -16626,166 +15432,111 @@ break; } } } -/* autogenerated from "macros/IntegerOp/DFLIPFLOP.sci" */ -function DFLIPFLOP() { - DFLIPFLOP.prototype.define = function DFLIPFLOP() { -scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DFLIPFLOP"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[0-1]),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[239.98293,378.2166],sz=[60,60],flip=true,theta=0,exprs=[["1"],["1"]],pin=29,pout=[],pein=22,peout=[[16],[44]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); -scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=[["2"],["1"],["5"],["0"]],pin=[[11],[39]],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=33,pein=42,peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[5-1]=scicos_link(xx=[[221.46044],[225.15013]],yy=[[280.24498],[280.24498]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,1,1]); -scs_m.objs[6-1]=scicos_link(xx=[[138.19704],[140.34523]],yy=[[273.44465],[273.49157]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[38,1,1]); -scs_m.objs[7-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[373.24106,309.46812],sz=[60,40],flip=true,theta=0,exprs=[["1"],["5"],["5"],["0"]],pin=36,pout=13,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[5],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[8-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[199.48466,398.2166],sz=[20,20],flip=true,theta=0,exprs="3",pin=[],pout=9,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=3,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[9-1]=scicos_link(xx=[[219.48466],[222.54128]],yy=[[408.2166],[408.2166]],id="drawlink",thick=[0,0],ct=[1,1],from=[8,1,0],to=[28,1,1]); -scs_m.objs[10-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[104.31759,276.91165],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=11,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[11-1]=scicos_link(xx=[[124.31759],[144.31759]],yy=[[286.91165],[286.91165]],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[3,1,1]); -scs_m.objs[12-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[457.40928,320.20131],sz=[20,20],flip=true,theta=0,exprs="2",pin=13,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[13-1]=scicos_link(xx=[[441.81249],[457.40928]],yy=[[329.46812],[330.20131]],id="drawlink",thick=[0,0],ct=[1,1],from=[7,1,0],to=[12,1,1]); -scs_m.objs[14-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[376.4669,270.83282],sz=[20,20],flip=true,theta=0,exprs="1",pin=37,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title="Untitled",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=[],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="ANDLOG_f",graphics=scicos_graphics(orig=[194,133],sz=[60,60],flip=true,theta=0,exprs=[],pin=[],pout=9,pein=[[4],[11]],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="andlog",in1=[],in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[[1],[1]],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_block(gui="CLKIN_f",graphics=scicos_graphics(orig=[149,287],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=[],peout=4,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[3-1]=scicos_block(gui="CLKOUT_f",graphics=scicos_graphics(orig=[450,83],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[4-1]=scicos_link(xx=[[169],[214],[214]],yy=[[297],[297],[198.71]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1],to=[1,1]); -scs_m_1.objs[5-1]=scicos_block(gui="CLKIN_f",graphics=scicos_graphics(orig=[141,330],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=[],pein=[],peout=6,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[6-1]=scicos_link(xx=[[161],[234],[234]],yy=[[340],[340],[275.78]],id="drawlink",thick=[0,0],ct=[5,-1],from=[5,1],to=[10,1]); -scs_m_1.objs[7-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[331,137],sz=[60,60],flip=true,theta=0,exprs=[["1"],["1"]],pin=9,pout=[],pein=12,peout=[[8],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); -scs_m_1.objs[8-1]=scicos_link(xx=[[351],[351],[450]],yy=[[131.29],[93],[93]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1],to=[3,1]); -scs_m_1.objs[9-1]=scicos_link(xx=[[262.57],[322.43]],yy=[[163],[167]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1],to=[7,1]); -scs_m_1.objs[10-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[[234],[275.78348]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=6,peout=[[11],[12]],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[11-1]=scicos_link(xx=[[234],[234]],yy=[[275.78],[198.71]],id="drawlink",thick=[0,0],ct=[5,-1],from=[10,1],to=[1,2]); -scs_m_1.objs[12-1]=scicos_link(xx=[[234],[361],[361]],yy=[[275.78],[275.78],[202.71]],id="drawlink",thick=[0,0],ct=[5,-1],from=[10,2],to=[7,1]); -scs_m.objs[15-1]=scicos_block(gui="ANDBLK",graphics=scicos_graphics(orig=[233.73039,318.74407],sz=[40,40],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=[[19],[16]],peout=17,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[[1],[1]],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=false,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[16-1]=scicos_link(xx=[[259.98293],[260.39705]],yy=[[372.50232],[364.45835]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[15,2,1]); -scs_m.objs[17-1]=scicos_link(xx=[[253.73039],[253.72572]],yy=[[313.02978],[309.29537]],id="drawlink",thick=[0,0],ct=[5,-1],from=[15,1,0],to=[41,1,1]); -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=3,pout=[],pein=[],peout=[[7],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[3-1]=scicos_link(xx=[[357.15774],[362.99107],[379.71726]],yy=[[277.1131],[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,1,1]); -scs_m_1.objs[4-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[240.01488,267.1131],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=-1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[5-1]=scicos_link(xx=[[260.01488],[280.01488]],yy=[[277.1131],[277.1131]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[1,1,1]); -scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[7-1]=scicos_link(xx=[[408.28869],[408.28869]],yy=[[241.39881],[211.39881]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); -scs_m.objs[18-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[133.90637,385.342],sz=[60,40],flip=true,theta=0,exprs=[],pin=26,pout=[],pein=[],peout=19,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[19-1]=scicos_link(xx=[[163.90637],[163.90637],[247.06372]],yy=[[379.62771],[364.45835],[364.45835]],id="drawlink",thick=[0,0],ct=[5,-1],from=[18,1,0],to=[15,1,1]); -scs_m.objs[20-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[79.594811,395.47647],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=23,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["Extract_Activation","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m_1.objs[1-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[150.65045,143.82208],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=6,pout=[],pein=[],peout=[[3],[4]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[2-1]=scicos_block(gui="CLKSOMV_f",graphics=scicos_graphics(orig=[169.82143,96.146231],sz=[16.666667,16.666667],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=[[3],[4],[0]],peout=8,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sum",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[[1],[1],[1]],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[3-1]=scicos_link(xx=[[170.65045],[170.65045],[150.04302],[150.04302],[169.82143]],yy=[[138.10779],[128.235],[128.235],[104.47956],[104.47956]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[2,1,1]); -scs_m_1.objs[4-1]=scicos_link(xx=[[190.65045],[190.65045],[178.15476]],yy=[[138.10779],[111.55729],[112.8129]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,2,0],to=[2,2,1]); -scs_m_1.objs[5-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[102.07902,163.82208],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=-1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[6-1]=scicos_link(xx=[[122.07902],[142.07902]],yy=[[173.82208],[173.82208]],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[1,1,1]); -scs_m_1.objs[7-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[168.15476,38.527183],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m_1.objs[8-1]=scicos_link(xx=[[178.15476],[178.15476]],yy=[[98.527183],[68.527183]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[7,1,1]); -scs_m.objs[21-1]=scicos_block(gui="Extract_Activation",graphics=scicos_graphics(orig=[239.82193,456.57677],sz=[60,40],flip=true,theta=0,exprs=[],pin=31,pout=[],pein=[],peout=22,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[22-1]=scicos_link(xx=[[269.82193],[269.98293]],yy=[[450.86248],[443.93089]],id="drawlink",thick=[0,0],ct=[5,-1],from=[21,1,0],to=[2,1,1]); -scs_m.objs[23-1]=scicos_link(xx=[[99.594811],[110.25582]],yy=[[405.47647],[405.42077]],id="drawlink",thick=[0,0],ct=[1,1],from=[20,1,0],to=[25,1,1]); -scs_m.objs[24-1]=scicos_block(gui="SUM_f",graphics=scicos_graphics(orig=[200.5252,469.13173],sz=[16.666667,16.666667],flip=true,theta=0,exprs=[],pin=[[27],[0],[30]],pout=31,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("plusblk",2),in1=[[-1],[-1],[-1]],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[25-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[110.25582],[405.42077]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=23,pout=[[26],[27]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[26-1]=scicos_link(xx=[[110.25582],[114.33667],[125.33494]],yy=[[405.42077],[405.39945],[405.342]],id="drawlink",thick=[0,0],ct=[1,1],from=[25,1,0],to=[18,1,1]); -scs_m.objs[27-1]=scicos_link(xx=[[110.25582],[110.25582],[208.85853]],yy=[[405.42077],[469.13173],[469.13173]],id="drawlink",thick=[0,0],ct=[1,1],from=[25,2,0],to=[24,1,1]); -scs_m.objs[28-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[222.54128],[408.2166]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=9,pout=[[29],[30]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[29-1]=scicos_link(xx=[[222.54128],[231.4115]],yy=[[408.2166],[408.2166]],id="drawlink",thick=[0,0],ct=[1,1],from=[28,1,0],to=[2,1,1]); -scs_m.objs[30-1]=scicos_link(xx=[[222.54128],[222.54128],[208.85853],[208.85853]],yy=[[408.2166],[453.0015],[453.0015],[485.7984]],id="drawlink",thick=[0,0],ct=[1,1],from=[28,2,0],to=[24,3,1]); -scs_m.objs[31-1]=scicos_link(xx=[[219.57282],[231.2505]],yy=[[477.46506],[476.57677]],id="drawlink",thick=[0,0],ct=[1,1],from=[24,1,0],to=[21,1,1]); -scs_m.objs[32-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[298.86371,253.57321],sz=[40,40],flip=true,theta=0,exprs=[["5"],["2"],["1"]],pin=[[33],[40]],pout=34,pein=[[43],[44]],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[[1],[1]],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[33-1]=scicos_link(xx=[[282.29299],[290.29229]],yy=[[280.24498],[280.23987]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[32,1,1]); -scs_m.objs[34-1]=scicos_link(xx=[[347.43514],[357.57328],[357.57328]],yy=[[273.57321],[273.57321],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[32,1,0],to=[35,1,1]); -scs_m.objs[35-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[357.57328,280.83282],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=34,pout=[[36],[37]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[36-1]=scicos_link(xx=[[357.57328],[357.57328],[364.66964]],yy=[[280.83282],[329.46812],[329.46812]],id="drawlink",thick=[0,0],ct=[1,1],from=[35,1,0],to=[7,1,1]); -scs_m.objs[37-1]=scicos_link(xx=[[357.57328],[376.4669]],yy=[[280.83282],[280.83282]],id="drawlink",thick=[0,0],ct=[1,1],from=[35,2,0],to=[14,1,1]); -scs_m.objs[38-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[[140.34523],[273.49157]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=6,pout=[[39],[40]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[39-1]=scicos_link(xx=[[140.34523],[144.31759]],yy=[[273.49157],[273.57832]],id="drawlink",thick=[0,0],ct=[1,1],from=[38,1,0],to=[3,2,1]); -scs_m.objs[40-1]=scicos_link(xx=[[140.34523],[140.34523],[290.29229],[290.29229]],yy=[[273.49157],[247.70767],[247.70767],[266.90654]],id="drawlink",thick=[0,0],ct=[1,1],from=[38,2,0],to=[32,2,1]); -scs_m.objs[41-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[[253.72572],[309.29537]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=17,peout=[[42],[43]],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[42-1]=scicos_link(xx=[[253.72572],[253.72156]],yy=[[309.29537],[305.95927]],id="drawlink",thick=[0,0],ct=[5,-1],from=[41,1,0],to=[4,1,1]); -scs_m.objs[43-1]=scicos_link(xx=[[253.72572],[312.19705],[312.19705]],yy=[[309.29537],[309.29537],[299.28749]],id="drawlink",thick=[0,0],ct=[5,-1],from=[41,2,0],to=[32,1,1]); -scs_m.objs[44-1]=scicos_link(xx=[[279.98293],[279.98293],[325.53038],[325.53038]],yy=[[372.50232],[315.89455],[315.89455],[299.28749]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,2,0],to=[32,2,1]); +/* autogenerated from "macros/Sinks/TRASH_f.sci" */ +function TRASH_f() { + TRASH_f.prototype.define = function TRASH_f() { +in1=-1; model=scicos_model(); -model.sim="csuper"; -model.in1=[[1],[1],[1]]; -model.in2=[[1],[1],[1]]; -model.out=[[1],[1]]; -model.out2=[[1],[1]]; -model.intyp=[5,1,1]; -model.outtyp=[5,5]; -model.blocktype="h"; -model.firing=false; -model.dep_ut=[true,false]; -model.rpar=scs_m; +model.sim="trash"; +model.in1=in1; +model.evtin=1; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=" "; gr_i=[]; -x=standard_define([2,3],model,[],gr_i); +x=standard_define([2,2],model,exprs,gr_i); } - DFLIPFLOP.prototype.details = function DFLIPFLOP() { + TRASH_f.prototype.details = function TRASH_f() { } - DFLIPFLOP.prototype.get = function DFLIPFLOP() { + TRASH_f.prototype.get = function TRASH_f() { } - DFLIPFLOP.prototype.set = function DFLIPFLOP() { + TRASH_f.prototype.set = function TRASH_f() { x=arg1; } } -/* autogenerated from "macros/IntegerOp/LOGIC.sci" */ -function LOGIC() { - LOGIC.prototype.define = function LOGIC() { -mat=[[0],[0],[0],[1]]; +/* autogenerated from "macros/Sinks/WFILE_f.sci" */ +function WFILE_f() { + WFILE_f.prototype.define = function WFILE_f() { +in1=1; +nin=sum(in1); +frmt="(7(e10.3,1x))"; +fname="foo"; +lunit=0; +N=2; model=scicos_model(); -model.sim=list("logic",4); -model.in1=[[1],[1]]; -model.in2=[[1],[1]]; -model.out=1; -model.out2=1; +model.sim="writef"; +model.in1=in1; model.evtin=1; -model.intyp=[5,5]; -model.outtyp=5; -model.opar=list(int8[mat-1]); -model.blocktype="c"; -model.firing=false; +model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; +model.ipar=[[length(fname)],[length(frmt)],[0],[N],[this._str2code[fname-1]],[this._str2code[frmt-1]]]; +model.blocktype="d"; model.dep_ut=[true,false]; -exprs=[[sci2exp(mat)],[sci2exp(0)]]; +exprs=[[sci2exp(in1)],[fname],[frmt],[string(N)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - LOGIC.prototype.details = function LOGIC() { + WFILE_f.prototype.details = function WFILE_f() { } - LOGIC.prototype.get = function LOGIC() { + WFILE_f.prototype.get = function WFILE_f() { } - LOGIC.prototype.set = function LOGIC() { + WFILE_f.prototype.set = function WFILE_f() { +warnobsolete("WRITEC_f","6.0.0"); +warnMessage=msprintf(_("Feature %s is obsolete."),"WFILE_f"); +warnAdvise=msprintf(_("Please use %s instead."),"WRITEC_f"); +warnXcosMessage=msprintf("%s %s",warnMessage,warnAdvise); +warnBlockByUID(arg1.model.label,warnXcosMessage); x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +dstate=model.dstate; +lunit=dstate[2-1]; +fname=exprs[2-1]; +frmt=exprs[3-1]; while (true) { -[ok,mat,herit,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"LOGIC")],[" "],[gettext("Combinatorial logic")],[" "],[gettext(" Rows of the matrix are the output values")],[gettext(" Number of rows must be a power of two.")],[gettext(" Number of columns gives the number of outputs.")],[" "]],[[gettext("Truth Table (matrix of outputs)")],[gettext("Accepts Inherited Events (0:No, 1:Yes)")]],list("mat",[-1,-2],"vec",1),exprs); +[ok,in1,fname1,frmt1,N,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"WFILE_f")],[" "],[gettext("Write to output file")],[" "],[gettext("Write is done on:")],[gettext(" - A binary file if no format given")],[gettext(" - A formatted text file if a format (Fortran type) is given")]],[[gettext("Input Size")],[gettext("Output File Name")],[gettext("Output Format")],[gettext("Buffer Size")]],list("vec",1,"str",1,"str",1,"vec",1),exprs); if (!ok) { break; } -nout=size(mat,2); -nin=(log[size(mat,1)-1]/log[2-1]); -u1=floor[nin-1]; -if ((u1!=nin)) { -block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %d."),gettext("Truth Table"),size(mat,1)),gettext("Number of rows must be a power of two.")); +in1=int(in1); +nin=in1; +fname1=pathconvert(stripblanks(fname1),false,true); +frmt1=stripblanks(frmt1); +if (lunit>0&&min(length(frmt),1)!=min(length(frmt1),1)) { +block_parameter_error(gettext("Simulation running !!! You cannot switch<br />between formatted and unformatted when running"),gettext("End current simulation first.")); ok=false; -} else if ((find(mat.slice()!=0&&mat.slice()!=1)!=[])) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Truth Table")),msprintf(gettext("Elements must be in the interval %s."),"[0, 1]")); +} else if (lunit>0&&fname1!=fname) { +block_parameter_error(gettext("You cannot modify \'Output File Name\' when running."),gettext("End current simulation first.")); ok=false; -} else if (herit<0||herit>1) { -block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Accepts Inherited Events"),herit),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +} else if (fname1=="") { +block_parameter_error(gettext("Wrong value for \'Output File Name\' parameter"),gettext("You must provide a filename.")); +ok=false; +} else if (fileparts(fname1)!="") { +[pa,fn,ex]=fileparts(fname1); +if (!this.isdir[pa-1]) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); ok=false; } -if (ok) { -in1=[ones(nin,1),ones(nin,1)]; -out=[ones(nout,1),ones(nout,1)]; -it=5*ones(1,nin); -ot=5*ones(1,nout); -[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-herit,1),[]); +} else if (frmt1!=""&&(part(frmt1,1)!="("||part(frmt1,length(frmt1))!=")")) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("You must enclose the format\'s string between parentheses.")); +ok=false; +} else if (N<2) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Must be greater than 1.")); +ok=false; +} else if (in1<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); +ok=false; } if (ok) { +ipar=[[length(fname1)],[length(frmt1)],[0],[N],[this._str2code[fname1-1]],[this._str2code[frmt1-1]]]; +if (prod(size(dstate))!=(nin+1)*N+2) { +dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; +} +model.in1=nin; +model.dstate=dstate; +model.ipar=ipar; +model.dep_ut=[true,false]; graphics.exprs=exprs; -mat=int8[mat-1]; -model.opar=list(mat); x.graphics=graphics; x.model=model; break; @@ -16793,112 +15544,157 @@ break; } } } -/* autogenerated from "macros/NonLinear/INTRP2BLK_f.sci" */ -function INTRP2BLK_f() { - INTRP2BLK_f.prototype.define = function INTRP2BLK_f() { -a=[[0],[1]]; -b=[[0],[1]]; -c=[[0,1],[1,2]]; +/* autogenerated from "macros/Sinks/WRITEAU_f.sci" */ +function WRITEAU_f() { + WRITEAU_f.prototype.define = function WRITEAU_f() { +in1=1; +nin=sum(in1); +frmt="uc "; +fname="/dev/audio"; +swap=0; +lunit=0; +N=2; model=scicos_model(); -model.sim=list("intrp2",1); -model.in1=[[1],[1]]; -model.out=1; -model.rpar=[[a],[b],[c.slice()]]; -model.ipar=[[2],[2]]; -model.blocktype="c"; +model.sim=list("writeau",2); +model.in1=in1; +model.evtin=1; +model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[N],[swap],[this._str2code[fname-1]]]; +model.blocktype="d"; model.dep_ut=[true,false]; -exprs=[[strcat(sci2exp(a))],[strcat(sci2exp(b))],[strcat(sci2exp(c,0))]]; +exprs=[string(N),string(swap)]; gr_i=[]; -x=standard_define([3,2],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - INTRP2BLK_f.prototype.details = function INTRP2BLK_f() { + WRITEAU_f.prototype.details = function WRITEAU_f() { } - INTRP2BLK_f.prototype.get = function INTRP2BLK_f() { + WRITEAU_f.prototype.get = function WRITEAU_f() { } - INTRP2BLK_f.prototype.set = function INTRP2BLK_f() { + WRITEAU_f.prototype.set = function WRITEAU_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; +ipar=model.ipar; +dstate=model.dstate; +lunit=dstate[2-1]; while (true) { -[ok,a,b,c,exprs]=scicos_getvalue("Set Interpolation block parameters",[["X coord."],["Y coord."],["Z values"]],list("vec",-1,"vec",-1,"mat",[-1,-1]),exprs); +[ok,N,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"WRITEAU_f")],[" "],[gettext("Write \'.au\' sound file on audio device")]],[[gettext("Buffer Size")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("vec",1,"vec",1),exprs); if (!ok) { break; } -if (size(a,"*")!=size(c,"c")||size(b,"*")!=size(c,"r")) { -message("incompatible dimension"); -} else if (min(a.slice(2-1,$)-a.slice(1-1,$-1))<=0||min(b.slice(2-1,$)-b.slice(1-1,$-1))<=0) { -message("X and Y must be strictly increasing"); -} else { +nin=1; +fname1="/dev/audio"; +frmt1="uc "; +if (this.alreadyran&&(N!=ipar[5-1])) { +block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); +ok=false; +} else if (N<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); +ok=false; +} +if (swap!=0&&swap!=1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +ok=false; +} if (ok) { +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[N],[swap],[this._str2code[fname1-1]]]; +if (prod(size(dstate))!=(nin+1)*N+2) { +dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; +} +model.in1=1; +model.dstate=dstate; +model.ipar=ipar; graphics.exprs=exprs; -model.rpar=[[a.slice()],[b.slice()],[c.slice()]]; -model.ipar=[[size(a,"*")],[size(b,"*")]]; x.graphics=graphics; x.model=model; break; } } -} } } -/* autogenerated from "macros/NonLinear/PRODUCT.sci" */ -function PRODUCT() { - PRODUCT.prototype.define = function PRODUCT() { -sgn=[[1],[-1]]; +/* autogenerated from "macros/Sinks/WRITEC_f.sci" */ +function WRITEC_f() { + WRITEC_f.prototype.define = function WRITEC_f() { +in1=1; +nin=sum(in1); +frmt="c "; +fname="foo"; +swap=0; +lunit=0; +N=2; model=scicos_model(); -model.sim=list("product",4); -model.in1=[[-1],[-1]]; -model.out=-1; -model.ipar=sgn; -model.blocktype="c"; +model.sim=list("writec",2); +model.in1=in1; +model.evtin=1; +model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[N],[swap],[this._str2code[fname-1]]]; +model.blocktype="d"; model.dep_ut=[true,false]; -exprs=sci2exp(sgn); +exprs=[[sci2exp(in1)],[fname],[frmt],[string(N),string(swap)]]; gr_i=[]; -x=standard_define([2,3],model,exprs,gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - PRODUCT.prototype.details = function PRODUCT() { + WRITEC_f.prototype.details = function WRITEC_f() { } - PRODUCT.prototype.get = function PRODUCT() { + WRITEC_f.prototype.get = function WRITEC_f() { } - PRODUCT.prototype.set = function PRODUCT() { + WRITEC_f.prototype.set = function WRITEC_f() { x=arg1; graphics=arg1.graphics; -model=arg1.model; exprs=graphics.exprs; +model=arg1.model; +ipar=model.ipar; +dstate=model.dstate; +lunit=dstate[2-1]; +fname=exprs[2-1]; +frmt=exprs[3-1]; while (true) { -[ok,sgn,exprs]=scicos_getvalue([[" Set multiplication block parameters"],["(multiplication is set with + 1, division with -1)"],[""]],"Number of inputs or sign vector",list("vec",-1),exprs); +[ok,in1,fname1,frmt1,N,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"WRITEC_f")],[" "],[gettext("Write to C binary file")]],[[gettext("Input Size")],[gettext("Output File Name")],[gettext("Output Format")],[gettext("Buffer Size")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("vec",1,"str",1,"str",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -sgn=sgn.slice(); -if (size(sgn,1)==1) { -if (sgn<1) { -message("Number of inputs must be > 0"); +in1=int(in1); +nin=in1; +fname1=pathconvert(stripblanks(fname1),false,true); +frmt1=stripblanks(frmt1); +fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; +if (and(frmt1!=fmts)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); ok=false; -} else if (sgn==1) { -in1=-1; -sgn=[]; -nout=1; -} else { -in1=-ones(sgn,1); -sgn=ones(sgn,1); -nout=-1; -} -} else { -if (!and(abs(sgn)==1)) { -message("Signs can only be +1 or -1"); +} else if (this.alreadyran&&fname1!=fname) { +block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input Format")),gettext("End current simulation first.")); +ok=false; +} else if (this.alreadyran&&N!=ipar[5-1]) { +block_parameter_error(msprintf(gettext("You cannot modify \'Buffer Size\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); +ok=false; +} else if (fname1=="") { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),gettext("You must provide a filename.")); +} else if (fileparts(fname1)!="") { +[pa,fn,ex]=fileparts(fname1); +if (!this.isdir[pa-1]) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); ok=false; -} else { -in1=-ones(size(sgn,1),1); -nout=-1; } +} else if (N<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); +ok=false; +} else if (in1<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); +ok=false; +} else if (swap!=0&&swap!=1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +ok=false; } +frmt1=part(frmt1,1,3); if (ok) { -[model,graphics,ok]=check_io(model,graphics,in1,nout,[],[]); +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[N],[swap],[this._str2code[fname1-1]]]; +if (prod(size(dstate))!=(nin+1)*N+2) { +dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; } -if (ok) { -model.ipar=sgn; +model.in1=nin; +model.dstate=dstate; +model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -16907,66 +15703,320 @@ break; } } } -/* autogenerated from "macros/NonLinear/COSBLK_f.sci" */ -function COSBLK_f() { - COSBLK_f.prototype.define = function COSBLK_f() { -in1=1; +/* autogenerated from "macros/Sources/CLKINV_f.sci" */ +function CLKINV_f() { + CLKINV_f.prototype.define = function CLKINV_f() { +prt=1; model=scicos_model(); -model.sim="cosblk"; -model.in1=-1; -model.out=-1; -model.blocktype="c"; -model.dep_ut=[true,false]; +model.sim="input"; +model.evtout=1; +model.ipar=prt; +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs=string(prt); gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +x=standard_define([1,1],model,exprs,gr_i); } - COSBLK_f.prototype.details = function COSBLK_f() { + CLKINV_f.prototype.details = function CLKINV_f() { } - COSBLK_f.prototype.get = function COSBLK_f() { + CLKINV_f.prototype.get = function CLKINV_f() { } - COSBLK_f.prototype.set = function COSBLK_f() { + CLKINV_f.prototype.set = function CLKINV_f() { x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +exprs=exprs[1-1]; +while (true) { +[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CLKINV_f")],[" "],[gettext("Event input port")],[" "]],"Port Number",list("vec",1),exprs); +prt=int(prt); +if (!ok) { +break; +} +if (prt<=0) { +block_parameter_error(msprintf(gettext("Wrong values for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); +} else { +model.ipar=prt; +model.evtout=1; +model.firing=-1; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} } } -/* autogenerated from "macros/NonLinear/SIGNUM.sci" */ -function SIGNUM() { - SIGNUM.prototype.define = function SIGNUM() { -nu=-1; +/* autogenerated from "macros/Sources/CLKIN_f.sci" */ +function CLKIN_f() { + CLKIN_f.prototype.define = function CLKIN_f() { +prt=1; model=scicos_model(); -model.sim=list("signum",4); -model.in1=nu; -model.out=nu; -model.nzcross=nu; -model.nmode=nu; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[string([1])]; -gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +model.sim="input"; +model.evtout=1; +model.ipar=prt; +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs=string(prt); +x=standard_define([1,1],model,exprs," "); } - SIGNUM.prototype.details = function SIGNUM() { + CLKIN_f.prototype.details = function CLKIN_f() { } - SIGNUM.prototype.get = function SIGNUM() { + CLKIN_f.prototype.get = function CLKIN_f() { } - SIGNUM.prototype.set = function SIGNUM() { + CLKIN_f.prototype.set = function CLKIN_f() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; +exprs=exprs[1-1]; while (true) { -[ok,zcr,exprs]=scicos_getvalue("Set block parameters",["use zero_crossing (1: yes) (0:no)"],list("vec",1),exprs); +[ok,prt,exprs]=scicos_getvalue("Set Event Input block parameters","Port number",list("vec",1),exprs); +prt=int(prt); if (!ok) { break; } +if (prt<=0) { +message("Port number must be a positive integer"); +} else { +model.ipar=prt; +model.evtout=1; +model.firing=-1; graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} + } +} +/* autogenerated from "macros/Sources/CLOCK_c.sci" */ +function CLOCK_c() { + CLOCK_c.prototype.define = function CLOCK_c() { +evtdly=this.EVTDLY_c["define"-1]; +evtdly.graphics.orig=[320,232]; +evtdly.graphics.sz=[40,40]; +evtdly.graphics.flip=true; +evtdly.graphics.exprs=[["0.1"],["0.1"]]; +evtdly.graphics.pein=6; +evtdly.graphics.peout=3; +evtdly.model.rpar=[[0.1],[0.1]]; +evtdly.model.firing=0.1; +output_port=CLKOUT_f("define"); +output_port.graphics.orig=[399,162]; +output_port.graphics.sz=[20,20]; +output_port.graphics.flip=true; +output_port.graphics.exprs="1"; +output_port.graphics.pein=5; +output_port.model.ipar=1; +split=CLKSPLIT_f("define"); +split.graphics.orig=[[380.71066],[172]]; +split.graphics.pein=3; +split.graphics.peout=[[5],[6]]; +gr_i=[]; +diagram=scicos_diagram(); +diagram.objs[1-1]=output_port; +diagram.objs[2-1]=evtdly; +diagram.objs[3-1]=scicos_link(xx=[[340],[340],[380.71]],yy=[[226.29],[172],[172]],ct=[5,-1],from=[2,1],to=[4,1]); +diagram.objs[4-1]=split; +diagram.objs[5-1]=scicos_link(xx=[[380.71],[399]],yy=[[172],[172]],ct=[5,-1],from=[4,1],to=[1,1]); +diagram.objs[6-1]=scicos_link(xx=[[380.71],[380.71],[340],[340]],yy=[[172],[302],[302],[277.71]],ct=[5,-1],from=[4,2],to=[2,1]); +x=scicos_block(); +x.gui="CLOCK_c"; +x.graphics.sz=[2,2]; +x.graphics.gr_i=gr_i; +x.graphics.peout=0; +x.model.sim="csuper"; +x.model.evtout=1; +x.model.blocktype="h"; +x.model.firing=false; +x.model.dep_ut=[false,false]; +x.model.rpar=diagram; + } + CLOCK_c.prototype.details = function CLOCK_c() { + } + CLOCK_c.prototype.get = function CLOCK_c() { + } + CLOCK_c.prototype.set = function CLOCK_c() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="EVTDLY_c") { +path=i; +break; +} +} +newpar=list(); +xx=arg1.model.rpar.objs[path-1]; +exprs=xx.graphics.exprs; +model=xx.model; +t0_old=model.firing; +dt_old=model.rpar[1-1]; +model_n=model; +while (true) { +[ok,dt,t0,exprs0]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CLOCK_c")],[" "],[gettext("Event clock generator")],[" "],[gettext(" Do not start if \'Initialisation Time\' is negative")],[" "]],[[gettext("Period")],[gettext("Initialisation Time")]],list("vec",1,"vec",1),exprs); +if (!ok) { +break; +} +if (dt<=0) { +block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %5.1e."),gettext("Period"),dt),gettext("Strictly positive number expected.")); +ok=false; +} if (ok) { -if (zcr!=0) { -model.nmode=-1; -model.nzcross=-1; +xx.graphics.exprs=exprs0; +model.rpar=[[dt],[t0]]; +model.firing=t0; +xx.model=model; +arg1.model.rpar.objs[path-1]=xx; +break; +} +} +if (!and([t0_old,dt_old]==[t0,dt])) { +newpar[size(newpar)+1-1]=path; +} +if (t0_old!=t0) { +needcompile=2; } else { -model.nmode=0; -model.nzcross=0; +needcompile=0; +} +x=arg1; +y=needcompile; +typ=newpar; + } +} +/* autogenerated from "macros/Sources/CLOCK_f.sci" */ +function CLOCK_f() { + CLOCK_f.prototype.define = function CLOCK_f() { +evtdly=EVTDLY_f("define"); +evtdly.graphics.orig=[320,232]; +evtdly.graphics.sz=[40,40]; +evtdly.graphics.flip=true; +evtdly.graphics.exprs=[["0.1"],["0.1"]]; +evtdly.graphics.pein=6; +evtdly.graphics.peout=3; +evtdly.model.rpar=0.1; +evtdly.model.firing=0.1; +output_port=CLKOUT_f("define"); +output_port.graphics.orig=[399,162]; +output_port.graphics.sz=[20,20]; +output_port.graphics.flip=true; +output_port.graphics.exprs="1"; +output_port.graphics.pein=5; +output_port.model.ipar=1; +split=CLKSPLIT_f("define"); +split.graphics.orig=[[380.71066],[172]]; +split.graphics.pein=3; +split.graphics.peout=[[5],[6]]; +gr_i=[]; +diagram=scicos_diagram(); +diagram.objs[1-1]=output_port; +diagram.objs[2-1]=evtdly; +diagram.objs[3-1]=scicos_link(xx=[[340],[340],[380.71]],yy=[[226.29],[172],[172]],ct=[5,-1],from=[2,1],to=[4,1]); +diagram.objs[4-1]=split; +diagram.objs[5-1]=scicos_link(xx=[[380.71],[399]],yy=[[172],[172]],ct=[5,-1],from=[4,1],to=[1,1]); +diagram.objs[6-1]=scicos_link(xx=[[380.71],[380.71],[340],[340]],yy=[[172],[302],[302],[277.71]],ct=[5,-1],from=[4,2],to=[2,1]); +x=scicos_block(); +x.gui="CLOCK_f"; +x.graphics.sz=[2,2]; +x.graphics.gr_i=gr_i; +x.graphics.peout=0; +x.model.sim="csuper"; +x.model.evtout=1; +x.model.blocktype="h"; +x.model.firing=false; +x.model.dep_ut=[false,false]; +x.model.rpar=diagram; + } + CLOCK_f.prototype.details = function CLOCK_f() { + } + CLOCK_f.prototype.get = function CLOCK_f() { + } + CLOCK_f.prototype.set = function CLOCK_f() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="EVTDLY_f") { +path=i; +break; +} +} +newpar=list(); +xx=arg1.model.rpar.objs[path-1]; +exprs=xx.graphics.exprs; +model=xx.model; +t0_old=model.firing; +dt_old=model.rpar; +model_n=model; +while (true) { +[ok,dt,t0,exprs0]=scicos_getvalue("Set Clock block parameters",[["Period"],["Init time"]],list("vec",1,"vec",1),exprs); +if (!ok) { +break; +} +if (dt<=0) { +message("period must be positive"); +ok=false; +} +if (ok) { +xx.graphics.exprs=exprs0; +model.rpar=dt; +model.firing=t0; +xx.model=model; +arg1.model.rpar.objs[path-1]=xx; +break; +} +} +if (!and([t0_old,dt_old]==[t0,dt])||!and(exprs0==exprs)) { +newpar[size(newpar)+1-1]=path; +} +if (t0_old!=t0) { +needcompile=2; +} else { +needcompile=0; +} +x=arg1; +y=needcompile; +typ=newpar; + } +} +/* autogenerated from "macros/Sources/CONST.sci" */ +function CONST() { + CONST.prototype.define = function CONST() { +C=1; +model=scicos_model(); +model.sim=list("cstblk4",4); +model.in1=[]; +model.out=1; +model.rpar=C; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=strcat(sci2exp(C)); +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + CONST.prototype.details = function CONST() { + } + CONST.prototype.get = function CONST() { + } + CONST.prototype.set = function CONST() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,C,exprs]=scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); +if (!ok) { +break; } +sz=size(C); +nout=size(C,"*"); +if (nout==0) { +message("C must have at least one element"); +} else if (and(sz>1)) { +message("C matrix is not supported, use CONST_m instead"); +} else { +model.rpar=C.slice(); +model.out=nout; +graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; @@ -16974,106 +16024,159 @@ break; } } } -/* autogenerated from "macros/NonLinear/SINBLK_f.sci" */ -function SINBLK_f() { - SINBLK_f.prototype.define = function SINBLK_f() { +/* autogenerated from "macros/Sources/CONST_f.sci" */ +function CONST_f() { + CONST_f.prototype.define = function CONST_f() { +C=1; model=scicos_model(); -model.sim="sinblk"; -model.in1=-1; -model.out=-1; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=" "; +model.sim=list("cstblk",1); +model.in1=[]; +model.out=1; +model.rpar=C; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=strcat(sci2exp(C)); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - SINBLK_f.prototype.details = function SINBLK_f() { + CONST_f.prototype.details = function CONST_f() { } - SINBLK_f.prototype.get = function SINBLK_f() { + CONST_f.prototype.get = function CONST_f() { } - SINBLK_f.prototype.set = function SINBLK_f() { + CONST_f.prototype.set = function CONST_f() { x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,C,exprs]=scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); +if (!ok) { +break; +} +nout=size(C,"*"); +if (nout==0) { +message("C must have at least one element"); +} else { +model.rpar=C.slice(); +model.out=nout; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} } } -/* autogenerated from "macros/NonLinear/SAT_f.sci" */ -function SAT_f() { - SAT_f.prototype.define = function SAT_f() { -minp=-1; -maxp=1; -slope=1; -rpar=[[minp],[maxp],[slope]]; +/* autogenerated from "macros/Sources/CONST_m.sci" */ +function CONST_m() { + CONST_m.prototype.define = function CONST_m() { +C=[1]; model=scicos_model(); -model.sim=list("lusat",1); -model.in1=1; -model.nzcross=2; -model.out=1; -model.rpar=[[minp],[maxp],[slope]]; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(minp)],[string(maxp)],[string(slope)]]; +model.sim=list("cstblk4",4); +model.in1=[]; +model.out=size(C,1); +model.in2=[]; +model.out2=size(C,2); +model.rpar=C; +model.opar=list(); +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=sci2exp(C); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - SAT_f.prototype.details = function SAT_f() { + CONST_m.prototype.details = function CONST_m() { } - SAT_f.prototype.get = function SAT_f() { + CONST_m.prototype.get = function CONST_m() { } - SAT_f.prototype.set = function SAT_f() { + CONST_m.prototype.set = function CONST_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,minp,maxp,pente,exprs]=scicos_getvalue("Set Saturation parameters",[["Min"],["Max"],["Slope"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,C,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"CONST_m")],[" "],[gettext("Constant value generator")],[" "]],gettext("Constant Value"),list("vec",-1),exprs); if (!ok) { break; } -if (maxp<=0) { -message("Max must be strictly positive"); -} else if (pente<=0) { -message("Slope must be strictly positive"); +nout=size(C); +if (find(nout==0)!=[]) { +block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter"),gettext("Constant Value")),gettext("Constant value must have at least one element.")); } else { -rpar=[[minp/pente],[maxp/pente],[pente]]; -model.rpar=rpar; -model.firing=[]; +model.sim=list("cstblk4_m",4); +model.opar=list(C); +if ((this.type[C-1]==1)) { +if (isreal(C)) { +ot=1; +} else { +ot=2; +} +} else if ((typeof(C)=="int32")) { +ot=3; +} else if ((typeof(C)=="int16")) { +ot=4; +} else if ((typeof(C)=="int8")) { +ot=5; +} else if ((typeof(C)=="uint32")) { +ot=6; +} else if ((typeof(C)=="uint16")) { +ot=7; +} else if ((typeof(C)=="uint8")) { +ot=8; +} else { +block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter"),gettext("Constant Value")),gettext("Value type must be a numeric type (double, complex, int, int8, ...).")); +ok=false; +} +if (ok) { +model.rpar=[]; +[model,graphics,ok]=set_io(model,graphics,list(),list(nout,ot),[],[]); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/NonLinear/LOOKUP_f.sci" */ -function LOOKUP_f() { - LOOKUP_f.prototype.define = function LOOKUP_f() { +/* autogenerated from "macros/Sources/CURV_f.sci" */ +function CURV_f() { + CURV_f.prototype.define = function CURV_f() { +xx=[[0],[1],[2]]; +yy=[[-5],[5],[0]]; +rect=[0,-5,2,5]; +axisdata=[[2],[10],[2],[10]]; +ipar=[[size(xx,1)],[axisdata.slice()]]; +rpar=[[xx],[yy],[rect.slice()]]; model=scicos_model(); -model.sim="lookup"; -model.in1=1; +model.sim="intplt"; +model.in1=[]; model.out=1; -model.rpar=[[-2],[-1],[1],[2],[-1],[1],[-1],[1]]; +model.rpar=[[xx],[yy],[rect.slice()]]; +model.ipar=[[size(xx,1)],[axisdata.slice()]]; model.blocktype="c"; -model.dep_ut=[true,false]; +model.dep_ut=[false,true]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } - LOOKUP_f.prototype.details = function LOOKUP_f() { + CURV_f.prototype.details = function CURV_f() { } - LOOKUP_f.prototype.get = function LOOKUP_f() { + CURV_f.prototype.get = function CURV_f() { } - LOOKUP_f.prototype.set = function LOOKUP_f() { + CURV_f.prototype.set = function CURV_f() { x=arg1; -graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +graphics=arg1.graphics; rpar=model.rpar; -n=size(rpar,"*")/2; +ipar=model.ipar; +n=ipar[1-1]; xx=rpar.slice(1-1,n); yy=rpar.slice(n+1-1,2*n); +gc=list(rpar.slice(2*n+1-1,2*n+4),ipar.slice(2-1,5)); while (true) { [ln,fun]=where() if (!or(fun=="do_eval")) { -[xx,yy,ok,gc]=edit_curv(xx,yy,"axy"); +[xx,yy,ok,gc]=edit_curv(xx,yy,"axy",[" "," "," "],gc); } else { ok=true; } @@ -17081,12 +16184,17 @@ if (!ok) { break; } n=size(xx,"*"); -if (or(xx.slice(2-1,n)-xx.slice(1-1,n-1)<=0)) { +if (or(xx.slice(2-1,n)-xx.slice(1-1,n-1)<0)) { message("You have not defined a function"); ok=false; } if (ok) { -model.rpar=[[xx.slice()],[yy.slice()]]; +model.sim="intplt"; +model.firing=[]; +rect=gc[1-1]; +model.rpar=[[xx.slice()],[yy.slice()],[rect.slice()]]; +axisdata=gc[2-1]; +model.ipar=[[size(xx,"*")],[axisdata.slice()]]; x.graphics=graphics; x.model=model; break; @@ -17094,176 +16202,249 @@ break; } } } -/* autogenerated from "macros/NonLinear/INTRPLBLK_f.sci" */ -function INTRPLBLK_f() { - INTRPLBLK_f.prototype.define = function INTRPLBLK_f() { -a=[[0],[1]]; -b=[[0],[1]]; +/* autogenerated from "macros/Sources/Counter.sci" */ +function Counter() { + Counter.prototype.define = function Counter() { +minim=0; +maxim=2; +rule=1; model=scicos_model(); -model.sim="intrpl"; -model.in1=1; +model.sim=list("counter",4); +model.evtin=1; model.out=1; -model.rpar=[[a],[b]]; +model.out2=1; +model.dstate=0; +model.ipar=[[rule],[maxim],[minim]]; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[strcat(sci2exp(a))],[strcat(sci2exp(b))]]; +model.dep_ut=[false,false]; +exprs=[[string(minim)],[string(maxim)],[string(rule)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - INTRPLBLK_f.prototype.details = function INTRPLBLK_f() { + Counter.prototype.details = function Counter() { } - INTRPLBLK_f.prototype.get = function INTRPLBLK_f() { + Counter.prototype.get = function Counter() { } - INTRPLBLK_f.prototype.set = function INTRPLBLK_f() { + Counter.prototype.set = function Counter() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,a,b,exprs]=scicos_getvalue("Set Interpolation block parameters",[["X coord."],["Y coord."]],list("vec",-1,"vec",-1),exprs); +[ok,minim,maxim,rule,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"Counter")],[" "],[gettext("Integer counter generator")],[" "]],[[gettext("Minimum")],[gettext("Maximum")],[gettext("Rule (1:Increment, 2:Decrement)")]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (size(a,"*")!=size(b,"*")) { -message("X and Y must have the same size"); -} else if (min(a.slice(2-1,$)-a.slice(1-1,$-1))<=0) { -message("X must be strictly increasing"); +maxim=int(maxim); +minim=int(minim); +if (maxim<minim) { +block_parameter_error(msprintf(gettext("Wrong values for \'Maximum\' and \'Minimum\' parameters: %d < %d"),minim,maxim),msprintf(gettext("\'Minimum\' must be less than \'Maximum\'."))); +} else if ((rule!=1&&rule!=2)) { +block_parameter_error(msprintf(gettext("Wrong value for \'Rule\' parameter: %d"),rule),msprintf(gettext("Must be in the interval %s."),"[1,2]")); } else { -if (ok) { graphics.exprs=exprs; -model.rpar=[[a.slice()],[b.slice()]]; +model.dstate=0; +model.ipar=[[rule],[maxim],[minim]]; x.graphics=graphics; x.model=model; break; } } -} } } -/* autogenerated from "macros/NonLinear/PROD_f.sci" */ -function PROD_f() { - PROD_f.prototype.define = function PROD_f() { -model=scicos_model(); -model.sim=list("prod",2); -model.in1=[[-1],[-1]]; -model.out=-1; -model.blocktype="c"; -model.dep_ut=[true,false]; -x=standard_define([1,1],model,[],[]); +/* autogenerated from "macros/Sources/FROMWSB.sci" */ +function FROMWSB() { + FROMWSB.prototype.define = function FROMWSB() { +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-159.096,811.104,-121.216,617.984,1323,1008,331,284,630,480,1426,231,1.4],Title="FROMWSB",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="FROMWS_c",graphics=scicos_graphics(orig=[260.37067,261.584],sz=[70,40],flip=true,theta=0,exprs=[["V"],["1"],["1"],["0"]],pin=[],pout=4,pein=2,peout=2,gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("fromws_c",4),in1=[],in2=[],intyp=1,out=-1,out2=-2,outtyp=-1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[-31],[1],[1],[0]],opar=list(),blocktype="d",firing=0,dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_link(xx=[[295.37067],[295.37067],[233.23733],[233.23733],[295.37067],[295.37067]],yy=[[255.86971],[223.45067],[223.45067],[337.85067],[337.85067],[307.29829]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[1,1,1]); +scs_m_1.objs[3-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[358.9421,271.584],sz=[20,20],flip=true,theta=0,exprs="1",pin=4,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[4-1]=scicos_link(xx=[[338.9421],[358.9421]],yy=[[281.584],[281.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); +model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); +gr_i=[]; +x=standard_define([5,2],model,[],gr_i); } - PROD_f.prototype.details = function PROD_f() { + FROMWSB.prototype.details = function FROMWSB() { } - PROD_f.prototype.get = function PROD_f() { + FROMWSB.prototype.get = function FROMWSB() { } - PROD_f.prototype.set = function PROD_f() { + FROMWSB.prototype.set = function FROMWSB() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="FROMWS_c") { +ppath=list(i); +break; +} +} +newpar=list(); +y=0; +for (path in ppath) { +np=size(path,"*"); +spath=list(); +for (k=1;k<=np;k+=1) { +spath[$+1-1]="model"; +spath[$+1-1]="rpar"; +spath[$+1-1]="objs"; +spath[$+1-1]=path[k-1]; +} +xx=arg1[spath-1]; +execstr("xxn="+xx.gui+"(\'set\',xx)"); +if (!this.isequalbitwise[this.xxn-1][xx-1]) { +model=xx.model; +model_n=this.xxn.model; +if (!is_modelica_block(xx)) { +modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); +if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { +needcompile=1; +} +if (or(model.firing!=model_n.firing)) { +needcompile=2; +} +if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { +needcompile=4; +} +if (model.sim=="input"||model.sim=="output") { +if (model.ipar!=model_n.ipar) { +needcompile=4; +} +} +if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { +needcompile=4; +} +if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { +needcompile=4; +} +if (prod(size(model_n.sim))>1) { +if (model_n.sim[2-1]>1000) { +if (model.sim[1-1]!=model_n.sim[1-1]) { +needcompile=4; +} +} +} +} else { +modified=or(model_n!=model); +eq=model.equations; +eqn=model_n.equations; +if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { +needcompile=4; +} +} +arg1[spath-1]=this.xxn; +newpar[size(newpar)+1-1]=path; +y=max(y,needcompile); +} +} x=arg1; +typ=newpar; } } -/* autogenerated from "macros/NonLinear/DLRADAPT_f.sci" */ -function DLRADAPT_f() { - DLRADAPT_f.prototype.define = function DLRADAPT_f() { -p=[[0],[1]]; -rn=[]; -rd=[[math.complex(0.2,0.8),math.complex(0.2,-0.8)],[math.complex(0.3,0.7),math.complex(0.3,-0.7)]]; -g=[[1],[1]]; -last_u=[]; -last_y=[[0],[0]]; +/* autogenerated from "macros/Sources/FROMWS_c.sci" */ +function FROMWS_c() { + FROMWS_c.prototype.define = function FROMWS_c() { +varnam="V"; +Method=1; +ZC=1; +OutEnd=0; model=scicos_model(); -model.sim="dlradp"; -model.in1=[[1],[1]]; -model.out=1; -model.evtin=1; -model.dstate=[[last_u],[last_y]]; -model.rpar=[[p.slice()],[real(rn.slice())],[imag(rn.slice())],[real(rd.slice())],[imag(rd.slice())],[g.slice()]]; -model.ipar=[[0],[2],[2]]; +model.sim=list("fromws_c",4); +model.out=-1; +model.out2=-2; +model.outtyp=-1; +model.ipar=[[length(varnam)],[this._str2code[varnam-1]],[Method],[ZC],[OutEnd]]; +model.evtin=[1]; +model.evtout=[1]; +model.firing=[0]; model.blocktype="d"; -model.firing=[]; -model.dep_ut=[true,false]; -exprs=[[sci2exp(p)],[sci2exp(rn)],[sci2exp(rd,0)],[sci2exp(g)],[sci2exp(last_u)],[sci2exp(last_y)]]; +model.dep_ut=[false,true]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +exprs=[[string(varnam)],[string(Method)],[string(ZC)],[string(OutEnd)]]; +x=standard_define([3.5,2],model,exprs,gr_i); } - DLRADAPT_f.prototype.details = function DLRADAPT_f() { + FROMWS_c.prototype.details = function FROMWS_c() { } - DLRADAPT_f.prototype.get = function DLRADAPT_f() { + FROMWS_c.prototype.get = function FROMWS_c() { } - DLRADAPT_f.prototype.set = function DLRADAPT_f() { + FROMWS_c.prototype.set = function FROMWS_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,p,rn,rd,g,last_u,last_y,exprs]=scicos_getvalue("Set block parameters",[["Vector of p mesh points"],["Numerator roots (one line for each mesh)"],["Denominator roots (one line for each mesh)"],["Vector of gain at mesh points"],["past inputs (Num degree values)"],["past outputs (Den degree values)"]],list("vec",-1,"mat",[-1,-1],"mat",["size(%1,\'*\')","-1"],"vec","size(%1,\'*\')","vec","size(%2,2)","vec","size(%3,2)"),exprs); +[ok,varnam,Method,ZC,OutEnd,exprs]=scicos_getvalue("Set From_Workspace block parameters",[["Variable name"],["Interpolation Method"],["Enable zero crossing(0:No, 1:Yes)?"],["Output at end(0:Zero, 1:Hold, 2:Repeat)"]],list("str",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -m=size(rn,2); -[npt,n]=size(rd); -if (m>=n) { -message("Transfer must be strictly proper"); -} else if (size(rn,1)!=0&&size(rn,1)!=size(p,"*")) { -message("Numerator roots matrix row size\'s is incorrect"); -} else { -rpar=[[p.slice()],[real(rn.slice())],[imag(rn.slice())],[real(rd.slice())],[imag(rd.slice())],[g.slice()]]; -ipar=[[m],[n],[npt]]; -model.dstate=[[last_u.slice()],[last_y.slice()]]; -model.rpar=rpar; -model.ipar=ipar; +if (!(Method==0||Method==1||Method==2||Method==3)) { +message("Interpolation method should be chosen in [0,1,2,3]"); +ok=false; +} +if (!(ZC==0||ZC==1)) { +message("Zero crossing should be either 0 or 1"); +ok=false; +} +if (!(OutEnd==0||OutEnd==1||OutEnd==2)) { +message("Output at end option should be either 0 or 1"); +ok=false; +} +r=false; +ierr=execstr("r=validvar(varnam)","errcatch"); +if (!r) { +message([["Invalid variable name."],["Please choose another variable name."]]); +ok=false; +} +if (ok) { +model.ipar=[[length(varnam)],[this._str2code[varnam-1]],[Method],[ZC],[OutEnd]]; +[model,graphics,ok]=set_io(model,graphics,list(),list([-1,-2],-1),1,1); +if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/NonLinear/QUANT_f.sci" */ -function QUANT_f() { - QUANT_f.prototype.define = function QUANT_f() { -pas=0.1; -meth=1; +/* autogenerated from "macros/Sources/GENSIN_f.sci" */ +function GENSIN_f() { + GENSIN_f.prototype.define = function GENSIN_f() { +rpar=[[1],[1],[0]]; model=scicos_model(); -model.sim="qzrnd"; -model.in1=-1; -model.out=-1; -model.rpar=pas; -model.ipar=meth; +model.sim="gensin"; +model.in1=[]; +model.out=1; +model.out2=1; +model.outtyp=1; +model.rpar=[[1],[1],[0]]; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(pas)],[string(meth)]]; +model.dep_ut=[false,true]; +exprs=[[string(rpar[1-1])],[string(rpar[2-1])],[string(rpar[3-1])]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - QUANT_f.prototype.details = function QUANT_f() { + GENSIN_f.prototype.details = function GENSIN_f() { } - QUANT_f.prototype.get = function QUANT_f() { + GENSIN_f.prototype.get = function GENSIN_f() { } - QUANT_f.prototype.set = function QUANT_f() { + GENSIN_f.prototype.set = function GENSIN_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,pas,meth,exprs]=scicos_getvalue("Set parameters",[["Step"],["Quantization Type (1-4)"]],list("vec",1,"vec",1),exprs); +[ok,M,F,P,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"GENSIN_f")],[" "],[gettext("Sine wave generator")],[" "]],[[gettext("Magnitude")],[gettext("Frequency (rad/s)")],[gettext("Phase (rad)")]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (meth<1||meth>4) { -message("Quantization Type must be from 1 to 4"); -} else { -rpar=pas; -model.rpar=rpar; -model.ipar=meth; -switch (meth) { -case 1: -model.sim="qzrnd"; -case 2: -model.sim="qztrn"; -case 3: -model.sim="qzflr"; -case 4: -model.sim="qzcel"; +if (F<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Frequency\' parameter: %e."),F),gettext("Strictly positive integer expected.")); +ok=false; } +if (ok) { +[model,graphics,ok]=check_io(model,graphics,[],1,[],[]); +model.rpar=[[M],[F],[P]]; +model.out2=1; +model.outtyp=1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -17272,27 +16453,28 @@ break; } } } -/* autogenerated from "macros/NonLinear/LOGBLK_f.sci" */ -function LOGBLK_f() { - LOGBLK_f.prototype.define = function LOGBLK_f() { -in1=1; -a=math.E; +/* autogenerated from "macros/Sources/GENSQR_f.sci" */ +function GENSQR_f() { + GENSQR_f.prototype.define = function GENSQR_f() { +Amplitude=1; model=scicos_model(); -model.sim="logblk"; -model.in1=-1; -model.out=-1; -model.rpar=a; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs="%e"; +model.sim="gensqr"; +model.out=1; +model.out2=1; +model.outtyp=1; +model.evtin=1; +model.dstate=Amplitude; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=string(Amplitude); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - LOGBLK_f.prototype.details = function LOGBLK_f() { + GENSQR_f.prototype.details = function GENSQR_f() { } - LOGBLK_f.prototype.get = function LOGBLK_f() { + GENSQR_f.prototype.get = function GENSQR_f() { } - LOGBLK_f.prototype.set = function LOGBLK_f() { + GENSQR_f.prototype.set = function GENSQR_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; @@ -17301,103 +16483,185 @@ if (size(exprs,"*")==2) { exprs=exprs[2-1]; } while (true) { -[ok,a,exprs]=scicos_getvalue("Set log block parameters","Basis (>1)",list("vec",1),exprs); +[ok,Amplitude,exprs]=scicos_getvalue(["Set Square generator block parameters"],["Amplitude"],list("vec",1),exprs); if (!ok) { break; } -if (a<=1) { -message("Basis must be larger than 1"); -} else { -if (ok) { graphics.exprs=exprs; -model.rpar=a; +model.dstate=Amplitude; +model.out2=1; +model.outtyp=1; x.graphics=graphics; x.model=model; break; } -} -} } } -/* autogenerated from "macros/NonLinear/MAX_f.sci" */ -function MAX_f() { - MAX_f.prototype.define = function MAX_f() { -in1=-1; +/* autogenerated from "macros/Sources/GEN_SQR.sci" */ +function GEN_SQR() { + GEN_SQR.prototype.define = function GEN_SQR() { +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-176.97473,421.18646,173.61587,524.41503,827,480,0,15,827,480,755,614,1.4],Title="SuperBlock",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=[["if typeof(Amin)<>typeof(Amax) then error(\'Minimum value and Maximum value must have the same type\');end"],["if and(rule<>[1;2]) then error(\'Initial Value must be 1 (for Min) or 2 (for Max)\');end"],["if Amin>Amax then error(\'Maximum value must be greater than the Minimum Value\');end"],["P=%pi/F"],[""]],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="Counter",graphics=scicos_graphics(orig=[18.229901,339.5057],sz=[60,40],flip=true,theta=0,exprs=[["1"],["2"],["rule"]],pin=[],pout=8,pein=16,peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("counter",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=1,evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=[[1],[2],[1]],opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[38.096074,293.82198],sz=[40,40],flip=true,theta=0,exprs="Amin",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(-1),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[3-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[37.378886,245.02389],sz=[40,40],flip=true,theta=0,exprs="Amax",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(1),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[4-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[116.26954,269.42294],sz=[40,40],flip=true,theta=0,exprs=[["-1"],["2"],["1"]],pin=[[5],[6]],pout=14,pein=[[9],[10]],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[-1],[-1]],out=-1,out2=-2,outtyp=-1,evtin=[[1],[1]],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[5-1]=scicos_link(xx=[[86.667502],[107.69811],[107.69811]],yy=[[313.82198],[313.82198],[296.0896]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[4,1,1]); +scs_m_1.objs[6-1]=scicos_link(xx=[[85.950315],[107.69811],[107.69811]],yy=[[265.02389],[265.02389],[282.75627]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,2,1]); +scs_m_1.objs[7-1]=scicos_block(gui="ESELECT_f",graphics=scicos_graphics(orig=[106.9461,339.7496],sz=[60,40],flip=true,theta=0,exprs=[["2"],["0"],["0"]],pin=8,pout=[],pein=[],peout=[[9],[10]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("eselect",-2),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[[-1],[-1]],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[8-1]=scicos_link(xx=[[86.80133],[98.374671]],yy=[[359.5057],[359.7496]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[7,1,1]); +scs_m_1.objs[9-1]=scicos_link(xx=[[126.9461],[129.60287]],yy=[[334.03532],[315.13722]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1,0],to=[4,1,1]); +scs_m_1.objs[10-1]=scicos_link(xx=[[146.9461],[142.93621]],yy=[[334.03532],[315.13722]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,2,0],to=[4,2,1]); +scs_m_1.objs[11-1]=mlist("Deleted"); +scs_m_1.objs[12-1]=mlist("Deleted"); +scs_m_1.objs[13-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[184.40238,278.75198],sz=[20,20],flip=true,theta=0,exprs="1",pin=14,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[14-1]=scicos_link(xx=[[164.84097],[184.40238]],yy=[[289.42294],[288.75198]],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[13,1,1]); +scs_m_1.objs[15-1]=scicos_block(gui="SampleCLK",graphics=scicos_graphics(orig=[18.313686,403.57431],sz=[60,40],flip=true,theta=0,exprs=[["F/2"],["0"]],pin=[],pout=[],pein=[],peout=16,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sampleclk",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[[1/2],[0]],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[16-1]=scicos_link(xx=[[48.313686],[48.229901]],yy=[[403.57431],[385.21998]],id="drawlink",thick=[0,0],ct=[5,-1],from=[15,1,0],to=[1,1,1]); model=scicos_model(); -model.sim="maxblk"; -model.in1=in1; -model.out=1; -model.dstate=[[0],[0]]; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=" "; +model.sim="csuper"; +model.in1=[]; +model.in2=[]; +model.intyp=1; +model.out=-1; +model.out2=-2; +model.outtyp=-1; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.odstate=list(); +model.rpar=scs_m_1; +model.ipar=1; +model.opar=list(); +model.blocktype="h"; +model.firing=[]; +model.dep_ut=[false,false]; +model.label=""; +model.nzcross=0; +model.nmode=0; +model.equations=list(); +Amin=-1; +Amax=1; +rule=1; +F=1; +exprs=[sci2exp(Amin),sci2exp(Amax),sci2exp(rule),sci2exp(F)]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - MAX_f.prototype.details = function MAX_f() { + GEN_SQR.prototype.details = function GEN_SQR() { } - MAX_f.prototype.get = function MAX_f() { + GEN_SQR.prototype.get = function GEN_SQR() { } - MAX_f.prototype.set = function MAX_f() { + GEN_SQR.prototype.set = function GEN_SQR() { +y=this.needcompile; +arg1.model.ipar=1; +typ=list(); +graphics=arg1.graphics; +exprs=graphics.exprs; +Btitre="Set GEN_SQR parameters"; +Exprs0=[["Amin"],["Amax"],["rule"],["F"]]; +Bitems=[["Minimum Value"],["Maximum Value"],["Initial Value( 1= Minimum Value 2= Maximum Value)"],["Period (sec)"]]; +Ss=list("mat",[-1,-1],"mat",[-1,-1],"pol",-1,"pol",-1); +scicos_context=struct(); x=arg1; +ok=false; +while (!ok) { +[ok,scicos_context.Amin,scicos_context.Amax,scicos_context.rule,scicos_context.F,exprs]=scicos_getvalue(Btitre,Bitems,Ss,exprs); +if (!ok) { +return; +} +PREVAR_scicos_context=scicos_context; +sblock=x.model.rpar; +[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); +if (ierr==0) { +[sblock,%w,needcompile2,ok]=do_eval(sblock,list()); +if (ok) { +y=max(2,this.needcompile,needcompile2); +x.graphics.exprs=exprs; +x.model.rpar=sblock; +break; +} +} else { +message(lasterror()); +ok=false; +} +} } } -/* autogenerated from "macros/NonLinear/INVBLK.sci" */ -function INVBLK() { - INVBLK.prototype.define = function INVBLK() { -in1=-1; +/* autogenerated from "macros/Sources/Ground_g.sci" */ +function Ground_g() { + Ground_g.prototype.define = function Ground_g() { +C=[0]; model=scicos_model(); -model.sim=list("invblk4",4); -model.in1=in1; -model.out=in1; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=" "; +model.sim=list("cstblk4_m",4); +model.in1=[]; +model.out=1; +model.in2=[]; +model.out2=1; +model.outtyp=-1; +model.rpar=[]; +model.opar=list(C); +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - INVBLK.prototype.details = function INVBLK() { + Ground_g.prototype.details = function Ground_g() { } - INVBLK.prototype.get = function INVBLK() { + Ground_g.prototype.get = function Ground_g() { } - INVBLK.prototype.set = function INVBLK() { + Ground_g.prototype.set = function Ground_g() { x=arg1; } } -/* autogenerated from "macros/NonLinear/TrigFun.sci" */ -function TrigFun() { - TrigFun.prototype.define = function TrigFun() { +/* autogenerated from "macros/Sources/INIMPL_f.sci" */ +function INIMPL_f() { + INIMPL_f.prototype.define = function INIMPL_f() { model=scicos_model(); -model.sim=list("sin_blk",4); -model.in1=-1; -model.out=-1; +model.sim="inimpl"; +model.out=[-1]; +model.out2=[1]; +model.ipar=[1]; +model.dep_ut=[false,false]; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs="sin"; +mo=modelica(); +mo.model="PORT"; +mo.outputs="n"; +model.equations=mo; +prt=1; +exprs="1"; gr_i=[]; -x=standard_define([4,2],model,exprs,gr_i); +x=standard_define([1,1],model,exprs,gr_i); +x.graphics.out_implicit=["I"]; } - TrigFun.prototype.details = function TrigFun() { + INIMPL_f.prototype.details = function INIMPL_f() { } - TrigFun.prototype.get = function TrigFun() { + INIMPL_f.prototype.get = function INIMPL_f() { } - TrigFun.prototype.set = function TrigFun() { + INIMPL_f.prototype.set = function INIMPL_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -PREVAR_FF=[["sin"],["cos"],["tan"],["asin"],["acos"],["atan"],["sinh"],["cosh"],["tanh"],["asinh"],["acosh"],["atanh"]]; -PREVAR_GG=[["Choose among "+strcat(PREVAR_FF.slice(1-1,4),", ")],[strcat(PREVAR_FF.slice(5-1,$),", ")]]; +if (size(exprs,"*")==2) { +exprs=exprs[1-1]; +} while (true) { -[ok,fun,exprs]=scicos_getvalue(PREVAR_GG,"Function",list("str",1),exprs); +[ok,prt,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"INIMPL_f")],[" "],[gettext("Implicit input port")],[" "]],"Port Number",list("vec",1),exprs); if (!ok) { break; } -if (find(PREVAR_FF==fun)==[]) { -message("Sorry but "+fun+" is not in the list!"); +prt=int(prt); +if (prt<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); } else { +if (model.ipar!=prt) { +needcompile=4; +y=needcompile; +} +model.ipar=prt; graphics.exprs=exprs; -execstr("model.sim=list(\'"+fun+"_blk\',4)"); x.graphics=graphics; x.model=model; break; @@ -17405,48 +16669,60 @@ break; } } } -/* autogenerated from "macros/NonLinear/EXPBLK_m.sci" */ -function EXPBLK_m() { - EXPBLK_m.prototype.define = function EXPBLK_m() { -in1=1; -a=math.E; +/* autogenerated from "macros/Sources/IN_f.sci" */ +function IN_f() { + IN_f.prototype.define = function IN_f() { +prt=1; model=scicos_model(); -model.sim=list("expblk_m",4); -model.in1=-1; -model.in2=-2; +model.sim="input"; model.out=-1; model.out2=-2; -model.intyp=1; -model.outtyp=1; -model.rpar=a; +model.outtyp=-1; +model.ipar=prt; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=["%e"]; +model.dep_ut=[false,false]; +exprs=sci2exp(prt); gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([1,1],model,exprs,gr_i); } - EXPBLK_m.prototype.details = function EXPBLK_m() { + IN_f.prototype.details = function IN_f() { } - EXPBLK_m.prototype.get = function EXPBLK_m() { + IN_f.prototype.get = function IN_f() { } - EXPBLK_m.prototype.set = function EXPBLK_m() { + IN_f.prototype.set = function IN_f() { x=arg1; graphics=arg1.graphics; -exprs=graphics.exprs; model=arg1.model; +exprs=graphics.exprs; if (size(exprs,"*")==2) { -exprs=exprs[2-1]; +exprs=exprs[1-1]; +} +if (size(exprs,"*")==1) { +exprs=[[exprs[1-1]],["[-1 -2]"],["-1"]]; } while (true) { -[ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); +[ok,prt,otsz,ot,exprs]=getvalue(_("Set Input block parameters"),[[_("Port number")],[_("Outport size ([-1 -2] for inherit)")],[_("Outport Type (-1 for inherit)")]],list("vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break; } -if (or(a<=0)) { -message("a^u : a must be positive"); +prt=int(prt); +if (prt<=0) { +message(_("Port number must be a positive integer")); +} else if (!isequal(size(otsz,"*"),2)) { +message(_("Outport Size must be a 2 elements vector")); +} else if (((ot<1||ot>9)&&(ot!=-1))) { +message(_("Outport type must be a number between 1 and 9, or -1 for inheritance.")); } else { +if (model.ipar!=prt) { +needcompile=4; +y=needcompile; +} +model.ipar=prt; +model.firing=[]; +model.out=otsz[1-1]; +model.out2=otsz[2-1]; +model.outtyp=ot; graphics.exprs=exprs; -model.rpar=a; x.graphics=graphics; x.model=model; break; @@ -17454,45 +16730,47 @@ break; } } } -/* autogenerated from "macros/NonLinear/ABS_VALUE.sci" */ -function ABS_VALUE() { - ABS_VALUE.prototype.define = function ABS_VALUE() { -nu=-1; +/* autogenerated from "macros/Sources/Modulo_Count.sci" */ +function Modulo_Count() { + Modulo_Count.prototype.define = function Modulo_Count() { +ini_c=0; +base=3; model=scicos_model(); -model.sim=list("absolute_value",4); -model.in1=nu; -model.out=nu; -model.nzcross=nu; -model.nmode=nu; +model.sim=list("modulo_count",4); +model.evtin=1; +model.out=1; +model.dstate=ini_c; +model.ipar=base; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[string([1])]; +model.dep_ut=[false,false]; +exprs=[[string(ini_c)],[string(base)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - ABS_VALUE.prototype.details = function ABS_VALUE() { + Modulo_Count.prototype.details = function Modulo_Count() { } - ABS_VALUE.prototype.get = function ABS_VALUE() { + Modulo_Count.prototype.get = function Modulo_Count() { } - ABS_VALUE.prototype.set = function ABS_VALUE() { + Modulo_Count.prototype.set = function Modulo_Count() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,zcr,exprs]=scicos_getvalue("Set block parameters",["use zero_crossing (1: yes) (0:no)"],list("vec",1),exprs); +[ok,ini_c,base,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"Modulo_Count")],[" "],[gettext("Modulo counter (0 to N counter)")],[" "]],[[gettext("Initial State (zero or positive number)")],[gettext("Upper Limit (positive number)")]],list("vec",1,"vec",1),exprs); +ini_c=int(ini_c); +base=int(base); if (!ok) { break; } -graphics.exprs=exprs; -if (ok) { -if (zcr!=0) { -model.nmode=-1; -model.nzcross=-1; +if (ini_c<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Initial State\' parameter: %d."),ini_c),gettext("Null or positive integer expected.")); +} else if (base<=0) { +block_parameter_error(msprintf(gettext("Wrong values for \'Upper Limit\' parameter: %d."),base),gettext("Strictly positive integer expected.")); } else { -model.nmode=0; -model.nzcross=0; -} +graphics.exprs=exprs; +model.ipar=base; +model.dstate=ini_c; x.graphics=graphics; x.model=model; break; @@ -17500,74 +16778,132 @@ break; } } } -/* autogenerated from "macros/NonLinear/MIN_f.sci" */ -function MIN_f() { - MIN_f.prototype.define = function MIN_f() { -in1=-1; +/* autogenerated from "macros/Sources/PULSE_SC.sci" */ +function PULSE_SC() { + PULSE_SC.prototype.define = function PULSE_SC() { +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-162.7581,435.54369,67.607292,416.67644,827,479,0,15,827,480,715,167,1.4],Title=["SuperBlock","/home/fady/Scicos_examples/"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=10,context=[["E2=E+W/100*F"],["if (W<0 | W>100) then error(\'Width must be between 0 and 100\');end"],["if (E2 >= F) then error (\'Offset must be lower than (frequency*(1-Width/100))\'); end"]],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[30.801202,158.91733],sz=[40,40],flip=true,theta=0,exprs="A",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(1),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_block(gui="Ground_g",graphics=scicos_graphics(orig=[31.534535,215.384],sz=[40,40],flip=true,theta=0,exprs=[],pin=[],pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(0),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[3-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[106.00652,186.09381],sz=[40,40],flip=true,theta=0,exprs=[["-1"],["2"],["1"]],pin=[[4],[5]],pout=11,pein=[[9],[8]],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[-1],[-1]],out=-1,out2=-2,outtyp=-1,evtin=[[1],[1]],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[4-1]=scicos_link(xx=[[80.105964],[97.43509],[97.43509]],yy=[[235.384],[235.384],[212.76048]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[3,1,1]); +scs_m_1.objs[5-1]=scicos_link(xx=[[79.372631],[97.43509],[97.43509]],yy=[[178.91733],[178.91733],[199.42714]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,2,1]); +scs_m_1.objs[6-1]=scicos_block(gui="SampleCLK",graphics=scicos_graphics(orig=[82.349744,274.21741],sz=[60,40],flip=true,theta=0,exprs=[["F"],["E2"]],pin=[],pout=[],pein=[],peout=9,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sampleclk",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[[1],[0.4]],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[7-1]=scicos_block(gui="SampleCLK",graphics=scicos_graphics(orig=[160.48879,274.21741],sz=[60,40],flip=true,theta=0,exprs=[["F"],["E"]],pin=[],pout=[],pein=[],peout=8,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sampleclk",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[[1],[0.1]],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[8-1]=scicos_link(xx=[[190.48879],[190.48879],[132.67318],[132.67318]],yy=[[274.21741],[240.99048],[240.99048],[231.80809]],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1,0],to=[3,2,1]); +scs_m_1.objs[9-1]=scicos_link(xx=[[112.34974],[112.34974],[119.33985],[119.33985]],yy=[[274.21741],[248.21372],[248.21372],[231.80809]],id="drawlink",thick=[0,0],ct=[5,-1],from=[6,1,0],to=[3,1,1]); +scs_m_1.objs[10-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[174.57795,196.09381],sz=[20,20],flip=true,theta=0,exprs="1",pin=11,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[11-1]=scicos_link(xx=[[154.57795],[174.57795]],yy=[[206.09381],[206.09381]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[10,1,1]); model=scicos_model(); -model.sim="minblk"; -model.in1=in1; -model.out=1; -model.dstate=[[0],[0]]; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=sci2exp(in1); +model.sim="csuper"; +model.in1=[]; +model.in2=[]; +model.intyp=1; +model.out=-1; +model.out2=-2; +model.outtyp=-1; +model.evtin=[]; +model.evtout=[]; +model.state=[]; +model.dstate=[]; +model.odstate=list(); +model.rpar=scs_m_1; +model.ipar=1; +model.opar=list(); +model.blocktype="h"; +model.firing=[]; +model.dep_ut=[false,false]; +model.label=""; +model.nzcross=0; +model.nmode=0; +model.equations=list(); +E=0.1; +W=30; +F=1; +A=1; +exprs=[sci2exp(E),sci2exp(W),sci2exp(F),sci2exp(A)]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - MIN_f.prototype.details = function MIN_f() { + PULSE_SC.prototype.details = function PULSE_SC() { } - MIN_f.prototype.get = function MIN_f() { + PULSE_SC.prototype.get = function PULSE_SC() { } - MIN_f.prototype.set = function MIN_f() { + PULSE_SC.prototype.set = function PULSE_SC() { +y=this.needcompile; +arg1.model.ipar=1; +typ=list(); +graphics=arg1.graphics; +exprs=graphics.exprs; +Btitre="Set Pulse Generator parameters"; +Exprs0=[["E"],["W"],["F"],["A"]]; +Bitems=[["Phase delay (secs):"],["Pulse Width (% of period):"],["Period (secs):"],["Amplitude:"]]; +Ss=list("pol",-1,"pol",-1,"pol",-1,"mat",[-1,-1]); +scicos_context=struct(); x=arg1; +ok=false; +while (!ok) { +[ok,scicos_context.E,scicos_context.W,scicos_context.F,scicos_context.A,exprs]=scicos_getvalue(Btitre,Bitems,Ss,exprs); +if (!ok) { +return; +} +PREVAR_scicos_context=scicos_context; +sblock=x.model.rpar; +[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); +if (ierr==0) { +[sblock,%w,needcompile2,ok]=do_eval(sblock,list()); +if (ok) { +y=max(2,this.needcompile,needcompile2); +x.graphics.exprs=exprs; +x.model.rpar=sblock; +break; +} +} else { +if ((lasterror()!=[])) { +messagebox(lasterror()); +} +ok=false; +} +} } } -/* autogenerated from "macros/NonLinear/SATURATION.sci" */ -function SATURATION() { - SATURATION.prototype.define = function SATURATION() { -minp=-1; -maxp=1; -rpar=[[maxp],[minp]]; +/* autogenerated from "macros/Sources/RAMP.sci" */ +function RAMP() { + RAMP.prototype.define = function RAMP() { +slope=0; +iout=0; +stt=0; +rpar=[[slope],[stt],[iout]]; model=scicos_model(); -model.sim=list("satur",4); -model.in1=1; -model.nzcross=2; -model.nmode=1; +model.sim=list("ramp",4); +model.in1=[]; model.out=1; model.rpar=rpar; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=[[string(maxp)],[string(minp)],[string(model.nmode)]]; +model.nmode=1; +model.nzcross=1; +model.dep_ut=[false,true]; +exprs=[string(rpar)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } - SATURATION.prototype.details = function SATURATION() { + RAMP.prototype.details = function RAMP() { } - SATURATION.prototype.get = function SATURATION() { + RAMP.prototype.get = function RAMP() { } - SATURATION.prototype.set = function SATURATION() { + RAMP.prototype.set = function RAMP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,maxp,minp,zeroc,exprs]=scicos_getvalue("Set Saturation parameters",[["Upper limit"],["Lower limit"],["zero crossing (0:no, 1:yes)"]],list("vec",1,"vec",1,"vec",1),exprs); +[ok,slope,stt,iout,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"RAMP")],[" "],[gettext("Ramp function")],[" "]],[[gettext("Slope")],[gettext("Start Time")],[gettext("Initial Value")]],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } -if (maxp<=minp) { -message("Upper limit must be > Lower limit"); -} else { -rpar=[[maxp],[minp]]; -model.rpar=rpar; -if (zeroc!=0) { -model.nzcross=2; -model.nmode=1; +if (stt<0) { +block_parameter_error(msprintf(gettext("Wrong value for \'Start Time\' parameter: %e."),stt),gettext("Null or positive integer expected.")); } else { -model.nzcross=0; -model.nmode=0; -} +model.rpar=[[slope],[stt],[iout]]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; @@ -17576,347 +16912,1011 @@ break; } } } -/* autogenerated from "macros/NonLinear/TANBLK_f.sci" */ -function TANBLK_f() { - TANBLK_f.prototype.define = function TANBLK_f() { -in1=-1; +/* autogenerated from "macros/Sources/RAND_f.sci" */ +function RAND_f() { + RAND_f.prototype.define = function RAND_f() { +a=0; +b=1; +dt=0; +out=1; +flag=0; model=scicos_model(); -model.sim="tanblk"; -model.in1=in1; -model.out=in1; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=sci2exp(in1); +model.sim="rndblk"; +model.out=out; +model.evtin=1; +model.dstate=[[int(rand()*(10^7-1))],[0*a.slice()]]; +model.rpar=[[a.slice()],[b.slice()]]; +model.ipar=flag; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[string(flag)],[sci2exp(a.slice())],[sci2exp(b.slice())],[string(model.dstate[1-1])]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - TANBLK_f.prototype.details = function TANBLK_f() { + RAND_f.prototype.details = function RAND_f() { } - TANBLK_f.prototype.get = function TANBLK_f() { + RAND_f.prototype.get = function RAND_f() { } - TANBLK_f.prototype.set = function TANBLK_f() { + RAND_f.prototype.set = function RAND_f() { x=arg1; -x.model.firing=[]; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")==5) { +exprs=exprs.slice(1-1,3); +} +if (size(exprs,"*")==3) { +exprs=[[exprs],[string(model.dstate[1-1])]]; +} +while (true) { +[ok,flag,a,b,seed_c,exprs]=scicos_getvalue([["Set Random generator block parameters"],["flag = 0 : Uniform distribution A is min and A+B max"],["flag = 1 : Normal distribution A is mean and B deviation"],[" "],["A and B must be vector with equal sizes"],["seed is the seed of random number generator (integer<2**31)"]],[["flag"],["A"],["B"],["seed"]],list("vec",1,"vec",-1,"vec","size(%2,\'*\')","vec",1),exprs); +if (!ok) { +break; +} +if (flag!=0&&flag!=1) { +message("flag must be equal to 1 or 0"); +} else { +nout=size(a,"*"); +graphics.exprs=exprs; +model.out=nout; +model.ipar=flag; +model.rpar=[[a.slice()],[b.slice()]]; +model.dstate=[[seed_c],[0*a.slice()]]; +x.graphics=graphics; +x.model=model; +break; +} +} } } -/* autogenerated from "macros/NonLinear/FSV_f.sci" */ -function FSV_f() { - FSV_f.prototype.define = function FSV_f() { -in1=1; +/* autogenerated from "macros/Sources/RAND_m.sci" */ +function RAND_m() { + RAND_m.prototype.define = function RAND_m() { +a=0; +b=1; +dt=0; +flag=0; +function_name="rndblk_m"; +funtyp=4; model=scicos_model(); -model.sim=list("fsv",1); -model.in1=in1; -model.out=in1; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=" "; +model.sim=list(function_name,funtyp); +model.in1=[]; +model.in2=[]; +model.intyp=[]; +model.out=1; +model.out2=1; +model.outtyp=1; +model.evtin=1; +model.evtout=[]; +model.state=[]; +model.dstate=[[int(rand()*(10^7-1))],[0*a.slice()]]; +model.rpar=[a.slice(),b.slice()]; +model.ipar=flag; +model.blocktype="d"; +model.firing=[]; +model.dep_ut=[false,false]; +exprs=[[sci2exp(1)],[string(flag)],[sci2exp([a])],[sci2exp([b])],[sci2exp([model.dstate[1-1],int(rand()*(10^7-1))])]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - FSV_f.prototype.details = function FSV_f() { + RAND_m.prototype.details = function RAND_m() { } - FSV_f.prototype.get = function FSV_f() { + RAND_m.prototype.get = function RAND_m() { } - FSV_f.prototype.set = function FSV_f() { + RAND_m.prototype.set = function RAND_m() { x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,"*")==14) { +exprs[9-1]=[]; +} +while (true) { +[ok,typ,flag,a,b,seed_c,exprs]=scicos_getvalue([["Set Random generator block parameters"],["flag = 0 : Uniform distribution A is min and A+B max"],["flag = 1 : Normal distribution A is mean and B deviation"],[" "],["A and B must be matrix with equal sizes"]],[["Datatype(1=real double 2=complex)"],["flag"],["A"],["B"],["SEED"]],list("vec",1,"vec",1,"mat",[-1,-2],"mat","[-1 -2]","mat",[1,2]),exprs); +if (!ok) { +break; +} +if (flag!=0&&flag!=1) { +message("flag must be equal to 1 or 0"); +} else { +out=size(a); +if (typ==1) { +function_name="rndblk_m"; +model.rpar=[[real(a.slice())],[real(b.slice())]]; +model.dstate=[[seed_c[1-1]],[0*real(a.slice())]]; +ot=1; +} else if (typ==2) { +function_name="rndblkz_m"; +ot=2; +model.rpar=[[real(a.slice())],[imag(a.slice())],[real(b.slice())],[imag(b.slice())]]; +model.dstate=[[seed_c.slice()],[0*[[real(a.slice())],[imag(a.slice())]]]]; +} else { +message("Datatype is not supported"); +ok=false; +} +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list([],[]),list(out,ot),1,[]); +if (ok) { +model.sim=list(function_name,4); +graphics.exprs=exprs; +model.ipar=flag; +x.graphics=graphics; +x.model=model; +break; +} +} +} +} } } -/* autogenerated from "macros/NonLinear/EXPBLK_f.sci" */ -function EXPBLK_f() { - EXPBLK_f.prototype.define = function EXPBLK_f() { -in1=1; -a=math.E; +/* autogenerated from "macros/Sources/READAU_f.sci" */ +function READAU_f() { + READAU_f.prototype.define = function READAU_f() { +frmt="uc "; +fname="test.au"; +lunit=0; +N=20; +M=1; +tmask=[]; +swap=0; +offset=1; +outmask=1; +ievt=0; +nout=size(outmask,"*"); model=scicos_model(); -model.sim="expblk"; -model.in1=-1; -model.out=-1; -model.rpar=a; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=["%e"]; +model.sim=list("readau",2); +model.out=nout; +model.evtin=1; +model.dstate=[[1],[1],[lunit],[zeros(N*M,1)]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[fname],[string(N)],[string(swap)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([5,2],model,exprs,gr_i); } - EXPBLK_f.prototype.details = function EXPBLK_f() { + READAU_f.prototype.details = function READAU_f() { } - EXPBLK_f.prototype.get = function EXPBLK_f() { + READAU_f.prototype.get = function READAU_f() { } - EXPBLK_f.prototype.set = function EXPBLK_f() { + READAU_f.prototype.set = function READAU_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==2) { -exprs=exprs[2-1]; -} +out=model.out; +dstate=model.dstate; +ipar=model.ipar; +imask=9+ipar[1-1]; +tmask=ipar[imask-1]; +lunit=dstate[3-1]; +fname=exprs[1-1]; while (true) { -[ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); +[ok,fname1,N,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"READAU_f")],[" "],[gettext("(Read Audio File)")],[" "],[gettext("Read is done on a binary \'.au\' file")]],[[gettext("Input File Name")],[gettext("Buffer size")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("str",1,"vec",1,"vec",1),exprs); +tmask1=[]; +outmask=1; +frmt1="uc"; +M=1; +offset=1; if (!ok) { break; } -if (or(a<=0)) { -message("a^u : a must be positive"); +fname1=stripblanks(fname1); +frmt1=stripblanks(frmt1); +if (this.alreadyran&&fname1!=fname) { +block_parameter_error(gettext("Simulation running !!! You cannot modify Input file name"),gettext("End current simulation first.")); +} else if (fname1=="") { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a filename.")); +} else if (N<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer size"),N),msprintf(gettext("Must be greater than %d."),1)); +} else if (this.alreadyran&&(N!=ipar[6-1])) { +block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first.")); +} else if (swap!=0&&swap!=1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); } else { +[model,graphics,ok]=check_io(model,graphics,[],1,1,[]); +frmt1=part(frmt1,1,3); +if (ok) { +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[0],[N],[M],[swap],[offset,this._str2code[fname1-1]],[tmask1,outmask.slice()]]; +if (prod(size(dstate))!=(N*M)+3) { +dstate=[[-1],[-1],[lunit],[zeros(N*M,1)]]; +} +model.dstate=dstate; +model.ipar=ipar; graphics.exprs=exprs; -model.rpar=a; x.graphics=graphics; x.model=model; break; } } +} } } -/* autogenerated from "macros/NonLinear/ABSBLK_f.sci" */ -function ABSBLK_f() { - ABSBLK_f.prototype.define = function ABSBLK_f() { +/* autogenerated from "macros/Sources/READC_f.sci" */ +function READC_f() { + READC_f.prototype.define = function READC_f() { +frmt="d "; +fname="foo"; +lunit=0; +N=20; +M=1; +rpar=[]; +tmask=0; +swap=0; +offset=1; +outmask=1; +ievt=0; +nout=size(outmask,"*"); +ipar=[[length(fname)],[this._str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; model=scicos_model(); -model.sim=list("absblk",1); -model.in1=-1; -model.out=-1; -model.blocktype="c"; -model.dep_ut=[true,false]; +model.sim=list("readc",2); +model.out=nout; +model.evtin=1; +model.evtout=[]; +model.dstate=[[1],[1],[lunit],[zeros(N*M,1)]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs=[["[]"],[sci2exp(outmask)],[fname],[frmt],[string(M)],[string(N)],[string(offset)],[string(swap)]]; gr_i=[]; -x=standard_define([2,2],model,[],gr_i); +x=standard_define([4,2],model,exprs,gr_i); } - ABSBLK_f.prototype.details = function ABSBLK_f() { + READC_f.prototype.details = function READC_f() { } - ABSBLK_f.prototype.get = function ABSBLK_f() { + READC_f.prototype.get = function READC_f() { } - ABSBLK_f.prototype.set = function ABSBLK_f() { + READC_f.prototype.set = function READC_f() { x=arg1; +model=x.model; +graphics=arg1.graphics; +exprs=graphics.exprs; +out=model.out; +dstate=model.dstate; +ipar=model.ipar; +imask=9+ipar[1-1]; +tmask=ipar[imask-1]; +lunit=dstate[3-1]; +fname=exprs[3-1]; +frmt=exprs[4-1]; +while (true) { +[ok,tmask1,outmask,fname1,frmt1,M,N,offset,swap,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"READC_f")],[" "],[gettext("Read from C binary file")]],[[gettext("Time Record Selection")],[gettext("Outputs Record Selection")],[gettext("Input File Name")],[gettext("Input Format")],[gettext("Record Size")],[gettext("Buffer Size")],[gettext("Initial Record Index")],[gettext("Swap Mode (0:No, 1:Yes)")]],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break; +} +fname1=pathconvert(stripblanks(fname1),false,true); +frmt1=stripblanks(frmt1); +fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; +nout=size(outmask,"*"); +if (prod(size(tmask1))>1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Time Record Selection")),gettext("Must be a scalar or an empty matrix.")); +} else if (and(frmt1!=fmts)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); +} else if (this.alreadyran&&fname1!=fname) { +block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input File Name")),gettext("End current simulation first.")); +} else if (N!=ipar[6-1]&&this.alreadyran) { +block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); +} else if (this.alreadyran&&size(tmask1)!=size(tmask)) { +block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Time Record Selection")),gettext("End current simulation first.")); +} else if (fname1=="") { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a file name.")); +} else if (M<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Record Size"),M),gettext("Strictly positive integer expected.")); +} else if (tmask1!=[]&&(tmask1<1||tmask1>M)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Time Record Selection"),tmask1),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); +} else if (nout==0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),gettext("Strictly positive integer expected.")); +} else if (nout>M) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); +} else if (max(outmask)>M||min(outmask)<1) { +block_parameter_error(msprintf(gettext("Wrong value for indexes in \'%s\' parameter: %s."),gettext("Outputs Record Selection"),strcat(string(outmask.slice())," ")),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); +} else if (N<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); +} else if (swap!=0&&swap!=1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +} else if (offset<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Initial Record Index"),offset),gettext("Strictly positive integer expected.")); +} else { +if (tmask1==[]) { +ievt=0; +tmask1=0; +outpt=[]; +} else { +ievt=1; +outpt=1; +} +out=size(outmask,"*"); +[model,graphics,ok]=check_io(model,graphics,[],out,1,outpt); +frmt1=part(frmt1,1,3); +if (ok) { +if (ievt==0) { +model.firing=-1; +} else { +model.firing=0; +} +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname1-1]],[tmask1],[outmask.slice()]]; +if (prod(size(dstate))!=(N*M)+3) { +dstate=[[-1],[-1],[lunit],[zeros(N*M,1)]]; +} +model.dstate=dstate; +model.ipar=ipar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} +} } } -/* autogenerated from "macros/NonLinear/POWBLK_f.sci" */ -function POWBLK_f() { - POWBLK_f.prototype.define = function POWBLK_f() { -in1=1; -a=1.5; +/* autogenerated from "macros/Sources/RFILE_f.sci" */ +function RFILE_f() { + RFILE_f.prototype.define = function RFILE_f() { +out=1; +nout=sum(out); +frmt="(7(e10.3,1x))"; +fname="foo"; +lunit=0; +N=2; +rpar=[]; +tmask=0; +outmask=1; +ipar=[[length(fname)],[length(frmt)],[0],[N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[outmask]]; +dstate=[[1],[1],[lunit],[zeros((nout)*N,1)]]; model=scicos_model(); -model.sim="powblk"; -model.in1=-1; -model.out=-1; -model.rpar=a; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=string(a); +model.sim="readf"; +model.out=nout; +model.evtin=1; +model.dstate=dstate; +model.ipar=[[length(fname)],[length(frmt)],[0],[N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[outmask]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[sci2exp([])],[sci2exp(outmask)],[fname],[frmt],[string(N)],[sci2exp(out)]]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - POWBLK_f.prototype.details = function POWBLK_f() { + RFILE_f.prototype.details = function RFILE_f() { } - POWBLK_f.prototype.get = function POWBLK_f() { + RFILE_f.prototype.get = function RFILE_f() { } - POWBLK_f.prototype.set = function POWBLK_f() { + RFILE_f.prototype.set = function RFILE_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; -if (size(exprs,"*")==2) { -exprs=exprs[2-1]; +dstate=model.dstate; +ipar=model.ipar; +ievt=ipar[3-1]; +N=ipar[4-1]; +imask=5+ipar[1-1]+ipar[2-1]; +tmask=ipar[imask-1]; +lunit=dstate[3-1]; +fname=exprs[3-1]; +frmt=exprs[4-1]; +if (size(exprs,"*")>5) { +exprs[6-1]=[]; } while (true) { -[ok,a,exprs]=scicos_getvalue("Set u^a block parameters","to the power of",list("vec",1),exprs); +[ok,tmask1,outmask,fname1,frmt1,N,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"RFILE_f")],[" "],[gettext("Read from an input file")],[" "],[gettext("Read is done on:")],[gettext(" - A binary file if no format given")],[gettext(" - A formatted text file if a format (fortran type) is given")]],[[gettext("Time Record Selection")],[gettext("Outputs Record Selection")],[gettext("Input File Name")],[gettext("Input Format")],[gettext("Buffer Size")]],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1),exprs); if (!ok) { break; } -graphics.exprs=exprs; -if (a==int(a)) { -model.ipar=a; -model.rpar=[]; +fname1=pathconvert(stripblanks(fname1),false,true); +frmt1=stripblanks(frmt1); +nout=size(outmask,"*"); +if (prod(size(tmask1))>1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Time Record Selection"),strcat(string(tmask1.slice())," ")),gettext("Empty matrix or scalar expected.")); +} else if (tmask1!=[]&&tmask1<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d"),gettext("Time Record Selection"),tmask1),gettext("Strictly positive integer expected.")); +} else if (lunit>0&&min(length(frmt),1)!=min(length(frmt1),1)) { +block_parameter_error([gettext("Simulation running !!! You cannot switch <br />between formatted and unformatted")],gettext("End current simulation first.")); +} else if (lunit>0&&fname1!=fname) { +block_parameter_error(gettext("Simulation running !!! You cannot modify \'Input File Name\'"),gettext("End current simulation first.")); +} else if (lunit>0&&size(tmask1)!=size(tmask)) { +block_parameter_error(gettext("Simulation running !!! You cannot modify \'Time Record Selection\'"),gettext("End current simulation first.")); +} else if (fname1=="") { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s"),gettext("Input File Name"),fname1),gettext("You must provide a filename.")); +} else if (frmt1!=""&&(part(frmt1,1)!="("||part(frmt1,length(frmt1))!=")")) { +block_parameter_error(msprintf(gettext("Wrong format for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("You must enclose the format\'s string between parentheses.")); +} else if (N<2) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Buffer size must be at least 2.")); +} else if (nout==0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),gettext("You must read at least one field in record.")); +} else if (min(outmask)<1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s"),gettext("Outputs Record Selection"),strcat(string(outmask.slice())," ")),gettext("Strictly positive indexes expected.")); } else { -model.rpar=a; -model.ipar=[]; +if (tmask1==[]) { +ievt=0; +cout=[]; +tmask1=0; +} else { +ievt=1; +cout=1; } +[model,graphics,ok]=check_io(model,graphics,[],nout,1,cout); +if (ok) { +if (ievt==0) { model.firing=[]; +} else { +model.firing=0; +} +ipar=[[length(fname1)],[length(frmt1)],[ievt],[N],[this._str2code[fname1-1]],[this._str2code[frmt1-1]],[tmask1],[outmask.slice()]]; +if (prod(size(dstate))!=(nout+ievt)*N+3) { +dstate=[[-1],[-1],[lunit],[zeros((nout+ievt)*N,1)]]; +} +model.dstate=dstate; +model.ipar=ipar; +graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } +} +} } } -/* autogenerated from "macros/NonLinear/MAXMIN.sci" */ -function MAXMIN() { - MAXMIN.prototype.define = function MAXMIN() { +/* autogenerated from "macros/Sources/SAWTOOTH_f.sci" */ +function SAWTOOTH_f() { + SAWTOOTH_f.prototype.define = function SAWTOOTH_f() { model=scicos_model(); -model.sim=list("minmax",4); +model.sim="sawtth"; model.out=1; -model.in1=-1; +model.evtin=1; +model.dstate=0; model.blocktype="c"; -model.dep_ut=[true,false]; -model.ipar=0; -exprs=[string(transpose([2,1,1]))]; +model.dep_ut=[false,true]; +exprs=" "; +gr_i=[]; +x=standard_define([3,2],model,exprs,gr_i); + } + SAWTOOTH_f.prototype.details = function SAWTOOTH_f() { + } + SAWTOOTH_f.prototype.get = function SAWTOOTH_f() { + } + SAWTOOTH_f.prototype.set = function SAWTOOTH_f() { +x=arg1; + } +} +/* autogenerated from "macros/Sources/STEP.sci" */ +function STEP() { + STEP.prototype.define = function STEP() { +rpar=[[0],[1]]; +model=scicos_model(); +model.sim=list("step_func",4); +model.evtin=1; +model.evtout=1; +model.out=1; +model.out2=1; +model.outtyp=1; +model.firing=1; +model.rpar=rpar; +model.blocktype="c"; +model.dep_ut=[false,false]; +exprs=[[string(1)],[string(rpar)]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); -x.graphics.style="MAXMIN;displayedLabel=MAX"; } - MAXMIN.prototype.details = function MAXMIN() { + STEP.prototype.details = function STEP() { } - MAXMIN.prototype.get = function MAXMIN() { + STEP.prototype.get = function STEP() { } - MAXMIN.prototype.set = function MAXMIN() { + STEP.prototype.set = function STEP() { 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); +[ok,temps,in1,fi,exprs]=scicos_getvalue([[msprintf(gettext("Set %s block parameters"),"STEP_FUNCTION")],[" "],[gettext("Step Function")],[" "]],[[gettext("Step Time")],[gettext("Initial Value")],[gettext("Final Value")]],list("vec",1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } -if (zcr!=0) { -zcr=-1; +in1=in1.slice(); +fi=fi.slice(); +if (size(in1,"*")!=size(fi,"*")) { +if (size(in1,"*")==1) { +in1=in1*ones(fi); +} else if (size(fi,"*")==1) { +fi=fi*ones(in1); +} else { +block_parameter_error(msprintf(gettext("\'Initial Value\' and \'Final Value\': incompatible sizes: %d and %d."),size(in1,"*"),size(fi,"*")),gettext("Same sizes expected.")); +ok=false; } -if (mm!=1) { -mm=2; } -if (nin!=1&&nin!=2) { -message("Wrong number of inputs, only 1 and 2 allowed"); -ok=false; +if (ok) { +model.out2=1; +model.outtyp=1; +[model,graphics,ok]=check_io(model,graphics,[],size(fi,"*"),1,1); } if (ok) { -if (nin==1) { -[model,graphics,ok]=check_io(model,graphics,-1,1,[],[]); +model.firing=temps; +if (temps==0) { +rpar=[[fi],[fi]]; } else { -[model,graphics,ok]=check_io(model,graphics,[-1,-1],-1,[],[]); +rpar=[[in1],[fi]]; +} +model.rpar=rpar; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break; +} +} + } +} +/* autogenerated from "macros/Sources/STEP_FUNCTION.sci" */ +function STEP_FUNCTION() { + STEP_FUNCTION.prototype.define = function STEP_FUNCTION() { +scs_m_1=scicos_diagram(); +scs_m_1.objs[1-1]=this.STEP["define"-1]; +scs_m_1.objs[2-1]=OUT_f("define"); +scs_m_1.objs[3-1]=scicos_link(); +scs_m_1.objs[4-1]=scicos_link(); +blk=scs_m_1.objs[1-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[0,0]; +graphics.sz=[40,40]; +graphics.pein=4; +graphics.peout=4; +graphics.pout=3; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[1-1]=blk; +blk=scs_m_1.objs[2-1]; +graphics=blk.graphics; +model=blk.model; +graphics.orig=[80,10]; +graphics.sz=[20,20]; +graphics.exprs=["1"]; +model.ipar=1; +graphics.pin=3; +blk.graphics=graphics; +blk.model=model; +scs_m_1.objs[2-1]=blk; +lnk=scs_m_1.objs[3-1]; +lnk.from=[1,1,0]; +lnk.to=[2,1,1]; +scs_m_1.objs[3-1]=lnk; +lnk=scs_m_1.objs[4-1]; +lnk.xx=[0,20,-20,-20,20,1]; +lnk.yy=[0,-20,-20,60,60,1]; +lnk.ct=[5,-1]; +lnk.from=[1,1,0]; +lnk.to=[1,1,1]; +scs_m_1.objs[4-1]=lnk; +blk={}; +lnk={}; +model=scicos_model(); +model.sim="csuper"; +model.out=1; +model.out2=1; +model.outtyp=1; +model.rpar=scs_m_1; +gr_i=[]; +x=standard_define([2,2],model,[],gr_i); + } + STEP_FUNCTION.prototype.details = function STEP_FUNCTION() { + } + STEP_FUNCTION.prototype.get = function STEP_FUNCTION() { + } + STEP_FUNCTION.prototype.set = function STEP_FUNCTION() { +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="STEP") { +ppath=list(i); +break; +} +} +newpar=list(); +for (path in ppath) { +np=size(path,"*"); +spath=list(); +for (k=1;k<=np;k+=1) { +spath[$+1-1]="model"; +spath[$+1-1]="rpar"; +spath[$+1-1]="objs"; +spath[$+1-1]=path[k-1]; +} +xx=arg1[spath-1]; +execstr("xxn="+xx.gui+"(\'set\',xx)"); +if (diffobjs(this.xxn,xx)) { +model=xx.model; +model_n=this.xxn.model; +if (!is_modelica_block(xx)) { +modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); +if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { +needcompile=1; +} +if (or(model.firing!=model_n.firing)) { +needcompile=2; +} +if (model.sim=="input"||model.sim=="output") { +if (model.ipar!=model_n.ipar) { +needcompile=4; +} +} +if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { +needcompile=4; +} +if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { +needcompile=4; +} +if (prod(size(model_n.sim))>1) { +if (model_n.sim[2-1]>1000) { +if (model.sim[1-1]!=model_n.sim[1-1]) { +needcompile=4; } } -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"; +modified=or(model_n!=model); +eq=model.equations; +eqn=model_n.equations; +if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { +needcompile=4; } -graphics.style="MAXMIN;displayedLabel="+label; +} +arg1[spath-1]=this.xxn; +newpar[size(newpar)+1-1]=path; +} +} +x=arg1; +y=needcompile; +typ=newpar; + } +} +/* autogenerated from "macros/Sources/SampleCLK.sci" */ +function SampleCLK() { + SampleCLK.prototype.define = function SampleCLK() { +model=scicos_model(); +model.sim="sampleclk"; +model.evtout=1; +model.rpar=[1,0]; +model.blocktype="d"; +model.firing=-1; +model.dep_ut=[false,false]; +exprs=[[sci2exp(1)],[sci2exp(0)]]; +x=standard_define([2,2],model,exprs," "); + } + SampleCLK.prototype.details = function SampleCLK() { + } + SampleCLK.prototype.get = function SampleCLK() { + } + SampleCLK.prototype.set = function SampleCLK() { +x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +while (true) { +[ok,frequ,offset,exprs]=scicos_getvalue("Set block parameters",[["Sample time"],["Offset"]],list("vec",1,"vec",1),exprs); +if (!ok) { +break; +} +if (frequ<0) { +message("Frequency must be a positif number"); +ok=false; +} +if (abs(offset)>frequ) { +message("The |Offset| must be less than the Frequency"); +ok=false; +} +if (ok) { +if (or(model.rpar.slice()!=[[frequ],[offset]])) { +needcompile=4; +y=needcompile; +} +model.rpar=[[frequ],[offset]]; +model.evtout=1; +model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break; } } +needcompile=resume(needcompile) } } -/* autogenerated from "macros/NonLinear/INVBLK_f.sci" */ -function INVBLK_f() { - INVBLK_f.prototype.define = function INVBLK_f() { -in1=-1; +/* autogenerated from "macros/Sources/Sigbuilder.sci" */ +function Sigbuilder() { + Sigbuilder.prototype.define = function Sigbuilder() { +scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["Sigbuilder","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=100,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); +scs_m_1.objs[1-1]=scicos_block(gui="CURVE_c",graphics=scicos_graphics(orig=[329.63473,606.18517],sz=[40,40],flip=true,theta=0,exprs=[["3"],["[0,1,2]"],["[10,20,-30]"],["y"],["n"]],pin=[],pout=6,pein=4,peout=2,gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("curve_c",4),in1=[],in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[[0],[1],[2],[10],[20],[-30]],ipar=[[3],[3],[1]],opar=list(),blocktype="c",firing=0,dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[2-1]=scicos_link(xx=[[349.63473],[349.49528]],yy=[[600.47089],[565.10704]],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[3,1,1]); +scs_m_1.objs[3-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[[349.49528],[565.10704]],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=2,peout=[[8],[4]],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[4-1]=scicos_link(xx=[[349.49528],[266.69602],[266.69602],[270.35525],[342.80795],[342.80795],[349.63473]],yy=[[565.10704],[565.10704],[680.99483],[680.99483],[680.99483],[651.89946],[651.89946]],id="drawlink",thick=[0,0],ct=[5,-1],from=[3,2,0],to=[1,1,1]); +scs_m_1.objs[5-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[398.20616,616.18517],sz=[20,20],flip=true,theta=0,exprs="1",pin=6,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[6-1]=scicos_link(xx=[[378.20616],[398.20616]],yy=[[626.18517],[626.18517]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[5,1,1]); +scs_m_1.objs[7-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[339.49528,505.10704],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m_1.objs[8-1]=scicos_link(xx=[[349.49528],[349.49528]],yy=[[565.10704],[535.10704]],id="drawlink",thick=[0,0],ct=[5,-1],from=[3,1,0],to=[7,1,1]); +model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); +gr_i=[]; +x=standard_define([3,2],model,[],gr_i); + } + Sigbuilder.prototype.details = function Sigbuilder() { + } + Sigbuilder.prototype.get = function Sigbuilder() { + } + Sigbuilder.prototype.set = function Sigbuilder() { +ppath=list(0); +for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { +o=arg1.model.rpar.objs[i-1]; +if (typeof(o)=="Block"&&o.gui=="CURVE_c") { +ppath[1-1]=i; +break; +} +} +newpar=list(); +this.y=0; +for (path in ppath) { +np=size(path,"*"); +spath=list(); +for (k=1;k<=np;k+=1) { +spath[$+1-1]="model"; +spath[$+1-1]="rpar"; +spath[$+1-1]="objs"; +spath[$+1-1]=path[k-1]; +} +xx=arg1[spath-1]; +execstr("xxn="+xx.gui+"(\'set\',xx)"); +if (diffobjs(this.xxn,xx)) { +model=xx.model; +model_n=this.xxn.model; +if (!is_modelica_block(xx)) { +modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); +if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { +needcompile=1; +} +if (or(model.firing!=model_n.firing)) { +needcompile=2; +} +if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { +needcompile=4; +} +if (model.sim=="input"||model.sim=="output") { +if (model.ipar!=model_n.ipar) { +needcompile=4; +} +} +if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { +needcompile=4; +} +if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { +needcompile=4; +} +if (prod(size(model_n.sim))>1) { +if (model_n.sim[2-1]>1000) { +if (model.sim[1-1]!=model_n.sim[1-1]) { +needcompile=4; +} +} +} +} else { +modified=or(model_n!=model); +eq=model.equations; +eqn=model_n.equations; +if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { +needcompile=4; +} +} +arg1[spath-1]=this.xxn; +newpar[size(newpar)+1-1]=path; +this.y=max(this.y,needcompile); +} +} +x=arg1; +typ=newpar; + } +} +/* autogenerated from "macros/Sources/TIME_f.sci" */ +function TIME_f() { + TIME_f.prototype.define = function TIME_f() { model=scicos_model(); -model.sim="invblk"; -model.in1=in1; -model.out=in1; +model.sim="timblk"; +model.out=1; model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=" "; +model.dep_ut=[false,true]; gr_i=[]; -x=standard_define([2,2],model,exprs,gr_i); +x=standard_define([2,2],model,[],gr_i); } - INVBLK_f.prototype.details = function INVBLK_f() { + TIME_f.prototype.details = function TIME_f() { } - INVBLK_f.prototype.get = function INVBLK_f() { + TIME_f.prototype.get = function TIME_f() { } - INVBLK_f.prototype.set = function INVBLK_f() { + TIME_f.prototype.set = function TIME_f() { x=arg1; } } -/* autogenerated from "macros/NonLinear/LOOKUP2D.sci" */ -function LOOKUP2D() { - LOOKUP2D.prototype.define = function LOOKUP2D() { +/* autogenerated from "macros/Sources/TKSCALE.sci" */ +function TKSCALE() { + TKSCALE.prototype.define = function TKSCALE() { +a=-10; +b=10; +f=1; model=scicos_model(); -xx=[1:4]; -yy=[1:3]; -zz=[[4,5,6],[16,19,20],[10,18,23],[6,3,-1]]; -Method=1; -Graf="n"; -Nx=length(xx); -Ny=length(yy); -model.sim=list("lookup2d",4); -model.in1=[[1],[1]]; +model.sim=list("tkscaleblk",5); model.out=1; -model.rpar=[[xx.slice()],[yy.slice()],[zz.slice()]]; -model.ipar=[[Nx],[Ny],[Method]]; -model.blocktype="c"; -model.dep_ut=[true,false]; -exprs=list(strcat(sci2exp(xx)),strcat(sci2exp(yy)),strcat(sci2exp(zz)),sci2exp(Method),Graf); +model.evtin=1; +model.rpar=[[a],[b],[f]]; +model.blocktype="d"; +model.dep_ut=[false,false]; +exprs=[[sci2exp(a)],[sci2exp(b)],[sci2exp(f)]]; gr_i=[]; -x=standard_define([2.5,2],model,exprs,gr_i); +x=standard_define([3,2],model,exprs,gr_i); } - LOOKUP2D.prototype.details = function LOOKUP2D() { + TKSCALE.prototype.details = function TKSCALE() { } - LOOKUP2D.prototype.get = function LOOKUP2D() { + TKSCALE.prototype.get = function TKSCALE() { } - LOOKUP2D.prototype.set = function LOOKUP2D() { + TKSCALE.prototype.set = function TKSCALE() { x=arg1; -model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -ok=false; -SaveExit=false; -while (true) { -Ask_again=false; -[ok,xx,yy,zz,Method,graf,exprs]=scicos_getvalue("2D Lookup table parameters",[["Row index input values"],["Column index input values"],["Table data"],["Lookup method(1..5)"],["Launch graphic window(y/n)?"]],list("vec",-1,"vec",-1,"mat",[-1,-1],"vec",1,"str",1),exprs); -if (!ok) { -break; +model=arg1.model; +[ok,a,b,f,exprs]=scicos_getvalue("Set scale block parameters",[["Min value"],["Max value"],["Normalization"]],list("vec",1,"vec",1,"vec",1),exprs); +if (ok) { +graphics.exprs=exprs; +model.rpar=[[a],[b],[f]]; +x.graphics=graphics; +x.model=model; } -mtd=int(Method); -if (mtd<1) { -mtd=1; + } } -if (mtd>6) { -mtd=6; +/* autogenerated from "macros/Threshold/GENERAL_f.sci" */ +function GENERAL_f() { + GENERAL_f.prototype.define = function GENERAL_f() { +rpar=[[0],[0],[0],[0]]; +in1=1; +out=1; +model=scicos_model(); +model.sim=list("zcross",1); +model.nzcross=in1; +model.in1=in1; +model.evtout=ones(out,1); +model.rpar=[[0],[0],[0],[0]]; +model.blocktype="z"; +model.firing=-ones(out,1); +model.dep_ut=[true,false]; +exprs=[[strcat(sci2exp(in1))],[strcat(sci2exp(out))]]; +gr_i=[]; +x=standard_define([3,2],model,exprs,gr_i); + } + GENERAL_f.prototype.details = function GENERAL_f() { + } + GENERAL_f.prototype.get = function GENERAL_f() { + } + GENERAL_f.prototype.set = function GENERAL_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +rpar=model.rpar; +in1=model.in1; +out=model.evtout; +nin=sum(in1); +nout=sum(out); +[ok,in1,out,exprs]=scicos_getvalue("Set General Zero-Crossing parameters",[["Input size"],["Number of event output"]],list("vec",1,"vec",1),exprs); +if (ok) { +[model,graphics,ok]=check_io(model,graphics,in1,[],[],ones(out,1)); +if (ok) { +nout1=out; +nin1=in1; +if (nout==nout1&&nin==nin1) { +rp=matrix(rpar,nout,2^(2*nin)); +} else { +rp=-1*ones(nout1,2^(2*nin1)); } -if (graf!="y"&&graf!="Y") { -graf="n"; +n=size(rp,2)/2; +result=x_mdialog("routing matrix",string(1,nout1),string(1,2^(2*nin1)),string(rp.slice().slice())); +if (result!=[]) { +rp.slice(1-1,nout1).slice(1-1,2*n)=evstr(result); +model.nzcross=in1; +model.rpar=rp.slice(); +model.firing=-ones(out,1); +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; } -exprs[5-1]="n"; -exprs[4-1]=sci2exp(mtd); -METHOD=getmethod(mtd); -if (!Ask_again) { -xx=xx.slice(); -yy=yy.slice(); -[nx,mx]=size(xx); -[ny,my]=size(yy); -[nz,mz]=size(zz); -if (((nx<=1)||(ny<=1))) { -x_message("input row/column data size should be greater than one"); -Ask_again=true; } -if (!((nx==nz)&&(ny==mz))) { -x_message("incompatible size of x and y"); -Ask_again=true; } -[ok]=test_increasing[xx-1]; -if ((!ok)) { -x_message("Row input values must be monotonically increasing"); -Ask_again=true; + } } -[ok]=test_increasing[yy-1]; -if ((!ok)) { -x_message("Column input values must be monotonically increasing"); -Ask_again=true; +/* autogenerated from "macros/Threshold/NEGTOPOS_f.sci" */ +function NEGTOPOS_f() { + NEGTOPOS_f.prototype.define = function NEGTOPOS_f() { +model=scicos_model(); +model.sim=list("zcross",1); +model.nzcross=1; +model.in1=1; +model.evtout=1; +model.rpar=[[-1],[-1],[0],[-1]]; +model.blocktype="z"; +model.firing=-1; +model.dep_ut=[true,false]; +gr_i=[]; +x=standard_define([2,2],model,[],gr_i); + } + NEGTOPOS_f.prototype.details = function NEGTOPOS_f() { + } + NEGTOPOS_f.prototype.get = function NEGTOPOS_f() { + } + NEGTOPOS_f.prototype.set = function NEGTOPOS_f() { +x=arg1; +x.model.firing=-1; + } } +/* autogenerated from "macros/Threshold/POSTONEG_f.sci" */ +function POSTONEG_f() { + POSTONEG_f.prototype.define = function POSTONEG_f() { +rpar=[[-1],[-1],[-1],[0]]; +model=scicos_model(); +model.sim=list("zcross",1); +model.nzcross=1; +model.in1=1; +model.evtout=1; +model.rpar=[[-1],[-1],[-1],[0]]; +model.blocktype="z"; +model.dep_ut=[true,false]; +model.firing=[-1]; +gr_i=[]; +x=standard_define([2,2],model,[],gr_i); + } + POSTONEG_f.prototype.details = function POSTONEG_f() { + } + POSTONEG_f.prototype.get = function POSTONEG_f() { + } + POSTONEG_f.prototype.set = function POSTONEG_f() { +x=arg1; +x.model.firing=[-1]; + } } -if (!Ask_again) { -if ((graf=="Y"||graf=="y")) { -gh=gcf(); -curwin=gh.figure_id; -save_curwin=curwin; -gh2=scf(); -curwin=max(winsid())+1; -plot3d(xx,yy,zz,35,45,"X@Y@Z",[5,2,4]); -curwin=save_curwin; -gh.figure_id=curwin; +/* autogenerated from "macros/Threshold/ZCROSS_f.sci" */ +function ZCROSS_f() { + ZCROSS_f.prototype.define = function ZCROSS_f() { +rpar=[[-1],[-1],[0],[0]]; +in1=1; +model=scicos_model(); +model.sim=list("zcross",1); +model.in1=in1; +model.nzcross=in1; +model.evtout=1; +model.rpar=[[-1],[-1],[0],[0]]; +model.blocktype="z"; +model.firing=-1; +model.dep_ut=[true,false]; +exprs=strcat(sci2exp(in1)); +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); + } + ZCROSS_f.prototype.details = function ZCROSS_f() { + } + ZCROSS_f.prototype.get = function ZCROSS_f() { + } + ZCROSS_f.prototype.set = function ZCROSS_f() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,in1,exprs]=scicos_getvalue([["Set Zero-Crossing parameters"],["All surfaces must cross together"]],"Input size",list("vec",1),exprs); +if (!ok) { +break; } -model.rpar=[[xx.slice()],[yy.slice()],[zz.slice()]]; -model.ipar=[[nx],[ny],[mtd]]; +in1=int(in1); +if (in1<=0) { +message("Block must have at least one input"); +} else { +kk=0; +for (jj=1;jj<=in1;jj+=1) { +kk=kk+2^(in1+jj-1); +} +model.rpar=[[-ones(kk,1)],[zeros(2^(2*in1)-kk,1)]]; graphics.exprs=exprs; -x.model=model; +model.in1=in1; +model.nzcross=in1; +model.firing=-1; x.graphics=graphics; +x.model=model; break; } } diff --git a/js/Branching/CLKFROM.pickle b/js/Branching/CLKFROM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/CLKFROM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/CLKGOTO.pickle b/js/Branching/CLKGOTO.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/CLKGOTO.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/CLKGotoTagVisibility.pickle b/js/Branching/CLKGotoTagVisibility.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/CLKGotoTagVisibility.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/DEMUX.pickle b/js/Branching/DEMUX.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/DEMUX.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/DEMUX_f.pickle b/js/Branching/DEMUX_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/DEMUX_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/ESELECT_f.pickle b/js/Branching/ESELECT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/ESELECT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/EXTRACTOR.pickle b/js/Branching/EXTRACTOR.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/EXTRACTOR.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/FROM.pickle b/js/Branching/FROM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/FROM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/FROMMO.pickle b/js/Branching/FROMMO.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/FROMMO.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/GOTO.pickle b/js/Branching/GOTO.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/GOTO.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/GOTOMO.pickle b/js/Branching/GOTOMO.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/GOTOMO.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/GotoTagVisibility.pickle b/js/Branching/GotoTagVisibility.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/GotoTagVisibility.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/GotoTagVisibilityMO.pickle b/js/Branching/GotoTagVisibilityMO.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/GotoTagVisibilityMO.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/ISELECT_f.pickle b/js/Branching/ISELECT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/ISELECT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/ISELECT_m.pickle b/js/Branching/ISELECT_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/ISELECT_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/MUX.pickle b/js/Branching/MUX.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/MUX.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/MUX_f.pickle b/js/Branching/MUX_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/MUX_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/M_SWITCH.pickle b/js/Branching/M_SWITCH.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/M_SWITCH.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/NRMSOM_f.pickle b/js/Branching/NRMSOM_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/NRMSOM_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/RELAY_f.pickle b/js/Branching/RELAY_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/RELAY_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/SCALAR2VECTOR.pickle b/js/Branching/SCALAR2VECTOR.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/SCALAR2VECTOR.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/SELECT_f.pickle b/js/Branching/SELECT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/SELECT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/SELECT_m.pickle b/js/Branching/SELECT_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/SELECT_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/SELF_SWITCH.pickle b/js/Branching/SELF_SWITCH.pickle new file mode 100644 index 00000000..ad17cc4d --- /dev/null +++ b/js/Branching/SELF_SWITCH.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'stateOpen' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Branching/SWITCH2.pickle b/js/Branching/SWITCH2.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/SWITCH2.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/SWITCH2_m.pickle b/js/Branching/SWITCH2_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/SWITCH2_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Branching/SWITCH_f.pickle b/js/Branching/SWITCH_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Branching/SWITCH_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/CCS.pickle b/js/Electrical/CCS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/CCS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/CVS.pickle b/js/Electrical/CVS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/CVS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Capacitor.pickle b/js/Electrical/Capacitor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Capacitor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/ConstantVoltage.pickle b/js/Electrical/ConstantVoltage.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/ConstantVoltage.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/CurrentSensor.pickle b/js/Electrical/CurrentSensor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/CurrentSensor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Diode.pickle b/js/Electrical/Diode.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Diode.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Ground.pickle b/js/Electrical/Ground.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Ground.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Gyrator.pickle b/js/Electrical/Gyrator.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Gyrator.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/IdealTransformer.pickle b/js/Electrical/IdealTransformer.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/IdealTransformer.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Inductor.pickle b/js/Electrical/Inductor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Inductor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/MOTOR.pickle b/js/Electrical/MOTOR.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/MOTOR.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/NMOS.pickle b/js/Electrical/NMOS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/NMOS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/NPN.pickle b/js/Electrical/NPN.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/NPN.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/OpAmp.pickle b/js/Electrical/OpAmp.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/OpAmp.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/PMOS.pickle b/js/Electrical/PMOS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/PMOS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/PNP.pickle b/js/Electrical/PNP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/PNP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/PotentialSensor.pickle b/js/Electrical/PotentialSensor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/PotentialSensor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Resistor.pickle b/js/Electrical/Resistor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Resistor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/SineVoltage.pickle b/js/Electrical/SineVoltage.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/SineVoltage.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/Switch.pickle b/js/Electrical/Switch.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/Switch.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/VVsourceAC.pickle b/js/Electrical/VVsourceAC.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/VVsourceAC.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/VariableResistor.pickle b/js/Electrical/VariableResistor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/VariableResistor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/VoltageSensor.pickle b/js/Electrical/VoltageSensor.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/VoltageSensor.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Electrical/VsourceAC.pickle b/js/Electrical/VsourceAC.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Electrical/VsourceAC.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/ANDBLK.pickle b/js/Events/ANDBLK.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/ANDBLK.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/ANDLOG_f.pickle b/js/Events/ANDLOG_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/ANDLOG_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/CLKSOMV_f.pickle b/js/Events/CLKSOMV_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/CLKSOMV_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/CLKSOM_f.pickle b/js/Events/CLKSOM_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/CLKSOM_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/CLKSPLIT_f.pickle b/js/Events/CLKSPLIT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/CLKSPLIT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/END_c.pickle b/js/Events/END_c.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/END_c.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/EVTDLY_c.pickle b/js/Events/EVTDLY_c.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/EVTDLY_c.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/EVTDLY_f.pickle b/js/Events/EVTDLY_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/EVTDLY_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/EVTGEN_f.pickle b/js/Events/EVTGEN_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/EVTGEN_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/EVTVARDLY.pickle b/js/Events/EVTVARDLY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/EVTVARDLY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/HALT_f.pickle b/js/Events/HALT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/HALT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/IFTHEL_f.pickle b/js/Events/IFTHEL_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/IFTHEL_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/MCLOCK_f.js b/js/Events/MCLOCK_f.js index 1abf339a..8c13e714 100644 --- a/js/Events/MCLOCK_f.js +++ b/js/Events/MCLOCK_f.js @@ -84,8 +84,8 @@ newpar=list(); spath=list("model","rpar","objs",path); xx=arg1[spath-1]; execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (or(xxn!=xx)) { -arg1[spath-1]=xxn; +if (or(this.xxn!=xx)) { +arg1[spath-1]=this.xxn; newpar[size(newpar)+1-1]=path; } x=arg1; diff --git a/js/Events/MCLOCK_f.pickle b/js/Events/MCLOCK_f.pickle new file mode 100644 index 00000000..349c1dad --- /dev/null +++ b/js/Events/MCLOCK_f.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'xxn' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Events/MFCLCK_f.pickle b/js/Events/MFCLCK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/MFCLCK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/M_freq.js b/js/Events/M_freq.js index 3e0299cb..c2853cdd 100644 --- a/js/Events/M_freq.js +++ b/js/Events/M_freq.js @@ -41,10 +41,10 @@ message("The |Offset| must be less than the Frequency"); ok=false; } if (ok) { -[m,den,off,count,m1,fir,frequ,offset,ok]=mfrequ_clk[frequ-1][offset-1]; +[m,den,off,count,m1,fir,frequ,offset,ok]=mfrequ_clk(frequ,offset); } if (ok) { -model.opar=list(m,double[den-1],off,count); +model.opar=list(m,double(den),off,count); mn=(2^size(m1,"*"))-1; [model,graphics,ok]=set_io(model,graphics,list(),list(),1,ones(mn,1)); if (mn>3) { diff --git a/js/Events/M_freq.pickle b/js/Events/M_freq.pickle new file mode 100644 index 00000000..7d80f6e5 --- /dev/null +++ b/js/Events/M_freq.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'of' +p2 +aS'fr' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Events/VirtualCLK0.pickle b/js/Events/VirtualCLK0.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/VirtualCLK0.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Events/freq_div.js b/js/Events/freq_div.js index e66605dc..8a3d608a 100644 --- a/js/Events/freq_div.js +++ b/js/Events/freq_div.js @@ -173,7 +173,7 @@ needcompile=4; if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } -if (prod[size(model_n.sim)-1]>1) { +if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (model.sim[1-1]!=model_n.sim[1-1]) { needcompile=4; diff --git a/js/Events/freq_div.pickle b/js/Events/freq_div.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Events/freq_div.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Hydraulics/Bache.pickle b/js/Hydraulics/Bache.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Hydraulics/Bache.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Hydraulics/Flowmeter.pickle b/js/Hydraulics/Flowmeter.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Hydraulics/Flowmeter.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Hydraulics/PerteDP.pickle b/js/Hydraulics/PerteDP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Hydraulics/PerteDP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Hydraulics/PuitsP.pickle b/js/Hydraulics/PuitsP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Hydraulics/PuitsP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Hydraulics/SourceP.pickle b/js/Hydraulics/SourceP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Hydraulics/SourceP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Hydraulics/VanneReglante.pickle b/js/Hydraulics/VanneReglante.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Hydraulics/VanneReglante.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/BITCLEAR.js b/js/IntegerOp/BITCLEAR.js index 0e1fd5ee..8b4d4858 100644 --- a/js/IntegerOp/BITCLEAR.js +++ b/js/IntegerOp/BITCLEAR.js @@ -9,7 +9,7 @@ model.out=1; model.out2=1; model.intyp=3; model.outtyp=3; -model.opar=list(int32[0-1]); +model.opar=list(int32(0)); model.blocktype="c"; model.dep_ut=[true,false]; exprs=[[sci2exp(3)],[sci2exp(0)]]; @@ -31,7 +31,7 @@ if (!ok) { break; } in1=[model.in1,model.in2]; -if (floor[bit-1]!=bit) { +if (floor(bit)!=bit) { block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); ok=false; } else if ((Datatype==3)||(Datatype==6)) { @@ -39,9 +39,9 @@ if (bit>31||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); ok=false; } else { -bit=uint32[bit-1]; +bit=uint32(bit); n=(2^32-1)-2^bit; -n=uint32[n-1]; +n=uint32(n); model.sim=list("bit_clear_32",4); } } else if ((Datatype==4)||(Datatype==7)) { @@ -49,9 +49,9 @@ if (bit>15||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); ok=false; } else { -bit=uint16[bit-1]; +bit=uint16(bit); n=(2^16-1)-2^bit; -n=uint16[n-1]; +n=uint16(n); model.sim=list("bit_clear_16",4); } } else if ((Datatype==5)||(Datatype==8)) { @@ -59,9 +59,9 @@ if (bit>7||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); ok=false; } else { -bit=uint8[bit-1]; +bit=uint8(bit); n=(2^8-1)-2^bit; -n=uint8[n-1]; +n=uint8(n); model.sim=list("bit_clear_8",4); } } else { diff --git a/js/IntegerOp/BITCLEAR.pickle b/js/IntegerOp/BITCLEAR.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/BITCLEAR.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/BITSET.js b/js/IntegerOp/BITSET.js index c530967f..e3318fbe 100644 --- a/js/IntegerOp/BITSET.js +++ b/js/IntegerOp/BITSET.js @@ -9,7 +9,7 @@ model.out=1; model.out2=1; model.intyp=3; model.outtyp=3; -model.opar=list(uint32[0-1]); +model.opar=list(uint32(0)); model.blocktype="c"; model.dep_ut=[true,false]; exprs=[[sci2exp(3)],[sci2exp(0)]]; @@ -31,7 +31,7 @@ if (!ok) { break; } in1=[model.in1,model.in2]; -if (floor[bit-1]!=bit) { +if (floor(bit)!=bit) { block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); ok=false; } @@ -40,27 +40,27 @@ if (bit>31||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); ok=false; } -bit=uint32[bit-1]; +bit=uint32(bit); n=2^bit; -n=uint32[n-1]; +n=uint32(n); model.sim=list("bit_set_32",4); } else if ((Datatype==4)||(Datatype==7)) { if (bit>15||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); ok=false; } -bit=uint16[bit-1]; +bit=uint16(bit); n=2^bit; -n=uint16[n-1]; +n=uint16(n); model.sim=list("bit_set_16",4); } else if ((Datatype==5)||(Datatype==8)) { if (bit>7||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); ok=false; } -bit=uint8[bit-1]; +bit=uint8(bit); n=2^bit; -n=uint8[n-1]; +n=uint8(n); model.sim=list("bit_set_8",4); } else { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); diff --git a/js/IntegerOp/BITSET.pickle b/js/IntegerOp/BITSET.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/BITSET.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/CONVERT.pickle b/js/IntegerOp/CONVERT.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/CONVERT.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/DFLIPFLOP.js b/js/IntegerOp/DFLIPFLOP.js index e2ac2535..dcf097e3 100644 --- a/js/IntegerOp/DFLIPFLOP.js +++ b/js/IntegerOp/DFLIPFLOP.js @@ -2,7 +2,7 @@ function DFLIPFLOP() { DFLIPFLOP.prototype.define = function DFLIPFLOP() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DFLIPFLOP"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[0-1]),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8(0)),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[239.98293,378.2166],sz=[60,60],flip=true,theta=0,exprs=[["1"],["1"]],pin=29,pout=[],pein=22,peout=[[16],[44]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=[["2"],["1"],["5"],["0"]],pin=[[11],[39]],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=33,pein=42,peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); diff --git a/js/IntegerOp/DFLIPFLOP.pickle b/js/IntegerOp/DFLIPFLOP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/DFLIPFLOP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/DLATCH.js b/js/IntegerOp/DLATCH.js index 5dd1929c..00832d76 100644 --- a/js/IntegerOp/DLATCH.js +++ b/js/IntegerOp/DLATCH.js @@ -2,7 +2,7 @@ function DLATCH() { DLATCH.prototype.define = function DLATCH() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DLATCH"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[0-1]),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[[20],[20]],flip=true,theta=0,exprs="int8(0)",pin=[],pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8(0)),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[233.37693,320.30536],sz=[60,60],flip=true,theta=0,exprs=[["0"],["1"]],pin=13,pout=[],pein=[],peout=[[6],[0]],gr_i=list([["txt=[\'If in>0\';\' \';\' then else\'];"],["xstringb(orig(1),orig(2),txt,sz(1),sz(2),\'fill\');"]],8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=[["2"],["1"],["5"],["0"]],pin=[[15],[7]],pout=5,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit=[["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[[-1],[-1]],in2=[[-2],[-2]],intyp=[[5],[5]],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[[1],[0]],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=9,pein=6,peout=[],gr_i=list("xstringb(orig(1),orig(2),\'S/H\',sz(1),sz(2),\'fill\')",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); diff --git a/js/IntegerOp/DLATCH.pickle b/js/IntegerOp/DLATCH.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/DLATCH.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/EXTRACTBITS.pickle b/js/IntegerOp/EXTRACTBITS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/EXTRACTBITS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/INTMUL.pickle b/js/IntegerOp/INTMUL.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/INTMUL.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/JKFLIPFLOP.js b/js/IntegerOp/JKFLIPFLOP.js index 69a012c4..1b2b9379 100644 --- a/js/IntegerOp/JKFLIPFLOP.js +++ b/js/IntegerOp/JKFLIPFLOP.js @@ -2,7 +2,7 @@ function JKFLIPFLOP() { JKFLIPFLOP.prototype.define = function JKFLIPFLOP() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["JKFLIPFLOP"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.96961,261.584],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=7,pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8[0-1]),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[1-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.96961,261.584],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=7,pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8(0)),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="-1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=-1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=[["0"],["0"]],pin=3,pout=[],pein=[],peout=[[7],[0]],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[[1],[1]],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); @@ -12,7 +12,7 @@ scs_m_1.objs[5-1]=scicos_link(xx=[[260.01488],[280.01488]],yy=[[277.1131],[277.1 scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[7-1]=scicos_link(xx=[[408.28869],[408.28869]],yy=[[241.39881],[211.39881]],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); scs_m.objs[2-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[292.52452,323.54888],sz=[60,40],flip=true,theta=0,exprs=[],pin=14,pout=[],pein=[],peout=8,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[3-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[302.79613,202.52782],sz=[40,40],flip=true,theta=0,exprs=[["[0;1;1;1;0;0;1;0]"],["0"]],pin=[[5],[16],[18]],pout=4,pein=8,peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=1,out2=1,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[[[0],[1],[1],[1],[0],[0],[1],[0]]-1]),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[3-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[302.79613,202.52782],sz=[40,40],flip=true,theta=0,exprs=[["[0;1;1;1;0;0;1;0]"],["0"]],pin=[[5],[16],[18]],pout=4,pein=8,peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit="E"),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=1,out2=1,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8([[0],[1],[1],[1],[0],[0],[1],[0]])),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[4-1]=scicos_link(xx=[[351.36756],[368.82793],[368.82793]],yy=[[222.52782],[222.52782],[223.06473]],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[10,1,1]); scs_m.objs[5-1]=scicos_link(xx=[[291.39818],[274.18235],[274.18235],[294.2247]],yy=[[281.584],[281.584],[232.52782],[232.52782]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); scs_m.objs[6-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[368.82793,243.45067],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=11,pout=[[7],[20]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); @@ -70,9 +70,9 @@ if (!ok) { break; } if (init<=0) { -init=int8[0-1]; +init=int8(0); } else if (init>0) { -init=int8[1-1]; +init=int8(1); } if (ok) { xx.graphics.exprs[1-1]=exprs0; diff --git a/js/IntegerOp/JKFLIPFLOP.pickle b/js/IntegerOp/JKFLIPFLOP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/JKFLIPFLOP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/LOGIC.js b/js/IntegerOp/LOGIC.js index aa41eb6e..06861382 100644 --- a/js/IntegerOp/LOGIC.js +++ b/js/IntegerOp/LOGIC.js @@ -11,7 +11,7 @@ model.out2=1; model.evtin=1; model.intyp=[5,5]; model.outtyp=5; -model.opar=list(int8[mat-1]); +model.opar=list(int8(mat)); model.blocktype="c"; model.firing=false; model.dep_ut=[true,false]; @@ -34,8 +34,8 @@ if (!ok) { break; } nout=size(mat,2); -nin=(log[size(mat,1)-1]/log[2-1]); -u1=floor[nin-1]; +nin=(log(size(mat,1))/log(2)); +u1=floor(nin); if ((u1!=nin)) { block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %d."),gettext("Truth Table"),size(mat,1)),gettext("Number of rows must be a power of two.")); ok=false; @@ -55,7 +55,7 @@ ot=5*ones(1,nout); } if (ok) { graphics.exprs=exprs; -mat=int8[mat-1]; +mat=int8(mat); model.opar=list(mat); x.graphics=graphics; x.model=model; diff --git a/js/IntegerOp/LOGIC.pickle b/js/IntegerOp/LOGIC.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/LOGIC.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/SHIFT.pickle b/js/IntegerOp/SHIFT.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/SHIFT.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/IntegerOp/SRFLIPFLOP.js b/js/IntegerOp/SRFLIPFLOP.js index 4f2b33df..485eefad 100644 --- a/js/IntegerOp/SRFLIPFLOP.js +++ b/js/IntegerOp/SRFLIPFLOP.js @@ -2,8 +2,8 @@ function SRFLIPFLOP() { SRFLIPFLOP.prototype.define = function SRFLIPFLOP() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["SRFLIPFLOP"],tol=[[0.0001],[0.000001],[1.000e-10],[100001],[0],[0],[0]],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); -scs_m.objs[1-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[298.504,201.45067],sz=[40,40],flip=true,theta=0,exprs=[["[0 1;1 0;1 0;1 0;0 1;0 1;0 0;0 0]"],["1"]],pin=[[4],[10],[12]],pout=[[3],[8]],pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit=[["E"],["E"]]),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=[[1],[1]],out2=[[1],[1]],outtyp=[[5],[5]],evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8[[[0,1],[1,0],[1,0],[1,0],[0,1],[0,1],[0,0],[0,0]]-1]),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); -scs_m.objs[2-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.23733,254.25067],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=6,pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8[0-1]),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[1-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[298.504,201.45067],sz=[40,40],flip=true,theta=0,exprs=[["[0 1;1 0;1 0;1 0;0 1;0 1;0 0;0 0]"],["1"]],pin=[[4],[10],[12]],pout=[[3],[8]],pein=[],peout=[],gr_i=[],id="",in_implicit=[["E"],["E"],["E"]],out_implicit=[["E"],["E"]]),model=scicos_model(sim=list("logic",4),in1=[[1],[1],[1]],in2=[[1],[1],[1]],intyp=[[5],[5],[5]],out=[[1],[1]],out2=[[1],[1]],outtyp=[[5],[5]],evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8([[0,1],[1,0],[1,0],[1,0],[0,1],[0,1],[0,0],[0,0]])),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); +scs_m.objs[2-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.23733,254.25067],sz=[40,40],flip=false,theta=0,exprs=[["int8(0)"],["1"]],pin=6,pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8(0)),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_link(xx=[[347.07543],[363.03733],[363.03733]],yy=[[228.11733],[228.11733],[248.584]],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[5,1,1]); scs_m.objs[4-1]=scicos_link(xx=[[290.6659],[272.104],[272.104],[289.93257]],yy=[[274.25067],[274.25067],[231.45067],[231.45067]],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[1,1,1]); scs_m.objs[5-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[363.03733,248.584],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=3,pout=[[6],[14]],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[["E"],["E"],["E"]]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[[-1],[-1],[-1]],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); @@ -54,9 +54,9 @@ if (!ok) { break; } if (init<=0) { -init=int8[0-1]; +init=int8(0); } else if (init>0) { -init=int8[1-1]; +init=int8(1); } if (ok) { xx.graphics.exprs[1-1]=exprs0; diff --git a/js/IntegerOp/SRFLIPFLOP.pickle b/js/IntegerOp/SRFLIPFLOP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/IntegerOp/SRFLIPFLOP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/BIGSOM_f.pickle b/js/Linear/BIGSOM_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/BIGSOM_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/CLINDUMMY_f.pickle b/js/Linear/CLINDUMMY_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/CLINDUMMY_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/CLR.js b/js/Linear/CLR.js index cc4cbc8a..dcebbfb5 100644 --- a/js/Linear/CLR.js +++ b/js/Linear/CLR.js @@ -29,7 +29,7 @@ exprs=graphics.exprs; model=arg1.model; x0=model.state; rpar=model.rpar; -ns=prod[size(x0)-1]; +ns=prod(size(x0)); nin=1; nout=1; PREVAR_scicos_context=PREVAR_scicos_context; @@ -39,12 +39,12 @@ while (true) { if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { +if (degree(num)>degree(den)) { message("Transfer function must be proper or strictly proper."); ok=false; } if (ok) { -H=cont_frm[num-1][den-1]; +H=cont_frm(num,den); [A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; [ns1,ns1]=size(A); diff --git a/js/Linear/CLR.pickle b/js/Linear/CLR.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/CLR.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/CLR_f.js b/js/Linear/CLR_f.js index 010c4839..3b87cba3 100644 --- a/js/Linear/CLR_f.js +++ b/js/Linear/CLR_f.js @@ -29,7 +29,7 @@ exprs=graphics.exprs; model=arg1.model; x0=model.state; rpar=model.rpar; -ns=prod[size(x0)-1]; +ns=prod(size(x0)); nin=1; nout=1; PREVAR_scicos_context=PREVAR_scicos_context; @@ -39,12 +39,12 @@ while (true) { if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { +if (degree(num)>degree(den)) { message("Transfer must be proper or strictly proper"); ok=false; } if (ok) { -H=cont_frm[num-1][den-1]; +H=cont_frm(num,den); [A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; [ns1,ns1]=size(A); diff --git a/js/Linear/CLR_f.pickle b/js/Linear/CLR_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/CLR_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/CLSS.js b/js/Linear/CLSS.js index b330992b..1bd13689 100644 --- a/js/Linear/CLSS.js +++ b/js/Linear/CLSS.js @@ -57,7 +57,7 @@ okD=false; } } if (ms!=ns||!okD) { -message(_["Matrix A is not square or D has wrong dimension"-1]); +message(_("Matrix A is not square or D has wrong dimension")); } else { [model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); if (ok) { diff --git a/js/Linear/CLSS.pickle b/js/Linear/CLSS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/CLSS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/CLSS_f.pickle b/js/Linear/CLSS_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/CLSS_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DELAYV_f.pickle b/js/Linear/DELAYV_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DELAYV_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DELAY_f.js b/js/Linear/DELAY_f.js index 66f2ca4b..8ae0eca2 100644 --- a/js/Linear/DELAY_f.js +++ b/js/Linear/DELAY_f.js @@ -95,7 +95,7 @@ if (!ok) { break; } mess=[]; -if (prod[size(z0)-1]<1) { +if (prod(size(z0))<1) { mess=[[mess],["Register length must be at least 1"],[" "]]; ok=false; } diff --git a/js/Linear/DELAY_f.pickle b/js/Linear/DELAY_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DELAY_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DERIV.pickle b/js/Linear/DERIV.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DERIV.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DIFF_c.pickle b/js/Linear/DIFF_c.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DIFF_c.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DLR.js b/js/Linear/DLR.js index dbbe1b83..8f0cc456 100644 --- a/js/Linear/DLR.js +++ b/js/Linear/DLR.js @@ -29,7 +29,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x0=model.dstate; -ns=prod[size(x0)-1]; +ns=prod(size(x0)); PREVAR_scicos_context=PREVAR_scicos_context; PREVAR_scicos_context.z=%z; while (true) { @@ -37,12 +37,12 @@ while (true) { if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { +if (degree(num)>degree(den)) { message("Transfer function must be proper"); ok=false; } if (ok) { -H=cont_frm[num-1][den-1]; +H=cont_frm(num,den); [A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; [ns1,ns1]=size(A); diff --git a/js/Linear/DLR.pickle b/js/Linear/DLR.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DLR.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DLR_f.js b/js/Linear/DLR_f.js index 15c876f2..e3ad64c9 100644 --- a/js/Linear/DLR_f.js +++ b/js/Linear/DLR_f.js @@ -29,7 +29,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x0=model.dstate; -ns=prod[size(x0)-1]; +ns=prod(size(x0)); PREVAR_scicos_context=PREVAR_scicos_context; PREVAR_scicos_context.z=%z; while (true) { @@ -37,12 +37,12 @@ while (true) { if (!ok) { break; } -if (degree[num-1]>degree[den-1]) { +if (degree(num)>degree(den)) { message("Transfer must be proper"); ok=false; } if (ok) { -H=cont_frm[num-1][den-1]; +H=cont_frm(num,den); [A,B,C,D]=H.slice(2-1,5); graphics.exprs=exprs; [ns1,ns1]=size(A); diff --git a/js/Linear/DLR_f.pickle b/js/Linear/DLR_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DLR_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DLSS.js b/js/Linear/DLSS.js index 0bd4f00d..eacdb24b 100644 --- a/js/Linear/DLSS.js +++ b/js/Linear/DLSS.js @@ -56,7 +56,7 @@ okD=false; } } if (ms!=ns||!okD) { -message(_["Matrix A is not square or D has wrong dimension"-1]); +message(_("Matrix A is not square or D has wrong dimension")); } else { [model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); if (ok) { diff --git a/js/Linear/DLSS.pickle b/js/Linear/DLSS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DLSS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DLSS_f.pickle b/js/Linear/DLSS_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DLSS_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DOLLAR.js b/js/Linear/DOLLAR.js index 915b26ed..e404c6cc 100644 --- a/js/Linear/DOLLAR.js +++ b/js/Linear/DOLLAR.js @@ -41,8 +41,8 @@ in1=out; model.sim=list("dollar4_m",4); model.odstate=list(a); model.dstate=[]; -if (type[(a)==1-1]) { -if (isreal[a-1]) { +if (this.type[(a)==1-1]) { +if (isreal(a)) { it=1; ot=1; if ((size(a,1)==1||size(a,2)==1)) { diff --git a/js/Linear/DOLLAR.pickle b/js/Linear/DOLLAR.pickle new file mode 100644 index 00000000..0ac03d7f --- /dev/null +++ b/js/Linear/DOLLAR.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'type' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Linear/DOLLAR_f.pickle b/js/Linear/DOLLAR_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/DOLLAR_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/DOLLAR_m.js b/js/Linear/DOLLAR_m.js index 6f1a5aea..e322d911 100644 --- a/js/Linear/DOLLAR_m.js +++ b/js/Linear/DOLLAR_m.js @@ -41,8 +41,8 @@ in1=out; model.sim=list("dollar4_m",4); model.odstate=list(a); model.dstate=[]; -if ((type[a-1]==1)) { -if (isreal[a-1]) { +if ((this.type[a-1]==1)) { +if (isreal(a)) { it=1; ot=1; if ((size(a,1)==1||size(a,2)==1)) { diff --git a/js/Linear/DOLLAR_m.pickle b/js/Linear/DOLLAR_m.pickle new file mode 100644 index 00000000..0ac03d7f --- /dev/null +++ b/js/Linear/DOLLAR_m.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'type' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Linear/GAINBLK.js b/js/Linear/GAINBLK.js index 4fe4b974..2f188149 100644 --- a/js/Linear/GAINBLK.js +++ b/js/Linear/GAINBLK.js @@ -40,7 +40,7 @@ if (gain==[]) { message("Gain must have at least one element"); } else { if (typeof(gain)=="constant") { -if (isreal[gain-1]) { +if (isreal(gain)) { it=1; ot=1; model.sim=list("gainblk",4); diff --git a/js/Linear/GAINBLK.pickle b/js/Linear/GAINBLK.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/GAINBLK.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/GAINBLK_f.pickle b/js/Linear/GAINBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/GAINBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/GAIN_f.pickle b/js/Linear/GAIN_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/GAIN_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/INTEGRAL.pickle b/js/Linear/INTEGRAL.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/INTEGRAL.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/INTEGRAL_f.pickle b/js/Linear/INTEGRAL_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/INTEGRAL_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/INTEGRAL_m.js b/js/Linear/INTEGRAL_m.js index b22c1b54..d18b4af5 100644 --- a/js/Linear/INTEGRAL_m.js +++ b/js/Linear/INTEGRAL_m.js @@ -32,7 +32,7 @@ while (true) { if (!ok) { break; } -if (isreal[x0-1]) { +if (isreal(x0)) { Datatype=1; } else { Datatype=2; diff --git a/js/Linear/INTEGRAL_m.pickle b/js/Linear/INTEGRAL_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/INTEGRAL_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/PID.pickle b/js/Linear/PID.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/PID.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/REGISTER.js b/js/Linear/REGISTER.js index afd5dc08..ce6d6c13 100644 --- a/js/Linear/REGISTER.js +++ b/js/Linear/REGISTER.js @@ -31,34 +31,34 @@ while (true) { if (!ok) { break; } -if (prod[size(z0)-1]<1) { +if (prod(size(z0))<1) { message("Register length must be at least 1"); ok=false; } if (it==1) { model.sim=list("delay4",4); -z0=double[z0-1]; +z0=double(z0); model.dstate=z0; model.odstate=list(); } else { if (it==3) { model.sim=list("delay4_i32",4); -z0=int32[z0-1]; +z0=int32(z0); } else if (it==4) { model.sim=list("delay4_i16",4); -z0=int16[z0-1]; +z0=int16(z0); } else if (it==5) { model.sim=list("delay4_i8",4); -z0=int8[z0-1]; +z0=int8(z0); } else if (it==6) { model.sim=list("delay4_ui32",4); -z0=uint32[z0-1]; +z0=uint32(z0); } else if (it==7) { model.sim=list("delay4_ui16",4); -z0=uint16[z0-1]; +z0=uint16(z0); } else if (it==8) { model.sim=list("delay4_ui8",4); -z0=uint8[z0-1]; +z0=uint8(z0); } else { message("Datatype is not supported"); ok=false; diff --git a/js/Linear/REGISTER.pickle b/js/Linear/REGISTER.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/REGISTER.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/REGISTER_f.js b/js/Linear/REGISTER_f.js index f64e177e..786d8d1a 100644 --- a/js/Linear/REGISTER_f.js +++ b/js/Linear/REGISTER_f.js @@ -28,7 +28,7 @@ while (true) { if (!ok) { break; } -if (prod[size(z0)-1]<1) { +if (prod(size(z0))<1) { message("Register length must be at least 1"); ok=false; } diff --git a/js/Linear/REGISTER_f.pickle b/js/Linear/REGISTER_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/REGISTER_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/SAMPHOLD.pickle b/js/Linear/SAMPHOLD.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/SAMPHOLD.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/SAMPHOLD_m.pickle b/js/Linear/SAMPHOLD_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/SAMPHOLD_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/SAMPLEHOLD_f.pickle b/js/Linear/SAMPLEHOLD_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/SAMPLEHOLD_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/SOM_f.pickle b/js/Linear/SOM_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/SOM_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/SUMMATION.pickle b/js/Linear/SUMMATION.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/SUMMATION.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/SUM_f.pickle b/js/Linear/SUM_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/SUM_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/TCLSS.pickle b/js/Linear/TCLSS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/TCLSS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/TCLSS_f.pickle b/js/Linear/TCLSS_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/TCLSS_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/TIME_DELAY.pickle b/js/Linear/TIME_DELAY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/TIME_DELAY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Linear/VARIABLE_DELAY.pickle b/js/Linear/VARIABLE_DELAY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Linear/VARIABLE_DELAY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/CUMSUM.pickle b/js/MatrixOp/CUMSUM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/CUMSUM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/EXTRACT.pickle b/js/MatrixOp/EXTRACT.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/EXTRACT.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/EXTTRI.pickle b/js/MatrixOp/EXTTRI.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/EXTTRI.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATBKSL.pickle b/js/MatrixOp/MATBKSL.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATBKSL.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATCATH.pickle b/js/MatrixOp/MATCATH.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATCATH.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATCATV.pickle b/js/MatrixOp/MATCATV.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATCATV.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATDET.pickle b/js/MatrixOp/MATDET.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATDET.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATDIAG.pickle b/js/MatrixOp/MATDIAG.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATDIAG.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATDIV.pickle b/js/MatrixOp/MATDIV.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATDIV.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATEIG.pickle b/js/MatrixOp/MATEIG.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATEIG.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATEXPM.pickle b/js/MatrixOp/MATEXPM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATEXPM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATINV.pickle b/js/MatrixOp/MATINV.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATINV.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATLU.pickle b/js/MatrixOp/MATLU.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATLU.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATMAGPHI.pickle b/js/MatrixOp/MATMAGPHI.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATMAGPHI.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATMUL.pickle b/js/MatrixOp/MATMUL.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATMUL.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATPINV.pickle b/js/MatrixOp/MATPINV.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATPINV.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATRESH.pickle b/js/MatrixOp/MATRESH.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATRESH.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATSING.pickle b/js/MatrixOp/MATSING.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATSING.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATSUM.pickle b/js/MatrixOp/MATSUM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATSUM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATTRAN.pickle b/js/MatrixOp/MATTRAN.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATTRAN.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATZCONJ.pickle b/js/MatrixOp/MATZCONJ.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATZCONJ.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/MATZREIM.pickle b/js/MatrixOp/MATZREIM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/MATZREIM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/RICC.pickle b/js/MatrixOp/RICC.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/RICC.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/ROOTCOEF.pickle b/js/MatrixOp/ROOTCOEF.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/ROOTCOEF.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/SQRT.pickle b/js/MatrixOp/SQRT.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/SQRT.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/MatrixOp/SUBMAT.pickle b/js/MatrixOp/SUBMAT.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/MatrixOp/SUBMAT.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/AUTOMAT.js b/js/Misc/AUTOMAT.js index 32a3a3e9..284a982b 100644 --- a/js/Misc/AUTOMAT.js +++ b/js/Misc/AUTOMAT.js @@ -2,15 +2,15 @@ function AUTOMAT() { AUTOMAT.prototype.define = function AUTOMAT() { NMode=2; -Minitial=1; +this.Minitial=1; NX=1; -X0=[0.0]; -XP=[[1],[1]]; +this.X0=[0.0]; +this.XP=[[1],[1]]; C1=[2]; C2=[1]; -exprs=[[string(NMode)],[string(Minitial)],[string(NX)],[sci2exp(X0)],[sci2exp(XP)],[sci2exp(C1)],[sci2exp(C2)]]; -ipar=[[NMode],[Minitial],[NX],[XP],[C1],[C2]]; -rpar=[X0]; +exprs=[[string(NMode)],[string(this.Minitial)],[string(NX)],[sci2exp(this.X0)],[sci2exp(this.XP)],[sci2exp(C1)],[sci2exp(C2)]]; +ipar=[[NMode],[this.Minitial],[NX],[this.XP],[C1],[C2]]; +rpar=[this.X0]; model=scicos_model(); model.sim=list("automat",10004); model.in1=[[2*NX+1],[2*NX+1]]; @@ -52,7 +52,7 @@ VEC=VEC+","+"\'mat\',[-1,1]"; } GTV="[ok,NMode,Minitial,NX,X0,XP,"+CX+",exprs]=scicos_getvalue(\'Set Finite state machine model\', [\'Number (finite-state) Modes\';\'Initial Mode\';\'Number of continuous-time states\';\'Continuous-time states intial values\';\'Xproperties of continuous-time states in each Mode\';"+MSG+"], list(\'vec\',1,\'vec\',1,\'vec\',1,\'mat\',[-1,-1],\'mat\',[-1,-1],"+VEC+"),exprs)"; execstr(GTV); -if (!ok) { +if (!this.ok) { break; } NMode_old=size(exprs,"*")-5; @@ -65,11 +65,11 @@ if ((NMode_old<NMode)) { exprs.slice(NMode_old+6-1,NMode+5)=exprs[NMode_old+4-1]; ModifEncore=true; } -if ((NX!=size(X0,"*"))) { +if ((NX!=size(this.X0,"*"))) { messagebox("the size of intial continuous-time states should be NX="+string(NX),"modal","error"); ModifEncore=true; } -[rXP,cXP]=size(XP); +[rXP,cXP]=size(this.XP); if (cXP!=NX) { messagebox("Xproperty matrix is not valid: it should have NX="+string(NX)+" columns","modal","error"); ModifEncore=true; @@ -78,13 +78,13 @@ messagebox("Xproperty matrix is not valid: it should have NMode="+string(NMode)+ ModifEncore=true; } else if ((rXP==1)) { for (i=1;i<=NMode-1;i+=1) { -XP=[[XP],[XP[1-1].slice()]]; +this.XP=[[this.XP],[this.XP[1-1].slice()]]; } } if ((NMode_old==NMode)&&(!ModifEncore)) { -XP=matrix(transpose(XP),NMode*NX,1); -ipar=[[NMode],[Minitial],[NX],[XP]]; -rpar=matrix(X0,NX,1); +this.XP=matrix(transpose(this.XP),NMode*NX,1); +ipar=[[NMode],[this.Minitial],[NX],[this.XP]]; +rpar=matrix(this.X0,NX,1); INP=ones(NMode,1); if (NX>0) { OUT=[[2],[2*NX]]; @@ -115,8 +115,8 @@ ModifEncore=true; } } if (!ModifEncore) { -[model,graphics,ok]=check_io(model,graphics,INP,OUT,[],[1]); -if (!ok) { +[model,graphics,this.ok]=check_io(model,graphics,INP,OUT,[],[1]); +if (!this.ok) { break; } model.nzcross=nzcross; diff --git a/js/Misc/AUTOMAT.pickle b/js/Misc/AUTOMAT.pickle new file mode 100644 index 00000000..4c7386e3 --- /dev/null +++ b/js/Misc/AUTOMAT.pickle @@ -0,0 +1,15 @@ +c__builtin__ +set +p0 +((lp1 +S'X0' +p2 +aS'ok' +p3 +aS'XP' +p4 +aS'Minitial' +p5 +atp6 +Rp7 +.
\ No newline at end of file diff --git a/js/Misc/BACKLASH.pickle b/js/Misc/BACKLASH.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/BACKLASH.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/BOUNCE.pickle b/js/Misc/BOUNCE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/BOUNCE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/BOUNCEXY.pickle b/js/Misc/BOUNCEXY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/BOUNCEXY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/BPLATFORM.pickle b/js/Misc/BPLATFORM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/BPLATFORM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/CBLOCK.js b/js/Misc/CBLOCK.js index 78bd0696..8e3eb3ad 100644 --- a/js/Misc/CBLOCK.js +++ b/js/Misc/CBLOCK.js @@ -87,12 +87,12 @@ dep_ut=[depu,dept]; if (funam==" ") { break; } -if (model.sim[1-1]!=funam||sign[size(model.state,"*")-1]!=sign[nx-1]||sign[size(model.dstate,"*")-1]!=sign[nz-1]||model.nzcross!=ng||sign[size(model.evtout,"*")-1]!=sign[nevout-1]) { +if (model.sim[1-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-1][tt-1]; +[ok,tt,cancel]=CFORTR2(funam,tt); if (!ok) { if (cancel) { break; diff --git a/js/Misc/CBLOCK.pickle b/js/Misc/CBLOCK.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/CBLOCK.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/CBLOCK4.js b/js/Misc/CBLOCK4.js index bdd0232f..f375d946 100644 --- a/js/Misc/CBLOCK4.js +++ b/js/Misc/CBLOCK4.js @@ -69,7 +69,7 @@ dep_ut=[depu,dept]; if (funam==" ") { break; } -if (model.sim[1-1]!=funam||sign[size(model.state,"*")-1]!=sign[nx-1]||sign[size(model.dstate,"*")-1]!=sign[nz-1]||model.nzcross!=nzcr||sign[size(model.evtout,"*")-1]!=sign[nevout-1]) { +if (model.sim[1-1]!=funam||sign(size(model.state,"*"))!=sign(nx)||sign(size(model.dstate,"*"))!=sign(nz)||model.nzcross!=nzcr||sign(size(model.evtout,"*"))!=sign(nevout)) { tt=[]; } tt=label[2-1]; @@ -77,7 +77,7 @@ tt=label[2-1]; } if (ok) { while (true) { -[ok,tt,cancel]=CC4[funam-1][tt-1]; +[ok,tt,cancel]=this.CC4[funam-1][tt-1]; if (!ok) { if (cancel) { break; diff --git a/js/Misc/CBLOCK4.pickle b/js/Misc/CBLOCK4.pickle new file mode 100644 index 00000000..96223756 --- /dev/null +++ b/js/Misc/CBLOCK4.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'CC4' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Misc/CONSTRAINT2_c.pickle b/js/Misc/CONSTRAINT2_c.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/CONSTRAINT2_c.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/CONSTRAINT_c.pickle b/js/Misc/CONSTRAINT_c.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/CONSTRAINT_c.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/DEADBAND.pickle b/js/Misc/DEADBAND.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/DEADBAND.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/DEBUG.js b/js/Misc/DEBUG.js index 9aa7813d..8b2bf634 100644 --- a/js/Misc/DEBUG.js +++ b/js/Misc/DEBUG.js @@ -19,13 +19,13 @@ exprs=graphics.exprs; textmp=exprs[2-1]; ok=true; while (1==1) { -[txt]=dialog[[["Enter scilab instructions for debugging."],[" Inputs are block and flag, output is block"]]-1][textmp-1]; +[txt]=this.dialog[[["Enter scilab instructions for debugging."],[" Inputs are block and flag, output is block"]]-1][textmp-1]; if (txt!=[]) { tt=["block=debug_scicos(block,flag)"]; if (execstr("deff(tt,txt)","errcatch")==0) { warnMode=warning("query"); warning("off"); -save(TMPDIR+"/debug_scicos",debug_scicos); +save(this.TMPDIR+"/debug_scicos",this.debug_scicos); warning(warnMode); exprs[2-1]=txt; if ((scicos_debug()!=2&&scicos_debug()!=3)) { diff --git a/js/Misc/DEBUG.pickle b/js/Misc/DEBUG.pickle new file mode 100644 index 00000000..0f09469f --- /dev/null +++ b/js/Misc/DEBUG.pickle @@ -0,0 +1,13 @@ +c__builtin__ +set +p0 +((lp1 +S'debug_scicos' +p2 +aS'TMPDIR' +p3 +aS'dialog' +p4 +atp5 +Rp6 +.
\ No newline at end of file diff --git a/js/Misc/DEBUG_SCICOS.js b/js/Misc/DEBUG_SCICOS.js index 4186fc9f..fdc690a8 100644 --- a/js/Misc/DEBUG_SCICOS.js +++ b/js/Misc/DEBUG_SCICOS.js @@ -1,7 +1,7 @@ /* autogenerated from "macros/Misc/DEBUG_SCICOS.sci" */ function DEBUG_SCICOS() { DEBUG_SCICOS.prototype.define = function DEBUG_SCICOS() { -x=DEBUG["define"-1]; +x=DEBUG("define"); } DEBUG_SCICOS.prototype.details = function DEBUG_SCICOS() { } @@ -9,6 +9,6 @@ x=DEBUG["define"-1]; } DEBUG_SCICOS.prototype.set = function DEBUG_SCICOS() { arg1.gui="DEBUG"; -[x,y,typ]=DEBUG["set"-1][arg1-1]; +[x,y,typ]=DEBUG("set",arg1); } } diff --git a/js/Misc/DEBUG_SCICOS.pickle b/js/Misc/DEBUG_SCICOS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/DEBUG_SCICOS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/DIFF_f.pickle b/js/Misc/DIFF_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/DIFF_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/DSUPER.js b/js/Misc/DSUPER.js index 857c2199..00dad0ab 100644 --- a/js/Misc/DSUPER.js +++ b/js/Misc/DSUPER.js @@ -7,7 +7,7 @@ function DSUPER() { DSUPER.prototype.get = function DSUPER() { } DSUPER.prototype.set = function DSUPER() { -y=needcompile; +y=this.needcompile; typ=list(); graphics=arg1.graphics; if ((length(graphics.exprs)==0)) { @@ -36,12 +36,12 @@ tt=tt+",scicos_context."+exprs0[i-1]; ss=graphics.exprs[2-1][3-1]; scicos_context=PREVAR_scicos_context; execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)"); -if (ok) { +if (this.ok) { x=arg1; PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; -[sblock,%w,needcompile2,ok]=do_eval(sblock,list(),scicos_context); -y=max(2,needcompile,needcompile2); +[sblock,%w,needcompile2,this.ok]=do_eval(sblock,list(),scicos_context); +y=max(2,this.needcompile,needcompile2); x.graphics.exprs[1-1]=exprs; x.model.rpar=sblock; } else { diff --git a/js/Misc/DSUPER.pickle b/js/Misc/DSUPER.pickle new file mode 100644 index 00000000..44fb8b06 --- /dev/null +++ b/js/Misc/DSUPER.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'needcompile' +p2 +aS'ok' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Misc/EDGETRIGGER.js b/js/Misc/EDGETRIGGER.js index 0d85569d..e8cbd733 100644 --- a/js/Misc/EDGETRIGGER.js +++ b/js/Misc/EDGETRIGGER.js @@ -8,7 +8,7 @@ model.in1=1; model.out=1; model.dstate=0; model.nzcross=1; -model.ipar=sign[edge-1]; +model.ipar=sign(edge); model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(edge)]; @@ -29,7 +29,7 @@ while (true) { if (!ok) { break; } -model.ipar=sign[edge-1]; +model.ipar=sign(edge); graphics.exprs=exprs; x.graphics=graphics; x.model=model; diff --git a/js/Misc/EDGETRIGGER.pickle b/js/Misc/EDGETRIGGER.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/EDGETRIGGER.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/EDGE_TRIGGER.js b/js/Misc/EDGE_TRIGGER.js index bb2418b5..aebcc2d2 100644 --- a/js/Misc/EDGE_TRIGGER.js +++ b/js/Misc/EDGE_TRIGGER.js @@ -2,7 +2,7 @@ function EDGE_TRIGGER() { EDGE_TRIGGER.prototype.define = function EDGE_TRIGGER() { scs_m_1=scicos_diagram(); -scs_m_1.objs[1-1]=EDGETRIGGER["define"-1]; +scs_m_1.objs[1-1]=this.EDGETRIGGER["define"-1]; scs_m_1.objs[2-1]=IFTHEL_f("define"); scs_m_1.objs[3-1]=IN_f("define"); scs_m_1.objs[4-1]=CLKOUTV_f("define"); @@ -105,9 +105,9 @@ spath[$+1-1]=path[k-1]; } xx=arg1[spath-1]; execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (diffobjs(xxn,xx)) { +if (diffobjs(this.xxn,xx)) { model=xx.model; -model_n=xxn.model; +model_n=this.xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { @@ -130,7 +130,7 @@ needcompile=4; if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } -if (prod[size(model_n.sim)-1]>1) { +if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (model.sim[1-1]!=model_n.sim[1-1]) { needcompile=4; @@ -145,7 +145,7 @@ if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outpu needcompile=4; } } -arg1[spath-1]=xxn; +arg1[spath-1]=this.xxn; newpar[size(newpar)+1-1]=path; y=max(y,needcompile); } diff --git a/js/Misc/EDGE_TRIGGER.pickle b/js/Misc/EDGE_TRIGGER.pickle new file mode 100644 index 00000000..78b2b289 --- /dev/null +++ b/js/Misc/EDGE_TRIGGER.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'EDGETRIGGER' +p2 +aS'xxn' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Misc/ENDBLK.js b/js/Misc/ENDBLK.js index 65bd7268..6fa4b1ab 100644 --- a/js/Misc/ENDBLK.js +++ b/js/Misc/ENDBLK.js @@ -33,9 +33,9 @@ spath[$+1-1]=path[k-1]; } xx=arg1[spath-1]; execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (!isequalbitwise[xxn-1][xx-1]) { +if (!this.isequalbitwise[this.xxn-1][xx-1]) { model=xx.model; -model_n=xxn.model; +model_n=this.xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { @@ -58,7 +58,7 @@ needcompile=4; if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } -if (prod[size(model_n.sim)-1]>1) { +if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (model.sim[1-1]!=model_n.sim[1-1]) { needcompile=4; @@ -73,7 +73,7 @@ if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outpu needcompile=4; } } -arg1[spath-1]=xxn; +arg1[spath-1]=this.xxn; newpar[size(newpar)+1-1]=path; y=max(y,needcompile); } diff --git a/js/Misc/ENDBLK.pickle b/js/Misc/ENDBLK.pickle new file mode 100644 index 00000000..794658bf --- /dev/null +++ b/js/Misc/ENDBLK.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'xxn' +p2 +aS'isequalbitwise' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Misc/EXPRESSION.pickle b/js/Misc/EXPRESSION.pickle new file mode 100644 index 00000000..2d95f3ab --- /dev/null +++ b/js/Misc/EXPRESSION.pickle @@ -0,0 +1,13 @@ +c__builtin__ +set +p0 +((lp1 +S'getfield' +p2 +aS'PREVAR_foo' +p3 +aS'PREVAR_scicos_context' +p4 +atp5 +Rp6 +.
\ No newline at end of file diff --git a/js/Misc/Extract_Activation.pickle b/js/Misc/Extract_Activation.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/Extract_Activation.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/HYSTHERESIS.js b/js/Misc/HYSTHERESIS.js index c4c750b3..6083d128 100644 --- a/js/Misc/HYSTHERESIS.js +++ b/js/Misc/HYSTHERESIS.js @@ -14,7 +14,7 @@ model.nzcross=nzz; model.nmode=1; model.blocktype="c"; model.dep_ut=[true,false]; -exprs=[[string(rpar)],[string(sign[nzz-1])]]; +exprs=[[string(rpar)],[string(sign(nzz))]]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } diff --git a/js/Misc/HYSTHERESIS.pickle b/js/Misc/HYSTHERESIS.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/HYSTHERESIS.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/IMPSPLIT_f.pickle b/js/Misc/IMPSPLIT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/IMPSPLIT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/LOGICAL_OP.pickle b/js/Misc/LOGICAL_OP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/LOGICAL_OP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/MBLOCK.js b/js/Misc/MBLOCK.js index 4d5f6201..f4d2b319 100644 --- a/js/Misc/MBLOCK.js +++ b/js/Misc/MBLOCK.js @@ -1,35 +1,35 @@ /* autogenerated from "macros/Misc/MBLOCK.sci" */ function MBLOCK() { MBLOCK.prototype.define = function MBLOCK() { -in1=["u1"]; -intype=["I"]; -out=[["y1"],["y2"]]; -outtype=[["I"],["E"]]; +this.in1=["u1"]; +this.intype=["I"]; +this.out=[["y1"],["y2"]]; +this.outtype=[["I"],["E"]]; param=[["R"],["L"]]; paramv=list(0.1,.0001); pprop=[[0],[0]]; nameF="generic"; -exprs=tlist(["MBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(in1.slice()),sci2exp(intype.slice()),sci2exp(out.slice()),sci2exp(outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); +exprs=tlist(["MBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(this.in1.slice()),sci2exp(this.intype.slice()),sci2exp(this.out.slice()),sci2exp(this.outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); model=scicos_model(); model.blocktype="c"; model.dep_ut=[false,true]; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { +for (i=1;i<=lstsize(paramv);i+=1) { model.rpar=[[model.rpar],[paramv[i-1].slice()]]; } mo=modelica(); mo.model=nameF; mo.parameters=list(param,paramv); model.sim=list(mo.model,30004); -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; model.in1=ones(size(mo.inputs,"r"),1); model.out=ones(size(mo.outputs,"r"),1); model.equations=mo; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); -x.graphics.in_implicit=intype; -x.graphics.out_implicit=outtype; +x.graphics.in_implicit=this.intype; +x.graphics.out_implicit=this.outtype; } MBLOCK.prototype.details = function MBLOCK() { } @@ -40,7 +40,7 @@ x=arg1; model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -if (type[exprs-1]==15) { +if (this.type[exprs-1]==15) { paramv=list(); pprop=[]; for (i=1;i<=size(model.rpar,"*");i+=1) { @@ -62,7 +62,7 @@ messagebox("Error in evaluation of variables.","modal","error"); ok=false; } if (ok) { -for (i=1;i<=size(in1,"*");i+=1) { +for (i=1;i<=size(this.in1,"*");i+=1) { r=false; ierr=execstr("r=validvar(in(i))","errcatch"); if (!r) { @@ -71,11 +71,11 @@ break; } } if (!ok) { -messagebox([["Invalid variable name for the input "+string(i)+"."],["\""+in1[i-1]+"\""],["Please choose another variable name."]],"modal","error"); +messagebox([["Invalid variable name for the input "+string(i)+"."],["\""+this.in1[i-1]+"\""],["Please choose another variable name."]],"modal","error"); } } if (ok) { -for (i=1;i<=size(out,"*");i+=1) { +for (i=1;i<=size(this.out,"*");i+=1) { r=false; ierr=execstr("r=validvar(out(i))","errcatch"); if (!r) { @@ -84,7 +84,7 @@ break; } } if (!ok) { -messagebox([["Invalid variable name for the output "+string(i)+"."],["\""+out[i-1]+"\""],["Please choose another variable name."]],"modal","error"); +messagebox([["Invalid variable name for the output "+string(i)+"."],["\""+this.out[i-1]+"\""],["Please choose another variable name."]],"modal","error"); } } if (ok) { @@ -102,8 +102,8 @@ messagebox([["Invalid variable name for the parameter "+string(i)+"."],["\""+par } } if (ok) { -for (i=1;i<=size(intype,"*");i+=1) { -if (intype[i-1]!="E"&&intype[i-1]!="I") { +for (i=1;i<=size(this.intype,"*");i+=1) { +if (this.intype[i-1]!="E"&&this.intype[i-1]!="I") { messagebox("Input type should be \'E\' or \'I\'!","modal","error"); ok=false; break; @@ -111,8 +111,8 @@ break; } } if (ok) { -for (i=1;i<=size(outtype,"*");i+=1) { -if (outtype[i-1]!="E"&&outtype[i-1]!="I") { +for (i=1;i<=size(this.outtype,"*");i+=1) { +if (this.outtype[i-1]!="E"&&this.outtype[i-1]!="I") { messagebox("Output type should be \'E\' or \'I\'!","modal","error"); ok=false; break; @@ -120,13 +120,13 @@ break; } } if (ok) { -if (or(size(intype)!=size(in1))) { +if (or(size(this.intype)!=size(this.in1))) { messagebox("Input variables are not well defined!","modal","error"); ok=false; } } if (ok) { -if (or(size(outtype)!=size(out))) { +if (or(size(this.outtype)!=size(this.out))) { messagebox("Output variables are not well defined!","modal","error"); ok=false; } @@ -145,34 +145,34 @@ ok=false; } } if (ok) { -if (funam=="") { +if (this.funam=="") { messagebox("The filename is not defined!","modal","error"); ok=false; } } if (ok) { -[dirF,nameF,extF]=fileparts(funam); +[dirF,nameF,extF]=fileparts(this.funam); if ((extF!=""&&extF!=".mo")||(dirF!=""&&extF!=".mo")) { messagebox("Filename extention should be \'.mo \' !","modal","error"); ok=false; } } if (ok) { -intypex=find(intype=="I"); -outtypex=find(outtype=="I"); -[model,graphics,ok]=set_io(model,graphics,list([ones(in1),ones(in1)],ones(in1)),list([ones(out),ones(out)],ones(out)),[],[],intypex,outtypex); +intypex=find(this.intype=="I"); +outtypex=find(this.outtype=="I"); +[model,graphics,ok]=set_io(model,graphics,list([ones(this.in1),ones(this.in1)],ones(this.in1)),list([ones(this.out),ones(this.out)],ones(this.out)),[],[],intypex,outtypex); } if (ok) { Tparam_lab=evstr(Tparam); Tparam_sz=size(Tparam_lab,"*"); -if (Tparam_sz>lstsize[lab_2-1]) { -for (i=1;i<=(Tparam_sz-lstsize[lab_2-1]);i+=1) { +if (Tparam_sz>lstsize(lab_2)) { +for (i=1;i<=(Tparam_sz-lstsize(lab_2));i+=1) { lab_2[$+1-1]="0"; } -} else if (Tparam_sz<lstsize[lab_2-1]) { +} else if (Tparam_sz<lstsize(lab_2)) { lab_2_tmp=list(); if (Tparam_sz!=0) { -for (i=1;i<=(lstsize[lab_2-1]-Tparam_sz);i+=1) { +for (i=1;i<=(lstsize(lab_2)-Tparam_sz);i+=1) { lab_2_tmp[i-1]=lab_2[i-1]; } } @@ -210,8 +210,8 @@ execstr("paramv("+string(i)+")=%v"+string(i)); } } if (ok) { -if (extF==".mo"&&fileinfo(funam)!=[]) { -tt=mgetl(funam); +if (extF==".mo"&&fileinfo(this.funam)!=[]) { +tt=mgetl(this.funam); } else { tt=exprs.funtxt; mo=model.equations; @@ -219,7 +219,7 @@ if (mo.model!=nameF) { tt=[]; } } -[ok,tt]=MODCOM(funam,tt,in1,out,param,paramv,pprop); +[ok,tt]=MODCOM(this.funam,tt,this.in1,this.out,param,paramv,pprop); if (!ok) { break; } @@ -227,8 +227,8 @@ break; if (ok) { mo=modelica(); mo.model=nameF; -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; if (max(pprop)>0) { mo.parameters=list(transpose(param),paramv,transpose(pprop)); } else { @@ -236,10 +236,10 @@ mo.parameters=list(transpose(param),paramv); } model.equations=mo; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { +for (i=1;i<=lstsize(paramv);i+=1) { model.rpar=[[model.rpar],[paramv[i-1].slice()]]; } -model.sim[1-1]=funam; +model.sim[1-1]=this.funam; exprs.in1=lab_1[1-1]; exprs.intype=lab_1[2-1]; exprs.out=lab_1[3-1]; @@ -247,8 +247,8 @@ exprs.outtype=lab_1[4-1]; exprs.param=lab_1[5-1]; exprs.paramv=list(); if (Tparam_sz!=0) { -if (type[lab_2-1]==15) { -for (i=1;i<=lstsize[lab_2-1];i+=1) { +if (this.type[lab_2-1]==15) { +for (i=1;i<=lstsize(lab_2);i+=1) { exprs.paramv[i-1]=lab_2[i-1]; } } else { @@ -262,8 +262,8 @@ exprs.nameF=lab_1[7-1]; exprs.funtxt=tt; x.model=model; graphics.gr_i[1-1][1-1]="txt=[\'Modelica\';\' "+nameF+" \'];"; -graphics.in_implicit=intype; -graphics.out_implicit=outtype; +graphics.in_implicit=this.intype; +graphics.out_implicit=this.outtype; graphics.exprs=exprs; x.graphics=graphics; break; diff --git a/js/Misc/MBLOCK.pickle b/js/Misc/MBLOCK.pickle new file mode 100644 index 00000000..6ed6ac8b --- /dev/null +++ b/js/Misc/MBLOCK.pickle @@ -0,0 +1,19 @@ +c__builtin__ +set +p0 +((lp1 +S'intype' +p2 +aS'in1' +p3 +aS'outtype' +p4 +aS'funam' +p5 +aS'type' +p6 +aS'out' +p7 +atp8 +Rp9 +.
\ No newline at end of file diff --git a/js/Misc/MEMORY_f.pickle b/js/Misc/MEMORY_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/MEMORY_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/MPBLOCK.js b/js/Misc/MPBLOCK.js index 83ed4ff3..2342fd37 100644 --- a/js/Misc/MPBLOCK.js +++ b/js/Misc/MPBLOCK.js @@ -1,35 +1,35 @@ /* autogenerated from "macros/Misc/MPBLOCK.sci" */ function MPBLOCK() { MPBLOCK.prototype.define = function MPBLOCK() { -in1=["u"]; -intype=["I"]; -out=[["y1"],["y2"]]; -outtype=[["I"],["I"]]; +this.in1=["u"]; +this.intype=["I"]; +this.out=[["y1"],["y2"]]; +this.outtype=[["I"],["I"]]; param=[]; paramv=list(); pprop=[]; nameF="myModel"; -exprs=tlist(["MPBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(in1.slice()),sci2exp(intype.slice()),sci2exp(out.slice()),sci2exp(outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); +exprs=tlist(["MPBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],sci2exp(this.in1.slice()),sci2exp(this.intype.slice()),sci2exp(this.out.slice()),sci2exp(this.outtype.slice()),sci2exp(param.slice()),list(string(0.1),string(.0001)),sci2exp(pprop.slice()),nameF,[]); model=scicos_model(); model.blocktype="c"; model.dep_ut=[true,true]; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { +for (i=1;i<=lstsize(paramv);i+=1) { model.rpar=[[model.rpar],[paramv[i-1].slice()]]; } mo=modelica(); mo.model=nameF; mo.parameters=list(param,paramv); model.sim=list(mo.model,10004); -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; model.in1=ones(size(mo.inputs,"r"),1); model.out=ones(size(mo.outputs,"r"),1); model.equations=mo; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); -x.graphics.in_implicit=intype; -x.graphics.out_implicit=outtype; +x.graphics.in_implicit=this.intype; +x.graphics.out_implicit=this.outtype; } MPBLOCK.prototype.details = function MPBLOCK() { } @@ -40,7 +40,7 @@ x=arg1; model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; -if (type[exprs-1]==15) { +if (this.type[exprs-1]==15) { paramv=list(); pprop=[]; for (i=1;i<=size(model.rpar,"*");i+=1) { @@ -62,7 +62,7 @@ x_message("Error in evaluation of variables."); ok=false; } if (ok) { -for (i=1;i<=size(in1,"*");i+=1) { +for (i=1;i<=size(this.in1,"*");i+=1) { r=false; ierr=execstr("r=validvar(in(i))","errcatch"); if (!r) { @@ -71,11 +71,11 @@ break; } } if (!ok) { -x_message([["Invalid variable name for the input "+string(i)+"."],["\""+in1[i-1]+"\""],["Please choose another variable name."]]); +x_message([["Invalid variable name for the input "+string(i)+"."],["\""+this.in1[i-1]+"\""],["Please choose another variable name."]]); } } if (ok) { -for (i=1;i<=size(out,"*");i+=1) { +for (i=1;i<=size(this.out,"*");i+=1) { r=false; ierr=execstr("r=validvar(out(i))","errcatch"); if (!r) { @@ -84,7 +84,7 @@ break; } } if (!ok) { -x_message([["Invalid variable name for the output "+string(i)+"."],["\""+out[i-1]+"\""],["Please choose another variable name."]]); +x_message([["Invalid variable name for the output "+string(i)+"."],["\""+this.out[i-1]+"\""],["Please choose another variable name."]]); } } if (ok) { @@ -102,8 +102,8 @@ x_message([["Invalid variable name for the parameter "+string(i)+"."],["\""+para } } if (ok) { -for (i=1;i<=size(intype,"*");i+=1) { -if (intype[i-1]!="E"&&intype[i-1]!="I") { +for (i=1;i<=size(this.intype,"*");i+=1) { +if (this.intype[i-1]!="E"&&this.intype[i-1]!="I") { x_message("Input type should be \'E\' or \'I\'!"); ok=false; break; @@ -111,8 +111,8 @@ break; } } if (ok) { -for (i=1;i<=size(outtype,"*");i+=1) { -if (outtype[i-1]!="E"&&outtype[i-1]!="I") { +for (i=1;i<=size(this.outtype,"*");i+=1) { +if (this.outtype[i-1]!="E"&&this.outtype[i-1]!="I") { x_message("Output type should be \'E\' or \'I\'!"); ok=false; break; @@ -120,13 +120,13 @@ break; } } if (ok) { -if (or(size(intype)!=size(in1))) { +if (or(size(this.intype)!=size(this.in1))) { x_message("Input variables are not well defined!"); ok=false; } } if (ok) { -if (or(size(outtype)!=size(out))) { +if (or(size(this.outtype)!=size(this.out))) { x_message("Output variables are not well defined!"); ok=false; } @@ -145,31 +145,31 @@ ok=false; } } if (ok) { -if (funam=="") { +if (this.funam=="") { x_message("The model name is not defined!"); ok=false; } } if (ok) { -[dirF,nameF,extF]=fileparts(funam); +[dirF,nameF,extF]=fileparts(this.funam); if ((extF!="")||(dirF!="")) { x_message("Invalid model name!"); ok=false; } } if (ok) { -intypex=find(intype=="I"); -outtypex=find(outtype=="I"); -[model,graphics,ok]=set_io(model,graphics,list([ones(in1),ones(in1)],ones(in1)),list([ones(out),ones(out)],ones(out)),[],[],intypex,outtypex); +intypex=find(this.intype=="I"); +outtypex=find(this.outtype=="I"); +[model,graphics,ok]=set_io(model,graphics,list([ones(this.in1),ones(this.in1)],ones(this.in1)),list([ones(this.out),ones(this.out)],ones(this.out)),[],[],intypex,outtypex); } if (ok) { Tparam_lab=evstr(Tparam); Tparam_sz=size(Tparam_lab,"*"); -if (Tparam_sz>lstsize[lab_2-1]) { -for (i=1;i<=(Tparam_sz-lstsize[lab_2-1]);i+=1) { +if (Tparam_sz>lstsize(lab_2)) { +for (i=1;i<=(Tparam_sz-lstsize(lab_2));i+=1) { lab_2[$+1-1]="0"; } -} else if (Tparam_sz<lstsize[lab_2-1]) { +} else if (Tparam_sz<lstsize(lab_2)) { lab_2_tmp=list(); if (Tparam_sz!=0) { for (i=1;i<=Tparam_sz;i+=1) { @@ -217,8 +217,8 @@ execstr("paramv("+string(i)+")=%v"+string(i)); if (ok) { mo=modelica(); mo.model=nameF; -mo.inputs=in1; -mo.outputs=out; +mo.inputs=this.in1; +mo.outputs=this.out; if (pprop!=[]) { if (max(pprop)>0) { mo.parameters=list(transpose(param),paramv,transpose(pprop)); @@ -228,10 +228,10 @@ mo.parameters=list(transpose(param),paramv); } model.equations=mo; model.rpar=[]; -for (i=1;i<=lstsize[paramv-1];i+=1) { -model.rpar=[[model.rpar],[double[paramv[i-1].slice()-1]]]; +for (i=1;i<=lstsize(paramv);i+=1) { +model.rpar=[[model.rpar],[double(paramv[i-1].slice())]]; } -model.sim[1-1]=funam; +model.sim[1-1]=this.funam; exprs.in1=lab_1[1-1]; exprs.intype=lab_1[2-1]; exprs.out=lab_1[3-1]; @@ -239,8 +239,8 @@ exprs.outtype=lab_1[4-1]; exprs.param=lab_1[5-1]; exprs.paramv=list(); if (Tparam_sz!=0) { -if (type[lab_2-1]==15) { -for (i=1;i<=lstsize[lab_2-1];i+=1) { +if (this.type[lab_2-1]==15) { +for (i=1;i<=lstsize(lab_2);i+=1) { exprs.paramv[i-1]=lab_2[i-1]; } } else { @@ -254,8 +254,8 @@ exprs.nameF=lab_1[7-1]; exprs.funtxt=""; x.model=model; graphics.gr_i[1-1][1-1]="txt=[\' "+nameF+" \'];"; -graphics.in_implicit=intype; -graphics.out_implicit=outtype; +graphics.in_implicit=this.intype; +graphics.out_implicit=this.outtype; graphics.exprs=exprs; x.graphics=graphics; break; diff --git a/js/Misc/MPBLOCK.pickle b/js/Misc/MPBLOCK.pickle new file mode 100644 index 00000000..6ed6ac8b --- /dev/null +++ b/js/Misc/MPBLOCK.pickle @@ -0,0 +1,19 @@ +c__builtin__ +set +p0 +((lp1 +S'intype' +p2 +aS'in1' +p3 +aS'outtype' +p4 +aS'funam' +p5 +aS'type' +p6 +aS'out' +p7 +atp8 +Rp9 +.
\ No newline at end of file diff --git a/js/Misc/PAL_f.pickle b/js/Misc/PAL_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/PAL_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/PENDULUM_ANIM.pickle b/js/Misc/PENDULUM_ANIM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/PENDULUM_ANIM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/RATELIMITER.pickle b/js/Misc/RATELIMITER.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/RATELIMITER.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/RELATIONALOP.pickle b/js/Misc/RELATIONALOP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/RELATIONALOP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/SPLIT_f.pickle b/js/Misc/SPLIT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/SPLIT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/SUPER_f.pickle b/js/Misc/SUPER_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/SUPER_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/TEXT_f.pickle b/js/Misc/TEXT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/TEXT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/c_block.pickle b/js/Misc/c_block.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/c_block.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/fortran_block.pickle b/js/Misc/fortran_block.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/fortran_block.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/func_block.js b/js/Misc/func_block.js index d7e4b6f0..1d1f2889 100644 --- a/js/Misc/func_block.js +++ b/js/Misc/func_block.js @@ -21,7 +21,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; x=arg1; model=x.model; -[ok,mac,exprs]=genfunc[exprs-1]; +[ok,mac,exprs]=this.genfunc[exprs-1]; if (ok) { model.sim=mac; graphics.exprs=exprs; diff --git a/js/Misc/func_block.pickle b/js/Misc/func_block.pickle new file mode 100644 index 00000000..492b549b --- /dev/null +++ b/js/Misc/func_block.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'genfunc' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Misc/generic_block.pickle b/js/Misc/generic_block.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/generic_block.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/generic_block2.pickle b/js/Misc/generic_block2.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/generic_block2.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/generic_block3.js b/js/Misc/generic_block3.js index 54eee1ef..ec554743 100644 --- a/js/Misc/generic_block3.js +++ b/js/Misc/generic_block3.js @@ -52,11 +52,11 @@ message("vector event links not supported"); ok=false; } } -if (type[opar-1]!=15) { +if (this.type[opar-1]!=15) { message("object parameter must be a list"); ok=false; } -if (type[oz-1]!=15) { +if (this.type[oz-1]!=15) { message("discrete object state must be a list"); ok=false; } diff --git a/js/Misc/generic_block3.pickle b/js/Misc/generic_block3.pickle new file mode 100644 index 00000000..0ac03d7f --- /dev/null +++ b/js/Misc/generic_block3.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'type' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Misc/scifunc_block.js b/js/Misc/scifunc_block.js index 4938c66f..12da9da6 100644 --- a/js/Misc/scifunc_block.js +++ b/js/Misc/scifunc_block.js @@ -50,7 +50,7 @@ exprs[1-1]=lab; xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); -nrp=prod[size(rpar)-1]; +nrp=prod(size(rpar)); i=int(i.slice()); ni=size(i,1); o=int(o.slice()); diff --git a/js/Misc/scifunc_block.pickle b/js/Misc/scifunc_block.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/scifunc_block.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Misc/scifunc_block_m.js b/js/Misc/scifunc_block_m.js index aaf8724f..e9d6bd44 100644 --- a/js/Misc/scifunc_block_m.js +++ b/js/Misc/scifunc_block_m.js @@ -54,7 +54,7 @@ z=z.slice(); rpar=rpar.slice(); it=ones(1,size(i,1)); ot=ones(1,size(o,1)); -nrp=prod[size(rpar)-1]; +nrp=prod(size(rpar)); ni=size(i,1); no=size(o,1); ci=int(ci.slice()); diff --git a/js/Misc/scifunc_block_m.pickle b/js/Misc/scifunc_block_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Misc/scifunc_block_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/ABSBLK_f.pickle b/js/NonLinear/ABSBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/ABSBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/ABS_VALUE.pickle b/js/NonLinear/ABS_VALUE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/ABS_VALUE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/COSBLK_f.pickle b/js/NonLinear/COSBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/COSBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/DLRADAPT_f.pickle b/js/NonLinear/DLRADAPT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/DLRADAPT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/EXPBLK_f.pickle b/js/NonLinear/EXPBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/EXPBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/EXPBLK_m.pickle b/js/NonLinear/EXPBLK_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/EXPBLK_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/FSV_f.pickle b/js/NonLinear/FSV_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/FSV_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/INTRP2BLK_f.pickle b/js/NonLinear/INTRP2BLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/INTRP2BLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/INTRPLBLK_f.pickle b/js/NonLinear/INTRPLBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/INTRPLBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/INVBLK.pickle b/js/NonLinear/INVBLK.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/INVBLK.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/INVBLK_f.pickle b/js/NonLinear/INVBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/INVBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/LOGBLK_f.pickle b/js/NonLinear/LOGBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/LOGBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/LOOKUP2D.js b/js/NonLinear/LOOKUP2D.js index 1bd80e3d..9576a841 100644 --- a/js/NonLinear/LOOKUP2D.js +++ b/js/NonLinear/LOOKUP2D.js @@ -64,12 +64,12 @@ if (!((nx==nz)&&(ny==mz))) { x_message("incompatible size of x and y"); Ask_again=true; } -[ok]=test_increasing[xx-1]; +[ok]=test_increasing(xx); if ((!ok)) { x_message("Row input values must be monotonically increasing"); Ask_again=true; } -[ok]=test_increasing[yy-1]; +[ok]=test_increasing(yy); if ((!ok)) { x_message("Column input values must be monotonically increasing"); Ask_again=true; diff --git a/js/NonLinear/LOOKUP2D.pickle b/js/NonLinear/LOOKUP2D.pickle new file mode 100644 index 00000000..e8e2a47d --- /dev/null +++ b/js/NonLinear/LOOKUP2D.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'order' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/NonLinear/LOOKUP_c.pickle b/js/NonLinear/LOOKUP_c.pickle new file mode 100644 index 00000000..8cef5b52 --- /dev/null +++ b/js/NonLinear/LOOKUP_c.pickle @@ -0,0 +1,19 @@ +c__builtin__ +set +p0 +((lp1 +S'rparin' +p2 +aS'ixy' +p3 +aS'iparin' +p4 +aS'argn' +p5 +aS'xy' +p6 +aS'curwin' +p7 +atp8 +Rp9 +.
\ No newline at end of file diff --git a/js/NonLinear/LOOKUP_f.pickle b/js/NonLinear/LOOKUP_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/LOOKUP_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/MAXMIN.pickle b/js/NonLinear/MAXMIN.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/MAXMIN.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/MAX_f.pickle b/js/NonLinear/MAX_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/MAX_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/MIN_f.pickle b/js/NonLinear/MIN_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/MIN_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/POWBLK_f.pickle b/js/NonLinear/POWBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/POWBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/PRODUCT.pickle b/js/NonLinear/PRODUCT.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/PRODUCT.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/PROD_f.pickle b/js/NonLinear/PROD_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/PROD_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/QUANT_f.pickle b/js/NonLinear/QUANT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/QUANT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/SATURATION.pickle b/js/NonLinear/SATURATION.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/SATURATION.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/SAT_f.pickle b/js/NonLinear/SAT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/SAT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/SIGNUM.pickle b/js/NonLinear/SIGNUM.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/SIGNUM.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/SINBLK_f.pickle b/js/NonLinear/SINBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/SINBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/TANBLK_f.pickle b/js/NonLinear/TANBLK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/TANBLK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/NonLinear/TrigFun.pickle b/js/NonLinear/TrigFun.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/NonLinear/TrigFun.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/PDE/PDE.js b/js/PDE/PDE.js index c9e5ed5e..a1d143a4 100644 --- a/js/PDE/PDE.js +++ b/js/PDE/PDE.js @@ -31,7 +31,7 @@ if (ok) { return; } } else { -if (exists["%scicos_context"-1]) { +if (exists("%scicos_context")) { [ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde]=setvalue_IHM_EDP(params_pde); } } @@ -75,7 +75,7 @@ delta=evstr(a4)^2-4*evstr(a1)*evstr(a2); if ((delta==[])) { delta=0; } -type_meth=arbre_decision[delta-1]; +type_meth=this.arbre_decision[delta-1]; } [flag_type,rdnom,DF_type,tt]=translate(CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,type_meth,degre,a_domaine,b_domaine,Nbr_maillage,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,rdnom,mesures); Nbr=Nbr_maillage; @@ -114,7 +114,7 @@ model.state=zeros(2*Nbr_maillage,1); } } } -[ok1]=CFORTREDP[rdnom-1][tt-1]; +[ok1]=CFORTREDP(rdnom,tt); if (!ok1) { break; } diff --git a/js/PDE/PDE.pickle b/js/PDE/PDE.pickle new file mode 100644 index 00000000..fb271fe8 --- /dev/null +++ b/js/PDE/PDE.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'arbre_decision' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sinks/AFFICH_m.pickle b/js/Sinks/AFFICH_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/AFFICH_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/BARXY.pickle b/js/Sinks/BARXY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/BARXY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CANIMXY.pickle b/js/Sinks/CANIMXY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CANIMXY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CANIMXY3D.pickle b/js/Sinks/CANIMXY3D.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CANIMXY3D.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CEVENTSCOPE.pickle b/js/Sinks/CEVENTSCOPE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CEVENTSCOPE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CFSCOPE.pickle b/js/Sinks/CFSCOPE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CFSCOPE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CLKOUTV_f.pickle b/js/Sinks/CLKOUTV_f.pickle new file mode 100644 index 00000000..b563ade6 --- /dev/null +++ b/js/Sinks/CLKOUTV_f.pickle @@ -0,0 +1,17 @@ +c__builtin__ +set +p0 +((lp1 +S'diag' +p2 +aS'type' +p3 +aS'options' +p4 +aS'default_color' +p5 +aS'standard_origin' +p6 +atp7 +Rp8 +.
\ No newline at end of file diff --git a/js/Sinks/CLKOUT_f.pickle b/js/Sinks/CLKOUT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CLKOUT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CMAT3D.js b/js/Sinks/CMAT3D.js index 3b35dd9c..422c1443 100644 --- a/js/Sinks/CMAT3D.js +++ b/js/Sinks/CMAT3D.js @@ -3,7 +3,7 @@ function CMAT3D() { CMAT3D.prototype.define = function CMAT3D() { cmin=0; cmax=100; -colormap=jetcolormap[25-1]; +colormap=this.jetcolormap[25-1]; size_c=25; x=-1; y=-1; diff --git a/js/Sinks/CMAT3D.pickle b/js/Sinks/CMAT3D.pickle new file mode 100644 index 00000000..80ec981b --- /dev/null +++ b/js/Sinks/CMAT3D.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'jetcolormap' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sinks/CMATVIEW.js b/js/Sinks/CMATVIEW.js index 135bbb8d..eaa522ba 100644 --- a/js/Sinks/CMATVIEW.js +++ b/js/Sinks/CMATVIEW.js @@ -4,7 +4,7 @@ function CMATVIEW() { cmin=0; cmax=100; size_c=25; -colormap=jetcolormap[size_c-1]; +colormap=this.jetcolormap[size_c-1]; alpha_c=0.24; beta_c=1; model=scicos_model(); @@ -45,7 +45,7 @@ message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (ok) { size_c=size(colormap.slice(),1); -sol=inv[[[cmin,1],[cmax,1]]-1]*[[1],[size_c/3]]; +sol=inv([[cmin,1],[cmax,1]])*[[1],[size_c/3]]; alpha_c=sol[1-1]; beta_c=sol[2-1]; ipar=[[cmin],[cmax],[size_c]]; diff --git a/js/Sinks/CMATVIEW.pickle b/js/Sinks/CMATVIEW.pickle new file mode 100644 index 00000000..80ec981b --- /dev/null +++ b/js/Sinks/CMATVIEW.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'jetcolormap' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sinks/CMSCOPE.pickle b/js/Sinks/CMSCOPE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CMSCOPE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CSCOPE.pickle b/js/Sinks/CSCOPE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CSCOPE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CSCOPXY.pickle b/js/Sinks/CSCOPXY.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CSCOPXY.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/CSCOPXY3D.pickle b/js/Sinks/CSCOPXY3D.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/CSCOPXY3D.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/OUTIMPL_f.pickle b/js/Sinks/OUTIMPL_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/OUTIMPL_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/OUT_f.pickle b/js/Sinks/OUT_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/OUT_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/TOWS_c.js b/js/Sinks/TOWS_c.js index 90a642d5..59701dd5 100644 --- a/js/Sinks/TOWS_c.js +++ b/js/Sinks/TOWS_c.js @@ -14,7 +14,7 @@ model.out=[]; model.evtin=[1]; model.evtout=[]; model.rpar=[]; -model.ipar=[[nz],[length(varnam)],[transpose(ascii[varnam-1])]]; +model.ipar=[[nz],[length(varnam)],[transpose(this.ascii[varnam-1])]]; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; @@ -54,7 +54,7 @@ model.blocktype="x"; } else { model.blocktype="d"; } -model.ipar=[[nz],[length(varnam)],[transpose(ascii[varnam-1])]]; +model.ipar=[[nz],[length(varnam)],[transpose(this.ascii[varnam-1])]]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; diff --git a/js/Sinks/TOWS_c.pickle b/js/Sinks/TOWS_c.pickle new file mode 100644 index 00000000..78d6aa96 --- /dev/null +++ b/js/Sinks/TOWS_c.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'ascii' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sinks/TRASH_f.pickle b/js/Sinks/TRASH_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sinks/TRASH_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sinks/WFILE_f.js b/js/Sinks/WFILE_f.js index df2897ef..85b4c901 100644 --- a/js/Sinks/WFILE_f.js +++ b/js/Sinks/WFILE_f.js @@ -12,7 +12,7 @@ model.sim="writef"; model.in1=in1; model.evtin=1; model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -model.ipar=[[length(fname)],[length(frmt)],[0],[N],[_str2code[fname-1]],[_str2code[frmt-1]]]; +model.ipar=[[length(fname)],[length(frmt)],[0],[N],[this._str2code[fname-1]],[this._str2code[frmt-1]]]; model.blocktype="d"; model.dep_ut=[true,false]; exprs=[[sci2exp(in1)],[fname],[frmt],[string(N)]]; @@ -25,8 +25,8 @@ x=standard_define([3,2],model,exprs,gr_i); } WFILE_f.prototype.set = function WFILE_f() { warnobsolete("WRITEC_f","6.0.0"); -warnMessage=msprintf(_["Feature %s is obsolete."-1],"WFILE_f"); -warnAdvise=msprintf(_["Please use %s instead."-1],"WRITEC_f"); +warnMessage=msprintf(_("Feature %s is obsolete."),"WFILE_f"); +warnAdvise=msprintf(_("Please use %s instead."),"WRITEC_f"); warnXcosMessage=msprintf("%s %s",warnMessage,warnAdvise); warnBlockByUID(arg1.model.label,warnXcosMessage); x=arg1; @@ -57,7 +57,7 @@ block_parameter_error(gettext("Wrong value for \'Output File Name\' parameter"), ok=false; } else if (fileparts(fname1)!="") { [pa,fn,ex]=fileparts(fname1); -if (!isdir[pa-1]) { +if (!this.isdir[pa-1]) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); ok=false; } @@ -72,8 +72,8 @@ block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."), ok=false; } if (ok) { -ipar=[[length(fname1)],[length(frmt1)],[0],[N],[_str2code[fname1-1]],[_str2code[frmt1-1]]]; -if (prod[size(dstate)-1]!=(nin+1)*N+2) { +ipar=[[length(fname1)],[length(frmt1)],[0],[N],[this._str2code[fname1-1]],[this._str2code[frmt1-1]]]; +if (prod(size(dstate))!=(nin+1)*N+2) { dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; } model.in1=nin; diff --git a/js/Sinks/WFILE_f.pickle b/js/Sinks/WFILE_f.pickle new file mode 100644 index 00000000..c7024ed7 --- /dev/null +++ b/js/Sinks/WFILE_f.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'isdir' +p2 +aS'_str2code' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Sinks/WRITEAU_f.js b/js/Sinks/WRITEAU_f.js index c91a58ae..b4bbafec 100644 --- a/js/Sinks/WRITEAU_f.js +++ b/js/Sinks/WRITEAU_f.js @@ -13,7 +13,7 @@ model.sim=list("writeau",2); model.in1=in1; model.evtin=1; model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[N],[swap],[_str2code[fname-1]]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[N],[swap],[this._str2code[fname-1]]]; model.blocktype="d"; model.dep_ut=[true,false]; exprs=[string(N),string(swap)]; @@ -40,7 +40,7 @@ break; nin=1; fname1="/dev/audio"; frmt1="uc "; -if (alreadyran&&(N!=ipar[5-1])) { +if (this.alreadyran&&(N!=ipar[5-1])) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); ok=false; } else if (N<1) { @@ -52,8 +52,8 @@ block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."), ok=false; } if (ok) { -ipar=[[length(fname1)],[_str2code[frmt1-1]],[N],[swap],[_str2code[fname1-1]]]; -if (prod[size(dstate)-1]!=(nin+1)*N+2) { +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[N],[swap],[this._str2code[fname1-1]]]; +if (prod(size(dstate))!=(nin+1)*N+2) { dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; } model.in1=1; diff --git a/js/Sinks/WRITEAU_f.pickle b/js/Sinks/WRITEAU_f.pickle new file mode 100644 index 00000000..62a7fafc --- /dev/null +++ b/js/Sinks/WRITEAU_f.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'_str2code' +p2 +aS'alreadyran' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Sinks/WRITEC_f.js b/js/Sinks/WRITEC_f.js index 581d3f02..baaa2687 100644 --- a/js/Sinks/WRITEC_f.js +++ b/js/Sinks/WRITEC_f.js @@ -13,7 +13,7 @@ model.sim=list("writec",2); model.in1=in1; model.evtin=1; model.dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[N],[swap],[_str2code[fname-1]]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[N],[swap],[this._str2code[fname-1]]]; model.blocktype="d"; model.dep_ut=[true,false]; exprs=[[sci2exp(in1)],[fname],[frmt],[string(N),string(swap)]]; @@ -47,17 +47,17 @@ fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll", if (and(frmt1!=fmts)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); ok=false; -} else if (alreadyran&&fname1!=fname) { +} else if (this.alreadyran&&fname1!=fname) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input Format")),gettext("End current simulation first.")); ok=false; -} else if (alreadyran&&N!=ipar[5-1]) { +} else if (this.alreadyran&&N!=ipar[5-1]) { block_parameter_error(msprintf(gettext("You cannot modify \'Buffer Size\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); ok=false; } else if (fname1=="") { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),gettext("You must provide a filename.")); } else if (fileparts(fname1)!="") { [pa,fn,ex]=fileparts(fname1); -if (!isdir[pa-1]) { +if (!this.isdir[pa-1]) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); ok=false; } @@ -73,8 +73,8 @@ ok=false; } frmt1=part(frmt1,1,3); if (ok) { -ipar=[[length(fname1)],[_str2code[frmt1-1]],[N],[swap],[_str2code[fname1-1]]]; -if (prod[size(dstate)-1]!=(nin+1)*N+2) { +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[N],[swap],[this._str2code[fname1-1]]]; +if (prod(size(dstate))!=(nin+1)*N+2) { dstate=[[-1],[lunit],[zeros((nin+1)*N,1)]]; } model.in1=nin; diff --git a/js/Sinks/WRITEC_f.pickle b/js/Sinks/WRITEC_f.pickle new file mode 100644 index 00000000..80ba7661 --- /dev/null +++ b/js/Sinks/WRITEC_f.pickle @@ -0,0 +1,13 @@ +c__builtin__ +set +p0 +((lp1 +S'isdir' +p2 +aS'_str2code' +p3 +aS'alreadyran' +p4 +atp5 +Rp6 +.
\ No newline at end of file diff --git a/js/Sources/CLKINV_f.pickle b/js/Sources/CLKINV_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/CLKINV_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/CLKIN_f.pickle b/js/Sources/CLKIN_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/CLKIN_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/CLOCK_c.js b/js/Sources/CLOCK_c.js index 598ed817..c7e6c608 100644 --- a/js/Sources/CLOCK_c.js +++ b/js/Sources/CLOCK_c.js @@ -1,7 +1,7 @@ /* autogenerated from "macros/Sources/CLOCK_c.sci" */ function CLOCK_c() { CLOCK_c.prototype.define = function CLOCK_c() { -evtdly=EVTDLY_c["define"-1]; +evtdly=this.EVTDLY_c["define"-1]; evtdly.graphics.orig=[320,232]; evtdly.graphics.sz=[40,40]; evtdly.graphics.flip=true; diff --git a/js/Sources/CLOCK_c.pickle b/js/Sources/CLOCK_c.pickle new file mode 100644 index 00000000..50891984 --- /dev/null +++ b/js/Sources/CLOCK_c.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'EVTDLY_c' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sources/CLOCK_f.pickle b/js/Sources/CLOCK_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/CLOCK_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/CONST.pickle b/js/Sources/CONST.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/CONST.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/CONST_f.pickle b/js/Sources/CONST_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/CONST_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/CONST_m.js b/js/Sources/CONST_m.js index e234d175..14c15e6c 100644 --- a/js/Sources/CONST_m.js +++ b/js/Sources/CONST_m.js @@ -36,8 +36,8 @@ block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter"),gettex } else { model.sim=list("cstblk4_m",4); model.opar=list(C); -if ((type[C-1]==1)) { -if (isreal[C-1]) { +if ((this.type[C-1]==1)) { +if (isreal(C)) { ot=1; } else { ot=2; diff --git a/js/Sources/CONST_m.pickle b/js/Sources/CONST_m.pickle new file mode 100644 index 00000000..0ac03d7f --- /dev/null +++ b/js/Sources/CONST_m.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'type' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sources/CURVE_c.pickle b/js/Sources/CURVE_c.pickle new file mode 100644 index 00000000..8cef5b52 --- /dev/null +++ b/js/Sources/CURVE_c.pickle @@ -0,0 +1,19 @@ +c__builtin__ +set +p0 +((lp1 +S'rparin' +p2 +aS'ixy' +p3 +aS'iparin' +p4 +aS'argn' +p5 +aS'xy' +p6 +aS'curwin' +p7 +atp8 +Rp9 +.
\ No newline at end of file diff --git a/js/Sources/CURV_f.pickle b/js/Sources/CURV_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/CURV_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/Counter.pickle b/js/Sources/Counter.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/Counter.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/FROMWSB.js b/js/Sources/FROMWSB.js index d7ac7b2a..7cf0658f 100644 --- a/js/Sources/FROMWSB.js +++ b/js/Sources/FROMWSB.js @@ -35,9 +35,9 @@ spath[$+1-1]=path[k-1]; } xx=arg1[spath-1]; execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (!isequalbitwise[xxn-1][xx-1]) { +if (!this.isequalbitwise[this.xxn-1][xx-1]) { model=xx.model; -model_n=xxn.model; +model_n=this.xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { @@ -60,7 +60,7 @@ needcompile=4; if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } -if (prod[size(model_n.sim)-1]>1) { +if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (model.sim[1-1]!=model_n.sim[1-1]) { needcompile=4; @@ -75,7 +75,7 @@ if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outpu needcompile=4; } } -arg1[spath-1]=xxn; +arg1[spath-1]=this.xxn; newpar[size(newpar)+1-1]=path; y=max(y,needcompile); } diff --git a/js/Sources/FROMWSB.pickle b/js/Sources/FROMWSB.pickle new file mode 100644 index 00000000..794658bf --- /dev/null +++ b/js/Sources/FROMWSB.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'xxn' +p2 +aS'isequalbitwise' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Sources/FROMWS_c.js b/js/Sources/FROMWS_c.js index a166ca27..df7373cf 100644 --- a/js/Sources/FROMWS_c.js +++ b/js/Sources/FROMWS_c.js @@ -10,7 +10,7 @@ model.sim=list("fromws_c",4); model.out=-1; model.out2=-2; model.outtyp=-1; -model.ipar=[[length(varnam)],[_str2code[varnam-1]],[Method],[ZC],[OutEnd]]; +model.ipar=[[length(varnam)],[this._str2code[varnam-1]],[Method],[ZC],[OutEnd]]; model.evtin=[1]; model.evtout=[1]; model.firing=[0]; @@ -53,7 +53,7 @@ message([["Invalid variable name."],["Please choose another variable name."]]); ok=false; } if (ok) { -model.ipar=[[length(varnam)],[_str2code[varnam-1]],[Method],[ZC],[OutEnd]]; +model.ipar=[[length(varnam)],[this._str2code[varnam-1]],[Method],[ZC],[OutEnd]]; [model,graphics,ok]=set_io(model,graphics,list(),list([-1,-2],-1),1,1); if (ok) { graphics.exprs=exprs; diff --git a/js/Sources/FROMWS_c.pickle b/js/Sources/FROMWS_c.pickle new file mode 100644 index 00000000..3efc5bbe --- /dev/null +++ b/js/Sources/FROMWS_c.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'_str2code' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sources/GENSIN_f.pickle b/js/Sources/GENSIN_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/GENSIN_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/GENSQR_f.pickle b/js/Sources/GENSQR_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/GENSQR_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/GEN_SQR.js b/js/Sources/GEN_SQR.js index 040f40c4..e9884602 100644 --- a/js/Sources/GEN_SQR.js +++ b/js/Sources/GEN_SQR.js @@ -54,7 +54,7 @@ x=standard_define([3,2],model,exprs,gr_i); GEN_SQR.prototype.get = function GEN_SQR() { } GEN_SQR.prototype.set = function GEN_SQR() { -y=needcompile; +y=this.needcompile; arg1.model.ipar=1; typ=list(); graphics=arg1.graphics; @@ -77,7 +77,7 @@ sblock=x.model.rpar; if (ierr==0) { [sblock,%w,needcompile2,ok]=do_eval(sblock,list()); if (ok) { -y=max(2,needcompile,needcompile2); +y=max(2,this.needcompile,needcompile2); x.graphics.exprs=exprs; x.model.rpar=sblock; break; diff --git a/js/Sources/GEN_SQR.pickle b/js/Sources/GEN_SQR.pickle new file mode 100644 index 00000000..1922e519 --- /dev/null +++ b/js/Sources/GEN_SQR.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'needcompile' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sources/Ground_g.pickle b/js/Sources/Ground_g.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/Ground_g.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/INIMPL_f.pickle b/js/Sources/INIMPL_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/INIMPL_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/IN_f.js b/js/Sources/IN_f.js index 8e7695cb..b81e3518 100644 --- a/js/Sources/IN_f.js +++ b/js/Sources/IN_f.js @@ -30,17 +30,17 @@ if (size(exprs,"*")==1) { exprs=[[exprs[1-1]],["[-1 -2]"],["-1"]]; } while (true) { -[ok,prt,otsz,ot,exprs]=getvalue(_["Set Input block parameters"-1],[[_["Port number"-1]],[_["Outport size ([-1 -2] for inherit)"-1]],[_["Outport Type (-1 for inherit)"-1]]],list("vec",1,"vec",-1,"vec",1),exprs); +[ok,prt,otsz,ot,exprs]=getvalue(_("Set Input block parameters"),[[_("Port number")],[_("Outport size ([-1 -2] for inherit)")],[_("Outport Type (-1 for inherit)")]],list("vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break; } prt=int(prt); if (prt<=0) { -message(_["Port number must be a positive integer"-1]); +message(_("Port number must be a positive integer")); } else if (!isequal(size(otsz,"*"),2)) { -message(_["Outport Size must be a 2 elements vector"-1]); +message(_("Outport Size must be a 2 elements vector")); } else if (((ot<1||ot>9)&&(ot!=-1))) { -message(_["Outport type must be a number between 1 and 9, or -1 for inheritance."-1]); +message(_("Outport type must be a number between 1 and 9, or -1 for inheritance.")); } else { if (model.ipar!=prt) { needcompile=4; diff --git a/js/Sources/IN_f.pickle b/js/Sources/IN_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/IN_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/Modulo_Count.pickle b/js/Sources/Modulo_Count.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/Modulo_Count.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/PULSE_SC.js b/js/Sources/PULSE_SC.js index 12f227e4..0f216f21 100644 --- a/js/Sources/PULSE_SC.js +++ b/js/Sources/PULSE_SC.js @@ -49,7 +49,7 @@ x=standard_define([3,2],model,exprs,gr_i); PULSE_SC.prototype.get = function PULSE_SC() { } PULSE_SC.prototype.set = function PULSE_SC() { -y=needcompile; +y=this.needcompile; arg1.model.ipar=1; typ=list(); graphics=arg1.graphics; @@ -72,7 +72,7 @@ sblock=x.model.rpar; if (ierr==0) { [sblock,%w,needcompile2,ok]=do_eval(sblock,list()); if (ok) { -y=max(2,needcompile,needcompile2); +y=max(2,this.needcompile,needcompile2); x.graphics.exprs=exprs; x.model.rpar=sblock; break; diff --git a/js/Sources/PULSE_SC.pickle b/js/Sources/PULSE_SC.pickle new file mode 100644 index 00000000..1922e519 --- /dev/null +++ b/js/Sources/PULSE_SC.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'needcompile' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sources/RAMP.pickle b/js/Sources/RAMP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/RAMP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/RAND_f.pickle b/js/Sources/RAND_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/RAND_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/RAND_m.pickle b/js/Sources/RAND_m.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/RAND_m.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/READAU_f.js b/js/Sources/READAU_f.js index cf1be0d7..95ce25c3 100644 --- a/js/Sources/READAU_f.js +++ b/js/Sources/READAU_f.js @@ -17,7 +17,7 @@ model.sim=list("readau",2); model.out=nout; model.evtin=1; model.dstate=[[1],[1],[lunit],[zeros(N*M,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname-1]],[tmask],[outmask]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[[fname],[string(N)],[string(swap)]]; @@ -52,13 +52,13 @@ break; } fname1=stripblanks(fname1); frmt1=stripblanks(frmt1); -if (alreadyran&&fname1!=fname) { +if (this.alreadyran&&fname1!=fname) { block_parameter_error(gettext("Simulation running !!! You cannot modify Input file name"),gettext("End current simulation first.")); } else if (fname1=="") { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a filename.")); } else if (N<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer size"),N),msprintf(gettext("Must be greater than %d."),1)); -} else if (alreadyran&&(N!=ipar[6-1])) { +} else if (this.alreadyran&&(N!=ipar[6-1])) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first.")); } else if (swap!=0&&swap!=1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); @@ -66,8 +66,8 @@ block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."), [model,graphics,ok]=check_io(model,graphics,[],1,1,[]); frmt1=part(frmt1,1,3); if (ok) { -ipar=[[length(fname1)],[_str2code[frmt1-1]],[0],[N],[M],[swap],[offset,_str2code[fname1-1]],[tmask1,outmask.slice()]]; -if (prod[size(dstate)-1]!=(N*M)+3) { +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[0],[N],[M],[swap],[offset,this._str2code[fname1-1]],[tmask1,outmask.slice()]]; +if (prod(size(dstate))!=(N*M)+3) { dstate=[[-1],[-1],[lunit],[zeros(N*M,1)]]; } model.dstate=dstate; diff --git a/js/Sources/READAU_f.pickle b/js/Sources/READAU_f.pickle new file mode 100644 index 00000000..62a7fafc --- /dev/null +++ b/js/Sources/READAU_f.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'_str2code' +p2 +aS'alreadyran' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Sources/READC_f.js b/js/Sources/READC_f.js index 778d4051..35f1168f 100644 --- a/js/Sources/READC_f.js +++ b/js/Sources/READC_f.js @@ -13,14 +13,14 @@ offset=1; outmask=1; ievt=0; nout=size(outmask,"*"); -ipar=[[length(fname)],[_str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname-1]],[tmask],[outmask]]; +ipar=[[length(fname)],[this._str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; model=scicos_model(); model.sim=list("readc",2); model.out=nout; model.evtin=1; model.evtout=[]; model.dstate=[[1],[1],[lunit],[zeros(N*M,1)]]; -model.ipar=[[length(fname)],[_str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname-1]],[tmask],[outmask]]; +model.ipar=[[length(fname)],[this._str2code[frmt-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; @@ -54,15 +54,15 @@ fname1=pathconvert(stripblanks(fname1),false,true); frmt1=stripblanks(frmt1); fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; nout=size(outmask,"*"); -if (prod[size(tmask1)-1]>1) { +if (prod(size(tmask1))>1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Time Record Selection")),gettext("Must be a scalar or an empty matrix.")); } else if (and(frmt1!=fmts)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); -} else if (alreadyran&&fname1!=fname) { +} else if (this.alreadyran&&fname1!=fname) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input File Name")),gettext("End current simulation first.")); -} else if (N!=ipar[6-1]&&alreadyran) { +} else if (N!=ipar[6-1]&&this.alreadyran) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); -} else if (alreadyran&&size(tmask1)!=size(tmask)) { +} else if (this.alreadyran&&size(tmask1)!=size(tmask)) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Time Record Selection")),gettext("End current simulation first.")); } else if (fname1=="") { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a file name.")); @@ -100,8 +100,8 @@ model.firing=-1; } else { model.firing=0; } -ipar=[[length(fname1)],[_str2code[frmt1-1]],[ievt],[N],[M],[swap],[offset],[_str2code[fname1-1]],[tmask1],[outmask.slice()]]; -if (prod[size(dstate)-1]!=(N*M)+3) { +ipar=[[length(fname1)],[this._str2code[frmt1-1]],[ievt],[N],[M],[swap],[offset],[this._str2code[fname1-1]],[tmask1],[outmask.slice()]]; +if (prod(size(dstate))!=(N*M)+3) { dstate=[[-1],[-1],[lunit],[zeros(N*M,1)]]; } model.dstate=dstate; diff --git a/js/Sources/READC_f.pickle b/js/Sources/READC_f.pickle new file mode 100644 index 00000000..62a7fafc --- /dev/null +++ b/js/Sources/READC_f.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'_str2code' +p2 +aS'alreadyran' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Sources/RFILE_f.js b/js/Sources/RFILE_f.js index a9fd24e6..b06b943e 100644 --- a/js/Sources/RFILE_f.js +++ b/js/Sources/RFILE_f.js @@ -10,14 +10,14 @@ N=2; rpar=[]; tmask=0; outmask=1; -ipar=[[length(fname)],[length(frmt)],[0],[N],[_str2code[fname-1]],[_str2code[frmt-1]],[tmask],[outmask]]; +ipar=[[length(fname)],[length(frmt)],[0],[N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[outmask]]; dstate=[[1],[1],[lunit],[zeros((nout)*N,1)]]; model=scicos_model(); model.sim="readf"; model.out=nout; model.evtin=1; model.dstate=dstate; -model.ipar=[[length(fname)],[length(frmt)],[0],[N],[_str2code[fname-1]],[_str2code[frmt-1]],[tmask],[outmask]]; +model.ipar=[[length(fname)],[length(frmt)],[0],[N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[outmask]]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[[sci2exp([])],[sci2exp(outmask)],[fname],[frmt],[string(N)],[sci2exp(out)]]; @@ -53,7 +53,7 @@ break; fname1=pathconvert(stripblanks(fname1),false,true); frmt1=stripblanks(frmt1); nout=size(outmask,"*"); -if (prod[size(tmask1)-1]>1) { +if (prod(size(tmask1))>1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Time Record Selection"),strcat(string(tmask1.slice())," ")),gettext("Empty matrix or scalar expected.")); } else if (tmask1!=[]&&tmask1<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d"),gettext("Time Record Selection"),tmask1),gettext("Strictly positive integer expected.")); @@ -89,8 +89,8 @@ model.firing=[]; } else { model.firing=0; } -ipar=[[length(fname1)],[length(frmt1)],[ievt],[N],[_str2code[fname1-1]],[_str2code[frmt1-1]],[tmask1],[outmask.slice()]]; -if (prod[size(dstate)-1]!=(nout+ievt)*N+3) { +ipar=[[length(fname1)],[length(frmt1)],[ievt],[N],[this._str2code[fname1-1]],[this._str2code[frmt1-1]],[tmask1],[outmask.slice()]]; +if (prod(size(dstate))!=(nout+ievt)*N+3) { dstate=[[-1],[-1],[lunit],[zeros((nout+ievt)*N,1)]]; } model.dstate=dstate; diff --git a/js/Sources/RFILE_f.pickle b/js/Sources/RFILE_f.pickle new file mode 100644 index 00000000..3efc5bbe --- /dev/null +++ b/js/Sources/RFILE_f.pickle @@ -0,0 +1,9 @@ +c__builtin__ +set +p0 +((lp1 +S'_str2code' +p2 +atp3 +Rp4 +.
\ No newline at end of file diff --git a/js/Sources/SAWTOOTH_f.pickle b/js/Sources/SAWTOOTH_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/SAWTOOTH_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/STEP.pickle b/js/Sources/STEP.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/STEP.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/STEP_FUNCTION.js b/js/Sources/STEP_FUNCTION.js index 3865ec88..a417a68c 100644 --- a/js/Sources/STEP_FUNCTION.js +++ b/js/Sources/STEP_FUNCTION.js @@ -2,7 +2,7 @@ function STEP_FUNCTION() { STEP_FUNCTION.prototype.define = function STEP_FUNCTION() { scs_m_1=scicos_diagram(); -scs_m_1.objs[1-1]=STEP["define"-1]; +scs_m_1.objs[1-1]=this.STEP["define"-1]; scs_m_1.objs[2-1]=OUT_f("define"); scs_m_1.objs[3-1]=scicos_link(); scs_m_1.objs[4-1]=scicos_link(); @@ -74,9 +74,9 @@ spath[$+1-1]=path[k-1]; } xx=arg1[spath-1]; execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (diffobjs(xxn,xx)) { +if (diffobjs(this.xxn,xx)) { model=xx.model; -model_n=xxn.model; +model_n=this.xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)) { @@ -96,7 +96,7 @@ needcompile=4; if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } -if (prod[size(model_n.sim)-1]>1) { +if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (model.sim[1-1]!=model_n.sim[1-1]) { needcompile=4; @@ -111,7 +111,7 @@ if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outpu needcompile=4; } } -arg1[spath-1]=xxn; +arg1[spath-1]=this.xxn; newpar[size(newpar)+1-1]=path; } } diff --git a/js/Sources/STEP_FUNCTION.pickle b/js/Sources/STEP_FUNCTION.pickle new file mode 100644 index 00000000..8ecebb29 --- /dev/null +++ b/js/Sources/STEP_FUNCTION.pickle @@ -0,0 +1,11 @@ +c__builtin__ +set +p0 +((lp1 +S'STEP' +p2 +aS'xxn' +p3 +atp4 +Rp5 +.
\ No newline at end of file diff --git a/js/Sources/SampleCLK.pickle b/js/Sources/SampleCLK.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/SampleCLK.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/Sigbuilder.js b/js/Sources/Sigbuilder.js index b2c05ea8..47782cfb 100644 --- a/js/Sources/Sigbuilder.js +++ b/js/Sources/Sigbuilder.js @@ -28,7 +28,7 @@ break; } } newpar=list(); -y=0; +this.y=0; for (path in ppath) { np=size(path,"*"); spath=list(); @@ -40,9 +40,9 @@ spath[$+1-1]=path[k-1]; } xx=arg1[spath-1]; execstr("xxn="+xx.gui+"(\'set\',xx)"); -if (diffobjs(xxn,xx)) { +if (diffobjs(this.xxn,xx)) { model=xx.model; -model_n=xxn.model; +model_n=this.xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { @@ -65,7 +65,7 @@ needcompile=4; if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } -if (prod[size(model_n.sim)-1]>1) { +if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (model.sim[1-1]!=model_n.sim[1-1]) { needcompile=4; @@ -80,9 +80,9 @@ if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outpu needcompile=4; } } -arg1[spath-1]=xxn; +arg1[spath-1]=this.xxn; newpar[size(newpar)+1-1]=path; -y=max(y,needcompile); +this.y=max(this.y,needcompile); } } x=arg1; diff --git a/js/Sources/Sigbuilder.pickle b/js/Sources/Sigbuilder.pickle new file mode 100644 index 00000000..52400405 --- /dev/null +++ b/js/Sources/Sigbuilder.pickle @@ -0,0 +1,17 @@ +c__builtin__ +set +p0 +((lp1 +S'y' +p2 +aS'order' +p3 +aS'ORDER2' +p4 +aS'xxn' +p5 +aS'N' +p6 +atp7 +Rp8 +.
\ No newline at end of file diff --git a/js/Sources/TIME_f.pickle b/js/Sources/TIME_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/TIME_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Sources/TKSCALE.pickle b/js/Sources/TKSCALE.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Sources/TKSCALE.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Threshold/GENERAL_f.pickle b/js/Threshold/GENERAL_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Threshold/GENERAL_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Threshold/NEGTOPOS_f.pickle b/js/Threshold/NEGTOPOS_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Threshold/NEGTOPOS_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Threshold/POSTONEG_f.pickle b/js/Threshold/POSTONEG_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Threshold/POSTONEG_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/js/Threshold/ZCROSS_f.pickle b/js/Threshold/ZCROSS_f.pickle new file mode 100644 index 00000000..154645d8 --- /dev/null +++ b/js/Threshold/ZCROSS_f.pickle @@ -0,0 +1,7 @@ +c__builtin__ +set +p0 +((lp1 +tp2 +Rp3 +.
\ No newline at end of file diff --git a/sci2jslex.py b/sci2jslex.py index db76abe9..a06b2d1d 100755 --- a/sci2jslex.py +++ b/sci2jslex.py @@ -58,9 +58,12 @@ PREDEFINED_VARIABLES = { } FUNCTION_CALLS = { + '_', 'ANDLOG_f', 'AutoScale', 'CFORTR', + 'CFORTR2', + 'CFORTREDP', 'CLKIN_f', 'CLKINV_f', 'CLKOUT_f', @@ -68,6 +71,7 @@ FUNCTION_CALLS = { 'CLKSOM_f', 'CLKSOMV_f', 'CLKSPLIT_f', + 'DEBUG', 'Do_Spline', 'EVTDLY_f', 'FORTR', @@ -92,10 +96,13 @@ FUNCTION_CALLS = { 'cleandata', 'compile_expr', 'compiler_expression', + 'cont_frm', 'deff', + 'degree', 'delmenu', 'diffobjs', 'do_eval', + 'double', 'drawSplin', 'drawlater', 'drawnow', @@ -104,10 +111,12 @@ FUNCTION_CALLS = { 'eval', 'evstr', 'execstr', + 'exists', 'fileinfo', 'fileparts', 'find', 'findrect', + 'floor', 'gca', 'gcf', 'genfunc1', @@ -122,19 +131,27 @@ FUNCTION_CALLS = { 'ieee', 'imag', 'int', + 'int16', + 'int32', + 'int8', 'interp', + 'inv', 'is_modelica_block', 'isequal', + 'isreal', 'lasterror', 'length', 'lines', 'linspace', 'list', + 'log', + 'lstsize', 'matrix', 'max', 'mclose', 'message', 'messagebox', + 'mfrequ_clk', 'mfscanf', 'mgetl', 'min', @@ -149,6 +166,7 @@ FUNCTION_CALLS = { 'pathconvert', 'plot3d', 'poke_point', + 'prod', 'rand', 'real', 'save', @@ -165,6 +183,7 @@ FUNCTION_CALLS = { 'script2var', 'set_io', 'setvalue_IHM_EDP', + 'sign', 'sin', 'size', 'splin', @@ -177,9 +196,13 @@ FUNCTION_CALLS = { 'struct', 'sum', 'tan', + 'test_increasing', 'tlist', 'translate', 'typeof', + 'uint16', + 'uint32', + 'uint8', 'warnBlockByUID', 'warning', 'warnobsolete', diff --git a/sci2jsyacc.py b/sci2jsyacc.py index 9d466a80..04742a28 100755 --- a/sci2jsyacc.py +++ b/sci2jsyacc.py @@ -3,15 +3,16 @@ """ Convert a .sci file to a .js file for use with xcos_on_cloud. -Usage: ./sci2jsyacc.py filename.sci > filename.js +Usage: ./sci2jsyacc.py filename.sci filename.pickle pass-number > filename.js -Example: ./sci2jsyacc.py macros/Sinks/CSCOPE.sci > js/Sinks/CSCOPE.js +Example: ./sci2jsyacc.py macros/Sinks/CSCOPE.sci js/Sinks/CSCOPE.pickle 2 > js/Sinks/CSCOPE.js """ from __future__ import print_function import re import sys +import pickle import ply.yacc as yacc from sci2jslex import tokens @@ -32,6 +33,7 @@ start = 'functionblocks' JOB_BLOCKS = {} +FUNCTION_VARS = set() LOCAL_VARS = set() GLOBAL_VARS = set() @@ -73,7 +75,7 @@ def p_jobfunctionstatement_function(p): '''jobfunctionstatement : FUNCTION lterm ASSIGNMENT VAR OPENBRACKET JOB COMMA VAR COMMA VAR CLOSEBRACKET EOL | FUNCTION lterm ASSIGNMENT FUNCTIONCALL OPENBRACKET JOB COMMA VAR COMMA VAR CLOSEBRACKET EOL''' for var in (p[6], p[8], p[10]): - LOCAL_VARS.add(var) + FUNCTION_VARS.add(var) p[0] = '%s' % (p[4]) def p_functionstatement_function(p): @@ -294,6 +296,8 @@ def p_casejobstatement_case(p): '''casejobstatement : CASE expression THEN EOL | CASE expression EOL | CASE expression THEN COMMA''' + LOCAL_VARS.clear() + LOCAL_VARS.update(FUNCTION_VARS) p[0] = '%s' % (p[2]) def p_whilestatement_while_do(p): @@ -534,7 +538,7 @@ def p_ltermvar_var(p): if var not in LOCAL_VARS: LOCAL_VARS.add(var) if var in GLOBAL_VARS: - p[0] = '%s' % (var) + p[0] = 'this.%s' % (var) else: p[0] = '%s' % (var) @@ -546,7 +550,7 @@ def p_ltermvar_in(p): if var not in LOCAL_VARS: LOCAL_VARS.add(var) if var in GLOBAL_VARS: - p[0] = '%s' % (var) + p[0] = 'this.%s' % (var) else: p[0] = '%s' % (var) @@ -743,7 +747,7 @@ def p_termvar_var(p): if var not in LOCAL_VARS: GLOBAL_VARS.add(var) if var in GLOBAL_VARS: - p[0] = '%s' % (var) + p[0] = 'this.%s' % (var) else: p[0] = '%s' % (var) @@ -755,7 +759,7 @@ def p_termvar_in(p): if var not in LOCAL_VARS: GLOBAL_VARS.add(var) if var in GLOBAL_VARS: - p[0] = '%s' % (var) + p[0] = 'this.%s' % (var) else: p[0] = '%s' % (var) @@ -780,8 +784,15 @@ def p_term_string(p): def p_error(p): print("Syntax error in input", p) -def processfile(filename): +def processfile(filename, picklefilename, passnumber): '''convert a sci file to a js file''' + + global GLOBAL_VARS + + if passnumber == 2: + with open(picklefilename, 'r') as cfile: + GLOBAL_VARS = pickle.load(cfile) + data = '' with open(filename, 'r') as infile: for line in infile: @@ -790,12 +801,16 @@ def processfile(filename): parser = yacc.yacc() result = parser.parse(data, debug=True) + if passnumber == 1: + with open(picklefilename, 'w') as cfile: + pickle.dump(GLOBAL_VARS, cfile) + print('/* autogenerated from "', filename, '" */', sep='') print(result) if __name__ == '__main__': - if len(sys.argv) <= 1: - print('Usage:', sys.argv[0], 'filename') + if len(sys.argv) <= 3: + print('Usage:', sys.argv[0], 'filename.sci filename.pickle pass-number') sys.exit(1) - processfile(sys.argv[1]) + processfile(sys.argv[1], sys.argv[2], int(sys.argv[3])) |