/* autogenerated from "macros/Branching/CLKFROM.sci" */ function CLKFROM() { CLKFROM.prototype.define = function CLKFROM() { this.model = scicos_model(); this.model.sim = new ScilabString(["clkfrom"]); this.model.evtout = new ScilabDouble([1]); this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = "A"; this.x = standard_define([2,1],this.model,exprs," "); this.x.graphics.id = "From"; return new BasicBlock(this.x); } CLKFROM.prototype.details = function CLKFROM() { return this.x; } CLKFROM.prototype.get = function CLKFROM() { var options = { } return options; } CLKFROM.prototype.set = function CLKFROM() { this.tag = arguments[0]["tag"] this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.tag,exprs] = scicos_getvalue("Set block parameters","Tag",list("str",-1),exprs); if (!ok) { break; } if (this.model.opar!=list(this.tag)) { needcompile = 4; y = needcompile; } this.model.opar = list(new ScilabDouble([this.tag])); this.model.evtout = new ScilabDouble([1]); this.model.firing = new ScilabDouble([-1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/CLKGOTO.sci" */ function CLKGOTO() { CLKGOTO.prototype.define = function CLKGOTO() { this.model = scicos_model(); this.model.sim = new ScilabString(["clkgoto"]); this.model.evtin = new ScilabDouble([1]); this.model.opar = list(new ScilabString(["A"])); this.model.ipar = new ScilabDouble([int(1)]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = [["A"],[sci2exp(1)]]; this.x = standard_define([2,1],this.model,exprs," "); this.x.graphics.id = "Goto"; return new BasicBlock(this.x); } CLKGOTO.prototype.details = function CLKGOTO() { return this.x; } CLKGOTO.prototype.get = function CLKGOTO() { var options = { tag:["Tag",this.tag], tagvis:["Tag Visibility (1=Local 2=Scoped 3=Global)",this.tagvis], } return options; } CLKGOTO.prototype.set = function CLKGOTO() { this.tag = arguments[0]["tag"] this.tagvis = parseFloat(arguments[0]["tagvis"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.tag,this.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; } if (((this.tagvis<1)||(this.tagvis>3))) { message("Tag Visibility must be between 1 and 3"); ok = false; } this.tagvis = int(this.tagvis); if (ok) { if (((this.model.opar!=list(this.tag))||(this.model.ipar!=this.tagvis))) { needcompile = 4; y = needcompile; } this.model.opar = list(new ScilabDouble([this.tag])); this.model.ipar = new ScilabDouble([this.tagvis]); this.model.evtin = new ScilabDouble([1]); this.model.firing = new ScilabDouble([-1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/CLKGotoTagVisibility.sci" */ function CLKGotoTagVisibility() { CLKGotoTagVisibility.prototype.define = function CLKGotoTagVisibility() { this.model = scicos_model(); this.model.sim = new ScilabString(["clkgototagvisibility"]); this.model.in1 = []; this.model.in2 = []; this.model.out = []; this.model.out2 = []; this.model.evtin = []; this.model.intyp = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [false,false]; exprs = "A"; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CLKGotoTagVisibility.prototype.details = function CLKGotoTagVisibility() { return this.x; } CLKGotoTagVisibility.prototype.get = function CLKGotoTagVisibility() { var options = { tag:["GotoTag",this.tag], } return options; } CLKGotoTagVisibility.prototype.set = function CLKGotoTagVisibility() { this.tag = arguments[0]["tag"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,exprs] = scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break; } if (ok) { if (this.model.opar!=list(this.tag)) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.x.graphics = graphics; this.x.model = this.model; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/DEMUX.sci" */ function DEMUX() { DEMUX.prototype.define = function DEMUX() { this.out = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["multiplex"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([0]); this.model.out = -transpose([1:this.out]); this.model.ipar = new ScilabDouble([this.out]); this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; exprs = string(this.out); gr_i = []; this.x = standard_define([.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DEMUX.prototype.details = function DEMUX() { return this.x; } DEMUX.prototype.get = function DEMUX() { var options = { out:["number of output ports or vector of sizes",this.out], } return options; } DEMUX.prototype.set = function DEMUX() { this.out = parseFloat(arguments[0]["out"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.out,exprs] = scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("intvec",-1),exprs); if (!ok) { break; } if (size(this.out,"*")==1) { if (this.out<2||this.out>31) { message("Block must have at least 2 and at most 31 output ports"); ok = false; } else { [this.model,graphics,ok] = check_io(this.model,graphics,0,-transpose([1:this.out]),[],[]); } } else { if (size(this.out,"*")<2||or(this.out==0)||size(this.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(this.out)<0) { nin = 0; } else { nin = sum(this.out); } [this.model,graphics,ok] = check_io(this.model,graphics,nin,this.out.slice(),[],[]); if (ok) { this.out = size(this.out,"*"); } } } if (ok) { graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.out]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/DEMUX_f.sci" */ function DEMUX_f() { DEMUX_f.prototype.define = function DEMUX_f() { this.out = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["demux"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([0]); this.model.out = -transpose([1:this.out]); this.model.ipar = new ScilabDouble([this.out]); this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; exprs = string(this.out); gr_i = []; this.x = standard_define([.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DEMUX_f.prototype.details = function DEMUX_f() { return this.x; } DEMUX_f.prototype.get = function DEMUX_f() { var options = { out:["number of output ports or vector of sizes",this.out], } return options; } DEMUX_f.prototype.set = function DEMUX_f() { this.out = parseFloat(arguments[0]["out"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.out,exprs] = scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("vec",-1),exprs); if (!ok) { break; } if (size(this.out,"*")==1) { if (this.out<2||this.out>8) { message("Block must have at least 2 and at most 8 output ports"); ok = false; } else { [this.model,graphics,ok] = check_io(this.model,graphics,0,-transpose([1:this.out]),[],[]); } } else { if (size(this.out,"*")<2||size(this.out,"*")>8||or(this.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(this.out)<0) { nin = 0; } else { nin = sum(this.out); } [this.model,graphics,ok] = check_io(this.model,graphics,nin,this.out.slice(),[],[]); if (ok) { this.out = size(this.out,"*"); } } } if (ok) { graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.out]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/ESELECT_f.sci" */ function ESELECT_f() { ESELECT_f.prototype.define = function ESELECT_f() { this.out = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["eselect"]), new ScilabDouble([-2])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([-1]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([ones(this.out,1)]); this.model.blocktype = new ScilabString(["l"]); this.model.firing = new ScilabDouble([-ones(this.out,1)]); this.model.dep_ut = [true,false]; this.model.nmode = new ScilabDouble([0]); this.model.nzcross = new ScilabDouble([0]); gr_i = []; exprs = [[string(this.out)],[string(1)],[string(this.model.nmode)]]; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } ESELECT_f.prototype.details = function ESELECT_f() { return this.x; } ESELECT_f.prototype.get = function ESELECT_f() { var options = { out:["number of output event ports",this.out], inh:["Inherit (1: no, 0: yes)",this.inh], nmod:["zero-crossing (0: no, 1: yes)",this.nmod], } return options; } ESELECT_f.prototype.set = function ESELECT_f() { this.out = parseFloat(arguments[0]["out"]) this.inh = parseFloat(arguments[0]["inh"]) this.nmod = parseFloat(arguments[0]["nmod"]) this.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); } this.model = arg1.model; while (true) { [ok,this.out,this.inh,this.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 (this.nmod!=0) { this.nmod = 1; } if (this.inh==0) { this.inh = []; } else { this.inh = 1; } this.out = int(this.out); if (this.out<2) { message("Block must have at least two output ports"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,1,[],this.inh,[ones(this.out,1)]); if (ok) { graphics.exprs = exprs; this.model.evtout = new ScilabDouble([ones(this.out,1)]); this.model.firing = new ScilabDouble([-ones(this.out,1)]); this.x.graphics = graphics; this.model.nmode = new ScilabDouble([this.nmod]); this.model.nzcross = new ScilabDouble([this.nmod]); this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/EXTRACTOR.sci" */ function EXTRACTOR() { EXTRACTOR.prototype.define = function EXTRACTOR() { this.ind = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["extractor"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; this.model.ipar = new ScilabDouble([this.ind]); exprs = [sci2exp(this.ind)]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EXTRACTOR.prototype.details = function EXTRACTOR() { return this.x; } EXTRACTOR.prototype.get = function EXTRACTOR() { var options = { ind:["indices to extract",this.ind], } return options; } EXTRACTOR.prototype.set = function EXTRACTOR() { this.ind = parseFloat(arguments[0]["ind"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.ind,exprs] = scicos_getvalue("Set block parameters",["indices to extract"],list("vec",-1),exprs); if (!ok) { break; } this.ind = int(this.ind); this.ind = this.ind.slice(); [this.model,graphics,ok] = check_io(this.model,graphics,[-1],size(this.ind,1),[],[]); if (ok) { this.model.ipar = this.ind; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/FROM.sci" */ function FROM() { FROM.prototype.define = function FROM() { this.model = scicos_model(); this.model.sim = new ScilabString(["from"]); this.model.in1 = []; this.model.in2 = []; this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([-1]); this.model.ipar = []; this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = ["A"]; gr_i = []; this.x = standard_define([2,1],this.model,exprs,gr_i); this.x.graphics.id = "From"; return new BasicBlock(this.x); } FROM.prototype.details = function FROM() { return this.x; } FROM.prototype.get = function FROM() { var options = { tag:["Tag",this.tag], } return options; } FROM.prototype.set = function FROM() { this.tag = arguments[0]["tag"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,exprs] = scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); if (!ok) { break; } if (ok) { if (this.model.opar!=list(this.tag)) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.x.model = this.model; this.x.graphics = graphics; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/FROMMO.sci" */ function FROMMO() { FROMMO.prototype.define = function FROMMO() { this.model = scicos_model(); this.model.sim = new ScilabString(["frommo"]); this.model.in1 = []; this.model.in2 = []; this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([-1]); this.model.ipar = []; this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; mo = modelica(); mo.model = "frommo"; mo.outputs = "n"; exprs = ["A"]; gr_i = []; this.x = standard_define([2,1],this.model,exprs,gr_i); this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } FROMMO.prototype.details = function FROMMO() { return this.x; } FROMMO.prototype.get = function FROMMO() { var options = { tag:["Tag",this.tag], } return options; } FROMMO.prototype.set = function FROMMO() { this.tag = arguments[0]["tag"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,exprs] = scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); if (!ok) { break; } if (ok) { if (this.model.opar!=list(this.tag)) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.x.model = this.model; this.x.graphics = graphics; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/GOTO.sci" */ function GOTO() { GOTO.prototype.define = function GOTO() { this.model = scicos_model(); this.model.sim = new ScilabString(["goto"]); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([-1]); this.model.out = []; this.model.out2 = []; this.model.outtyp = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([int(1)]); this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = [["A"],[sci2exp(1)]]; gr_i = []; this.x = standard_define([2,1],this.model,exprs,gr_i); this.x.graphics.id = "Goto"; return new BasicBlock(this.x); } GOTO.prototype.details = function GOTO() { return this.x; } GOTO.prototype.get = function GOTO() { var options = { tag:["Tag",this.tag], tagvis:["Tag Visibility(1=Local 2=scoped 3= global)",this.tagvis], } return options; } GOTO.prototype.set = function GOTO() { this.tag = arguments[0]["tag"] this.tagvis = parseFloat(arguments[0]["tagvis"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,this.tagvis,exprs] = scicos_getvalue("Set parameters",["Tag","Tag Visibility(1=Local 2=scoped 3= global)"],list("str",-1,"vec",1),exprs); if (!ok) { break; } this.tagvis = int(this.tagvis); if (((this.tagvis<1)||(this.tagvis>3))) { message("Tag Visibility must be between 1 and 3"); ok = false; } if (ok) { if (((this.model.ipar!=this.tagvis)||(this.model.opar!=list(this.tag)))) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.model.ipar = new ScilabDouble([this.tagvis]); this.x.model = this.model; this.x.graphics = graphics; arg1 = this.x; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/GOTOMO.sci" */ function GOTOMO() { GOTOMO.prototype.define = function GOTOMO() { this.model = scicos_model(); this.model.sim = new ScilabString(["gotomo"]); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = []; this.model.out = []; this.model.out2 = []; this.model.outtyp = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([int(1)]); this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; mo = modelica(); mo.model = "gotomo"; mo.inputs = "p"; exprs = [["A"],[sci2exp(1)]]; gr_i = []; this.x = standard_define([2,1],this.model,exprs,gr_i); this.x.graphics.in_implicit = ["I"]; return new BasicBlock(this.x); } GOTOMO.prototype.details = function GOTOMO() { return this.x; } GOTOMO.prototype.get = function GOTOMO() { var options = { tag:["Tag",this.tag], tagvis:["Tag Visibility(1=Local 2=scoped 3= global)",this.tagvis], } return options; } GOTOMO.prototype.set = function GOTOMO() { this.tag = arguments[0]["tag"] this.tagvis = parseFloat(arguments[0]["tagvis"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,this.tagvis,exprs] = scicos_getvalue("Set parameters",["Tag","Tag Visibility(1=Local 2=scoped 3= global)"],list("str",-1,"vec",1),exprs); if (!ok) { break; } this.tagvis = int(this.tagvis); if (((this.tagvis<1)||(this.tagvis>3))) { message("Tag Visibility must be between 1 and 3"); ok = false; } if (ok) { if (((this.model.ipar!=this.tagvis)||(this.model.opar!=list(this.tag)))) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.model.ipar = new ScilabDouble([this.tagvis]); this.x.model = this.model; this.x.graphics = graphics; arg1 = this.x; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/GotoTagVisibility.sci" */ function GotoTagVisibility() { GotoTagVisibility.prototype.define = function GotoTagVisibility() { this.model = scicos_model(); this.model.sim = new ScilabString(["gototagvisibility"]); this.model.in1 = []; this.model.in2 = []; this.model.out = []; this.model.out2 = []; this.model.evtin = []; this.model.intyp = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [false,false]; exprs = "A"; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GotoTagVisibility.prototype.details = function GotoTagVisibility() { return this.x; } GotoTagVisibility.prototype.get = function GotoTagVisibility() { var options = { tag:["GotoTag",this.tag], } return options; } GotoTagVisibility.prototype.set = function GotoTagVisibility() { this.tag = arguments[0]["tag"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,exprs] = scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break; } if (ok) { if (this.model.opar!=list(this.tag)) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.x.graphics = graphics; this.x.model = this.model; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/GotoTagVisibilityMO.sci" */ function GotoTagVisibilityMO() { GotoTagVisibilityMO.prototype.define = function GotoTagVisibilityMO() { this.model = scicos_model(); this.model.sim = new ScilabString(["gototagvisibilitymo"]); this.model.in1 = []; this.model.in2 = []; this.model.out = []; this.model.out2 = []; this.model.evtin = []; this.model.intyp = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.opar = list(new ScilabString(["A"])); this.model.blocktype = new ScilabString(["c"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [false,false]; exprs = "A"; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GotoTagVisibilityMO.prototype.details = function GotoTagVisibilityMO() { return this.x; } GotoTagVisibilityMO.prototype.get = function GotoTagVisibilityMO() { var options = { tag:["GotoTag",this.tag], } return options; } GotoTagVisibilityMO.prototype.set = function GotoTagVisibilityMO() { this.tag = arguments[0]["tag"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tag,exprs] = scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break; } if (ok) { if (this.model.opar!=list(this.tag)) { needcompile = 4; y = needcompile; } graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([this.tag])); this.x.graphics = graphics; this.x.model = this.model; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/ISELECT_f.sci" */ function ISELECT_f() { ISELECT_f.prototype.define = function ISELECT_f() { this.z0 = 0; out = [[-1],[-1]]; this.nout = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["selector"]), new ScilabDouble([2])); this.model.in1 = new ScilabDouble([-1]); this.model.out = out; this.model.evtin = new ScilabDouble([ones(out)]); this.model.dstate = new ScilabDouble([this.z0]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.nout)],[string(this.z0+1)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } ISELECT_f.prototype.details = function ISELECT_f() { return this.x; } ISELECT_f.prototype.get = function ISELECT_f() { var options = { nout:["number of outputs",this.nout], z0:["initial connected output",this.z0], } return options; } ISELECT_f.prototype.set = function ISELECT_f() { this.nout = parseFloat(arguments[0]["nout"]) this.z0 = parseFloat(arguments[0]["z0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nout,this.z0,exprs] = scicos_getvalue("Set parameters",["number of outputs","initial connected output"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.z0>this.nout||this.z0<=0) { message("initial connected input is not a valid input port number"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,-1,-ones(this.nout,1),ones(this.nout,1),[]); if (ok) { graphics.exprs = exprs; this.model.dstate = new ScilabDouble([this.z0-1]); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/ISELECT_m.sci" */ function ISELECT_m() { ISELECT_m.prototype.define = function ISELECT_m() { this.z0 = 1; this.nout = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["selector_m"]), new ScilabDouble([4])); this.model.out = [[-1],[-1]]; this.model.out2 = [[-2],[-2]]; this.model.outtyp = new ScilabDouble([1]); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.evtout = []; this.model.state = []; this.model.rpar = []; this.model.ipar = []; this.model.firing = []; this.model.evtin = new ScilabDouble([ones(this.nout,1)]); this.model.dstate = new ScilabDouble([this.z0]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(1)],[sci2exp(this.nout)],[sci2exp(this.z0)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } ISELECT_m.prototype.details = function ISELECT_m() { return this.x; } ISELECT_m.prototype.get = function ISELECT_m() { var options = { typ:["Datatype(1= real double 2=Complex 3=int32 ...)",this.typ], nout:["number of outputs",this.nout], z0:["initial connected output",this.z0], } return options; } ISELECT_m.prototype.set = function ISELECT_m() { this.typ = inverse(arguments[0]["typ"]) this.nout = parseFloat(arguments[0]["nout"]) this.z0 = parseFloat(arguments[0]["z0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.typ,this.nout,this.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 (this.z0>this.nout||this.z0<=0) { message("initial connected input is not a valid input port number"); } else if (((this.typ<1)||(this.typ>8))) { message("Datatype is not supported"); ok = false; } else { it = this.typ; ot = this.typ*ones(1,this.nout); if (ok) { out = [-ones(this.nout,1),-2*ones(this.nout,1)]; in1 = [-1,-2]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),ones(this.nout,1),[]); if (ok) { graphics.exprs = exprs; this.model.dstate = new ScilabDouble([this.z0]); this.x.graphics = graphics; this.x.model = this.model; break; } } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/MUX.sci" */ function MUX() { MUX.prototype.define = function MUX() { this.in1 = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["multiplex"]), new ScilabDouble([4])); this.model.in1 = -transpose([1:this.in1]); this.model.out = new ScilabDouble([0]); this.model.ipar = new ScilabDouble([this.in1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = string(this.in1); gr_i = []; this.x = standard_define([.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } MUX.prototype.details = function MUX() { return this.x; } MUX.prototype.get = function MUX() { var options = { } return options; } MUX.prototype.set = function MUX() { this.in1 = parseFloat(arguments[0]["in1"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.in1,exprs] = scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("intvec",-1),exprs); if (!ok) { break; } if (size(this.in1,"*")==1) { if (this.in1<2||this.in1>31) { message("Block must have at least two input ports and at most 31"); ok = false; } else { [this.model,graphics,ok] = check_io(this.model,graphics,-transpose([1:this.in1]),0,[],[]); } } else { if (size(this.in1,"*")<2||or(this.in1==0)||size(this.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(this.in1)<0) { nout = 0; } else { nout = sum(this.in1); } [this.model,graphics,ok] = check_io(this.model,graphics,this.in1.slice(),nout,[],[]); if (ok) { this.in1 = size(this.in1,"*"); } } } if (ok) { graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.in1]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/MUX_f.sci" */ function MUX_f() { MUX_f.prototype.define = function MUX_f() { this.in1 = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["mux"]), new ScilabDouble([1])); this.model.in1 = -transpose([1:this.in1]); this.model.out = new ScilabDouble([0]); this.model.ipar = new ScilabDouble([this.in1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = string(this.in1); gr_i = []; this.x = standard_define([0.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } MUX_f.prototype.details = function MUX_f() { return this.x; } MUX_f.prototype.get = function MUX_f() { var options = { } return options; } MUX_f.prototype.set = function MUX_f() { this.in1 = parseFloat(arguments[0]["in1"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.in1,exprs] = scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("vec",-1),exprs); if (!ok) { break; } if (size(this.in1,"*")==1) { if (this.in1<2||this.in1>8) { message("Block must have at least two input ports and at most eight"); ok = false; } else { [this.model,graphics,ok] = check_io(this.model,graphics,-transpose([1:this.in1]),0,[],[]); } } else { if (size(this.in1,"*")<2||size(this.in1,"*")>8||or(this.in1==0)) { message([["Block must have at least two input ports"],["and at most eight, and size 0 is not allowed. "]]); ok = false; } else { if (min(this.in1)<0) { nout = 0; } else { nout = sum(this.in1); } [this.model,graphics,ok] = check_io(this.model,graphics,this.in1.slice(),nout,[],[]); if (ok) { this.in1 = size(this.in1,"*"); } } } if (ok) { graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.in1]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/M_SWITCH.sci" */ function M_SWITCH() { M_SWITCH.prototype.define = function M_SWITCH() { in1 = [[1],[-1],[-1]]; ipar = [[1],[3]]; this.nin = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["mswitch"]), new ScilabDouble([4])); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.ipar = ipar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.nin)],[string(ipar)]]; gr_i = []; this.x = standard_define([2.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } M_SWITCH.prototype.details = function M_SWITCH() { return this.x; } M_SWITCH.prototype.get = function M_SWITCH() { var options = { nin:["number of inputs",this.nin], base:["zero base indexing (0), otherwise 1",this.base], rule:["rounding rule: int (0), round (1), ceil (2), floor (3)",this.rule], } return options; } M_SWITCH.prototype.set = function M_SWITCH() { this.nin = parseFloat(arguments[0]["nin"]) this.base = parseFloat(arguments[0]["base"]) this.rule = arguments[0]["rule"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nin,this.base,this.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; } this.nin = int(this.nin); this.base = int(this.base); if (this.nin<1) { message("Number of inputs must be >=1 "); } else if (!((this.base==1)||(this.base==0))) { message("base indexing must be 1 or 0"); } else if (!((this.rule==1)||(this.rule==0)||(this.rule==2)||(this.rule==3))) { message("incorrect rounding rule"); } else { if (this.nin==1) { in1 = [[1,1],[-1,1]]; out = [1,1]; } else { in1 = [[1],[-ones(this.nin,1)]]; in2 = [[1],[-2*ones(this.nin,1)]]; in1 = [in1,in2]; out = [-1,-2]; } it = [[-1],[-2*ones(this.nin,1)]]; ot = -2; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { graphics.exprs = exprs; this.model.ipar = [[this.base],[this.rule]]; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/NRMSOM_f.sci" */ function NRMSOM_f() { NRMSOM_f.prototype.define = function NRMSOM_f() { in1 = [[-1],[-1]]; this.nin = 2; this.model = scicos_model(); this.model.sim = new ScilabString(["junk"]); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [string(this.nin)]; gr_i = []; this.x = standard_define([.2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } NRMSOM_f.prototype.details = function NRMSOM_f() { return this.x; } NRMSOM_f.prototype.get = function NRMSOM_f() { var options = { nin:["number of inputs",this.nin], } return options; } NRMSOM_f.prototype.set = function NRMSOM_f() { this.nin = parseFloat(arguments[0]["nin"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nin,exprs] = scicos_getvalue("Set parameters",["number of inputs"],list("vec",1),exprs); if (!ok) { break; } [this.model,graphics,ok] = check_io(this.model,graphics,-ones(this.nin,1),-1,[],[]); if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/RELAY_f.sci" */ function RELAY_f() { RELAY_f.prototype.define = function RELAY_f() { i0 = 0; in1 = [[-1],[-1]]; this.nin = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["relay"]), new ScilabDouble([2])); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.evtin = new ScilabDouble([ones(in1)]); this.model.dstate = new ScilabDouble([i0]); this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,true]; exprs = [[string(this.nin)],[string(i0+1)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } RELAY_f.prototype.details = function RELAY_f() { return this.x; } RELAY_f.prototype.get = function RELAY_f() { var options = { nin:["number of inputs",this.nin], z0:["initial connected input",this.z0], } return options; } RELAY_f.prototype.set = function RELAY_f() { this.nin = parseFloat(arguments[0]["nin"]) this.z0 = arguments[0]["z0"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; ipar = this.model.ipar; while (true) { [ok,this.nin,this.z0,exprs] = scicos_getvalue("Set parameters",["number of inputs","initial connected input"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.z0>this.nin||this.z0<=0) { message("initial connected input is not a valid input port number"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,-ones(this.nin,1),-1,ones(this.nin,1),[]); if (ok) { graphics.exprs = exprs; this.model.dstate = new ScilabString([this.z0-1]); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SCALAR2VECTOR.sci" */ function SCALAR2VECTOR() { SCALAR2VECTOR.prototype.define = function SCALAR2VECTOR() { this.nout = -1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["scalar2vector"]), new ScilabDouble([4])); this.model.out = new ScilabDouble([this.nout]); this.model.in1 = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [string([this.nout])]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SCALAR2VECTOR.prototype.details = function SCALAR2VECTOR() { return this.x; } SCALAR2VECTOR.prototype.get = function SCALAR2VECTOR() { var options = { nout:["size of output (-1: if don\'t know)",this.nout], } return options; } SCALAR2VECTOR.prototype.set = function SCALAR2VECTOR() { this.nout = parseFloat(arguments[0]["nout"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nout,exprs] = scicos_getvalue("Set block parameters",["size of output (-1: if don\'t know)"],list("vec",1),exprs); if (!ok) { break; } this.nout = int(this.nout); if ((this.nout!=-1&&(this.nout<=0))) { message("size of output must be -1 or >0"); ok = false; } if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,[1],this.nout,[],[]); } if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SELECT_f.sci" */ function SELECT_f() { SELECT_f.prototype.define = function SELECT_f() { this.z0 = 0; in1 = [[-1],[-1]]; this.nin = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["selector"]), new ScilabDouble([2])); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.evtin = new ScilabDouble([ones(in1)]); this.model.dstate = new ScilabDouble([this.z0]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.nin)],[string(this.z0+1)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SELECT_f.prototype.details = function SELECT_f() { return this.x; } SELECT_f.prototype.get = function SELECT_f() { var options = { nin:["number of inputs",this.nin], z0:["initial connected input",this.z0], } return options; } SELECT_f.prototype.set = function SELECT_f() { this.nin = parseFloat(arguments[0]["nin"]) this.z0 = parseFloat(arguments[0]["z0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nin,this.z0,exprs] = scicos_getvalue("Set parameters",["number of inputs","initial connected input"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.z0>this.nin||this.z0<=0) { message("initial connected input is not a valid input port number"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,-ones(this.nin,1),-1,ones(this.nin,1),[]); if (ok) { graphics.exprs = exprs; this.model.dstate = new ScilabDouble([this.z0-1]); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SELECT_m.sci" */ function SELECT_m() { SELECT_m.prototype.define = function SELECT_m() { this.z0 = 1; this.nin = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["selector_m"]), new ScilabDouble([4])); this.model.in1 = [[-1],[-1]]; this.model.in2 = [[-2],[-2]]; this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.evtout = []; this.model.state = []; this.model.rpar = []; this.model.ipar = []; this.model.firing = []; this.model.evtin = new ScilabDouble([ones(this.nin,1)]); this.model.dstate = new ScilabDouble([this.z0]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(1)],[sci2exp(this.nin)],[sci2exp(this.z0)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SELECT_m.prototype.details = function SELECT_m() { return this.x; } SELECT_m.prototype.get = function SELECT_m() { var options = { typ:["Datatype(1= real double 2=Complex 3=int32 ..)",this.typ], nin:["number of inputs",this.nin], z0:["initial connected input",this.z0], } return options; } SELECT_m.prototype.set = function SELECT_m() { this.typ = inverse(arguments[0]["typ"]) this.nin = parseFloat(arguments[0]["nin"]) this.z0 = parseFloat(arguments[0]["z0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.typ,this.nin,this.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 (this.z0>this.nin||this.z0<=0) { message("initial connected input is not a valid input port number"); } else if (((this.typ<1)||(this.typ>8))&&(this.typ!=-1)) { message("Datatype is not supported"); ok = false; } else { it = this.typ*ones(1,this.nin); ot = this.typ; if (ok) { in1 = [-ones(this.nin,1),-2*ones(this.nin,1)]; out = [-1,-2]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),ones(this.nin,1),[]); if (ok) { graphics.exprs = exprs; this.model.dstate = new ScilabDouble([this.z0]); this.x.graphics = graphics; this.x.model = this.model; break; } } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SELF_SWITCH.sci" */ function SELF_SWITCH() { SELF_SWITCH.prototype.define = function SELF_SWITCH() { this.stateOpen = true; this.x = scicos_block(); this.x.gui = "SELF_SWITCH"; this.x.graphics.sz = [2,2]; this.x.graphics.gr_i = []; this.x.graphics.pin = 0; this.x.graphics.pout = 0; this.x.model.sim = "csuper"; this.x.model.in1 = 1; this.x.model.out = 1; this.x.model.blocktype = "h"; this.x.model.dep_ut = [false,false]; this.x.model.rpar = this.genSwitchInnerDiagram[this.stateOpen-1]; this.x.model.opar = list(this.stateOpen); this.x.graphics.in_implicit = ["E"]; this.x.graphics.in_style = ""; this.x.graphics.out_implicit = ["E"]; this.x.graphics.out_style = ""; this.x.graphics.style = "SELF_SWITCH_OFF"; return new BasicBlock(this.x); } SELF_SWITCH.prototype.details = function SELF_SWITCH() { return this.x; } SELF_SWITCH.prototype.get = function SELF_SWITCH() { var options = { } return options; } SELF_SWITCH.prototype.set = function SELF_SWITCH() { this.x = arg1; this.stateOpen = this.x.model.opar[1-1]; this.x.model.rpar = this.genSwitchInnerDiagram[!this.stateOpen-1]; this.x.model.opar = list(!this.stateOpen); y = 0; typ = list(); if (this.stateOpen==false) { this.x.graphics.style = "SELF_SWITCH_OFF"; } else { this.x.graphics.style = "SELF_SWITCH_ON"; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SWITCH2.sci" */ function SWITCH2() { SWITCH2.prototype.define = function SWITCH2() { in1 = [[-1],[1],[-1]]; ipar = [0]; this.nzz = 1; rpar = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["switch2"]), new ScilabDouble([4])); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.ipar = ipar; this.model.rpar = new ScilabDouble([rpar]); this.model.nzcross = new ScilabDouble([this.nzz]); this.model.nmode = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(ipar)],[string(rpar)],[string(this.nzz)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SWITCH2.prototype.details = function SWITCH2() { return this.x; } SWITCH2.prototype.get = function SWITCH2() { var options = { rule:["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)",this.rule], thra:["threshold a",this.thra], nzz:["use zero crossing: yes (1), no (0)",this.nzz], } return options; } SWITCH2.prototype.set = function SWITCH2() { this.rule = parseFloat(arguments[0]["rule"]) this.thra = arguments[0]["thra"] this.nzz = parseFloat(arguments[0]["nzz"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.rule,this.thra,this.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; } this.rule = int(this.rule); if ((this.rule<0)) { this.rule = 0; } if ((this.rule>2)) { this.rule = 2; } graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.rule]); this.model.rpar = new ScilabDouble([this.thra]); if (this.nzz!=0) { this.model.nmode = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([1]); } else { this.model.nmode = new ScilabDouble([0]); this.model.nzcross = new ScilabDouble([0]); } this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SWITCH2_m.sci" */ function SWITCH2_m() { SWITCH2_m.prototype.define = function SWITCH2_m() { ipar = [0]; this.nzz = 1; rpar = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["switch2_m"]), new ScilabDouble([4])); this.model.in1 = [[-1],[1],[-1]]; this.model.in2 = [[-2],[1],[-2]]; this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.ipar = ipar; this.model.rpar = new ScilabDouble([rpar]); this.model.nzcross = new ScilabDouble([this.nzz]); this.model.nmode = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(1)],[string(ipar)],[string(rpar)],[string(this.nzz)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SWITCH2_m.prototype.details = function SWITCH2_m() { return this.x; } SWITCH2_m.prototype.get = function SWITCH2_m() { var options = { ot:["Datatype (1=real double 2=complex 3=int32 ...)",this.ot], rule:["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)",this.rule], thra:["threshold a",this.thra], nzz:["use zero crossing: yes (1), no (0)",this.nzz], } return options; } SWITCH2_m.prototype.set = function SWITCH2_m() { this.ot = arguments[0]["ot"] this.rule = parseFloat(arguments[0]["rule"]) this.thra = arguments[0]["thra"] this.nzz = parseFloat(arguments[0]["nzz"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.ot,this.rule,this.thra,this.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; } this.rule = int(this.rule); if ((this.rule<0)) { this.rule = 0; } if ((this.rule>2)) { this.rule = 2; } graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.rule]); this.model.rpar = new ScilabDouble([this.thra]); if (this.nzz!=0) { this.model.nmode = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([1]); } else { this.model.nmode = new ScilabDouble([0]); this.model.nzcross = new ScilabDouble([0]); } if (((this.ot<1)||(this.ot>8))&&(this.ot!=-1)) { message("Datatype is not supported"); ok = false; } if (ok) { it[1-1] = this.ot; it[2-1] = 1; it[3-1] = this.ot; in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,this.ot),[],[]); } if (ok) { this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Branching/SWITCH_f.sci" */ function SWITCH_f() { SWITCH_f.prototype.define = function SWITCH_f() { i0 = 0; in1 = [[-1],[-1]]; this.nin = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["switchn"]), new ScilabDouble([2])); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.ipar = new ScilabDouble([i0]); this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,true]; exprs = [[string(this.nin)],[string(i0+1)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SWITCH_f.prototype.details = function SWITCH_f() { return this.x; } SWITCH_f.prototype.get = function SWITCH_f() { var options = { nin:["number of inputs",this.nin], z0:["connected input",this.z0], } return options; } SWITCH_f.prototype.set = function SWITCH_f() { this.nin = parseFloat(arguments[0]["nin"]) this.z0 = arguments[0]["z0"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; ipar = this.model.ipar; while (true) { [ok,this.nin,this.z0,exprs] = scicos_getvalue("Set switch parameters",["number of inputs","connected input"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.z0>this.nin||this.z0<=0) { message("initial connected input is not a valid input port number"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,-ones(this.nin,1),-1,[],[]); if (ok) { graphics.exprs = exprs; this.model.ipar = new ScilabString([this.z0-1]); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/CCS.sci" */ function CCS() { CCS.prototype.define = function CCS() { ModelName = "CCS"; PrametersValue = []; ParametersName = []; this.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 (P[i-1][3-1]==-2) { Typeout = [[Typeout],["I"]]; MO = [[MO],[PortName[i-1]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.model.rpar = PrametersValue; mo.parameters = list(ParametersName,PrametersValue,zeros(ParametersName)); exprs = []; gr_i = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2.1,3],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } CCS.prototype.details = function CCS() { return this.x; } CCS.prototype.get = function CCS() { var options = { } return options; } CCS.prototype.set = function CCS() { this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/CVS.sci" */ function CVS() { CVS.prototype.define = function CVS() { ModelName = "CVS"; PrametersValue = []; ParametersName = []; this.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]]]; } 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]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.model.rpar = PrametersValue; mo.parameters = list(ParametersName,PrametersValue,zeros(ParametersName)); exprs = []; gr_i = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2.1,3],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } CVS.prototype.details = function CVS() { return this.x; } CVS.prototype.get = function CVS() { var options = { } return options; } CVS.prototype.set = function CVS() { this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/Capacitor.sci" */ function Capacitor() { Capacitor.prototype.define = function Capacitor() { this.model = scicos_model(); this.C = 0.01; this.v = 0; this.model.rpar = [[this.C],[this.v]]; this.model.sim = new ScilabString(["Capacitor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Capacitor"; mo.inputs = "p"; mo.outputs = "n"; mo.parameters = list(["C","v"],list(this.C,this.v),[0,1]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = string([[this.C],[this.v]]); gr_i = []; this.x = standard_define([2,1.1],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } Capacitor.prototype.details = function Capacitor() { return this.x; } Capacitor.prototype.get = function Capacitor() { var options = { C:["C (F)",this.C], v:["Initial Voltage",this.v], } return options; } Capacitor.prototype.set = function Capacitor() { this.C = parseFloat(arguments[0]["C"]) this.v = parseFloat(arguments[0]["v"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.C,this.v,exprs] = scicos_getvalue("Set Capacitor block parameter",["C (F)","Initial Voltage"],list("vec",1,"vec",1),exprs); if (!ok) { break; } this.model.rpar = new ScilabDouble([this.C]); this.model.equations.parameters[2] = list(new ScilabDouble([this.C]), new ScilabDouble([this.v])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/ConstantVoltage.sci" */ function ConstantVoltage() { ConstantVoltage.prototype.define = function ConstantVoltage() { this.V = 0.01; this.model = scicos_model(); this.model.rpar = new ScilabDouble([this.V]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.sim = new ScilabString(["ConstantVoltage"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; mo = modelica(); mo.model = "ConstantVoltage"; mo.inputs = "p"; mo.outputs = "n"; mo.parameters = list("V",list(this.V)); this.model.equations = new ScilabDouble([mo]); exprs = string(this.V); gr_i = []; this.x = standard_define([1.5,1.1],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } ConstantVoltage.prototype.details = function ConstantVoltage() { return this.x; } ConstantVoltage.prototype.get = function ConstantVoltage() { var options = { } return options; } ConstantVoltage.prototype.set = function ConstantVoltage() { this.V = parseFloat(arguments[0]["V"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.V,exprs] = scicos_getvalue("Set ConstantVoltage block parameter","V (volt)",list("vec",1),exprs); if (!ok) { break; } this.model.rpar = new ScilabDouble([this.V]); this.model.equations.parameters[2] = list(new ScilabDouble([this.V])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/CurrentSensor.sci" */ function CurrentSensor() { CurrentSensor.prototype.define = function CurrentSensor() { this.model = scicos_model(); this.model.in1 = new ScilabDouble([1]); this.model.out = [[1],[1]]; this.model.sim = new ScilabString(["CurrentSensor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "CurrentSensor"; mo.inputs = "p"; mo.outputs = [["n"],["i"]]; this.model.equations = new ScilabDouble([mo]); exprs = []; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = [["I"],["E"]]; return new BasicBlock(this.x); } CurrentSensor.prototype.details = function CurrentSensor() { return this.x; } CurrentSensor.prototype.get = function CurrentSensor() { var options = { } return options; } CurrentSensor.prototype.set = function CurrentSensor() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/Diode.sci" */ function Diode() { Diode.prototype.define = function Diode() { this.Ids = 1.e-6; this.Vt = 0.04; this.Maxexp = 15; this.R = 1.e8; this.model = scicos_model(); this.model.rpar = [[this.Ids],[this.Vt],[this.Maxexp],[this.R]]; this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.sim = new ScilabString(["Diode"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Diode"; mo.inputs = "p"; mo.outputs = "n"; mo.parameters = list(["Ids","Vt","Maxexp","R"],list(this.Ids,this.Vt,this.Maxexp,this.R)); this.model.equations = new ScilabDouble([mo]); exprs = string([[this.Ids],[this.Vt],[this.Maxexp],[this.R]]); gr_i = []; this.x = standard_define([2,1],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } Diode.prototype.details = function Diode() { return this.x; } Diode.prototype.get = function Diode() { var options = { Ids:["Saturation cuurent (A)",this.Ids], Vt:["Voltage equivalent to temperature (Volt)",this.Vt], Maxexp:["Max exponent for linear continuation",this.Maxexp], R:["R (ohm)",this.R], } return options; } Diode.prototype.set = function Diode() { this.Ids = parseFloat(arguments[0]["Ids"]) this.Vt = parseFloat(arguments[0]["Vt"]) this.Maxexp = parseFloat(arguments[0]["Maxexp"]) this.R = parseFloat(arguments[0]["R"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Ids,this.Vt,this.Maxexp,this.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; } this.model.rpar = [[this.Ids],[this.Vt],[this.Maxexp],[this.R]]; this.model.equations.parameters = list(["Ids","Vt","Maxexp","R"],list(this.Ids,this.Vt,this.Maxexp,this.R)); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/Ground.sci" */ function Ground() { Ground.prototype.define = function Ground() { this.model = scicos_model(); this.model.in1 = [1]; this.model.out = []; this.model.sim = new ScilabString(["Ground"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Ground"; mo.inputs = "p"; this.model.equations = new ScilabDouble([mo]); exprs = ""; gr_i = []; this.x = standard_define([1,1],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new GroundBlock(this.x); } Ground.prototype.details = function Ground() { return this.x; } Ground.prototype.get = function Ground() { var options = { } return options; } Ground.prototype.set = function Ground() { this.x = arg1; return new GroundBlock(this.x); } } /* autogenerated from "macros/Electrical/Gyrator.sci" */ function Gyrator() { Gyrator.prototype.define = function Gyrator() { ModelName = "Gyrator"; PrametersValue = [[1],[1]]; ParametersName = [["G1"],["G2"]]; this.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]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.model.rpar = PrametersValue; mo.parameters = list(ParametersName,PrametersValue,zeros(ParametersName)); exprs = [["1"],["1"]]; gr_i = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } Gyrator.prototype.details = function Gyrator() { return this.x; } Gyrator.prototype.get = function Gyrator() { var options = { G1:["G1",this.G1], G2:["G2",this.G2], } return options; } Gyrator.prototype.set = function Gyrator() { this.G1 = arguments[0]["G1"] this.G2 = arguments[0]["G2"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; exprs = this.x.graphics.exprs; while (true) { [ok,this.G1,this.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; } this.x.model.equations.parameters[2-1] = list(this.G1,this.G2); this.x.graphics.exprs = exprs; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/IdealTransformer.sci" */ function IdealTransformer() { IdealTransformer.prototype.define = function IdealTransformer() { ModelName = "IdealTransformer"; PrametersValue = [1]; ParametersName = ["N"]; this.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]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.model.rpar = PrametersValue; mo.parameters = list(ParametersName,PrametersValue,zeros(ParametersName)); exprs = ["1"]; gr_i = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } IdealTransformer.prototype.details = function IdealTransformer() { return this.x; } IdealTransformer.prototype.get = function IdealTransformer() { var options = { N:["N",this.N], } return options; } IdealTransformer.prototype.set = function IdealTransformer() { this.N = arguments[0]["N"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; exprs = this.x.graphics.exprs; while (true) { [ok,this.N,exprs] = scicos_getvalue([["Set Transformer block parameters:"],[""],["N:"+" Turn ratio (N1/N2)"]],["N"],list("vec",1),exprs); if (!ok) { break; } this.x.model.equations.parameters[2-1] = list(this.N); this.x.graphics.exprs = exprs; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/Inductor.sci" */ function Inductor() { Inductor.prototype.define = function Inductor() { this.model = scicos_model(); this.model.in1 = [1]; this.model.out = [1]; this.L = 1.e-5; this.model.rpar = new ScilabDouble([this.L]); this.model.sim = new ScilabString(["Inductor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Inductor"; mo.inputs = "p"; mo.outputs = "n"; mo.parameters = list("L",list(this.L)); this.model.equations = new ScilabDouble([mo]); exprs = string(this.L); gr_i = []; this.x = standard_define([2,0.9],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } Inductor.prototype.details = function Inductor() { return this.x; } Inductor.prototype.get = function Inductor() { var options = { } return options; } Inductor.prototype.set = function Inductor() { this.L = parseFloat(arguments[0]["L"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.L,exprs] = scicos_getvalue("Set Inductor block parameter","L (H)",list("vec",1),exprs); if (!ok) { break; } this.model.rpar = new ScilabDouble([this.L]); this.model.equations.parameters[2] = list(new ScilabDouble([this.L])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/MOTOR.sci" */ function MOTOR() { MOTOR.prototype.define = function MOTOR() { this.model = scicos_model(); this.model.out = [[1],[1]]; this.model.in1 = [1]; this.model.sim = new ScilabString(["motor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; gr_i = []; exprs = ""; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.out_implicit = [["I"],["I"]]; this.x.graphics.in_implicit = ["I"]; return new BasicBlock(this.x); } MOTOR.prototype.details = function MOTOR() { return this.x; } MOTOR.prototype.get = function MOTOR() { var options = { } return options; } MOTOR.prototype.set = function MOTOR() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/NMOS.sci" */ function NMOS() { NMOS.prototype.define = function NMOS() { this.model = scicos_model(); this.W = 20.e-6; this.L = 6.e-6; this.Beta = 0.041e-3; this.Vt = 0.8; this.K2 = 1.144; this.K5 = 0.7311; this.dW = -2.5e-6; this.dL = -1.5e-6; this.RDS = 1.e+7; this.model.sim = new ScilabString(["NMOS"]); this.model.blocktype = new ScilabString(["c"]); this.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"]],[[this.W],[this.L],[this.Beta],[this.Vt],[this.K2],[this.K5],[this.dW],[this.dL],[this.RDS]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = [[string(this.W)],[string(this.L)],[string(this.Beta)],[string(this.Vt)],[string(this.K2)],[string(this.K5)],[string(this.dW)],[string(this.dL)],[string(this.RDS)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = [["I"],["I"],["I"]]; return new BasicBlock(this.x); } NMOS.prototype.details = function NMOS() { return this.x; } NMOS.prototype.get = function NMOS() { var options = { W:["Width [m]",this.W], L:["Length [m]",this.L], Beta:["Transconductance parameter [A/(V*V)]",this.Beta], Vt:["Zero bias threshold voltage [V]",this.Vt], K2:["Bulk threshold parameter",this.K2], K5:["Reduction of pinch-off region",this.K5], dW:["Narrowing of channel [m]",this.dW], dL:["Shortening of channel [m]",this.dL], RDS:["Drain-Source-Resistance [Ohm]",this.RDS], } return options; } NMOS.prototype.set = function NMOS() { this.W = parseFloat(arguments[0]["W"]) this.L = parseFloat(arguments[0]["L"]) this.Beta = parseFloat(arguments[0]["Beta"]) this.Vt = parseFloat(arguments[0]["Vt"]) this.K2 = parseFloat(arguments[0]["K2"]) this.K5 = parseFloat(arguments[0]["K5"]) this.dW = parseFloat(arguments[0]["dW"]) this.dL = parseFloat(arguments[0]["dL"]) this.RDS = parseFloat(arguments[0]["RDS"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.W,this.L,this.Beta,this.Vt,this.K2,this.K5,this.dW,this.dL,this.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; } this.model.equations.parameters[2] = list(new ScilabDouble([this.W]), new ScilabDouble([this.L]), new ScilabDouble([this.Beta]), new ScilabDouble([this.Vt]), new ScilabDouble([this.K2]), new ScilabDouble([this.K5]), new ScilabDouble([this.dW]), new ScilabDouble([this.dL]), new ScilabDouble([this.RDS])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* 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"]]; this.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]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.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 = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } NPN.prototype.details = function NPN() { return this.x; } NPN.prototype.get = function NPN() { var options = { Bf:["Bf : Forward beta",this.Bf], Br:["Br : Reverse beta",this.Br], Is:["Is : Transport saturation current",this.Is], Vak:["Vak : Early voltage (inverse), 1/Volt",this.Vak], Tauf:["Tauf: Ideal forward transit time",this.Tauf], Taur:["Taur: Ideal reverse transit time",this.Taur], Ccs:["Ccs : Collector-substrat(ground) cap.",this.Ccs], Cje:["Cje : Base-emitter zero bias depletion cap.",this.Cje], Cjc:["Cjc : Base-coll. zero bias depletion cap.",this.Cjc], Phie:["Phie: Base-emitter diffusion voltage",this.Phie], Me:["Me : Base-emitter gradation exponent",this.Me], Phic:["Phic: Base-collector diffusion voltage",this.Phic], Mc:["Mc : Base-collector gradation exponent",this.Mc], Gbc:["Gbc : Base-collector conductance",this.Gbc], Gbe:["Gbe : Base-emitter conductance",this.Gbe], Vt:["Vt : Voltage equivalent of temperature",this.Vt], EMinMax:["EMinmax: if x > EMinMax, the exp(x) is linearized",this.EMinMax], } return options; } NPN.prototype.set = function NPN() { this.Bf = arguments[0]["Bf"] this.Br = arguments[0]["Br"] this.Is = arguments[0]["Is"] this.Vak = arguments[0]["Vak"] this.Tauf = arguments[0]["Tauf"] this.Taur = arguments[0]["Taur"] this.Ccs = arguments[0]["Ccs"] this.Cje = arguments[0]["Cje"] this.Cjc = arguments[0]["Cjc"] this.Phie = arguments[0]["Phie"] this.Me = arguments[0]["Me"] this.Phic = arguments[0]["Phic"] this.Mc = arguments[0]["Mc"] this.Gbc = arguments[0]["Gbc"] this.Gbe = arguments[0]["Gbe"] this.Vt = arguments[0]["Vt"] this.EMinMax = arguments[0]["EMinMax"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; exprs = this.x.graphics.exprs; while (true) { [ok,this.Bf,this.Br,this.Is,this.Vak,this.Tauf,this.Taur,this.Ccs,this.Cje,this.Cjc,this.Phie,this.Me,this.Phic,this.Mc,this.Gbc,this.Gbe,this.Vt,this.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; } this.x.model.equations.parameters[2-1] = list(this.Bf,this.Br,this.Is,this.Vak,this.Tauf,this.Taur,this.Ccs,this.Cje,this.Cjc,this.Phie,this.Me,this.Phic,this.Mc,this.Gbc,this.Gbe,this.Vt,this.EMinMax); this.x.graphics.exprs = exprs; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/OpAmp.sci" */ function OpAmp() { OpAmp.prototype.define = function OpAmp() { S = []; Z = []; this.model = scicos_model(); this.model.sim = new ScilabString(["OpAmp"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = this.model.sim; mo.inputs = [["in_p"],["in_n"]]; mo.outputs = ["out"]; mo.parameters = list(S,Z); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); this.model.rpar = Z; exprs = string(Z); gr_i = []; this.x = standard_define([3,5],this.model,exprs,gr_i); this.x.graphics.in_implicit = [["I"],["I"]]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } OpAmp.prototype.details = function OpAmp() { return this.x; } OpAmp.prototype.get = function OpAmp() { var options = { OLGain:["Open Loop Gain",this.OLGain], SatH:["Positive saturation voltage",this.SatH], SatL:["Negative saturation voltage",this.SatL], } return options; } OpAmp.prototype.set = function OpAmp() { this.OLGain = arguments[0]["OLGain"] this.SatH = arguments[0]["SatH"] this.SatL = arguments[0]["SatL"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (false) { [ok,this.OLGain,this.SatH,this.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; } this.model.equations.parameters[2] = list(new ScilabDouble([this.OLGain]), new ScilabDouble([this.SatH]), new ScilabDouble([this.SatL])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/PMOS.sci" */ function PMOS() { PMOS.prototype.define = function PMOS() { this.model = scicos_model(); this.W = 50.0e-6; this.L = 6.0e-6; this.Beta = 0.0105e-3; this.Vt = -1; this.K2 = 0.41; this.K5 = 0.839; this.dW = -2.5e-6; this.dL = -2.1e-6; this.RDS = 1.e+7; this.model.sim = new ScilabString(["PMOS"]); this.model.blocktype = new ScilabString(["c"]); this.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"]],[[this.W],[this.L],[this.Beta],[this.Vt],[this.K2],[this.K5],[this.dW],[this.dL],[this.RDS]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = [[string(this.W)],[string(this.L)],[string(this.Beta)],[string(this.Vt)],[string(this.K2)],[string(this.K5)],[string(this.dW)],[string(this.dL)],[string(this.RDS)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = [["I"],["I"],["I"]]; return new BasicBlock(this.x); } PMOS.prototype.details = function PMOS() { return this.x; } PMOS.prototype.get = function PMOS() { var options = { W:["Width [m]",this.W], L:["Length [m]",this.L], Beta:["Transconductance parameter [A/(V*V)]",this.Beta], Vt:["Zero bias threshold voltage [V]",this.Vt], K2:["Bulk threshold parameter",this.K2], K5:["Reduction of pinch-off region",this.K5], dW:["Narrowing of channel [m]",this.dW], dL:["Shortening of channel [m]",this.dL], RDS:["Drain-Source-Resistance [Ohm]",this.RDS], } return options; } PMOS.prototype.set = function PMOS() { this.W = parseFloat(arguments[0]["W"]) this.L = parseFloat(arguments[0]["L"]) this.Beta = parseFloat(arguments[0]["Beta"]) this.Vt = parseFloat(arguments[0]["Vt"]) this.K2 = parseFloat(arguments[0]["K2"]) this.K5 = parseFloat(arguments[0]["K5"]) this.dW = parseFloat(arguments[0]["dW"]) this.dL = parseFloat(arguments[0]["dL"]) this.RDS = parseFloat(arguments[0]["RDS"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.W,this.L,this.Beta,this.Vt,this.K2,this.K5,this.dW,this.dL,this.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; } this.model.equations.parameters[2] = list(new ScilabDouble([this.W]), new ScilabDouble([this.L]), new ScilabDouble([this.Beta]), new ScilabDouble([this.Vt]), new ScilabDouble([this.K2]), new ScilabDouble([this.K5]), new ScilabDouble([this.dW]), new ScilabDouble([this.dL]), new ScilabDouble([this.RDS])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* 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"]]; this.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]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.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 = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } PNP.prototype.details = function PNP() { return this.x; } PNP.prototype.get = function PNP() { var options = { Bf:["Bf : Forward beta",this.Bf], Br:["Br : Reverse beta",this.Br], Is:["Is : Transport saturation current",this.Is], Vak:["Vak : Early voltage (inverse), 1/Volt",this.Vak], Tauf:["Tauf: Ideal forward transit time",this.Tauf], Taur:["Taur: Ideal reverse transit time",this.Taur], Ccs:["Ccs : Collector-substrat(ground) cap.",this.Ccs], Cje:["Cje : Base-emitter zero bias depletion cap.",this.Cje], Cjc:["Cjc : Base-coll. zero bias depletion cap.",this.Cjc], Phie:["Phie: Base-emitter diffusion voltage",this.Phie], Me:["Me : Base-emitter gradation exponent",this.Me], Phic:["Phic: Base-collector diffusion voltage",this.Phic], Mc:["Mc : Base-collector gradation exponent",this.Mc], Gbc:["Gbc : Base-collector conductance",this.Gbc], Gbe:["Gbe : Base-emitter conductance",this.Gbe], Vt:["Vt : Voltage equivalent of temperature",this.Vt], EMinMax:["EMinMax: if x > EMinMax, the exp(x) function is linearized",this.EMinMax], } return options; } PNP.prototype.set = function PNP() { this.Bf = arguments[0]["Bf"] this.Br = arguments[0]["Br"] this.Is = arguments[0]["Is"] this.Vak = arguments[0]["Vak"] this.Tauf = arguments[0]["Tauf"] this.Taur = arguments[0]["Taur"] this.Ccs = arguments[0]["Ccs"] this.Cje = arguments[0]["Cje"] this.Cjc = arguments[0]["Cjc"] this.Phie = arguments[0]["Phie"] this.Me = arguments[0]["Me"] this.Phic = arguments[0]["Phic"] this.Mc = arguments[0]["Mc"] this.Gbc = arguments[0]["Gbc"] this.Gbe = arguments[0]["Gbe"] this.Vt = arguments[0]["Vt"] this.EMinMax = arguments[0]["EMinMax"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; exprs = this.x.graphics.exprs; while (true) { [ok,this.Bf,this.Br,this.Is,this.Vak,this.Tauf,this.Taur,this.Ccs,this.Cje,this.Cjc,this.Phie,this.Me,this.Phic,this.Mc,this.Gbc,this.Gbe,this.Vt,this.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; } this.x.model.equations.parameters[2-1] = list(this.Bf,this.Br,this.Is,this.Vak,this.Tauf,this.Taur,this.Ccs,this.Cje,this.Cjc,this.Phie,this.Me,this.Phic,this.Mc,this.Gbc,this.Gbe,this.Vt,this.EMinMax); this.x.graphics.exprs = exprs; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/PotentialSensor.sci" */ function PotentialSensor() { PotentialSensor.prototype.define = function PotentialSensor() { this.model = scicos_model(); this.model.in1 = [1]; this.model.out = [1]; this.model.rpar = []; this.model.sim = new ScilabString(["PotentialSensor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "PotentialSensor"; mo.inputs = "p"; mo.outputs = ["v"]; this.model.equations = new ScilabDouble([mo]); gr_i = []; this.x = standard_define([2,2],this.model,"",list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["E"]; return new BasicBlock(this.x); } PotentialSensor.prototype.details = function PotentialSensor() { return this.x; } PotentialSensor.prototype.get = function PotentialSensor() { var options = { } return options; } PotentialSensor.prototype.set = function PotentialSensor() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/Resistor.sci" */ function Resistor() { Resistor.prototype.define = function Resistor() { this.model = scicos_model(); this.R = 0.01; this.model.rpar = new ScilabDouble([this.R]); this.model.sim = new ScilabString(["resistor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Resistor"; mo.inputs = "p"; mo.outputs = "n"; mo.parameters = list("R",list(this.R)); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = string(this.R); gr_i = []; this.x = standard_define([2,1],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } Resistor.prototype.details = function Resistor() { return this.x; } Resistor.prototype.get = function Resistor() { var options = { } return options; } Resistor.prototype.set = function Resistor() { this.R = parseFloat(arguments[0]["R"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.R,exprs] = scicos_getvalue("Set Resistor block parameter","R (ohm)",list("vec",1),exprs); if (!ok) { break; } this.model.rpar = new ScilabDouble([this.R]); this.model.equations.parameters[2] = list(new ScilabDouble([this.R])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/SineVoltage.sci" */ function SineVoltage() { SineVoltage.prototype.define = function SineVoltage() { this.model = scicos_model(); this.model.in1 = [1]; this.model.out = [1]; this.V = 1; this.ph = 0; this.frq = 1; this.offset = 0; this.start = 0; this.model.rpar = [[this.V],[this.ph],[this.frq],[this.offset],[this.start]]; this.model.sim = new ScilabString(["SineVoltage"]); this.model.blocktype = new ScilabString(["c"]); this.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(this.V,this.ph,this.frq,this.offset,this.start)); this.model.equations = new ScilabDouble([mo]); exprs = [[string(this.V)],[string(this.ph)],[string(this.frq)],[string(this.offset)],[string(this.start)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } SineVoltage.prototype.details = function SineVoltage() { return this.x; } SineVoltage.prototype.get = function SineVoltage() { var options = { V:["Amplitude (Volt)",this.V], ph:["phase (rad)",this.ph], frq:["Frequency (Hz)",this.frq], offset:["Voltageoffset (V)",this.offset], start:["Timeoffset (s)",this.start], } return options; } SineVoltage.prototype.set = function SineVoltage() { this.V = parseFloat(arguments[0]["V"]) this.ph = parseFloat(arguments[0]["ph"]) this.frq = parseFloat(arguments[0]["frq"]) this.offset = parseFloat(arguments[0]["offset"]) this.start = parseFloat(arguments[0]["start"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.V,this.ph,this.frq,this.offset,this.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; } this.model.rpar = [[this.V],[this.ph],[this.frq],[this.offset],[this.start]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.V]), new ScilabDouble([this.ph]), new ScilabDouble([this.frq]), new ScilabDouble([this.offset]), new ScilabDouble([this.start])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/Switch.sci" */ function Switch() { Switch.prototype.define = function Switch() { this.model = scicos_model(); this.Ron = 0.01; this.Roff = 1e5; S = [["Ron"],["Roff"]]; Z = eval(S); this.model.sim = new ScilabString(["Switch"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = this.model.sim; mo.inputs = [["p"],["inp"]]; mo.outputs = "n"; mo.parameters = list(S,Z); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); this.model.rpar = new ScilabDouble([Z]); exprs = string(Z); gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = [["I"],["E"]]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } Switch.prototype.details = function Switch() { return this.x; } Switch.prototype.get = function Switch() { var options = { Ron:["Resistance in On state (Ohm)",this.Ron], Roff:["Resistance in Off state (Ohm)",this.Roff], } return options; } Switch.prototype.set = function Switch() { this.Ron = parseFloat(arguments[0]["Ron"]) this.Roff = parseFloat(arguments[0]["Roff"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Ron,this.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; } this.model.equations.parameters[2] = list(new ScilabDouble([this.Ron]), new ScilabDouble([this.Roff])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/VVsourceAC.sci" */ function VVsourceAC() { VVsourceAC.prototype.define = function VVsourceAC() { this.model = scicos_model(); this.model.in1 = [[1],[1]]; this.model.out = [1]; VA = 220; this.FR = 50; this.model.rpar = [this.FR]; this.model.sim = new ScilabString(["VVsourceAC"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "VVsourceAC"; mo.inputs = ["p","VA"]; mo.outputs = "n"; mo.parameters = list(["f"],list(this.FR)); this.model.equations = new ScilabDouble([mo]); exprs = [string(this.FR)]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I","E"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } VVsourceAC.prototype.details = function VVsourceAC() { return this.x; } VVsourceAC.prototype.get = function VVsourceAC() { var options = { FR:["Frequency (Hz)",this.FR], } return options; } VVsourceAC.prototype.set = function VVsourceAC() { this.FR = parseFloat(arguments[0]["FR"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.FR,exprs] = scicos_getvalue("Set voltage source parameter",["Frequency (Hz)"],list("vec",-1),exprs); if (!ok) { break; } this.model.rpar = [this.FR]; this.model.equations.parameters[2] = list(new ScilabDouble([this.FR])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/VariableResistor.sci" */ function VariableResistor() { VariableResistor.prototype.define = function VariableResistor() { this.model = scicos_model(); this.model.sim = new ScilabString(["VariableResistor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "VariableResistor"; mo.inputs = ["p","R"]; mo.outputs = "n"; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = []; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I","E"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } VariableResistor.prototype.details = function VariableResistor() { return this.x; } VariableResistor.prototype.get = function VariableResistor() { var options = { } return options; } VariableResistor.prototype.set = function VariableResistor() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Electrical/VoltageSensor.sci" */ function VoltageSensor() { VoltageSensor.prototype.define = function VoltageSensor() { this.model = scicos_model(); this.model.in1 = new ScilabDouble([1]); this.model.out = [[1],[1]]; this.model.sim = new ScilabString(["VoltageSensor"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "VoltageSensor"; mo.inputs = "p"; mo.outputs = [["n"],["v"]]; this.model.equations = new ScilabDouble([mo]); exprs = []; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = [["I"],["E"]]; return new VoltageSensorBlock(this.x); } VoltageSensor.prototype.details = function VoltageSensor() { return this.x; } VoltageSensor.prototype.get = function VoltageSensor() { var options = { } return options; } VoltageSensor.prototype.set = function VoltageSensor() { this.x = arg1; return new VoltageSensorBlock(this.x); } } /* autogenerated from "macros/Electrical/VsourceAC.sci" */ function VsourceAC() { VsourceAC.prototype.define = function VsourceAC() { this.model = scicos_model(); this.model.in1 = [1]; this.model.out = [1]; this.VA = 220; this.FR = 50; this.model.rpar = [[this.VA],[this.FR]]; this.model.sim = new ScilabString(["VsourceAC"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "VsourceAC"; mo.inputs = "p"; mo.outputs = "n"; mo.parameters = list([["VA"],["f"]],list(this.VA,this.FR)); this.model.equations = new ScilabDouble([mo]); exprs = [[string(this.VA)],[string(this.FR)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } VsourceAC.prototype.details = function VsourceAC() { return this.x; } VsourceAC.prototype.get = function VsourceAC() { var options = { VA:["Amplitude (Volt)",this.VA], FR:["Frequency (Hz)",this.FR], } return options; } VsourceAC.prototype.set = function VsourceAC() { this.VA = parseFloat(arguments[0]["VA"]) this.FR = parseFloat(arguments[0]["FR"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.VA,this.FR,exprs] = scicos_getvalue("Set voltage source parameter",["Amplitude (Volt)","Frequency (Hz)"],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } this.model.rpar = [[this.VA],[this.FR]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.VA]), new ScilabDouble([this.FR])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* 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]); this.x = scicos_block(); this.x.gui = "ANDBLK"; this.x.graphics.sz = [2,2]; this.x.graphics.gr_i = []; this.x.graphics.pein = [[0],[0]]; this.x.graphics.peout = 0; this.x.model.sim = "csuper"; this.x.model.evtin = [[1],[1]]; this.x.model.evtout = 1; this.x.model.blocktype = "h"; this.x.model.firing = false; this.x.model.dep_ut = [false,false]; this.x.model.rpar = diagram; return new BasicBlock(this.x); } ANDBLK.prototype.details = function ANDBLK() { return this.x; } ANDBLK.prototype.get = function ANDBLK() { var options = { } return options; } ANDBLK.prototype.set = function ANDBLK() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/ANDLOG_f.sci" */ function ANDLOG_f() { ANDLOG_f.prototype.define = function ANDLOG_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["andlog"]); this.model.out = new ScilabDouble([1]); this.model.evtin = [[1],[1]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([3,3],this.model,[],gr_i); return new BasicBlock(this.x); } ANDLOG_f.prototype.details = function ANDLOG_f() { return this.x; } ANDLOG_f.prototype.get = function ANDLOG_f() { var options = { } return options; } ANDLOG_f.prototype.set = function ANDLOG_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/CLKSOMV_f.sci" */ function CLKSOMV_f() { CLKSOMV_f.prototype.define = function CLKSOMV_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["sum"]); this.model.evtin = [[1],[1],[1]]; this.model.evtout = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } CLKSOMV_f.prototype.details = function CLKSOMV_f() { return this.x; } CLKSOMV_f.prototype.get = function CLKSOMV_f() { var options = { } return options; } CLKSOMV_f.prototype.set = function CLKSOMV_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/CLKSOM_f.sci" */ function CLKSOM_f() { CLKSOM_f.prototype.define = function CLKSOM_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["sum"]); this.model.evtin = [[1],[1],[1]]; this.model.evtout = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([1,1]/1.2,this.model,[],gr_i); return new BasicBlock(this.x); } CLKSOM_f.prototype.details = function CLKSOM_f() { return this.x; } CLKSOM_f.prototype.get = function CLKSOM_f() { var options = { } return options; } CLKSOM_f.prototype.set = function CLKSOM_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/CLKSPLIT_f.sci" */ function CLKSPLIT_f() { CLKSPLIT_f.prototype.define = function CLKSPLIT_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["split"]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = [[1],[1]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = [false,false,false]; this.model.dep_ut = [false,false]; this.x = standard_define([1,1]/3,this.model,[],[]); return new BasicBlock(this.x); } CLKSPLIT_f.prototype.details = function CLKSPLIT_f() { return this.x; } CLKSPLIT_f.prototype.get = function CLKSPLIT_f() { var options = { } return options; } CLKSPLIT_f.prototype.set = function CLKSPLIT_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/END_c.sci" */ function END_c() { END_c.prototype.define = function END_c() { this.tf = 100000000; this.model = scicos_model(); this.model.sim = list(new ScilabString(["scicosexit"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.firing = new ScilabDouble([this.tf]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = string(this.tf); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } END_c.prototype.details = function END_c() { return this.x; } END_c.prototype.get = function END_c() { var options = { tf:["Final simulation time",this.tf], } return options; } END_c.prototype.set = function END_c() { this.tf = parseFloat(arguments[0]["tf"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tf,exprs] = scicos_getvalue("Set final simulation time",["Final simulation time"],list("vec",1),exprs); if (!ok) { break; } if (ok) { graphics.exprs = exprs; this.model.firing = new ScilabDouble([this.tf]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/EVTDLY_c.sci" */ function EVTDLY_c() { EVTDLY_c.prototype.define = function EVTDLY_c() { this.dt = 0.1; this.ff = 0.0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["evtdly4"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = [[this.dt],[this.ff]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([this.ff]); this.model.dep_ut = [false,false]; exprs = [[string(this.dt)],[sci2exp(this.ff)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EVTDLY_c.prototype.details = function EVTDLY_c() { return this.x; } EVTDLY_c.prototype.get = function EVTDLY_c() { var options = { dt:["Delay",this.dt], ff:["Date of initial output event",this.ff], } return options; } EVTDLY_c.prototype.set = function EVTDLY_c() { this.dt = parseFloat(arguments[0]["dt"]) this.ff = parseFloat(arguments[0]["ff"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.dt,this.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; } if (this.dt<=0) { message("Delay must be positive"); ok = false; } if (ok) { graphics.exprs = exprs; this.model.rpar = [[this.dt],[this.ff]]; this.model.firing = new ScilabDouble([this.ff]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/EVTDLY_f.sci" */ function EVTDLY_f() { EVTDLY_f.prototype.define = function EVTDLY_f() { this.dt = 0.1; this.ff = this.dt; this.model = scicos_model(); this.model.sim = new ScilabString(["evtdly"]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([this.dt]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([this.ff]); this.model.dep_ut = [false,false]; exprs = [[string(this.dt)],[sci2exp(this.ff)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EVTDLY_f.prototype.details = function EVTDLY_f() { return this.x; } EVTDLY_f.prototype.get = function EVTDLY_f() { var options = { dt:["Delay",this.dt], ff:["Date of initial output event",this.ff], } return options; } EVTDLY_f.prototype.set = function EVTDLY_f() { this.dt = parseFloat(arguments[0]["dt"]) this.ff = parseFloat(arguments[0]["ff"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.dt,this.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; } if (this.dt<=0) { message("Delay must be positive"); ok = false; } if (ok) { graphics.exprs = exprs; this.model.rpar = new ScilabDouble([this.dt]); this.model.firing = new ScilabDouble([this.ff]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/EVTGEN_f.sci" */ function EVTGEN_f() { EVTGEN_f.prototype.define = function EVTGEN_f() { this.tt = 0; this.model = scicos_model(); this.model.sim = new ScilabString(["trash"]); this.model.evtout = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([this.tt]); this.model.dep_ut = [false,false]; exprs = string(this.tt); gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EVTGEN_f.prototype.details = function EVTGEN_f() { return this.x; } EVTGEN_f.prototype.get = function EVTGEN_f() { var options = { tt:["Event Time",this.tt], } return options; } EVTGEN_f.prototype.set = function EVTGEN_f() { this.tt = parseFloat(arguments[0]["tt"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.tt,exprs] = scicos_getvalue("Set Event time",["Event Time"],list("vec",1),exprs); if (!ok) { break; } graphics.exprs = exprs; if (this.model.firing!=this.tt) { this.model.firing = new ScilabDouble([this.tt]); } this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/EVTVARDLY.sci" */ function EVTVARDLY() { EVTVARDLY.prototype.define = function EVTVARDLY() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["evtvardly"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = string(this.model.firing); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EVTVARDLY.prototype.details = function EVTVARDLY() { return this.x; } EVTVARDLY.prototype.get = function EVTVARDLY() { var options = { } return options; } EVTVARDLY.prototype.set = function EVTVARDLY() { this.fir = arguments[0]["fir"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.fir,exprs] = scicos_getvalue("Set parameter of variable event delay","Initial event firing time (<0 if absent)",list("vec",1),exprs); if (!ok) { break; } graphics.exprs = exprs; this.model.firing = new ScilabDouble([this.fir]); this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/HALT_f.sci" */ function HALT_f() { HALT_f.prototype.define = function HALT_f() { this.n = 0; this.model = scicos_model(); this.model.sim = new ScilabString(["hltblk"]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.ipar = new ScilabDouble([0]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = string(this.n); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } HALT_f.prototype.details = function HALT_f() { return this.x; } HALT_f.prototype.get = function HALT_f() { var options = { n:["State on halt",this.n], } return options; } HALT_f.prototype.set = function HALT_f() { this.n = parseFloat(arguments[0]["n"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.n,exprs] = scicos_getvalue("Set Halt block parameters",["State on halt"],list("vec",1),exprs); if (!ok) { break; } if (ok) { graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.n]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/IFTHEL_f.sci" */ function IFTHEL_f() { IFTHEL_f.prototype.define = function IFTHEL_f() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["ifthel"]), new ScilabDouble([-1])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([-1]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = [[1],[1]]; this.model.blocktype = new ScilabString(["l"]); this.model.firing = [-1,-1]; this.model.dep_ut = [true,false]; this.model.nmode = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([1]); gr_i = []; exprs = [[string(this.model.in1)],[string(this.model.nmode)]]; this.x = standard_define([3,3],this.model,exprs,gr_i); return new BasicBlock(this.x); } IFTHEL_f.prototype.details = function IFTHEL_f() { return this.x; } IFTHEL_f.prototype.get = function IFTHEL_f() { var options = { inh:["Inherit (1: no, 0: yes)",this.inh], nmod:["zero-crossing (0: no, 1: yes)",this.nmod], } return options; } IFTHEL_f.prototype.set = function IFTHEL_f() { this.inh = inverse(arguments[0]["inh"]) this.nmod = parseFloat(arguments[0]["nmod"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (exprs==[]) { exprs = string(1); } if (size(exprs,"*")==1) { exprs[2-1] = string(1); } while (true) { [ok,this.inh,this.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; } this.model.dep_ut = [true,false]; if (this.nmod!=0) { this.nmod = 1; } if (this.inh!=1) { this.inh = []; } [this.model,graphics,ok] = check_io(this.model,graphics,1,[],this.inh,[[1],[1]]); if (ok) { graphics.exprs = exprs; this.model.evtin = this.inh; this.model.sim[2] = new ScilabDouble([-1]); this.model.nmode = new ScilabDouble([this.nmod]); this.model.nzcross = new ScilabDouble([this.nmod]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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]); this.x = scicos_block(); this.x.gui = "MCLOCK_f"; this.x.graphics.sz = [3,2]; this.x.graphics.gr_i = gr_i; this.x.model.sim = "csuper"; this.x.model.evtout = [[1],[1]]; this.x.model.blocktype = "h"; this.x.model.rpar = diagram; this.x.graphics.peout = [[0],[0]]; return new BasicBlock(this.x); } MCLOCK_f.prototype.details = function MCLOCK_f() { return this.x; } MCLOCK_f.prototype.get = function MCLOCK_f() { var options = { } return options; } 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; } this.x = arg1; y = 0; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/MFCLCK_f.sci" */ function MFCLCK_f() { MFCLCK_f.prototype.define = function MFCLCK_f() { this.nn = 2; this.dt = 0.1; this.model = scicos_model(); this.model.sim = new ScilabString(["mfclck"]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = [[1],[1]]; this.model.dstate = new ScilabDouble([0]); this.model.rpar = new ScilabDouble([this.dt]); this.model.ipar = new ScilabDouble([this.nn]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = [-1,0]; this.model.dep_ut = [false,false]; exprs = [[string(this.dt)],[string(this.nn)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } MFCLCK_f.prototype.details = function MFCLCK_f() { return this.x; } MFCLCK_f.prototype.get = function MFCLCK_f() { var options = { dt:["basic period (1/f)",this.dt], nn:["multiply by (n)",this.nn], } return options; } MFCLCK_f.prototype.set = function MFCLCK_f() { this.dt = parseFloat(arguments[0]["dt"]) this.nn = parseFloat(arguments[0]["nn"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; [ok,this.dt,this.nn,exprs] = scicos_getvalue("Set Multifrequency clock parameters",["basic period (1/f)","multiply by (n)"],list("vec",1,"vec",1),exprs); if (ok) { this.model.ipar = new ScilabDouble([this.nn]); this.model.rpar = new ScilabDouble([this.dt]); hh = this.model.firing; hh[2-1] = 0; this.model.firing = hh; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/M_freq.sci" */ function M_freq() { M_freq.prototype.define = function M_freq() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["m_frequ"]), new ScilabDouble([4])); this.model.evtout = [[1],[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.rpar = []; this.model.opar = list([[1,1,0],[1,1,1],[1,3,2]], new ScilabDouble([1]), new ScilabDouble([0]), new ScilabDouble([0])); this.model.blocktype = new ScilabString(["d"]); this.model.firing = [0,-1,-1]; this.model.dep_ut = [false,false]; exprs = [[sci2exp([[1],[2]])],[sci2exp([[0],[0]])]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } M_freq.prototype.details = function M_freq() { return this.x; } M_freq.prototype.get = function M_freq() { var options = { frequ:["Sample time",this.frequ], offset:["Offset",this.offset], } return options; } M_freq.prototype.set = function M_freq() { this.frequ = inverse(arguments[0]["frequ"]) this.offset = inverse(arguments[0]["offset"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.frequ,this.offset,exprs] = scicos_getvalue("Set block parameters",["Sample time","Offset"],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } this.offset = this.offset.slice(); this.frequ = this.frequ.slice(); if ((size(this.frequ,"*"))!=(size(this.offset,"*"))) { message("offset and frequency must have the same size"); ok = false; } else if (or(this.frequ<0)) { message("Frequency must be a positif number"); ok = false; } else if (or(abs(this.offset)>this.frequ)) { message("The |Offset| must be less than the Frequency"); ok = false; } if (ok) { [m,den,off,count,m1,fir,this.frequ,this.offset,ok] = mfrequ_clk(this.frequ,this.offset); } if (ok) { this.model.opar = list(m, new ScilabDouble([double(den)]), new ScilabDouble([off]), new ScilabDouble([count])); mn = (2^size(m1,"*"))-1; [this.model,graphics,ok] = set_io(this.model,graphics,list(),list(),1,ones(mn,1)); if (mn>3) { graphics.sz = [40+(mn-3)*10,40]; } else { graphics.sz = [50,40]; } this.model.firing = new ScilabDouble([fir]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Events/VirtualCLK0.sci" */ function VirtualCLK0() { VirtualCLK0.prototype.define = function VirtualCLK0() { this.model = scicos_model(); this.model.sim = new ScilabString(["vrtclk0"]); this.model.evtin = new ScilabDouble([1]); this.model.opar = list(); this.model.ipar = []; this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = []; this.x = standard_define([2,2],this.model,exprs," "); return new BasicBlock(this.x); } VirtualCLK0.prototype.details = function VirtualCLK0() { return this.x; } VirtualCLK0.prototype.get = function VirtualCLK0() { var options = { } return options; } VirtualCLK0.prototype.set = function VirtualCLK0() { this.x = arg1; return new BasicBlock(this.x); } } /* 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; this.model = blk.model; graphics.orig = [0,-100]; graphics.sz = [60,40]; graphics.exprs = [["0"],["3"]]; this.model.dstate = new ScilabDouble([3]); this.model.ipar = new ScilabDouble([3]); graphics.pout = 7; graphics.pein = 10; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[1-1] = blk; blk = scs_m_1.objs[2-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [120,0]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.peout = 6; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[2-1] = blk; blk = scs_m_1.objs[3-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [130,-160]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.pein = 8; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[3-1] = blk; blk = scs_m_1.objs[4-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [100,-100]; graphics.sz = [60,40]; graphics.exprs = [["1"],["0"]]; this.model.ipar = new ScilabDouble([1]); graphics.pin = 7; graphics.pein = 9; graphics.peout = [[0],[8]]; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[4-1] = blk; blk = scs_m_1.objs[5-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [127,-33]; graphics.sz = [7,7]; graphics.pein = 6; graphics.peout = [[9],[10]]; blk.graphics = graphics; blk.model = this.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={}; this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = scs_m_1; gr_i = []; this.x = standard_define([3,2],this.model,[],gr_i); return new BasicBlock(this.x); } freq_div.prototype.details = function freq_div() { return this.x; } freq_div.prototype.get = function freq_div() { var options = { %ph:["Phase (0 to division factor -1)",%ph], %df:["Division factor",%df], } return options; } freq_div.prototype.set = function freq_div() { %ph = parseFloat(arguments[0]["%ph"]) %df = parseFloat(arguments[0]["%df"]) 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; this.model = xx.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); if (!ok) { break; } if (ok) { if (%df<1) { %df = 1; } %ph = abs(%ph); if (%ph>%df-1) { %ph = %df-1; } graphics.exprs = exprs; this.model.ipar = new ScilabDouble([%df]); this.model.dstate = new ScilabDouble([%ph]); xxn.graphics = graphics; xxn.model = this.model; break; } } if (diffobjs(xxn,xx)) { this.model = xx.model; model_n = xxn.model; if (!is_modelica_block(xx)) { modified = or(this.model.sim!=model_n.sim)||!isequal(this.model.state,model_n.state)||!isequal(this.model.dstate,model_n.dstate)||!isequal(this.model.rpar,model_n.rpar)||!isequal(this.model.ipar,model_n.ipar)||!isequal(this.model.label,model_n.label); if (or(this.model.in1!=model_n.in1)||or(this.model.out!=model_n.out)) { needcompile = 1; } if (or(this.model.firing!=model_n.firing)) { needcompile = 2; } if (this.model.sim=="input"||this.model.sim=="output") { if (this.model.ipar!=model_n.ipar) { needcompile = 4; } } if (or(this.model.blocktype!=model_n.blocktype)||or(this.model.dep_ut!=model_n.dep_ut)) { needcompile = 4; } if ((this.model.nzcross!=model_n.nzcross)||(this.model.nmode!=model_n.nmode)) { needcompile = 4; } if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (this.model.sim[1-1]!=model_n.sim[1-1]) { needcompile = 4; } } } } else { modified = or(model_n!=this.model); eq = this.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); } this.x = arg1; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Hydraulics/Bache.sci" */ function Bache() { Bache.prototype.define = function Bache() { in1 = 2; out = 3; this.model = scicos_model(); this.model.in1 = [-transpose([1:in1])]; this.model.out = [-transpose([1:out])]; this.Patm = 1.013e5; this.A = 1; this.ze1 = 40; this.ze2 = 0; this.zs1 = 40; this.zs2 = 0; this.z0 = 30; this.T0 = 290; this.p_rho = 0; this.model.rpar = [[this.Patm],[this.A],[this.ze1],[this.ze2],[this.zs1],[this.zs2],[this.z0],[this.T0],[this.p_rho]]; this.model.sim = new ScilabString(["Bache"]); this.model.blocktype = new ScilabString(["c"]); this.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"]],[[this.Patm],[this.A],[this.ze1],[this.ze2],[this.zs1],[this.zs2],[this.z0],[this.T0],[this.p_rho]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = [[string(this.Patm)],[string(this.A)],[string(this.ze1)],[string(this.ze2)],[string(this.zs1)],[string(this.zs2)],[string(this.z0)],[string(this.T0)],[string(this.p_rho)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = [["I"],["I"]]; this.x.graphics.out_implicit = [["I"],["I"],["E"]]; return new BasicBlock(this.x); } Bache.prototype.details = function Bache() { return this.x; } Bache.prototype.get = function Bache() { var options = { Patm:["Pression dans le ciel de la bache : Patm (Pa)",this.Patm], A:["Section de la bache : A (m2)",this.A], ze1:["Altitude du piquage d entrée 1: ze1 (m)",this.ze1], ze2:["Altitude du piquage d entrée 2: ze2 (m)",this.ze2], zs1:["Altitude du piquage de sortie 1: zs1 (m)",this.zs1], zs2:["Altitude du piquage de sortie 2: zs2 (m)",this.zs2], z0:["Altitude initiale du fluide : z0 (m)",this.z0], T0:["Température initiale du fluide : T0 (K)",this.T0], p_rho:["Si >0, masse volumique imposée du fluide : p_rho (kg/m3)",this.p_rho], } return options; } Bache.prototype.set = function Bache() { this.Patm = parseFloat(arguments[0]["Patm"]) this.A = parseFloat(arguments[0]["A"]) this.ze1 = parseFloat(arguments[0]["ze1"]) this.ze2 = parseFloat(arguments[0]["ze2"]) this.zs1 = parseFloat(arguments[0]["zs1"]) this.zs2 = parseFloat(arguments[0]["zs2"]) this.z0 = parseFloat(arguments[0]["z0"]) this.T0 = parseFloat(arguments[0]["T0"]) this.p_rho = parseFloat(arguments[0]["p_rho"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Patm,this.A,this.ze1,this.ze2,this.zs1,this.zs2,this.z0,this.T0,this.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; } this.model.rpar = [[this.Patm],[this.A],[this.ze1],[this.ze2],[this.zs1],[this.zs2],[this.z0],[this.T0],[this.p_rho]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.Patm]), new ScilabDouble([this.A]), new ScilabDouble([this.ze1]), new ScilabDouble([this.ze2]), new ScilabDouble([this.zs1]), new ScilabDouble([this.zs2]), new ScilabDouble([this.z0]), new ScilabDouble([this.T0]), new ScilabDouble([this.p_rho])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Hydraulics/Flowmeter.sci" */ function Flowmeter() { Flowmeter.prototype.define = function Flowmeter() { ModelName = "Flowmeter"; PrametersValue = 1; ParametersName = "Qini"; this.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]]]; } } this.model = scicos_model(); mo = modelica(); this.model.sim = new ScilabString([ModelName]); mo.inputs = MI; mo.outputs = MO; this.model.rpar = new ScilabDouble([PrametersValue]); mo.parameters = list(ParametersName,PrametersValue,zeros(ParametersName)); exprs = "1"; gr_i = []; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; mo.model = ModelName; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(MI,"*"),1)]); this.model.out = new ScilabDouble([ones(size(MO,"*"),1)]); this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = Typein; this.x.graphics.out_implicit = Typeout; return new BasicBlock(this.x); } Flowmeter.prototype.details = function Flowmeter() { return this.x; } Flowmeter.prototype.get = function Flowmeter() { var options = { } return options; } Flowmeter.prototype.set = function Flowmeter() { this.Qini = arguments[0]["Qini"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.x = arg1; exprs = this.x.graphics.exprs; while (false) { [ok,this.Qini,exprs] = scicos_getvalue([["Set Flowmeter block parameters:"],[""],["Qini: "]],"Qini",list("vec",1),exprs); if (!ok) { break; } this.x.model.equations.parameters[2-1] = list(this.Qini); this.x.graphics.exprs = exprs; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Hydraulics/PerteDP.sci" */ function PerteDP() { PerteDP.prototype.define = function PerteDP() { this.model = scicos_model(); this.model.in1 = [1]; this.model.out = [1]; this.L = 10; this.D = 0.2; this.lambda = 0.03; this.z1 = 0; this.z2 = 0; this.p_rho = 0; this.model.rpar = [[this.L],[this.D],[this.lambda],[this.z1],[this.z2],[this.p_rho]]; this.model.sim = new ScilabString(["PerteDP"]); this.model.blocktype = new ScilabString(["c"]); this.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"]],[[this.L],[this.D],[this.lambda],[this.z1],[this.z2],[this.p_rho]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = [[string(this.L)],[string(this.D)],[string(this.lambda)],[string(this.z1)],[string(this.z2)],[string(this.p_rho)]]; gr_i = []; this.x = standard_define([2,1],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } PerteDP.prototype.details = function PerteDP() { return this.x; } PerteDP.prototype.get = function PerteDP() { var options = { L:["Longueur du tube : L (m)",this.L], D:["Diamètre interne du tube : D (m)",this.D], lambda:["Coefficient de perte de charge-frottement(S.U) : lambda",this.lambda], z1:["Altitude entrée tuyauterie : z1 (m)",this.z1], z2:["Altitude sortie tuyauterie : z2 (m)",this.z2], p_rho:["Si >0, masse volumique imposée fu fluide : p_rho (kg/m3)",this.p_rho], } return options; } PerteDP.prototype.set = function PerteDP() { this.L = parseFloat(arguments[0]["L"]) this.D = parseFloat(arguments[0]["D"]) this.lambda = parseFloat(arguments[0]["lambda"]) this.z1 = parseFloat(arguments[0]["z1"]) this.z2 = parseFloat(arguments[0]["z2"]) this.p_rho = parseFloat(arguments[0]["p_rho"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.L,this.D,this.lambda,this.z1,this.z2,this.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; } this.model.rpar = [[this.L],[this.D],[this.lambda],[this.z1],[this.z2],[this.p_rho]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.L]), new ScilabDouble([this.D]), new ScilabDouble([this.lambda]), new ScilabDouble([this.z1]), new ScilabDouble([this.z2]), new ScilabDouble([this.p_rho])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Hydraulics/PuitsP.sci" */ function PuitsP() { PuitsP.prototype.define = function PuitsP() { this.model = scicos_model(); this.P0 = 100000; this.T0 = 290; this.H0 = 100000; this.option_temperature = 1; this.model.rpar = [[this.P0],[this.T0],[this.H0],[this.option_temperature]]; this.model.sim = new ScilabString(["Puits"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Puits"; mo.inputs = ["C"]; mo.parameters = list([["P0"],["T0"],["H0"],["option_temperature"]],[[this.P0],[this.T0],[this.H0],[this.option_temperature]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); exprs = [[string(this.P0)],[string(this.T0)],[string(this.H0)],[string(this.option_temperature)]]; gr_i = []; this.x = standard_define([2.5,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = ["I"]; return new BasicBlock(this.x); } PuitsP.prototype.details = function PuitsP() { return this.x; } PuitsP.prototype.get = function PuitsP() { var options = { P0:["Pression de la source : P0 (Pa)",this.P0], T0:["Temperature de la source : T0 (K)",this.T0], H0:["Enthalpie spécifique de la source : H0 (J/kg)",this.H0], option_temperature:["1:température fixée - 2:enthalpie fixée : option_temperature",this.option_temperature], } return options; } PuitsP.prototype.set = function PuitsP() { this.P0 = parseFloat(arguments[0]["P0"]) this.T0 = parseFloat(arguments[0]["T0"]) this.H0 = parseFloat(arguments[0]["H0"]) this.option_temperature = parseFloat(arguments[0]["option_temperature"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.P0,this.T0,this.H0,this.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; } this.model.rpar = [[this.P0],[this.T0],[this.H0],[this.option_temperature]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.P0]), new ScilabDouble([this.T0]), new ScilabDouble([this.H0]), new ScilabDouble([this.option_temperature])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Hydraulics/SourceP.sci" */ function SourceP() { SourceP.prototype.define = function SourceP() { this.model = scicos_model(); this.P0 = 300000; this.T0 = 290; this.H0 = 100000; this.option_temperature = 1; this.model.rpar = [[this.P0],[this.T0],[this.H0],[this.option_temperature]]; this.model.sim = new ScilabString(["Source"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "Source"; mo.inputs = []; mo.outputs = ["C"]; mo.parameters = list([["P0"],["T0"],["H0"],["option_temperature"]],[[this.P0],[this.T0],[this.H0],[this.option_temperature]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = [[string(this.P0)],[string(this.T0)],[string(this.H0)],[string(this.option_temperature)]]; gr_i = []; this.x = standard_define([2.5,2],this.model,exprs,list(gr_i,0)); this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } SourceP.prototype.details = function SourceP() { return this.x; } SourceP.prototype.get = function SourceP() { var options = { P0:["Pression de la source : P0 (Pa)",this.P0], T0:["Temperature de la source : T0 (K)",this.T0], H0:["Enthalpie spécifique de la source : H0 (J/kg)",this.H0], option_temperature:["1:température fixée - 2:enthalpie fixée : option_temperature",this.option_temperature], } return options; } SourceP.prototype.set = function SourceP() { this.P0 = parseFloat(arguments[0]["P0"]) this.T0 = parseFloat(arguments[0]["T0"]) this.H0 = parseFloat(arguments[0]["H0"]) this.option_temperature = parseFloat(arguments[0]["option_temperature"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.P0,this.T0,this.H0,this.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; } this.model.rpar = [[this.P0],[this.T0],[this.H0],[this.option_temperature]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.P0]), new ScilabDouble([this.T0]), new ScilabDouble([this.H0]), new ScilabDouble([this.option_temperature])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Hydraulics/VanneReglante.sci" */ function VanneReglante() { VanneReglante.prototype.define = function VanneReglante() { this.model = scicos_model(); this.model.in1 = [[1],[1]]; this.model.out = [1]; this.Cvmax = 8005.42; this.p_rho = 0; this.model.rpar = [[this.Cvmax],[this.p_rho]]; this.model.sim = new ScilabString(["VanneReglante"]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; mo = modelica(); mo.model = "VanneReglante"; mo.inputs = ["C1","Ouv"]; mo.outputs = "C2"; mo.parameters = list([["Cvmax"],["p_rho"]],[[this.Cvmax],[this.p_rho]]); this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); exprs = [[string(this.Cvmax)],[string(this.p_rho)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,list(gr_i,0)); this.x.graphics.in_implicit = [["I"],["E"]]; this.x.graphics.out_implicit = ["I"]; return new BasicBlock(this.x); } VanneReglante.prototype.details = function VanneReglante() { return this.x; } VanneReglante.prototype.get = function VanneReglante() { var options = { Cvmax:["Cvmax",this.Cvmax], p_rho:["p_rho",this.p_rho], } return options; } VanneReglante.prototype.set = function VanneReglante() { this.Cvmax = parseFloat(arguments[0]["Cvmax"]) this.p_rho = parseFloat(arguments[0]["p_rho"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Cvmax,this.p_rho,exprs] = scicos_getvalue("Paramètres de la vanne reglante",["Cvmax","p_rho"],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } this.model.rpar = [[this.Cvmax],[this.p_rho]]; this.model.equations.parameters[2] = list(new ScilabDouble([this.Cvmax]), new ScilabDouble([this.p_rho])); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/BITCLEAR.sci" */ function BITCLEAR() { BITCLEAR.prototype.define = function BITCLEAR() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["bit_clear_32"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([3]); this.model.outtyp = new ScilabDouble([3]); this.model.opar = list(new ScilabDouble([int32(0)])); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(3)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } BITCLEAR.prototype.details = function BITCLEAR() { return this.x; } BITCLEAR.prototype.get = function BITCLEAR() { var options = { Datatype:[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),this.Datatype], bit:["Index of Bit (0 is least significant)",this.bit], } return options; } BITCLEAR.prototype.set = function BITCLEAR() { this.Datatype = arguments[0]["Datatype"] this.bit = parseFloat(arguments[0]["bit"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Datatype,this.bit,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","BITCLEAR")],[" "],["Clear a bit"],[" "]],[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),"Index of Bit (0 is least significant)"],list("vec",1,"vec",1),exprs); if (!ok) { break; } in1 = [this.model.in1,this.model.in2]; if (floor(this.bit)!=this.bit) { block_parameter_error(msprintf("Wrong type for \'%s\' parameter: %5.1f.","Index of Bit",this.bit),"Must be integer."); ok = false; } else if ((this.Datatype==3)||(this.Datatype==6)) { if (this.bit>31||this.bit<0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Index of Bit",this.bit),msprintf("Must be in the interval %s.","[0, 31]")); ok = false; } else { this.bit = uint32(this.bit); n = (2^32-1)-2^this.bit; n = uint32(n); this.model.sim = list(new ScilabString(["bit_clear_32"]), new ScilabDouble([4])); } } else if ((this.Datatype==4)||(this.Datatype==7)) { if (this.bit>15||this.bit<0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Index of Bit",this.bit),msprintf("Must be in the interval %s.","[0, 15]")); ok = false; } else { this.bit = uint16(this.bit); n = (2^16-1)-2^this.bit; n = uint16(n); this.model.sim = list(new ScilabString(["bit_clear_16"]), new ScilabDouble([4])); } } else if ((this.Datatype==5)||(this.Datatype==8)) { if (this.bit>7||this.bit<0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Index of Bit",this.bit),msprintf("Must be in the interval %s.","[0, 7]")); ok = false; } else { this.bit = uint8(this.bit); n = (2^8-1)-2^this.bit; n = uint8(n); this.model.sim = list(new ScilabString(["bit_clear_8"]), new ScilabDouble([4])); } } else { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Data Type",this.Datatype),msprintf("Must be in the interval %s.","[3, 8]")); ok = false; } if (ok) { it = this.Datatype; ot = this.Datatype; out = [1,1]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([n])); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/BITSET.sci" */ function BITSET() { BITSET.prototype.define = function BITSET() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["bit_set_32"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([3]); this.model.outtyp = new ScilabDouble([3]); this.model.opar = list(new ScilabDouble([uint32(0)])); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(3)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } BITSET.prototype.details = function BITSET() { return this.x; } BITSET.prototype.get = function BITSET() { var options = { Datatype:[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),this.Datatype], bit:["Index of Bit (0 is least significant)",this.bit], } return options; } BITSET.prototype.set = function BITSET() { this.Datatype = arguments[0]["Datatype"] this.bit = parseFloat(arguments[0]["bit"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Datatype,this.bit,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","BITSET")],[" "],["Set a bit"],[" "]],[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),"Index of Bit (0 is least significant)"],list("vec",1,"vec",1),exprs); if (!ok) { break; } in1 = [this.model.in1,this.model.in2]; if (floor(this.bit)!=this.bit) { block_parameter_error(msprintf("Wrong type for \'%s\' parameter: %5.1f.","Index of Bit",this.bit),"Must be integer."); ok = false; } if ((this.Datatype==3)||(this.Datatype==6)) { if (this.bit>31||this.bit<0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Index of Bit",this.bit),msprintf("Must be in the interval %s.","[0, 31]")); ok = false; } this.bit = uint32(this.bit); n = 2^this.bit; n = uint32(n); this.model.sim = list(new ScilabString(["bit_set_32"]), new ScilabDouble([4])); } else if ((this.Datatype==4)||(this.Datatype==7)) { if (this.bit>15||this.bit<0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Index of Bit",this.bit),msprintf("Must be in the interval %s.","[0, 15]")); ok = false; } this.bit = uint16(this.bit); n = 2^this.bit; n = uint16(n); this.model.sim = list(new ScilabString(["bit_set_16"]), new ScilabDouble([4])); } else if ((this.Datatype==5)||(this.Datatype==8)) { if (this.bit>7||this.bit<0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Index of Bit",this.bit),msprintf("Must be in the interval %s.","[0, 7]")); ok = false; } this.bit = uint8(this.bit); n = 2^this.bit; n = uint8(n); this.model.sim = list(new ScilabString(["bit_set_8"]), new ScilabDouble([4])); } else { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Data Type",this.Datatype),msprintf("Must be in the interval %s.","[3, 8]")); ok = false; } if (ok) { it = this.Datatype; ot = this.Datatype; out = [1,1]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs = exprs; this.model.opar = list(new ScilabDouble([n])); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/CONVERT.sci" */ function CONVERT() { CONVERT.prototype.define = function CONVERT() { sgn = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["convert"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.out2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([3]); this.model.rpar = []; this.model.ipar = new ScilabDouble([sgn]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(1)],[sci2exp(3)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CONVERT.prototype.details = function CONVERT() { return this.x; } CONVERT.prototype.get = function CONVERT() { var options = { it:["Input Type (1:double, 3:int32, 4:int16, 5:int8, ...)",this.it], ot:["Output Type (1:double, 3:int32, 4:int16, 5:int8, ...)",this.ot], np:["Do on Overflow (0:Nothing, 1:Saturate, 2:Error)",this.np], } return options; } CONVERT.prototype.set = function CONVERT() { this.it = parseFloat(arguments[0]["it"]) this.ot = parseFloat(arguments[0]["ot"]) this.np = arguments[0]["np"] this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.it,this.ot,this.np,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","CONVERT")],[" "],["Type conversion"],[" "]],["Input Type (1:double, 3:int32, 4:int16, 5:int8, ...)","Output Type (1:double, 3:int32, 4:int16, 5:int8, ...)","Do on Overflow (0:Nothing, 1:Saturate, 2:Error)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.it==2) { this.it = 1; } if (this.ot==2) { this.ot = 1; } if ((this.np!=0&&this.np!=1&&this.np!=2)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Do on Overflow",this.np),msprintf("Must be in the interval %s.","[0, 2]")); ok = false; } else if ((this.it>8||this.it<1)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Input Type",this.it),msprintf("Must be in the interval %s.","[1, 8]")); ok = false; } else if ((this.ot>8||this.ot<1)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Output Type",this.ot),msprintf("Must be in the interval %s.","[1, 8]")); ok = false; } this.model.sim = list(new ScilabString(["convert"]), new ScilabDouble([4])); if ((this.it==this.ot)) { this.model.ipar = new ScilabDouble([1]); } else { if ((this.np==0)) { if ((this.it==1)) { if ((this.ot==3)) { this.model.ipar = new ScilabDouble([2]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([3]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([4]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([5]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([6]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([7]); } } else if ((this.it==3)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([8]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([9]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([10]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([1]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([11]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([12]); } } else if ((this.it==4)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([13]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([14]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([15]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([16]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([1]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([17]); } } else if ((this.it==5)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([18]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([19]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([20]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([21]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([22]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([1]); } } else if ((this.it==6)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([23]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([1]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([24]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([25]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([26]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([27]); } } else if ((this.it==7)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([28]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([29]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([1]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([30]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([31]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([32]); } } else if ((this.it==8)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([33]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([34]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([35]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([1]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([36]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([37]); } } } else if ((this.np==1)) { if ((this.it==1)) { if ((this.ot==3)) { this.model.ipar = new ScilabDouble([38]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([39]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([40]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([41]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([42]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([43]); } } else if ((this.it==3)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([8]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([44]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([45]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([46]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([47]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([48]); } } else if ((this.it==4)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([13]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([14]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([49]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([50]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([51]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([52]); } } else if ((this.it==5)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([18]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([19]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([20]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([53]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([54]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([55]); } } else if ((this.it==6)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([23]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([56]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([57]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([58]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([59]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([60]); } } else if ((this.it==7)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([28]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([29]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([61]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([62]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([31]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([63]); } } else if ((this.it==8)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([33]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([34]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([35]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([64]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([36]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([37]); } } } else if ((this.np==2)) { if ((this.it==1)) { if ((this.ot==3)) { this.model.ipar = new ScilabDouble([65]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([66]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([67]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([68]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([69]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([70]); } } else if ((this.it==3)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([8]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([71]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([72]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([73]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([74]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([75]); } } else if ((this.it==4)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([13]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([14]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([76]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([77]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([78]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([79]); } } else if ((this.it==5)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([18]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([19]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([20]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([80]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([81]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([82]); } } else if ((this.it==6)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([23]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([83]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([84]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([85]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([86]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([87]); } } else if ((this.it==7)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([28]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([29]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([88]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([89]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([31]); } else if ((this.ot==8)) { this.model.ipar = new ScilabDouble([90]); } } else if ((this.it==8)) { if ((this.ot==1)) { this.model.ipar = new ScilabDouble([33]); } else if ((this.ot==3)) { this.model.ipar = new ScilabDouble([34]); } else if ((this.ot==4)) { this.model.ipar = new ScilabDouble([35]); } else if ((this.ot==5)) { this.model.ipar = new ScilabDouble([91]); } else if ((this.ot==6)) { this.model.ipar = new ScilabDouble([36]); } else if ((this.ot==7)) { this.model.ipar = new ScilabDouble([37]); } } } } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,this.it),list(out,this.ot),[],[]); } if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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]); this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = [[1],[1],[1]]; this.model.in2 = [[1],[1],[1]]; this.model.out = [[1],[1]]; this.model.out2 = [[1],[1]]; this.model.intyp = [5,1,1]; this.model.outtyp = [5,5]; this.model.blocktype = new ScilabString(["h"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [true,false]; this.model.rpar = new ScilabDouble([scs_m]); gr_i = []; this.x = standard_define([2,3],this.model,[],gr_i); return new BasicBlock(this.x); } DFLIPFLOP.prototype.details = function DFLIPFLOP() { return this.x; } DFLIPFLOP.prototype.get = function DFLIPFLOP() { var options = { } return options; } DFLIPFLOP.prototype.set = function DFLIPFLOP() { this.x = arg1; return new BasicBlock(this.x); } } /* 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]); this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = [[1],[1]]; this.model.in2 = [[1],[1]]; this.model.out = [[1],[1]]; this.model.out2 = [[1],[1]]; this.model.intyp = [5,-1]; this.model.outtyp = [5,5]; this.model.blocktype = new ScilabString(["h"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [true,false]; this.model.rpar = new ScilabDouble([scs_m]); gr_i = []; this.x = standard_define([2,3],this.model,[],gr_i); return new BasicBlock(this.x); } DLATCH.prototype.details = function DLATCH() { return this.x; } DLATCH.prototype.get = function DLATCH() { var options = { } return options; } DLATCH.prototype.set = function DLATCH() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/EXTRACTBITS.sci" */ function EXTRACTBITS() { EXTRACTBITS.prototype.define = function EXTRACTBITS() { numb = []; this.model = scicos_model(); this.model.sim = list(new ScilabString(["extract_bit_32_UH0"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([3]); this.model.outtyp = new ScilabDouble([3]); this.model.ipar = [0,numb]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(3)],[sci2exp(1)],[sci2exp(0)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EXTRACTBITS.prototype.details = function EXTRACTBITS() { return this.x; } EXTRACTBITS.prototype.get = function EXTRACTBITS() { var options = { Datatype:[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),this.Datatype], rule:["Bits to extract",this.rule], bit:["Number of Bits or Index of Bit",this.bit], scal:["Treat Bit Field as an Integer (0:No, 1:Yes)",this.scal], } return options; } EXTRACTBITS.prototype.set = function EXTRACTBITS() { this.Datatype = arguments[0]["Datatype"] this.rule = parseFloat(arguments[0]["rule"]) this.bit = parseFloat(arguments[0]["bit"]) this.scal = arguments[0]["scal"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.Datatype,this.rule,this.bit,this.scal,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","EXTRACTBITS")],[" "],["Bits Extraction"],[" "],[" - Bits to Extract:"],["    1 Upper Half"],["    2 Lower Half"],["    3 Range from MSB"],["    4 Range to LSB"],["    5 Range of Bits"],[" - Number of Bits or Index of bit : Index 0 is LSB"],["    If \'Bits to Extract\' is set to \'Range of bits\': [Start, End]"],[" "]],[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),"Bits to extract","Number of Bits or Index of Bit","Treat Bit Field as an Integer (0:No, 1:Yes)"],list("vec",1,"vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break; } bitstr = strcat(string(this.bit.slice())," "); if ((this.rule<1)||(this.rule>5)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Bits to Extract",this.rule),msprintf("Must be in the interval %s.","[1, 5]")); ok = false; } else if (this.scal<0||this.scal>1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Treat Bit Field as an Integer",this.scal),msprintf("Must be in the interval %s.","[0, 1]")); ok = false; } else { in1 = [this.model.in1,this.model.in2]; this.bit = int(this.bit); this.rule = int(this.rule); if ((this.rule==3)||(this.rule==4)) { if ((size(this.bit,"*")!=1)) { block_parameter_error(msprintf("Wrong size for \'%s\' parameter: %s.","Number of Bits or Index of Bit",bitstr),"Must be a single value."); ok = false; } else { numb = this.bit; } } else if ((this.rule==5)) { if ((size(this.bit,"*")!=2)) { block_parameter_error(msprintf("Wrong size for \'%s\' parameter: %s.","Number of Bits or Index of Bit",bitstr),"Must have this form: [Start, End]."); ok = false; } else if (this.bit[1-1]>this.bit[2-1]) { block_parameter_error(msprintf("Wrong values for \'%s\' parameter: %s.","Number of Bits or Index of Bit",bitstr),msprintf("\'Start\' must be less than \'End\'.")); ok = false; } else { numb = this.bit[2-1]-this.bit[1-1]; } } else { this.bit = 0; numb = []; } } if (ok) { if ((this.Datatype==3||this.Datatype==6)) { if (or(this.bit.slice()>31)||or(this.bit.slice()<0)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Number of Bits or Index of Bit",bitstr),msprintf("Indexes must be in the interval %s.","[0, 31]")); ok = false; } switch (this.rule) { case 1: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_32_UH0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 3: this.model.sim = list(new ScilabString(["extract_bit_32_UH1"]), new ScilabDouble([4])); case 6: this.model.sim = list(new ScilabString(["extract_bit_u32_UH1"]), new ScilabDouble([4])); } } case 2: this.model.sim = list(new ScilabString(["extract_bit_32_LH"]), new ScilabDouble([4])); case 3: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_32_MSB0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 3: this.model.sim = list(new ScilabString(["extract_bit_32_MSB1"]), new ScilabDouble([4])); case 6: this.model.sim = list(new ScilabString(["extract_bit_u32_MSB1"]), new ScilabDouble([4])); } } case 4: this.model.sim = list(new ScilabString(["extract_bit_32_LSB"]), new ScilabDouble([4])); case 5: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_32_RB0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 3: this.model.sim = list(new ScilabString(["extract_bit_32_RB1"]), new ScilabDouble([4])); case 6: this.model.sim = list(new ScilabString(["extract_bit_u32_RB1"]), new ScilabDouble([4])); } } } } else if ((this.Datatype==4||this.Datatype==7)) { if (or(this.bit.slice()>15)||or(this.bit.slice()<0)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Number of Bits or Index of Bit",bitstr),msprintf("Indexes must be in the interval %s.","[0, 15]")); ok = false; } switch (this.rule) { case 1: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_16_UH0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 4: this.model.sim = list(new ScilabString(["extract_bit_16_UH1"]), new ScilabDouble([4])); case 7: this.model.sim = list(new ScilabString(["extract_bit_u16_UH1"]), new ScilabDouble([4])); } } case 2: this.model.sim = list(new ScilabString(["extract_bit_16_LH"]), new ScilabDouble([4])); case 3: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_16_MSB0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 4: this.model.sim = list(new ScilabString(["extract_bit_16_MSB1"]), new ScilabDouble([4])); case 7: this.model.sim = list(new ScilabString(["extract_bit_u16_MSB1"]), new ScilabDouble([4])); } } case 4: this.model.sim = list(new ScilabString(["extract_bit_16_LSB"]), new ScilabDouble([4])); case 5: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_16_RB0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 4: this.model.sim = list(new ScilabString(["extract_bit_16_RB1"]), new ScilabDouble([4])); case 7: this.model.sim = list(new ScilabString(["extract_bit_u16_RB1"]), new ScilabDouble([4])); } } } } else if ((this.Datatype==5||this.Datatype==8)) { if (or(this.bit.slice()>7)||or(this.bit.slice()<0)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Number of Bits or Index of Bit",bitstr),msprintf("Indexes must be in the interval %s.","[0, 7]")); ok = false; } switch (this.rule) { case 1: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_8_UH0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 5: this.model.sim = list(new ScilabString(["extract_bit_8_UH1"]), new ScilabDouble([4])); case 8: this.model.sim = list(new ScilabString(["extract_bit_u8_UH1"]), new ScilabDouble([4])); } } case 2: this.model.sim = list(new ScilabString(["extract_bit_8_LH"]), new ScilabDouble([4])); case 3: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_8_MSB0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 5: this.model.sim = list(new ScilabString(["extract_bit_8_MSB1"]), new ScilabDouble([4])); case 8: this.model.sim = list(new ScilabString(["extract_bit_u8_MSB1"]), new ScilabDouble([4])); } } case 4: this.model.sim = list(new ScilabString(["extract_bit_8_LSB"]), new ScilabDouble([4])); case 5: switch (this.scal) { case 0: this.model.sim = list(new ScilabString(["extract_bit_8_RB0"]), new ScilabDouble([4])); case 1: switch (this.Datatype) { case 5: this.model.sim = list(new ScilabString(["extract_bit_8_RB1"]), new ScilabDouble([4])); case 8: this.model.sim = list(new ScilabString(["extract_bit_u8_RB1"]), new ScilabDouble([4])); } } } } else { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Data Type",this.Datatype),msprintf("Must be in the interval %s.","[3, 8]")); ok = false; } } if (ok) { it = this.Datatype; ot = this.Datatype; out = [1,1]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs = exprs; this.model.ipar = [[int(this.bit.slice())],[int(numb.slice())]]; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/INTMUL.sci" */ function INTMUL() { INTMUL.prototype.define = function INTMUL() { sgn = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["matmul_i32"]), new ScilabDouble([4])); this.model.in1 = [[-1],[-2]]; this.model.out = new ScilabDouble([-1]); this.model.in2 = [[-2],[-3]]; this.model.out2 = new ScilabDouble([-3]); this.model.intyp = [3,3]; this.model.outtyp = new ScilabDouble([3]); this.model.rpar = []; this.model.ipar = new ScilabDouble([sgn]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(3)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } INTMUL.prototype.details = function INTMUL() { return this.x; } INTMUL.prototype.get = function INTMUL() { var options = { Datatype:[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),this.Datatype], np:["Do on Overflow (0:Nothing, 1:Saturate, 2:Error)",this.np], } return options; } INTMUL.prototype.set = function INTMUL() { this.Datatype = arguments[0]["Datatype"] this.np = arguments[0]["np"] this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.Datatype,this.np,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","INTMUL")],[" "],["Integer matrix multiplication"],[" "]],[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),"Do on Overflow (0:Nothing, 1:Saturate, 2:Error)"],list("vec",1,"vec",1),exprs); if (!ok) { break; } it = this.Datatype*ones(1,2); ot = this.Datatype; if ((this.np!=0&&this.np!=1&&this.np!=2)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Do on Overflow",this.np),msprintf("Must be in the interval %s.","[0, 2]")); ok = false; } else if (this.Datatype==3) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_i32n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_i32s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_i32e"]), new ScilabDouble([4])); } } else if (this.Datatype==4) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_i16n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_i16s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_i16e"]), new ScilabDouble([4])); } } else if (this.Datatype==5) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_i8n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_i8s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_i8e"]), new ScilabDouble([4])); } } else if (this.Datatype==6) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_ui32n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_ui32s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_ui32e"]), new ScilabDouble([4])); } } else if (this.Datatype==7) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_ui16n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_ui16s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_ui16e"]), new ScilabDouble([4])); } } else if (this.Datatype==8) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_ui8n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_ui8s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_ui8e"]), new ScilabDouble([4])); } } else { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Data Type",ot),msprintf("Must be in the interval %s.","[3, 8]")); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.ipar = new ScilabDouble([this.np]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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]); this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = [[1],[1],[1]]; this.model.in2 = [[1],[1],[1]]; this.model.out = [[1],[1]]; this.model.out2 = [[1],[1]]; this.model.intyp = [5,1,5]; this.model.outtyp = [5,5]; this.model.blocktype = new ScilabString(["h"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [true,false]; this.model.rpar = new ScilabDouble([scs_m]); gr_i = []; this.x = standard_define([2,3],this.model,[],gr_i); return new BasicBlock(this.x); } JKFLIPFLOP.prototype.details = function JKFLIPFLOP() { return this.x; } JKFLIPFLOP.prototype.get = function JKFLIPFLOP() { var options = { } return options; } JKFLIPFLOP.prototype.set = function JKFLIPFLOP() { this.init = parseFloat(arguments[0]["init"]) this.exprs0 = arguments[0]["exprs0"] 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]; this.model = xx.model; init_old = this.model.odstate[1-1]; while (true) { [ok,this.init,this.exprs0] = scicos_getvalue([[msprintf("Set %s block parameters","JKFLIPFLOP")],[" "],["JK flip-flop"],[" "],["The \'Initial Value\' must be 0 or 1 of type int8"],[" - Negative values are considered as int8(0)"],[" - Positive values are considered as int8(1)"],[" "]],"Initial Value",list("vec",1),exprs); if (!ok) { break; } if (this.init<=0) { this.init = int8(0); } else if (this.init>0) { this.init = int8(1); } if (ok) { xx.graphics.exprs[1-1] = this.exprs0; this.model.odstate[1] = new ScilabDouble([this.init]); xx.model = this.model; arg1.model.rpar.objs[path-1] = xx; break; } } needcompile = 0; if (init_old!=this.init) { newpar[size(newpar)+1-1] = 1; needcompile = 2; } this.x = arg1; y = needcompile; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/LOGIC.sci" */ function LOGIC() { LOGIC.prototype.define = function LOGIC() { this.mat = [[0],[0],[0],[1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["logic"]), new ScilabDouble([4])); this.model.in1 = [[1],[1]]; this.model.in2 = [[1],[1]]; this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.intyp = [5,5]; this.model.outtyp = new ScilabDouble([5]); this.model.opar = list(new ScilabDouble([int8(this.mat)])); this.model.blocktype = new ScilabString(["c"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(this.mat)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } LOGIC.prototype.details = function LOGIC() { return this.x; } LOGIC.prototype.get = function LOGIC() { var options = { mat:["Truth Table (matrix of outputs)",this.mat.toString().replace(/,/g," ")], herit:["Accepts Inherited Events (0:No, 1:Yes)",this.herit], } return options; } LOGIC.prototype.set = function LOGIC() { this.mat = inverse(arguments[0]["mat"]) this.herit = arguments[0]["herit"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.mat,this.herit,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","LOGIC")],[" "],["Combinatorial logic"],[" "],["  Rows of the matrix are the output values"],["  Number of rows must be a power of two."],["  Number of columns gives the number of outputs."],[" "]],["Truth Table (matrix of outputs)","Accepts Inherited Events (0:No, 1:Yes)"],list("mat",[-1,-2],"vec",1),exprs); if (!ok) { break; } nout = size(this.mat,2); nin = (log(size(this.mat,1))/log(2)); u1 = floor(nin); if ((u1!=nin)) { block_parameter_error(msprintf("Wrong size for \'%s\' parameter: %d.","Truth Table",size(this.mat,1)),"Number of rows must be a power of two."); ok = false; } else if ((find(this.mat.slice()!=0&&this.mat.slice()!=1)!=[])) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Truth Table"),msprintf("Elements must be in the interval %s.","[0, 1]")); ok = false; } else if (this.herit<0||this.herit>1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Accepts Inherited Events",this.herit),msprintf("Must be in the interval %s.","[0, 1]")); 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); [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),ones(1-this.herit,1),[]); } if (ok) { graphics.exprs = exprs; this.mat = int8(this.mat); this.model.opar = list(new ScilabDouble([this.mat])); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/IntegerOp/SHIFT.sci" */ function SHIFT() { SHIFT.prototype.define = function SHIFT() { sgn = [[0],[0]]; OPER = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["shift_32_LA"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.out2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([3]); this.model.outtyp = new ScilabDouble([3]); this.model.rpar = []; this.model.ipar = sgn; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(3)],[sci2exp(0)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SHIFT.prototype.details = function SHIFT() { return this.x; } SHIFT.prototype.get = function SHIFT() { var options = { Datatype:[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),this.Datatype], nb:["Number of Bits to Shift Left (Negative number to shift right)",this.nb], np:["Shift Type (0:Arithmetic, 1:Circular)",this.np], } return options; } SHIFT.prototype.set = function SHIFT() { this.Datatype = arguments[0]["Datatype"] this.nb = arguments[0]["nb"] this.np = arguments[0]["np"] this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.Datatype,this.nb,this.np,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","SHIFT")],[" "],["Shift/Rotates bits"]],[msprintf("Data Type %s","(3:int32, 4:int16, 5:int8, ...)"),"Number of Bits to Shift Left (Negative number to shift right)","Shift Type (0:Arithmetic, 1:Circular)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if ((this.np!=0&&this.np!=1)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Shift Type",this.np),msprintf("Must be in the interval %s.","[0, 1]")); ok = false; } it = this.Datatype; ot = this.Datatype; if ((this.Datatype==3||this.Datatype==6)) { if (this.nb>0) { switch (this.np) { case 0: this.model.sim = list(new ScilabString(["shift_32_LA"]), new ScilabDouble([4])); case 1: this.model.sim = list(new ScilabString(["shift_32_LC"]), new ScilabDouble([4])); } } else if (this.nb<0) { switch (this.np) { case 0: switch (this.Datatype) { case 3: this.model.sim = list(new ScilabString(["shift_32_RA"]), new ScilabDouble([4])); case 6: this.model.sim = list(new ScilabString(["shift_u32_RA"]), new ScilabDouble([4])); } case 1: this.model.sim = list(new ScilabString(["shift_32_RC"]), new ScilabDouble([4])); } } } else if ((this.Datatype==4||this.Datatype==7)) { if (this.nb>0) { switch (this.np) { case 0: this.model.sim = list(new ScilabString(["shift_16_LA"]), new ScilabDouble([4])); case 1: this.model.sim = list(new ScilabString(["shift_16_LC"]), new ScilabDouble([4])); } } else if (this.nb<0) { switch (this.np) { case 0: switch (this.Datatype) { case 4: this.model.sim = list(new ScilabString(["shift_16_RA"]), new ScilabDouble([4])); case 7: this.model.sim = list(new ScilabString(["shift_u16_RA"]), new ScilabDouble([4])); } case 1: this.model.sim = list(new ScilabString(["shift_16_RC"]), new ScilabDouble([4])); } } } else if ((this.Datatype==5||this.Datatype==8)) { if (this.nb>0) { switch (this.np) { case 0: this.model.sim = list(new ScilabString(["shift_8_LA"]), new ScilabDouble([4])); case 1: this.model.sim = list(new ScilabString(["shift_8_LC"]), new ScilabDouble([4])); } } else if (this.nb<0) { switch (this.np) { case 0: switch (this.Datatype) { case 5: this.model.sim = list(new ScilabString(["shift_8_RA"]), new ScilabDouble([4])); case 8: this.model.sim = list(new ScilabString(["shift_u8_RA"]), new ScilabDouble([4])); } case 1: this.model.sim = list(new ScilabString(["shift_8_RC"]), new ScilabDouble([4])); } } } else { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Data Type",this.Datatype),msprintf("Must be in the interval %s.","[3, 8]")); ok = false; } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list([-1,-2],it),list([-1,-2],ot),[],[]); } if (ok) { this.model.ipar = new ScilabDouble([this.nb]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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]); this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = [[1],[1]]; this.model.in2 = [[1],[1]]; this.model.out = [[1],[1]]; this.model.out2 = [[1],[1]]; this.model.intyp = [5,5]; this.model.outtyp = [5,5]; this.model.blocktype = new ScilabString(["h"]); this.model.firing = new ScilabBoolean([false]); this.model.dep_ut = [true,false]; this.model.rpar = new ScilabDouble([scs_m]); gr_i = []; this.x = standard_define([2,3],this.model,[],gr_i); return new BasicBlock(this.x); } SRFLIPFLOP.prototype.details = function SRFLIPFLOP() { return this.x; } SRFLIPFLOP.prototype.get = function SRFLIPFLOP() { var options = { } return options; } SRFLIPFLOP.prototype.set = function SRFLIPFLOP() { this.init = parseFloat(arguments[0]["init"]) this.exprs0 = arguments[0]["exprs0"] 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]; this.model = xx.model; init_old = this.model.odstate[1-1]; while (true) { [ok,this.init,this.exprs0] = scicos_getvalue([[msprintf("Set %s block parameters","SRFLIPFLOP")],[" "],["SR flip-flop"],[" "],["The \'Initial Value\' must be 0 or 1 of type int8"],[" - Negative values are considered as int8(0)"],[" - Positive values are considered as int8(1)"],[" "]],"Initial Value",list("vec",1),exprs); if (!ok) { break; } if (this.init<=0) { this.init = int8(0); } else if (this.init>0) { this.init = int8(1); } if (ok) { xx.graphics.exprs[1-1] = this.exprs0; this.model.odstate[1] = new ScilabDouble([this.init]); xx.model = this.model; arg1.model.rpar.objs[path-1] = xx; break; } } needcompile = 0; if (init_old!=this.init) { newpar[size(newpar)+1-1] = path; needcompile = 2; } this.x = arg1; y = needcompile; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/BIGSOM_f.sci" */ function BIGSOM_f() { BIGSOM_f.prototype.define = function BIGSOM_f() { this.sgn = [[1],[1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["sum"]), new ScilabDouble([2])); this.model.in1 = [[-1],[-1]]; this.model.out = new ScilabDouble([-1]); this.model.rpar = this.sgn; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = sci2exp(this.sgn); gr_i = []; this.x = standard_define([2,3],this.model,exprs,gr_i); return new BigSom(this.x); } BIGSOM_f.prototype.details = function BIGSOM_f() { return this.x; } BIGSOM_f.prototype.get = function BIGSOM_f() { var options = { } return options; } BIGSOM_f.prototype.set = function BIGSOM_f() { this.sgn = inverse(arguments[0]["sgn"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.sgn,exprs] = scicos_getvalue("Set sum block parameters","Inputs ports signs/gain",list("vec",-1),exprs); if (!ok) { break; } in1 = -ones(size(this.sgn,"*"),1); [this.model,graphics,ok] = check_io(this.model,graphics,in1,-1,[],[]); if (ok) { this.model.rpar = this.sgn.slice(); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BigSom(this.x); } } /* autogenerated from "macros/Linear/CLINDUMMY_f.sci" */ function CLINDUMMY_f() { CLINDUMMY_f.prototype.define = function CLINDUMMY_f() { x0 = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cdummy"]), new ScilabDouble([4])); this.model.state = new ScilabDouble([x0]); this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [false,true]; gr_i = []; this.x = standard_define([3,2],this.model,[],gr_i); return new BasicBlock(this.x); } CLINDUMMY_f.prototype.details = function CLINDUMMY_f() { return this.x; } CLINDUMMY_f.prototype.get = function CLINDUMMY_f() { var options = { } return options; } CLINDUMMY_f.prototype.set = function CLINDUMMY_f() { this.x = arg1; return new BasicBlock(this.x); } } /* 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"]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["csslti4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.state = new ScilabDouble([x0]); this.model.rpar = [[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CLR.prototype.details = function CLR() { return this.x; } CLR.prototype.get = function CLR() { var options = { num:["Numerator (s)",this.num], den:["Denominator (s)",this.den], } return options; } CLR.prototype.set = function CLR() { this.num = arguments[0]["num"] this.den = arguments[0]["den"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; x0 = this.model.state; rpar = this.model.rpar; ns = prod(size(x0)); nin = 1; nout = 1; PREVAR_scicos_context = PREVAR_scicos_context; PREVAR_scicos_context.s = %s; while (true) { [ok,this.num,this.den,exprs] = scicos_getvalue("Set continuous SISO transfer parameters",["Numerator (s)","Denominator (s)"],list("pol",1,"pol",1),exprs); if (!ok) { break; } if (degree(this.num)>degree(this.den)) { message("Transfer function must be proper or strictly proper."); ok = false; } if (ok) { H = cont_frm(this.num,this.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(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } if (ns1<=ns) { x0 = x0.slice(1-1,ns1); } else { x0[ns1-1][1-1] = 0; } this.model.state = x0; this.model.rpar = rpar; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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"]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["csslti"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.state = new ScilabDouble([x0]); this.model.rpar = [[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; gr_i = []; this.x = standard_define([2.5,2.5],this.model,exprs,gr_i); return new BasicBlock(this.x); } CLR_f.prototype.details = function CLR_f() { return this.x; } CLR_f.prototype.get = function CLR_f() { var options = { num:["Numerator (s)",this.num], den:["Denominator (s)",this.den], } return options; } CLR_f.prototype.set = function CLR_f() { this.num = arguments[0]["num"] this.den = arguments[0]["den"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; x0 = this.model.state; rpar = this.model.rpar; ns = prod(size(x0)); nin = 1; nout = 1; PREVAR_scicos_context = PREVAR_scicos_context; PREVAR_scicos_context.s = %s; while (true) { [ok,this.num,this.den,exprs] = scicos_getvalue("Set continuous SISO transfer parameters",["Numerator (s)","Denominator (s)"],list("pol",1,"pol",1),exprs); if (!ok) { break; } if (degree(this.num)>degree(this.den)) { message("Transfer must be proper or strictly proper"); ok = false; } if (ok) { H = cont_frm(this.num,this.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(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } if (ns1<=ns) { x0 = x0.slice(1-1,ns1); } else { x0[ns1-1][1-1] = 0; } this.model.state = x0; this.model.rpar = rpar; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/CLSS.sci" */ function CLSS() { CLSS.prototype.define = function CLSS() { this.x0 = 0; this.A = -1; this.B = 1; this.C = 1; this.D = 0; in1 = 1; out = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["csslti4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.state = new ScilabDouble([this.x0]); this.model.rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[strcat(sci2exp(this.A))],[strcat(sci2exp(this.B))],[strcat(sci2exp(this.C))],[strcat(sci2exp(this.D))],[strcat(sci2exp(this.x0))]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CLSS.prototype.details = function CLSS() { return this.x; } CLSS.prototype.get = function CLSS() { var options = { A:["A matrix",this.A], B:["B matrix",this.B], C:["C matrix",this.C], D:["D matrix",this.D], x0:["Initial state",this.x0], } return options; } CLSS.prototype.set = function CLSS() { this.A = parseFloat(arguments[0]["A"]) this.B = parseFloat(arguments[0]["B"]) this.C = parseFloat(arguments[0]["C"]) this.D = parseFloat(arguments[0]["D"]) this.x0 = parseFloat(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; if (size(exprs,"*")==7) { exprs = exprs[[1:4,7]-1]; } this.model = arg1.model; while (true) { [ok,this.A,this.B,this.C,this.D,this.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(this.C,1); if (out==0) { out = []; } in1 = size(this.B,2); if (in1==0) { in1 = []; } [ms,ns] = size(this.A); okD = true; if (size(this.D,"*")!=size(this.C,1)*size(this.B,2)) { if (size(this.D,"*")==1) { this.D = this.D*ones(this.C*this.B); } else if (size(this.D,"*")==0) { this.D = zeros(this.C*this.B); } else { okD = false; } } if (ms!=ns||!okD) { message(_("Matrix A is not square or D has wrong dimension")); } else { [this.model,graphics,ok] = check_io(this.model,graphics,in1,out,[],[]); if (ok) { graphics.exprs = exprs; rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; if (this.D!=[]) { if (norm(this.D,1)!=0) { mmm = [true,true]; } else { mmm = [false,true]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } } else { this.model.dep_ut = [false,true]; } this.model.state = this.x0.slice(); this.model.rpar = rpar; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/CLSS_f.sci" */ function CLSS_f() { CLSS_f.prototype.define = function CLSS_f() { this.x0 = 0; this.A = -1; this.B = 1; this.C = 1; this.D = 0; in1 = 1; out = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["csslti"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.state = new ScilabDouble([this.x0]); this.model.rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[strcat(sci2exp(this.A))],[strcat(sci2exp(this.B))],[strcat(sci2exp(this.C))],[strcat(sci2exp(this.D))],[strcat(sci2exp(this.x0))]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CLSS_f.prototype.details = function CLSS_f() { return this.x; } CLSS_f.prototype.get = function CLSS_f() { var options = { A:["A matrix",this.A], B:["B matrix",this.B], C:["C matrix",this.C], D:["D matrix",this.D], x0:["Initial state",this.x0], } return options; } CLSS_f.prototype.set = function CLSS_f() { this.A = parseFloat(arguments[0]["A"]) this.B = parseFloat(arguments[0]["B"]) this.C = parseFloat(arguments[0]["C"]) this.D = parseFloat(arguments[0]["D"]) this.x0 = parseFloat(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; if (size(exprs,"*")==7) { exprs = exprs[[1:4,7]-1]; } this.model = arg1.model; while (true) { [ok,this.A,this.B,this.C,this.D,this.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(this.C,1); if (out==0) { out = []; } in1 = size(this.B,2); if (in1==0) { in1 = []; } [ms,ns] = size(this.A); if (ms!=ns) { message("A matrix must be square"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,in1,out,[],[]); if (ok) { graphics.exprs = exprs; rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; if (this.D!=[]) { if (norm(this.D,1)!=0) { mmm = [true,true]; } else { mmm = [false,true]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } } else { this.model.dep_ut = [false,true]; } this.model.state = this.x0.slice(); this.model.rpar = rpar; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DELAYV_f.sci" */ function DELAYV_f() { DELAYV_f.prototype.define = function DELAYV_f() { this.nin = 1; z0 = zeros(11,1); this.zz0 = z0.slice(1-1,$-1); this.T = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["delayv"]), new ScilabDouble([1])); this.model.in1 = [[this.nin],[1]]; this.model.out = new ScilabDouble([this.nin]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = [[1],[1]]; this.model.dstate = new ScilabDouble([z0]); this.model.rpar = new ScilabDouble([this.T/(size(this.zz0,"*"))]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = [0,-1]; this.model.dep_ut = [true,false]; exprs = [[string(this.nin)],[strcat(string(z0.slice(1-1,$-1)),";")],[string(this.T)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DELAYV_f.prototype.details = function DELAYV_f() { return this.x; } DELAYV_f.prototype.get = function DELAYV_f() { var options = { nin:["Number of inputs",this.nin], zz0:["Register initial condition",this.zz0], T:["Max delay",this.T], } return options; } DELAYV_f.prototype.set = function DELAYV_f() { this.nin = parseFloat(arguments[0]["nin"]) this.zz0 = inverse(arguments[0]["zz0"]) this.T = parseFloat(arguments[0]["T"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; this.nin = this.model.in1[1-1]; z0 = this.model.dstate; this.zz0 = z0.slice(1-1,$-1); told = z0[$-1]; while (true) { [ok,this.nin,this.zz0,this.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 (size(this.zz0,"*")<2) { message("Register length must be at least 2"); ok = false; } if (this.T<=0) { message("Delay must be positive"); ok = false; } if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,[[this.nin],[1]],this.nin,1,[[1],[1]]); } if (ok) { graphics.exprs = exprs; this.model.dstate = [[this.zz0.slice()],[told]]; this.model.rpar = new ScilabDouble([this.T/(size(this.zz0,"*"))]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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]); this.x = scicos_block(); this.x.gui = "DELAY_f"; this.x.graphics.sz = [2,2]; this.x.graphics.gr_i = []; this.x.graphics.pin = 0; this.x.graphics.pout = 0; this.x.model.sim = "csuper"; this.x.model.in1 = 1; this.x.model.out = 1; this.x.model.blocktype = "h"; this.x.model.dep_ut = [false,false]; this.x.model.rpar = diagram; this.x.graphics.in_implicit = ["E"]; this.x.graphics.in_style = ""; this.x.graphics.out_implicit = ["E"]; this.x.graphics.out_style = ""; return new BasicBlock(this.x); } DELAY_f.prototype.details = function DELAY_f() { return this.x; } DELAY_f.prototype.get = function DELAY_f() { var options = { dt:["Discretization time step",this.dt], z0:["Register initial state",this.z0], } return options; } DELAY_f.prototype.set = function DELAY_f() { this.dt = arguments[0]["dt"] this.z0 = arguments[0]["z0"] 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; } } this.x = arg1; newpar = list(); register = this.x.model.rpar.objs[ppath[1-1]-1]; evtdly = this.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,this.dt,this.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; } mess = []; if (prod(size(this.z0))<1) { mess = [[mess],["Register length must be at least 1"],[" "]]; ok = false; } if (this.dt<=0) { mess = [[mess],["Discretization time step must be positive"],[" "]]; ok = false; } if (!ok) { message(mess); } else { evtdly.graphics.exprs[1-1] = exprs[1-1]; if (evtdly.model.rpar!=this.dt) { evtdly.model.rpar = this.dt; newpar[$+1-1] = ppath[2-1]; } this.x.model.rpar.objs[ppath[2-1]-1] = evtdly; register.graphics.exprs = exprs[2-1]; if (or(register.model.dstate!=this.z0.slice())) { register.model.dstate = this.z0.slice(); newpar[$+1-1] = ppath[1-1]; } this.x.model.rpar.objs[ppath[1-1]-1] = register; break; } } needcompile = 0; y = needcompile; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DERIV.sci" */ function DERIV() { DERIV.prototype.define = function DERIV() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["deriv"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["x"]); this.model.dep_ut = [true,false]; exprs = []; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DERIV.prototype.details = function DERIV() { return this.x; } DERIV.prototype.get = function DERIV() { var options = { } return options; } DERIV.prototype.set = function DERIV() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DIFF_c.sci" */ function DIFF_c() { DIFF_c.prototype.define = function DIFF_c() { this.x0 = [[0],[0]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["diffblk_c"]), new ScilabDouble([10004])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.state = this.x0; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[strcat(sci2exp(this.x0[1-1]))],[strcat(sci2exp(this.x0[2-1]))]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DIFF_c.prototype.details = function DIFF_c() { return this.x; } DIFF_c.prototype.get = function DIFF_c() { var options = { x0:["Initial state",this.x0.toString().replace(/,/g," ")], xd0:["Initial Derivative",this.xd0], } return options; } DIFF_c.prototype.set = function DIFF_c() { this.x0 = inverse(arguments[0]["x0"]) this.xd0 = inverse(arguments[0]["xd0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { ask_again = false; [ok,this.x0,this.xd0,exprs] = scicos_getvalue("Set continuous linear system parameters",["Initial state","Initial Derivative"],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } this.x0 = this.x0.slice(); N = size(this.x0,"*"); this.xd0 = this.xd0.slice(); Nxd = size(this.xd0,"*"); if ((N!=Nxd)) { message("Incompatible sizes: states and their derivatives should have the same size "); ask_again = true; } if ((N<=0&&!ask_again)) { x_message("number of states must be > 0 "); ask_again = true; } if (!ask_again) { graphics.exprs = exprs; this.model.state = [[this.x0],[this.xd0]]; this.model.out = [N]; this.model.in1 = new ScilabDouble([N]); this.x.graphics = graphics; this.x.model = this.model; break; } } this.x.model.firing = []; return new BasicBlock(this.x); } } /* 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"]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["dsslti4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = x0.slice(); this.model.rpar = [[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DLR.prototype.details = function DLR() { return this.x; } DLR.prototype.get = function DLR() { var options = { num:["Numerator (z)",this.num], den:["Denominator (z)",this.den], } return options; } DLR.prototype.set = function DLR() { this.num = arguments[0]["num"] this.den = arguments[0]["den"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; x0 = this.model.dstate; ns = prod(size(x0)); PREVAR_scicos_context = PREVAR_scicos_context; PREVAR_scicos_context.z = %z; while (true) { [ok,this.num,this.den,exprs] = scicos_getvalue("Set discrete SISO transfer parameters",["Numerator (z)","Denominator (z)"],list("pol",1,"pol",1),exprs); if (!ok) { break; } if (degree(this.num)>degree(this.den)) { message("Transfer function must be proper"); ok = false; } if (ok) { H = cont_frm(this.num,this.den); [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()]]; this.model.dstate = x0; this.model.rpar = rpar; if (norm(D,1)!=0) { mmm = [true,false]; } else { mmm = [false,false]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } this.x.graphics = graphics; this.x.model = this.model; break; } } this.x.model.firing = []; return new BasicBlock(this.x); } } /* 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"]]; this.model = scicos_model(); this.model.sim = new ScilabString(["dsslti"]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = x0.slice(); this.model.rpar = [[A.slice()],[B.slice()],[C.slice()],[D.slice()]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2.5,2.5],this.model,exprs,gr_i); return new BasicBlock(this.x); } DLR_f.prototype.details = function DLR_f() { return this.x; } DLR_f.prototype.get = function DLR_f() { var options = { num:["Numerator (z)",this.num], den:["Denominator (z)",this.den], } return options; } DLR_f.prototype.set = function DLR_f() { this.num = arguments[0]["num"] this.den = arguments[0]["den"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; x0 = this.model.dstate; ns = prod(size(x0)); PREVAR_scicos_context = PREVAR_scicos_context; PREVAR_scicos_context.z = %z; while (true) { [ok,this.num,this.den,exprs] = scicos_getvalue("Set discrete SISO transfer parameters",["Numerator (z)","Denominator (z)"],list("pol",1,"pol",1),exprs); if (!ok) { break; } if (degree(this.num)>degree(this.den)) { message("Transfer must be proper"); ok = false; } if (ok) { H = cont_frm(this.num,this.den); [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()]]; this.model.dstate = x0; this.model.rpar = rpar; if (norm(D,1)!=0) { mmm = [true,false]; } else { mmm = [false,false]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } this.x.graphics = graphics; this.x.model = this.model; break; } } this.x.model.firing = []; return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DLSS.sci" */ function DLSS() { DLSS.prototype.define = function DLSS() { this.x0 = 0; this.A = -1; this.B = 1; this.C = 1; this.D = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["dsslti4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = this.x0.slice(); this.model.rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[strcat(sci2exp(this.A))],[strcat(sci2exp(this.B))],[strcat(sci2exp(this.C))],[strcat(sci2exp(this.D))],[strcat(sci2exp(this.x0))]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DLSS.prototype.details = function DLSS() { return this.x; } DLSS.prototype.get = function DLSS() { var options = { A:["A matrix",this.A], B:["B matrix",this.B], C:["C matrix",this.C], D:["D matrix",this.D], x0:["Initial state",this.x0], } return options; } DLSS.prototype.set = function DLSS() { this.A = parseFloat(arguments[0]["A"]) this.B = parseFloat(arguments[0]["B"]) this.C = parseFloat(arguments[0]["C"]) this.D = parseFloat(arguments[0]["D"]) this.x0 = parseFloat(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; if (size(exprs,"*")==7) { exprs = exprs[[1:4,7]-1]; } this.model = arg1.model; while (true) { [ok,this.A,this.B,this.C,this.D,this.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; } out = size(this.C,1); if (out==0) { out = []; } in1 = size(this.B,2); if (in1==0) { in1 = []; } [ms,ns] = size(this.A); okD = true; if (size(this.D,"*")!=size(this.C,1)*size(this.B,2)) { if (size(this.D,"*")==1) { this.D = this.D*ones(this.C*this.B); } else if (size(this.D,"*")==0) { this.D = zeros(this.C*this.B); } else { okD = false; } } if (ms!=ns||!okD) { message(_("Matrix A is not square or D has wrong dimension")); } else { [this.model,graphics,ok] = check_io(this.model,graphics,in1,out,1,[]); if (ok) { graphics.exprs = exprs; rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; if (this.D!=[]) { if (norm(this.D,1)!=0) { mmm = [true,false]; } else { mmm = [false,false]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } } else { this.model.dep_ut = [false,false]; } this.model.dstate = this.x0.slice(); this.model.rpar = rpar; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DLSS_f.sci" */ function DLSS_f() { DLSS_f.prototype.define = function DLSS_f() { this.x0 = 0; this.A = -1; this.B = 1; this.C = 1; this.D = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["dsslti"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = this.x0.slice(); this.model.rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[strcat(sci2exp(this.A))],[strcat(sci2exp(this.B))],[strcat(sci2exp(this.C))],[strcat(sci2exp(this.D))],[strcat(sci2exp(this.x0))]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DLSS_f.prototype.details = function DLSS_f() { return this.x; } DLSS_f.prototype.get = function DLSS_f() { var options = { A:["A matrix",this.A], B:["B matrix",this.B], C:["C matrix",this.C], D:["D matrix",this.D], x0:["Initial state",this.x0], } return options; } DLSS_f.prototype.set = function DLSS_f() { this.A = parseFloat(arguments[0]["A"]) this.B = parseFloat(arguments[0]["B"]) this.C = parseFloat(arguments[0]["C"]) this.D = parseFloat(arguments[0]["D"]) this.x0 = parseFloat(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; if (size(exprs,"*")==7) { exprs = exprs[[1:4,7]-1]; } this.model = arg1.model; while (true) { [ok,this.A,this.B,this.C,this.D,this.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; } out = size(this.C,1); if (out==0) { out = []; } in1 = size(this.B,2); if (in1==0) { in1 = []; } [ms,ns] = size(this.A); if (ms!=ns) { message("A matrix must be square"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,in1,out,1,[]); if (ok) { graphics.exprs = exprs; rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; if (this.D!=[]) { if (norm(this.D,1)!=0) { mmm = [true,false]; } else { mmm = [false,false]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } } else { this.model.dep_ut = [false,false]; } this.model.dstate = this.x0.slice(); this.model.rpar = rpar; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DOLLAR.sci" */ function DOLLAR() { DOLLAR.prototype.define = function DOLLAR() { z = 0; this.inh = 0; in1 = 1; exprs = string([[z],[this.inh]]); this.model = scicos_model(); this.model.sim = list(new ScilabString(["dollar4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.evtin = new ScilabDouble([1-this.inh]); this.model.dstate = new ScilabDouble([z]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DOLLAR.prototype.details = function DOLLAR() { return this.x; } DOLLAR.prototype.get = function DOLLAR() { var options = { a:["initial condition",this.a], inh:["Inherit (no:0, yes:1)",this.inh], } return options; } DOLLAR.prototype.set = function DOLLAR() { this.a = arguments[0]["a"] this.inh = parseFloat(arguments[0]["inh"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")<2) { exprs[2-1] = "0"; } while (true) { [ok,this.a,this.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; } out = [size(this.a,1),size(this.a,2)]; if (out==0) { out = []; } in1 = out; this.model.sim = list(new ScilabString(["dollar4_m"]), new ScilabDouble([4])); this.model.odstate = list(new ScilabDouble([this.a])); this.model.dstate = []; if (this.type[(this.a)==1-1]) { if (isreal(this.a)) { it = 1; ot = 1; if ((size(this.a,1)==1||size(this.a,2)==1)) { this.model.sim = list(new ScilabString(["dollar4"]), new ScilabDouble([4])); this.model.dstate = this.a.slice(); this.model.odstate = list(); } } else { it = 2; ot = 2; } } else if ((typeof(this.a)=="int32")) { it = 3; ot = 3; } else if ((typeof(this.a)=="int16")) { it = 4; ot = 4; } else if ((typeof(this.a)=="int8")) { it = 5; ot = 5; } else if ((typeof(this.a)=="uint32")) { it = 6; ot = 6; } else if ((typeof(this.a)=="uint16")) { it = 7; ot = 7; } else if ((typeof(this.a)=="uint8")) { it = 8; ot = 8; } else { message("type is not recognized"); ok = false; } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),ones(1-this.inh,1),[]); } if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DOLLAR_f.sci" */ function DOLLAR_f() { DOLLAR_f.prototype.define = function DOLLAR_f() { z = 0; this.inh = 0; in1 = 1; exprs = string([[z],[this.inh]]); this.model = scicos_model(); this.model.sim = new ScilabString(["dollar"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.evtin = new ScilabDouble([1-this.inh]); this.model.dstate = new ScilabDouble([z]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DOLLAR_f.prototype.details = function DOLLAR_f() { return this.x; } DOLLAR_f.prototype.get = function DOLLAR_f() { var options = { a:["initial condition",this.a], inh:["Inherit (no:0, yes:1)",this.inh], } return options; } DOLLAR_f.prototype.set = function DOLLAR_f() { this.a = arguments[0]["a"] this.inh = parseFloat(arguments[0]["inh"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")<2) { exprs[2-1] = "0"; } while (true) { [ok,this.a,this.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; } out = size(this.a,"*"); if (out==0) { out = []; } in1 = out; if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,-1,-1,ones(1-this.inh,1),[]); } if (ok) { graphics.exprs = exprs; this.model.dstate = new ScilabDouble([this.a]); this.model.in1 = in1; this.model.out = out; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/DOLLAR_m.sci" */ function DOLLAR_m() { DOLLAR_m.prototype.define = function DOLLAR_m() { z = 0; this.inh = 0; in1 = 1; exprs = string([[z],[this.inh]]); this.model = scicos_model(); this.model.sim = list(new ScilabString(["dollar4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.evtin = new ScilabDouble([1-this.inh]); this.model.dstate = new ScilabDouble([z]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DOLLAR_m.prototype.details = function DOLLAR_m() { return this.x; } DOLLAR_m.prototype.get = function DOLLAR_m() { var options = { a:["initial condition",this.a], inh:["Inherit (no:0, yes:1)",this.inh], } return options; } DOLLAR_m.prototype.set = function DOLLAR_m() { this.a = arguments[0]["a"] this.inh = parseFloat(arguments[0]["inh"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")<2) { exprs[2-1] = "0"; } while (true) { [ok,this.a,this.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; } out = [size(this.a,1),size(this.a,2)]; if (out==0) { out = []; } in1 = out; this.model.sim = list(new ScilabString(["dollar4_m"]), new ScilabDouble([4])); this.model.odstate = list(new ScilabDouble([this.a])); this.model.dstate = []; if ((this.type[this.a-1]==1)) { if (isreal(this.a)) { it = 1; ot = 1; if ((size(this.a,1)==1||size(this.a,2)==1)) { this.model.sim = list(new ScilabString(["dollar4"]), new ScilabDouble([4])); this.model.dstate = this.a.slice(); this.model.odstate = list(); } } else { it = 2; ot = 2; } } else if ((typeof(this.a)=="int32")) { it = 3; ot = 3; } else if ((typeof(this.a)=="int16")) { it = 4; ot = 4; } else if ((typeof(this.a)=="int8")) { it = 5; ot = 5; } else if ((typeof(this.a)=="uint32")) { it = 6; ot = 6; } else if ((typeof(this.a)=="uint16")) { it = 7; ot = 7; } else if ((typeof(this.a)=="uint8")) { it = 8; ot = 8; } else { message("type is not recognized"); ok = false; } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),ones(1-this.inh,1),[]); } if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/GAINBLK.sci" */ function GAINBLK() { GAINBLK.prototype.define = function GAINBLK() { this.gain = 1; in1 = -1; out = -1; in2 = -2; out2 = -2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["gainblk"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.in2 = new ScilabDouble([in2]); this.model.out2 = new ScilabDouble([out2]); this.model.rpar = new ScilabDouble([this.gain]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [strcat(sci2exp(this.gain))]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GAINBLK.prototype.details = function GAINBLK() { return this.x; } GAINBLK.prototype.get = function GAINBLK() { var options = { gain:["Gain",this.gain], over:["Do On Overflow(0=Nothing 1=Saturate 2=Error)",this.over], } return options; } GAINBLK.prototype.set = function GAINBLK() { this.gain = parseFloat(arguments[0]["gain"]) this.over = arguments[0]["over"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==1) { exprs = [[exprs],[sci2exp(0)]]; } while (true) { [ok,this.gain,this.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 (this.gain==[]) { message("Gain must have at least one element"); } else { if (typeof(this.gain)=="constant") { if (isreal(this.gain)) { it = 1; ot = 1; this.model.sim = list(new ScilabString(["gainblk"]), new ScilabDouble([4])); this.model.rpar = this.gain.slice(); this.model.opar = list(); } else { message("type is not supported"); ok = false; } } else { if ((this.over==0)) { if ((typeof(this.gain)=="int32")) { ot = 3; this.model.sim = list(new ScilabString(["gainblk_i32n"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="int16")) { ot = 4; this.model.sim = list(new ScilabString(["gainblk_i16n"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="int8")) { ot = 5; this.model.sim = list(new ScilabString(["gainblk_i8n"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint32")) { ot = 6; this.model.sim = list(new ScilabString(["gainblk_ui32n"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint16")) { ot = 7; this.model.sim = list(new ScilabString(["gainblk_ui16n"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint8")) { ot = 8; this.model.sim = list(new ScilabString(["gainblk_ui8n"]), new ScilabDouble([4])); } else { message("type is not supported."); ok = false; } } else if ((this.over==1)) { if ((typeof(this.gain)=="int32")) { ot = 3; this.model.sim = list(new ScilabString(["gainblk_i32s"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="int16")) { ot = 4; this.model.sim = list(new ScilabString(["gainblk_i16s"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="int8")) { ot = 5; this.model.sim = list(new ScilabString(["gainblk_i8s"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint32")) { ot = 6; this.model.sim = list(new ScilabString(["gainblk_ui32s"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint16")) { ot = 7; this.model.sim = list(new ScilabString(["gainblk_ui16s"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint8")) { ot = 8; this.model.sim = list(new ScilabString(["gainblk_ui8s"]), new ScilabDouble([4])); } else { message("type is not supported."); ok = false; } } else if ((this.over==2)) { if ((typeof(this.gain)=="int32")) { ot = 3; this.model.sim = list(new ScilabString(["gainblk_i32e"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="int16")) { ot = 4; this.model.sim = list(new ScilabString(["gainblk_i16e"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="int8")) { ot = 5; this.model.sim = list(new ScilabString(["gainblk_i8e"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint32")) { ot = 6; this.model.sim = list(new ScilabString(["gainblk_ui32e"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint16")) { ot = 7; this.model.sim = list(new ScilabString(["gainblk_ui16e"]), new ScilabDouble([4])); } else if ((typeof(this.gain)=="uint8")) { ot = 8; this.model.sim = list(new ScilabString(["gainblk_ui8e"]), new ScilabDouble([4])); } else { message("type is not an integer."); ok = false; } } else { message("Do on Overflow must be 0,1,2"); ok = false; } this.model.rpar = []; this.model.opar = list(this.gain.slice()); } if (ok) { [out,in1] = size(this.gain); if (out*in1!=1) { [this.model,graphics,ok] = set_io(this.model,graphics,list([in1,-1],ot),list([out,-1],ot),[],[]); } else { [this.model,graphics,ok] = set_io(this.model,graphics,list([-1,-2],ot),list([-1,-2],ot),[],[]); } } if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/GAINBLK_f.sci" */ function GAINBLK_f() { GAINBLK_f.prototype.define = function GAINBLK_f() { this.gain = 1; in1 = 1; out = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["gain"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.rpar = new ScilabDouble([this.gain]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [strcat(sci2exp(this.gain))]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GAINBLK_f.prototype.details = function GAINBLK_f() { return this.x; } GAINBLK_f.prototype.get = function GAINBLK_f() { var options = { gain:["Gain",this.gain], } return options; } GAINBLK_f.prototype.set = function GAINBLK_f() { this.gain = parseFloat(arguments[0]["gain"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.gain,exprs] = scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); if (!ok) { break; } if (this.gain==[]) { message("Gain must have at least one element"); } else { [out,in1] = size(this.gain); [this.model,graphics,ok] = check_io(this.model,graphics,in1,out,[],[]); if (ok) { graphics.exprs = exprs; this.model.rpar = this.gain.slice(); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/GAIN_f.sci" */ function GAIN_f() { GAIN_f.prototype.define = function GAIN_f() { this.gain = 1; in1 = 1; out = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["gain"]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([this.gain]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(sci2exp(this.gain))],[strcat(sci2exp(in1))],[strcat(sci2exp(out))]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GAIN_f.prototype.details = function GAIN_f() { return this.x; } GAIN_f.prototype.get = function GAIN_f() { var options = { gain:["Gain",this.gain], } return options; } GAIN_f.prototype.set = function GAIN_f() { this.gain = parseFloat(arguments[0]["gain"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.gain,exprs] = scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); if (!ok) { break; } if (this.gain==[]) { message("Gain must have at least one element"); } else { [out,in1] = size(this.gain); [this.model,graphics,ok] = check_io(this.model,graphics,in1,out,[],[]); if (ok) { graphics.exprs = exprs; this.model.rpar = this.gain.slice(); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/INTEGRAL.sci" */ function INTEGRAL() { INTEGRAL.prototype.define = function INTEGRAL() { this.maxp = 1; minp = -1; rpar = []; this.model = scicos_model(); this.model.state = new ScilabDouble([0]); this.model.sim = list(new ScilabString(["integral_func"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = rpar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = string([[0],[0],[0],[this.maxp],[minp]]); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.id = "1/s"; return new BasicBlock(this.x); } INTEGRAL.prototype.details = function INTEGRAL() { return this.x; } INTEGRAL.prototype.get = function INTEGRAL() { var options = { x0:["Initial Condition",this.x0], reinit:["With re-intialization (1:yes, 0:no)",this.reinit], satur:["With saturation (1:yes, 0:no)",this.satur], maxp:["Upper limit",this.maxp], lowp:["Lower limit",this.lowp], } return options; } INTEGRAL.prototype.set = function INTEGRAL() { this.x0 = inverse(arguments[0]["x0"]) this.reinit = parseFloat(arguments[0]["reinit"]) this.satur = parseFloat(arguments[0]["satur"]) this.maxp = parseFloat(arguments[0]["maxp"]) this.lowp = arguments[0]["lowp"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.x0,this.reinit,this.satur,this.maxp,this.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; } this.x0 = this.x0.slice(); this.maxp = this.maxp.slice(); this.lowp = this.lowp.slice(); if (this.reinit!=0) { this.reinit = 1; } if (this.satur!=0) { this.satur = 1; if (size(this.maxp,"*")==1) { this.maxp = this.maxp*ones(this.x0); } if (size(this.lowp,"*")==1) { this.lowp = this.lowp*ones(this.x0); } if ((size(this.x0,1)!=size(this.maxp,1)||size(this.x0,1)!=size(this.lowp,1))) { message("x0 and Upper limit and Lower limit must have same size"); ok = false; } else if (or(this.maxp<=this.lowp)) { message("Upper limits must be > Lower limits"); ok = false; } else if (or(this.x0>this.maxp)||or(this.x0 Lower limits"); ok = false; } else if (or(this.x0>this.maxp)||or(this.x0 Lower limits"); ok = false; } else if (or(real(this.x0)>real(this.maxp))||or(real(this.x0)imag(this.maxp))||or(imag(this.x0)8))) { message("Datatype is not supported"); ok = false; } if (ok) { in1 = [this.model.in1,this.model.in2]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,this.it),list(in1,this.it),1,[]); if (ok) { graphics.exprs = exprs; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/SAMPLEHOLD_f.sci" */ function SAMPLEHOLD_f() { SAMPLEHOLD_f.prototype.define = function SAMPLEHOLD_f() { in1 = -1; this.model = scicos_model(); this.model.sim = new ScilabString(["samphold"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.evtin = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [true,false]; gr_i = []; this.x = standard_define([2,2],this.model," ",gr_i); return new BasicBlock(this.x); } SAMPLEHOLD_f.prototype.details = function SAMPLEHOLD_f() { return this.x; } SAMPLEHOLD_f.prototype.get = function SAMPLEHOLD_f() { var options = { } return options; } SAMPLEHOLD_f.prototype.set = function SAMPLEHOLD_f() { this.x = arg1; this.x.model.firing = []; return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/SOM_f.sci" */ function SOM_f() { SOM_f.prototype.define = function SOM_f() { sgn = [[1],[1],[1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["sum"]), new ScilabDouble([2])); this.model.in1 = [[-1],[-1],[-1]]; this.model.out = new ScilabDouble([-1]); this.model.rpar = sgn; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(1)],[sci2exp(sgn)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SOM_f.prototype.details = function SOM_f() { return this.x; } SOM_f.prototype.get = function SOM_f() { var options = { } return options; } SOM_f.prototype.set = function SOM_f() { this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; if (size(exprs,"*")==2) { exprs = exprs[2-1]; } if (size(exprs,"*")!=3) { exprs = string(this.model.rpar); } if (graphics.flip) { labs = ["down","left","up"]; } else { 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); return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/SUMMATION.sci" */ function SUMMATION() { SUMMATION.prototype.define = function SUMMATION() { this.sgn = [[1],[-1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["summation"]), new ScilabDouble([4])); this.model.in1 = [[-1],[-1]]; this.model.out = new ScilabDouble([-1]); this.model.in2 = [[-2],[-2]]; this.model.out2 = new ScilabDouble([-2]); this.model.ipar = this.sgn; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = sci2exp(this.sgn); gr_i = []; this.x = standard_define([2,3],this.model,exprs,gr_i); return new Summation(this.x); } SUMMATION.prototype.details = function SUMMATION() { return this.x; } SUMMATION.prototype.get = function SUMMATION() { var options = { Datatype:["Datatype (1=real double 2=complex 3=int32 ...)",this.Datatype], sgn:["Number of inputs or sign vector (of +1, -1)",this.sgn.toString().replace(/,/g," ")], satur:["Do on Overflow(0=Nothing 1=Saturate 2=Error)",this.satur], } return options; } SUMMATION.prototype.set = function SUMMATION() { this.Datatype = arguments[0]["Datatype"] this.sgn = inverse(arguments[0]["sgn"]) this.satur = arguments[0]["satur"] this.x = arg1; graphics = arg1.graphics; this.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)]]; } while (true) { [ok,this.Datatype,this.sgn,this.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; } this.sgn = this.sgn.slice(); if ((this.satur!=0&&this.satur!=1&&this.satur!=2)) { message("Do on overflow must be 0,1,2"); ok = false; } if (size(this.sgn,1)==1) { if (this.sgn<1) { message("Number of inputs must be > 0"); ok = false; } else if (this.sgn==1) { in1 = -1; in2 = -2; this.sgn = []; nout = 1; nout2 = 1; } else { in1 = -ones(this.sgn,1); in2 = 2*in1; this.sgn = ones(this.sgn,1); nout = -1; nout2 = -2; } } else { if (!and(abs(this.sgn)==1)) { message("Signs can only be +1 or -1"); ok = false; } else { in1 = -ones(size(this.sgn,1),1); in2 = 2*in1; nout = -1; nout2 = -2; } } it = this.Datatype*ones(1,size(in1,1)); ot = this.Datatype; if (this.Datatype==1) { this.model.sim = list(new ScilabString(["summation"]), new ScilabDouble([4])); } else if (this.Datatype==2) { this.model.sim = list(new ScilabString(["summation_z"]), new ScilabDouble([4])); } else if (((this.Datatype<1)||(this.Datatype>8))) { message("Datatype is not supported"); ok = false; } else { if (this.satur==0) { if (this.Datatype==3) { this.model.sim = list(new ScilabString(["summation_i32n"]), new ScilabDouble([4])); } else if (this.Datatype==4) { this.model.sim = list(new ScilabString(["summation_i16n"]), new ScilabDouble([4])); } else if (this.Datatype==5) { this.model.sim = list(new ScilabString(["summation_i8n"]), new ScilabDouble([4])); } else if (this.Datatype==6) { this.model.sim = list(new ScilabString(["summation_ui32n"]), new ScilabDouble([4])); } else if (this.Datatype==7) { this.model.sim = list(new ScilabString(["summation_ui16n"]), new ScilabDouble([4])); } else if (this.Datatype==8) { this.model.sim = list(new ScilabString(["summation_ui8n"]), new ScilabDouble([4])); } } else if (this.satur==1) { if (this.Datatype==3) { this.model.sim = list(new ScilabString(["summation_i32s"]), new ScilabDouble([4])); } else if (this.Datatype==4) { this.model.sim = list(new ScilabString(["summation_i16s"]), new ScilabDouble([4])); } else if (this.Datatype==5) { this.model.sim = list(new ScilabString(["summation_i8s"]), new ScilabDouble([4])); } else if (this.Datatype==6) { this.model.sim = list(new ScilabString(["summation_ui32s"]), new ScilabDouble([4])); } else if (this.Datatype==7) { this.model.sim = list(new ScilabString(["summation_ui16s"]), new ScilabDouble([4])); } else if (this.Datatype==8) { this.model.sim = list(new ScilabString(["summation_ui8s"]), new ScilabDouble([4])); } } else if (this.satur==2) { if (this.Datatype==3) { this.model.sim = list(new ScilabString(["summation_i32e"]), new ScilabDouble([4])); } else if (this.Datatype==4) { this.model.sim = list(new ScilabString(["summation_i16e"]), new ScilabDouble([4])); } else if (this.Datatype==5) { this.model.sim = list(new ScilabString(["summation_i8e"]), new ScilabDouble([4])); } else if (this.Datatype==6) { this.model.sim = list(new ScilabString(["summation_ui32e"]), new ScilabDouble([4])); } else if (this.Datatype==7) { this.model.sim = list(new ScilabString(["summation_ui16e"]), new ScilabDouble([4])); } else if (this.Datatype==8) { this.model.sim = list(new ScilabString(["summation_ui8e"]), new ScilabDouble([4])); } } } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list([in1,in2],it),list([nout,nout2],ot),[],[]); } if (ok) { this.model.rpar = new ScilabDouble([this.satur]); this.model.ipar = new ScilabDouble([this.sgn]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new Summation(this.x); } } /* autogenerated from "macros/Linear/SUM_f.sci" */ function SUM_f() { SUM_f.prototype.define = function SUM_f() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["plusblk"]), new ScilabDouble([2])); this.model.in1 = [[-1],[-1],[-1]]; this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; gr_i = []; exprs = []; this.x = standard_define([1,1],this.model,exprs,gr_i); return new BasicBlock(this.x); } SUM_f.prototype.details = function SUM_f() { return this.x; } SUM_f.prototype.get = function SUM_f() { var options = { } return options; } SUM_f.prototype.set = function SUM_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/TCLSS.sci" */ function TCLSS() { TCLSS.prototype.define = function TCLSS() { this.x0 = 0; this.A = 0; this.B = 1; this.C = 1; this.D = 0; in1 = 1; nx = size(this.x0,"*"); out = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["tcslti4"]), new ScilabDouble([4])); this.model.in1 = [[in1],[nx]]; this.model.out = new ScilabDouble([out]); this.model.evtin = new ScilabDouble([1]); this.model.state = new ScilabDouble([this.x0]); this.model.rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[strcat(sci2exp(this.A))],[strcat(sci2exp(this.B))],[strcat(sci2exp(this.C))],[strcat(sci2exp(this.D))],[strcat(sci2exp(this.x0))]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TCLSS.prototype.details = function TCLSS() { return this.x; } TCLSS.prototype.get = function TCLSS() { var options = { A:["A matrix",this.A], B:["B matrix",this.B], C:["C matrix",this.C], D:["D matrix",this.D], x0:["Initial state",this.x0], } return options; } TCLSS.prototype.set = function TCLSS() { this.A = parseFloat(arguments[0]["A"]) this.B = parseFloat(arguments[0]["B"]) this.C = parseFloat(arguments[0]["C"]) this.D = parseFloat(arguments[0]["D"]) this.x0 = parseFloat(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==7) { exprs = exprs[[1:4,7]-1]; } while (true) { [ok,this.A,this.B,this.C,this.D,this.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(this.C,1); if (out==0) { out = []; } in1 = size(this.B,2); if (in1==0) { in1 = []; } [ms,ns] = size(this.A); if (ms!=ns) { message("A matrix must be square"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,[[in1],[ms]],out,1,[]); if (ok) { graphics.exprs = exprs; rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; if (this.D!=[]) { if (norm(this.D,1)!=0) { mmm = [true,true]; } else { mmm = [false,true]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } } else { this.model.dep_ut = [false,true]; } this.model.state = this.x0.slice(); this.model.rpar = rpar; if (this.D!=[]) { this.model.sim = list(new ScilabString(["tcslti4"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["tcsltj4"]), new ScilabDouble([4])); } this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/TCLSS_f.sci" */ function TCLSS_f() { TCLSS_f.prototype.define = function TCLSS_f() { this.x0 = 0; this.A = 0; this.B = 1; this.C = 1; this.D = 0; in1 = 1; nx = size(this.x0,"*"); out = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["tcslti"]), new ScilabDouble([1])); this.model.in1 = [[in1],[nx]]; this.model.out = new ScilabDouble([out]); this.model.evtin = new ScilabDouble([1]); this.model.state = new ScilabDouble([this.x0]); this.model.rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[strcat(sci2exp(this.A))],[strcat(sci2exp(this.B))],[strcat(sci2exp(this.C))],[strcat(sci2exp(this.D))],[strcat(sci2exp(this.x0))]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TCLSS_f.prototype.details = function TCLSS_f() { return this.x; } TCLSS_f.prototype.get = function TCLSS_f() { var options = { A:["A matrix",this.A], B:["B matrix",this.B], C:["C matrix",this.C], D:["D matrix",this.D], x0:["Initial state",this.x0], } return options; } TCLSS_f.prototype.set = function TCLSS_f() { this.A = parseFloat(arguments[0]["A"]) this.B = parseFloat(arguments[0]["B"]) this.C = parseFloat(arguments[0]["C"]) this.D = parseFloat(arguments[0]["D"]) this.x0 = parseFloat(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==7) { exprs = exprs[[1:4,7]-1]; } while (true) { [ok,this.A,this.B,this.C,this.D,this.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(this.C,1); if (out==0) { out = []; } in1 = size(this.B,2); if (in1==0) { in1 = []; } [ms,ns] = size(this.A); if (ms!=ns) { message("A matrix must be square"); } else { [this.model,graphics,ok] = check_io(this.model,graphics,[[in1],[ms]],out,1,[]); if (ok) { graphics.exprs = exprs; rpar = [[this.A.slice()],[this.B.slice()],[this.C.slice()],[this.D.slice()]]; if (this.D!=[]) { if (norm(this.D,1)!=0) { mmm = [true,true]; } else { mmm = [false,true]; } if (or(this.model.dep_ut!=mmm)) { this.model.dep_ut = mmm; } } else { this.model.dep_ut = [false,true]; } this.model.state = this.x0.slice(); this.model.rpar = rpar; if (this.D!=[]) { this.model.sim = list(new ScilabString(["tcslti"]), new ScilabDouble([1])); } else { this.model.sim = list(new ScilabString(["tcsltj"]), new ScilabDouble([1])); } this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/TIME_DELAY.sci" */ function TIME_DELAY() { TIME_DELAY.prototype.define = function TIME_DELAY() { nin = 1; this.T = 1; this.init = 0; this.N = 1024; this.model = scicos_model(); this.model.sim = list(new ScilabString(["time_delay"]), new ScilabDouble([4])); this.model.in1 = [nin]; this.model.out = new ScilabDouble([nin]); this.model.rpar = [this.T,this.init]; this.model.ipar = new ScilabDouble([this.N]); this.model.blocktype = new ScilabString(["x"]); this.model.dep_ut = [false,true]; exprs = [[string(this.T)],[string(this.init)],[string(this.N)]]; gr_i = []; this.x = standard_define([3.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TIME_DELAY.prototype.details = function TIME_DELAY() { return this.x; } TIME_DELAY.prototype.get = function TIME_DELAY() { var options = { T:["Delay",this.T], init:["initial input",this.init], N:["Buffer size",this.N], } return options; } TIME_DELAY.prototype.set = function TIME_DELAY() { this.T = parseFloat(arguments[0]["T"]) this.init = parseFloat(arguments[0]["init"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; nin = this.model.in1[1-1]; while (true) { [ok,this.T,this.init,this.N,exprs] = scicos_getvalue("Set delay parameters",["Delay","initial input","Buffer size"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.N<2) { message("Buffer must be larger than 2"); ok = false; } if (this.T<=0) { message("Delay must be positive"); ok = false; } if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,[-1],-1,[],[]); } if (ok) { graphics.exprs = exprs; this.model.rpar = [[this.T],[this.init]]; this.model.ipar = new ScilabDouble([this.N]); this.model.dep_ut = [false,true]; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Linear/VARIABLE_DELAY.sci" */ function VARIABLE_DELAY() { VARIABLE_DELAY.prototype.define = function VARIABLE_DELAY() { nin = 1; this.T = 1; this.init = 0; this.N = 1024; this.model = scicos_model(); this.model.sim = list(new ScilabString(["variable_delay"]), new ScilabDouble([4])); this.model.in1 = [[nin],[1]]; this.model.out = new ScilabDouble([nin]); this.model.rpar = [this.T,this.init]; this.model.ipar = new ScilabDouble([this.N]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[string(this.T)],[string(this.init)],[string(this.N)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } VARIABLE_DELAY.prototype.details = function VARIABLE_DELAY() { return this.x; } VARIABLE_DELAY.prototype.get = function VARIABLE_DELAY() { var options = { T:["Max delay",this.T], init:["initial input",this.init], N:["Buffer size",this.N], } return options; } VARIABLE_DELAY.prototype.set = function VARIABLE_DELAY() { this.T = parseFloat(arguments[0]["T"]) this.init = parseFloat(arguments[0]["init"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; nin = this.model.in1[1-1]; while (true) { [ok,this.T,this.init,this.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 (this.N<2) { message("Buffer must be larger than 2"); ok = false; } if (this.T<=0) { message("Delay must be positive"); ok = false; } if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,[[-1],[1]],-1,[],[]); } if (ok) { graphics.exprs = exprs; this.model.rpar = [[this.T],[this.init]]; this.model.ipar = new ScilabDouble([this.N]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/CUMSUM.sci" */ function CUMSUM() { CUMSUM.prototype.define = function CUMSUM() { this.model = scicos_model(); function_name = "cumsum_m"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } CUMSUM.prototype.details = function CUMSUM() { return this.x; } CUMSUM.prototype.get = function CUMSUM() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], decomptyp:["Sum along (0=the first non singleton dimension 1=Rows 2=Columns)",this.decomptyp], } return options; } CUMSUM.prototype.set = function CUMSUM() { this.typ = inverse(arguments[0]["typ"]) this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.decomptyp,this.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; } label = this.lab; if ((this.typ==1)) { if ((this.decomptyp==0)) { function_name = "cumsum_m"; out = [-1,-2]; } else if ((this.decomptyp==1)) { function_name = "cumsum_r"; out = [-1,1]; } else if ((this.decomptyp==2)) { function_name = "cumsum_c"; out = [1,-2]; } else { message("decomposition type is not supported"); ok = false; } it = 1; ot = 1; } else if ((this.typ==2)) { if ((this.decomptyp==0)) { function_name = "cumsumz_m"; } else if ((this.decomptyp==1)) { function_name = "cumsumz_r"; } else if ((this.decomptyp==2)) { function_name = "cumsumz_c"; } else { message("decomposition type is not supported"); ok = false; } it = 2; ot = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/EXTRACT.sci" */ function EXTRACT() { EXTRACT.prototype.define = function EXTRACT() { this.model = scicos_model(); function_name = "extract"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = [1,1,1,1]; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp([1])],[sci2exp([1])]]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } EXTRACT.prototype.details = function EXTRACT() { return this.x; } EXTRACT.prototype.get = function EXTRACT() { var options = { typ:["Datatype (1=real double 2=Complex)",this.typ], a:["Lines to extract",this.a], b:["Columns to extract",this.b], } return options; } EXTRACT.prototype.set = function EXTRACT() { this.typ = inverse(arguments[0]["typ"]) this.a = inverse(arguments[0]["a"]) this.b = inverse(arguments[0]["b"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.a,this.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); this.a = this.a.slice(); this.b = this.b.slice(); if (!ok) { break; } if ((this.typ==1)) { function_name = "extract"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "extractz"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } ma = size(this.a,1); mb = size(this.b,1); if ((ma==0||mb==0)) { message("empty field"); ok = false; } for (i=1;i<=ma;i+=1) { if ((this.a[i-1]<=0)) { message("invalid index"); ok = false; } } for (j=1;j<=mb;j+=1) { if ((this.b[j-1]<=0)) { message("invalid index"); ok = false; } } this.model.ipar = [[this.a],[this.b],[ma],[mb]]; in1 = [this.model.in1,this.model.in2]; out = [ma,mb]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/EXTTRI.sci" */ function EXTTRI() { EXTTRI.prototype.define = function EXTTRI() { this.model = scicos_model(); function_name = "extrilz"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)]]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } EXTTRI.prototype.details = function EXTTRI() { return this.x; } EXTTRI.prototype.get = function EXTTRI() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], decomptyp:["extraction type (1=lower 2=upper 3=diagonal)",this.decomptyp], } return options; } EXTTRI.prototype.set = function EXTTRI() { this.typ = inverse(arguments[0]["typ"]) this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.decomptyp,this.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 = this.lab; if ((this.typ==1)) { if ((this.decomptyp==1)) { function_name = "exttril"; } else if ((this.decomptyp==2)) { function_name = "exttriu"; } else if ((this.decomptyp==3)) { function_name = "extdiag"; } else { message("decomposition type is not supported"); ok = false; } it = 1; ot = 1; } else if ((this.typ==2)) { if ((this.decomptyp==1)) { function_name = "exttrilz"; } else if ((this.decomptyp==2)) { function_name = "exttriuz"; } else if ((this.decomptyp==3)) { function_name = "extdiagz"; } else { message("decomposition type is not supported"); ok = false; } it = 2; ot = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATBKSL.sci" */ function MATBKSL() { MATBKSL.prototype.define = function MATBKSL() { this.model = scicos_model(); function_name = "mat_bksl"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = [[-1],[-1]]; this.model.in2 = [[-2],[-3]]; this.model.intyp = [1,1]; this.model.out = new ScilabDouble([-2]); this.model.out2 = new ScilabDouble([-3]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATBKSL.prototype.details = function MATBKSL() { return this.x; } MATBKSL.prototype.get = function MATBKSL() { var options = { typ:["Datatype (1=real double 2=Complex)",this.typ], } return options; } MATBKSL.prototype.set = function MATBKSL() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set MATBKSL Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_bksl"; ot = 1; it = [1,1]; } else if ((this.typ==2)) { function_name = "matz_bksl"; ot = 2; it = [2,2]; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATCATH.sci" */ function MATCATH() { MATCATH.prototype.define = function MATCATH() { this.model = scicos_model(); function_name = "mat_cath"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = [[-1],[-1]]; this.model.in2 = [[-2],[-3]]; this.model.intyp = [1,1]; this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([0]); this.model.outtyp = new ScilabDouble([-1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(2)]; gr_i = []; this.x = standard_define([2,3],this.model,label,gr_i); return new BasicBlock(this.x); } MATCATH.prototype.details = function MATCATH() { return this.x; } MATCATH.prototype.get = function MATCATH() { var options = { nin:["Number of input",this.nin], } return options; } MATCATH.prototype.set = function MATCATH() { this.nin = arguments[0]["nin"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")>1) { label = "size(evstr("+label[2-1]+"),\'*\')"; } while (true) { [ok,this.nin,this.lab] = scicos_getvalue("Set MATCATH block parameters",["Number of input"],list("vec",1),label); if (!ok) { break; } label = this.lab; in1 = [-1*(ones(this.nin,1)),-(transpose([2:this.nin+1]))]; out = [-1,0]; it = -1*(ones(this.nin,1)); ot = -1; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { funtyp = 4; this.model.sim = list(new ScilabString(["mat_cath"]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATCATV.sci" */ function MATCATV() { MATCATV.prototype.define = function MATCATV() { l1 = [[2],[2]]; this.model = scicos_model(); function_name = "mat_catv"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in2 = [[-1],[-1]]; this.model.in1 = [[-2],[-3]]; this.model.intyp = [-1,-1]; this.model.out = new ScilabDouble([0]); this.model.out2 = new ScilabDouble([-1]); this.model.outtyp = new ScilabDouble([-1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(2)]; gr_i = []; this.x = standard_define([2,3],this.model,label,gr_i); return new BasicBlock(this.x); } MATCATV.prototype.details = function MATCATV() { return this.x; } MATCATV.prototype.get = function MATCATV() { var options = { nin:["Number od inputs",this.nin], } return options; } MATCATV.prototype.set = function MATCATV() { this.nin = arguments[0]["nin"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")>1) { label = "size(evstr("+label[2-1]+"),\'*\')"; } while (true) { [ok,this.nin,this.lab] = scicos_getvalue("Set MATCATV block parameters",["Number od inputs"],list("vec",1),label); if (!ok) { break; } label = this.lab; in1 = [-(transpose([2:this.nin+1])),-ones(this.nin,1)]; it = -ones(this.nin,1); ot = -1; out = [0,-1]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { funtyp = 4; this.model.sim = list(new ScilabString(["mat_catv"]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATDET.sci" */ function MATDET() { MATDET.prototype.define = function MATDET() { this.model = scicos_model(); function_name = "mat_det"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATDET.prototype.details = function MATDET() { return this.x; } MATDET.prototype.get = function MATDET() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } MATDET.prototype.set = function MATDET() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set MATDET Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_det"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "matz_det"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATDIAG.sci" */ function MATDIAG() { MATDIAG.prototype.define = function MATDIAG() { this.model = scicos_model(); function_name = "mat_diag"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATDIAG.prototype.details = function MATDIAG() { return this.x; } MATDIAG.prototype.get = function MATDIAG() { var options = { typ:["Datatype (1=real double 2=Complex)",this.typ], } return options; } MATDIAG.prototype.set = function MATDIAG() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set MATDIAG Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_diag"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "matz_diag"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATDIV.sci" */ function MATDIV() { MATDIV.prototype.define = function MATDIV() { this.model = scicos_model(); function_name = "mat_div"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = [[-1],[-2]]; this.model.in2 = [[-3],[-3]]; this.model.intyp = [1,1]; this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATDIV.prototype.details = function MATDIV() { return this.x; } MATDIV.prototype.get = function MATDIV() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } MATDIV.prototype.set = function MATDIV() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set MATDIV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_div"; ot = 1; it = [1,1]; } else if ((this.typ==2)) { function_name = "matz_div"; ot = 2; it = [2,2]; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATEIG.sci" */ function MATEIG() { MATEIG.prototype.define = function MATEIG() { this.model = scicos_model(); function_name = "mat_vps"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([2]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)]]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATEIG.prototype.details = function MATEIG() { return this.x; } MATEIG.prototype.get = function MATEIG() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], decomptyp:["decomposition type (1=eig values 2=eig values+eig vectors",this.decomptyp], } return options; } MATEIG.prototype.set = function MATEIG() { this.typ = inverse(arguments[0]["typ"]) this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.decomptyp,this.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 = this.lab; if ((this.typ==1)) { if ((this.decomptyp==1)) { function_name = "mat_vps"; out = [-1,1]; ot = 2; } else if ((this.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 ((this.typ==2)) { if ((this.decomptyp==1)) { function_name = "matz_vps"; out = [-1,1]; ot = 2; } else if ((this.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 = [-1,-1]; funtyp = 4; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATEXPM.sci" */ function MATEXPM() { MATEXPM.prototype.define = function MATEXPM() { this.model = scicos_model(); function_name = "mat_expm"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATEXPM.prototype.details = function MATEXPM() { return this.x; } MATEXPM.prototype.get = function MATEXPM() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } MATEXPM.prototype.set = function MATEXPM() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set EXPM Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_expm"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "matz_expm"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATINV.sci" */ function MATINV() { MATINV.prototype.define = function MATINV() { this.model = scicos_model(); function_name = "mat_inv"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATINV.prototype.details = function MATINV() { return this.x; } MATINV.prototype.get = function MATINV() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } MATINV.prototype.set = function MATINV() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set MATINV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_inv"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "matz_inv"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATLU.sci" */ function MATLU() { MATLU.prototype.define = function MATLU() { this.model = scicos_model(); function_name = "mat_lu"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-1]); this.model.intyp = new ScilabDouble([1]); this.model.out = [[-1],[-1]]; this.model.out2 = [[-1],[-1]]; this.model.outtyp = [1,1]; this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = sci2exp(1); gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATLU.prototype.details = function MATLU() { return this.x; } MATLU.prototype.get = function MATLU() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } MATLU.prototype.set = function MATLU() { this.typ = inverse(arguments[0]["typ"]) this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.lab] = scicos_getvalue("Set MATLU block parameters",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_lu"; ot = [1,1]; it = 1; } else if ((this.typ==2)) { function_name = "matz_lu"; ot = [2,2]; it = 2; } else { message("Datatype is not supported"); ok = false; } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list([this.model.in1,this.model.in2],it),list([this.model.out,this.model.out2],ot),[],[]); } if (ok) { funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = this.lab; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATMAGPHI.sci" */ function MATMAGPHI() { MATMAGPHI.prototype.define = function MATMAGPHI() { this.model = scicos_model(); function_name = "matz_abs"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([2]); this.model.out = [[-1],[-1]]; this.model.out2 = [[-2],[-2]]; this.model.outtyp = [1,1]; this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATMAGPHI.prototype.details = function MATMAGPHI() { return this.x; } MATMAGPHI.prototype.get = function MATMAGPHI() { var options = { decomptyp:["decomposition type (1=Complex2MAG&PHI 2=MAG&PHI2Complex)",this.decomptyp], } return options; } MATMAGPHI.prototype.set = function MATMAGPHI() { this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.decomptyp,this.lab] = scicos_getvalue("Set MATMAGPHI block parameters",["decomposition type (1=Complex2MAG&PHI 2=MAG&PHI2Complex)"],list("vec",1),label); if (!ok) { break; } label = this.lab; if ((this.decomptyp==1)) { function_name = "matz_abs"; in1 = [-1,-2]; it = 2; out = [[-1,-2],[-1,-2]]; ot = [1,1]; } else if ((this.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) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATMUL.sci" */ function MATMUL() { MATMUL.prototype.define = function MATMUL() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["matmul_m"]), new ScilabDouble([4])); this.model.in1 = [[-1],[-2]]; this.model.in2 = [[-2],[-3]]; this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-3]); this.model.dep_ut = [true,false]; this.model.ipar = new ScilabDouble([1]); label = [sci2exp(this.model.ipar)]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATMUL.prototype.details = function MATMUL() { return this.x; } MATMUL.prototype.get = function MATMUL() { var options = { dtype:["Datatype(1=real double 2=Complex 3=int32 ...)",this.dtype], rule:["Multiplication rule",this.rule], np:["Do on Overflow(0=Nothing 1=Saturate 2=Error)",this.np], } return options; } MATMUL.prototype.set = function MATMUL() { this.dtype = arguments[0]["dtype"] this.rule = parseFloat(arguments[0]["rule"]) this.np = parseFloat(arguments[0]["np"]) this.x = arg1; graphics = this.x.graphics; label = graphics.exprs; this.model = this.x.model; if (this.model.ipar==[]) { this.model.ipar = new ScilabDouble([1]); } if (size(label,"*")==1) { label[2-1] = sci2exp(1); } if (size(label,"*")==2) { label[3-1] = sci2exp(1); } while (true) { [ok,this.dtype,this.rule,this.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; } this.rule = int(this.rule); if ((this.dtype<1||this.dtype>8)) { message("type is not supported"); ok = false; } if ((this.rule<1||this.rule>3)) { message("Multiplication rule must be only 1,2 or 3"); ok = false; } if ((this.dtype==1||this.dtype==2)) { this.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 (this.rule==2) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul2_m"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul2_s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul2_e"]), new ScilabDouble([4])); } } else if (this.rule==3) { if (this.np==0) { this.model.sim = list(new ScilabString(["matbyscal"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matbyscal_s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matbyscal_e"]), new ScilabDouble([4])); } } else { if ((this.dtype==1)) { this.model.sim = list(new ScilabString(["matmul_m"]), new ScilabDouble([4])); } else if ((this.dtype==2)) { this.model.sim = list(new ScilabString(["matzmul_m"]), new ScilabDouble([4])); } else if (this.dtype==3) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_i32n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_i32s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_i32e"]), new ScilabDouble([4])); } } else if (this.dtype==4) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_i16n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_i16s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_i16e"]), new ScilabDouble([4])); } } else if (this.dtype==5) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_i8n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_i8s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_i8e"]), new ScilabDouble([4])); } } else if (this.dtype==6) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_ui32n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_ui32s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_ui32e"]), new ScilabDouble([4])); } } else if (this.dtype==7) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_ui16n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_ui16s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_ui16e"]), new ScilabDouble([4])); } } else if (this.dtype==8) { if (this.np==0) { this.model.sim = list(new ScilabString(["matmul_ui8n"]), new ScilabDouble([4])); } else if (this.np==1) { this.model.sim = list(new ScilabString(["matmul_ui8s"]), new ScilabDouble([4])); } else { this.model.sim = list(new ScilabString(["matmul_ui8e"]), new ScilabDouble([4])); } } } kmin = TABMIN[this.dtype-1]; kmax = TABMAX[this.dtype-1]; it = this.dtype*ones(1,2); ot = this.dtype; if (this.rule==1) { in1 = [[-1,-2],[-2,-3]]; out = [-1,-3]; } else if (this.rule==2) { in1 = [[-1,-2],[-1,-2]]; out = [-1,-2]; } else { in1 = [[-1,-2],[1,1]]; out = [-1,-2]; } [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { label = exprs; this.model.ipar = new ScilabDouble([this.rule]); this.model.rpar = [[kmin],[kmax]]; graphics.exprs = label; this.x.graphics = graphics; this.x.model = this.model; arg1 = this.x; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATPINV.sci" */ function MATPINV() { MATPINV.prototype.define = function MATPINV() { this.model = scicos_model(); function_name = "mat_pinv"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-2]); this.model.out2 = new ScilabDouble([-1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATPINV.prototype.details = function MATPINV() { return this.x; } MATPINV.prototype.get = function MATPINV() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } MATPINV.prototype.set = function MATPINV() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set MATPINV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_pinv"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "matz_pinv"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATRESH.sci" */ function MATRESH() { MATRESH.prototype.define = function MATRESH() { this.model = scicos_model(); function_name = "mat_reshape"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp([1,1])],[sci2exp([1,1])]]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATRESH.prototype.details = function MATRESH() { return this.x; } MATRESH.prototype.get = function MATRESH() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], l1:["input size",this.l1], out:["output size desired",this.out], } return options; } MATRESH.prototype.set = function MATRESH() { this.typ = inverse(arguments[0]["typ"]) this.l1 = arguments[0]["l1"] this.out = arguments[0]["out"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.l1,this.out,this.lab] = scicos_getvalue("Set MATRESH block parameters",["Datatype(1=real double 2=Complex)","input size","output size desired"],list("vec",-1,"vec",-1,"vec",-1),label); if (!ok) { break; } nout = size(this.out); nin = size(this.l1); if (nout==0) { message("output must have at least one element"); ok = false; } if (nin==0) { message("input must have at least one element"); ok = false; } if (ok) { if (((this.out[1-1]>(this.l1[1-1]*this.l1[2-1])))) { message("the first dimension of the output is too big"); ok = false; } if (((this.out[2-1]>(this.l1[1-1]*this.l1[2-1])))) { message("the second dimension of the output is too big"); ok = false; } if ((((this.out[2-1]*this.out[1-1])>(this.l1[1-1]*this.l1[2-1])))) { message("the dimensions of the output are too big"); ok = false; } } if ((this.typ==1)) { function_name = "mat_reshape"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "matz_reshape"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } if (ok) { label = this.lab; [this.model,graphics,ok] = set_io(this.model,graphics,list(this.l1,it),list(this.out,ot),[],[]); } if (ok) { funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATSING.sci" */ function MATSING() { MATSING.prototype.define = function MATSING() { this.model = scicos_model(); function_name = "mat_sing"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)]]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATSING.prototype.details = function MATSING() { return this.x; } MATSING.prototype.get = function MATSING() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], decomptyp:["decomposition type (1=singular values 2=sing values+matrix U & V)",this.decomptyp], } return options; } MATSING.prototype.set = function MATSING() { this.typ = inverse(arguments[0]["typ"]) this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.decomptyp,this.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 = this.lab; if ((this.typ==1)) { if ((this.decomptyp==1)) { function_name = "mat_sing"; in1 = [-1,-2]; out = [-1,1]; ot = 1; } else if ((this.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 ((this.typ==2)) { if ((this.decomptyp==1)) { function_name = "matz_sing"; in1 = [-1,-2]; out = [-1,1]; ot = 1; } else if ((this.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) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATSUM.sci" */ function MATSUM() { MATSUM.prototype.define = function MATSUM() { this.model = scicos_model(); function_name = "mat_sum"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(0)]]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATSUM.prototype.details = function MATSUM() { return this.x; } MATSUM.prototype.get = function MATSUM() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], decomptyp:["Sum along (0=all 1=lines 2=Columns)",this.decomptyp], } return options; } MATSUM.prototype.set = function MATSUM() { this.typ = inverse(arguments[0]["typ"]) this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.decomptyp,this.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 = this.lab; if ((this.typ==1)) { if ((this.decomptyp==0)) { function_name = "mat_sum"; out = [1,1]; } else if ((this.decomptyp==2)) { function_name = "mat_suml"; out = [-1,1]; } else if ((this.decomptyp==1)) { function_name = "mat_sumc"; out = [1,-2]; } else { message("decomposition type is not supported"); ok = false; } it = 1; ot = 1; } else if ((this.typ==2)) { if ((this.decomptyp==0)) { function_name = "matz_sum"; out = [1,1]; } else if ((this.decomptyp==2)) { function_name = "matz_suml"; out = [-1,1]; } else if ((this.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 = [this.model.in1,this.model.in2]; funtyp = 4; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATTRAN.sci" */ function MATTRAN() { MATTRAN.prototype.define = function MATTRAN() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["mattran_m"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.out = new ScilabDouble([-2]); this.model.out2 = new ScilabDouble([-1]); this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATTRAN.prototype.details = function MATTRAN() { return this.x; } MATTRAN.prototype.get = function MATTRAN() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], rule:["rule (1=.\' 2=\')",this.rule], } return options; } MATTRAN.prototype.set = function MATTRAN() { this.typ = inverse(arguments[0]["typ"]) this.rule = arguments[0]["rule"] this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==1) { label[2-1] = sci2exp(1); } while (true) { [ok,this.typ,this.rule,exprs] = scicos_getvalue("Set MATTRAN Block",["Datatype(1=real double 2=Complex)","rule (1=.\' 2=\')"],list("vec",1,"vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mattran_m"; ot = 1; it = 1; } else if ((this.typ==2)) { if (this.rule==1) { function_name = "matztran_m"; } else { function_name = "mathermit_m"; } ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATZCONJ.sci" */ function MATZCONJ() { MATZCONJ.prototype.define = function MATZCONJ() { this.model = scicos_model(); function_name = "matz_conj"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([2]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([2]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = []; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATZCONJ.prototype.details = function MATZCONJ() { return this.x; } MATZCONJ.prototype.get = function MATZCONJ() { var options = { } return options; } MATZCONJ.prototype.set = function MATZCONJ() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/MATZREIM.sci" */ function MATZREIM() { MATZREIM.prototype.define = function MATZREIM() { this.model = scicos_model(); function_name = "matz_reim"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([2]); this.model.out = [[-1],[-1]]; this.model.out2 = [[-2],[-2]]; this.model.outtyp = [1,1]; this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = sci2exp(1); gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } MATZREIM.prototype.details = function MATZREIM() { return this.x; } MATZREIM.prototype.get = function MATZREIM() { var options = { decomptyp:["decomposition type (1=Complex2Real&Imag 2=Real&Imag2Complex)",this.decomptyp], } return options; } MATZREIM.prototype.set = function MATZREIM() { this.decomptyp = arguments[0]["decomptyp"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.decomptyp,this.lab] = scicos_getvalue("Set MATZREIM block parameters",["decomposition type (1=Complex2Real&Imag 2=Real&Imag2Complex)"],list("vec",1),label); if (!ok) { break; } label = this.lab; if ((this.decomptyp==1)) { function_name = "matz_reim"; in1 = [-1,-2]; it = 2; out = [[-1,-2],[-1,-2]]; ot = [1,1]; } else if ((this.decomptyp==2)) { function_name = "matz_reimc"; 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) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/RICC.sci" */ function RICC() { RICC.prototype.define = function RICC() { this.model = scicos_model(); function_name = "ricc_m"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = [[-1],[-1],[-1]]; this.model.in2 = [[-1],[-1],[-1]]; this.model.intyp = [1,1,1]; this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = [[1],[1]]; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)]]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } RICC.prototype.details = function RICC() { return this.x; } RICC.prototype.get = function RICC() { var options = { tpe:["Type (1=Cont 2=Disc)",this.tpe], mod:["Model(1=Schr 2=sign(cont) inv(disc))",this.mod], } return options; } RICC.prototype.set = function RICC() { this.tpe = arguments[0]["tpe"] this.mod = arguments[0]["mod"] this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.tpe,this.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 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; it = [1,1,1]; ot = 1; label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { this.model.ipar = [[this.tpe],[this.mod]]; graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/ROOTCOEF.sci" */ function ROOTCOEF() { ROOTCOEF.prototype.define = function ROOTCOEF() { this.model = scicos_model(); function_name = "root_coef"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-2]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)]]; gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } ROOTCOEF.prototype.details = function ROOTCOEF() { return this.x; } ROOTCOEF.prototype.get = function ROOTCOEF() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], inp:["input row size",this.inp], } return options; } ROOTCOEF.prototype.set = function ROOTCOEF() { this.typ = inverse(arguments[0]["typ"]) this.inp = arguments[0]["inp"] this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.typ,this.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; } if ((this.typ==1)) { function_name = "root_coef"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "rootz_coef"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } in1 = [this.inp,this.model.in2]; out = [this.inp+1,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/SQRT.sci" */ function SQRT() { SQRT.prototype.define = function SQRT() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["mat_sqrt"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.dep_ut = [true,false]; label = [sci2exp(1)]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } SQRT.prototype.details = function SQRT() { return this.x; } SQRT.prototype.get = function SQRT() { var options = { typ:["Datatype(1=real double 2=Complex)",this.typ], } return options; } SQRT.prototype.set = function SQRT() { this.typ = inverse(arguments[0]["typ"]) this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.typ,exprs] = scicos_getvalue("Set SQRT Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "mat_sqrt"; } else if ((this.typ==2)) { function_name = "matz_sqrt"; } else { message("type is not supported"); ok = false; } it = this.typ; ot = this.typ; in1 = [this.model.in1,this.model.in2]; out = [this.model.out,this.model.out2]; funtyp = 4; if (ok) { label = exprs; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/MatrixOp/SUBMAT.sci" */ function SUBMAT() { SUBMAT.prototype.define = function SUBMAT() { this.model = scicos_model(); function_name = "submat"; funtyp = 4; this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = [[1],[1],[1],[1]]; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)],[sci2exp(1)],[sci2exp(1)],[sci2exp(1)]]; gr_i = []; this.x = standard_define([2.5,2],this.model,label,gr_i); return new BasicBlock(this.x); } SUBMAT.prototype.details = function SUBMAT() { return this.x; } SUBMAT.prototype.get = function SUBMAT() { var options = { typ:["Datatype (1=real double 2=Complex)",this.typ], a:["Starting Row Index",this.a], b:["Ending Row Index",this.b], c:["Starting Column Index",this.c], d:["Ending Column Index",this.d], inp:["Input Dimensions",this.inp], } return options; } SUBMAT.prototype.set = function SUBMAT() { this.typ = inverse(arguments[0]["typ"]) this.a = arguments[0]["a"] this.b = arguments[0]["b"] this.c = arguments[0]["c"] this.d = arguments[0]["d"] this.inp = arguments[0]["inp"] this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.model = arg1.model; if (size(label,"*")==5) { label[6-1] = sci2exp([1,1]); } while (true) { [ok,this.typ,this.a,this.b,this.c,this.d,this.inp,exprs] = scicos_getvalue("Set SUBMAT Block",["Datatype (1=real double 2=Complex)","Starting Row Index","Ending Row Index","Starting Column Index","Ending Column Index","Input Dimensions"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",2),label); if (!ok) { break; } if ((this.typ==1)) { function_name = "submat"; ot = 1; it = 1; } else if ((this.typ==2)) { function_name = "submatz"; ot = 2; it = 2; } else { message("Datatype is not supported"); ok = false; } if ((this.a<=0)||(this.b<=0)||(this.c<=0)||(this.d<=0)) { message("invalid index"); ok = false; } if (this.bthis.inp[1-1]) { message("index of ending row is out of range"); ok = false; } if (this.d>this.inp[2-1]) { message("index of ending column is out of range"); ok = false; } this.model.ipar = [[this.a],[this.b],[this.c],[this.d]]; in1 = [this.inp[1-1],this.inp[2-1]]; out = [(this.b-this.a)+1,(this.d-this.c)+1]; funtyp = 4; label = exprs; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); graphics.exprs = label; arg1.graphics = graphics; arg1.model = this.model; this.x = arg1; break; } } return new BasicBlock(this.x); } } /* 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]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["automat"]), new ScilabDouble([10004])); this.model.in1 = [[2*NX+1],[2*NX+1]]; this.model.out = [[2],[2*NX]]; this.model.state = new ScilabDouble([ones(2*NX,1)]); this.model.nzcross = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.evtout = new ScilabDouble([1]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,true]; this.model.ipar = ipar; this.model.rpar = rpar; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } AUTOMAT.prototype.details = function AUTOMAT() { return this.x; } AUTOMAT.prototype.get = function AUTOMAT() { var options = { } return options; } AUTOMAT.prototype.set = function AUTOMAT() { this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; ipar = this.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); if (!this.ok) { break; } NMode_old = size(exprs,"*")-5; ModifEncore = false; if ((NMode_old>NMode)) { exprs.slice(NMode+6-1,NMode_old+5) = []; ModifEncore = true; } if ((NMode_old1))) { 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 { OUT = [2]; } 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 ((nzcrossNMode) { messagebox([["Number of Modes should be "+string(MaxModes)],["A destination Mode in Mode#"+string(imax)+"\'s targets is invalid!"]],"modal","error"); ModifEncore = true; } if (MaxModesthis.walls[2-1]) { this.walls = this.walls[[2,1]-1]; } if (this.walls[3-1]>this.walls[3-1]) { this.walls = this.walls[[3,4]-1]; } if (n!=size(this.y,"*")||n!=size(this.rpar1,"*")||n!=size(this.rpar2,"*")||n!=size(this.xd,"*")||n!=size(this.yd,"*")) { message("All vectors must have equal size"); ok = false; } else if (!(min([[this.rpar1],[this.rpar2]])>0)) { message("Mass and radius must be >0"); ok = false; } if (!ok) { break; } [this.model,graphics,ok] = check_io(this.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; } } this.model.rpar = [[this.rpar1],[this.rpar2],[this.walls],[this.g],[this.C]]; this.model.ipar = ipar; state = [this.xt,this.xd,this.y,this.yd]; state = transpose(state); this.model.state = state.slice(); this.model.nzcross = new ScilabDouble([n*(n-1)/2+4*n]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/BOUNCEXY.sci" */ function BOUNCEXY() { BOUNCEXY.prototype.define = function BOUNCEXY() { this.win = -1; this.imode = 1; this.clrs = [[1],[2]]; this.siz = [[1],[1]]; this.xmin = -5; this.xmax = 5; this.ymin = 0; this.ymax = 15; this.model = scicos_model(); this.model.sim = list(new ScilabString(["bouncexy"]), new ScilabDouble([4])); this.model.in1 = [[-1],[-1]]; this.model.in2 = [[1],[1]]; this.model.intyp = [[1],[1]]; this.model.evtin = new ScilabDouble([1]); z = []; for (i=1;i<=size(this.clrs,"*");i+=1) { z[6*(i-1)+1-1] = 0; z[6*(i-1)+2-1] = 0; z[6*(i-1)+3-1] = 2*this.siz[i-1]; z[6*(i-1)+4-1] = 2*this.siz[i-1]; z[6*(i-1)+5-1] = 0.000; z[6*(i-1)+6-1] = 64.0*360.000; } this.model.dstate = z; this.model.rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.ipar = [[this.win],[this.imode],[this.clrs.slice()]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; exprs = [[strcat(sci2exp(this.clrs))],[strcat(sci2exp(this.siz))],[strcat(sci2exp(this.win))],[strcat(sci2exp(1))],[strcat(sci2exp(this.xmin))],[strcat(sci2exp(this.xmax))],[strcat(sci2exp(this.ymin))],[strcat(sci2exp(this.ymax))]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } BOUNCEXY.prototype.details = function BOUNCEXY() { return this.x; } BOUNCEXY.prototype.get = function BOUNCEXY() { var options = { clrs:["colors",this.clrs.toString().replace(/,/g," ")], siz:["radii",this.siz.toString().replace(/,/g," ")], win:["window number (-1 for automatic)",this.win], imode:["animation mode (0,1)",this.imode], xmin:["Xmin",this.xmin], xmax:["Xmax",this.xmax], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], } return options; } BOUNCEXY.prototype.set = function BOUNCEXY() { this.clrs = inverse(arguments[0]["clrs"]) this.siz = inverse(arguments[0]["siz"]) this.win = parseFloat(arguments[0]["win"]) this.imode = parseFloat(arguments[0]["imode"]) this.xmin = parseFloat(arguments[0]["xmin"]) this.xmax = parseFloat(arguments[0]["xmax"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; dstate = this.model.dstate; while (true) { [ok,this.clrs,this.siz,this.win,this.imode,this.xmin,this.xmax,this.ymin,this.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; } mess = []; if (size(this.clrs,"*")!=size(this.siz,"*")) { mess = [[mess],["colors and radii must have equal size (number of balls)"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.xmin>=this.xmax) { mess = [[mess],["Xmax must be greater than Xmin"],[" "]]; ok = false; } if (!ok) { message(mess); } else { rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; ipar = [[this.win],[this.imode],[this.clrs.slice()]]; z = []; for (i=1;i<=size(this.clrs,"*");i+=1) { z[6*(i-1)+1-1] = 0; z[6*(i-1)+2-1] = 0; z[6*(i-1)+3-1] = 2*this.siz[i-1]; z[6*(i-1)+4-1] = 2*this.siz[i-1]; z[6*(i-1)+5-1] = 0.000; z[6*(i-1)+6-1] = 64.0*360.000; } this.model.dstate = z; this.model.rpar = rpar; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/BPLATFORM.sci" */ function BPLATFORM() { BPLATFORM.prototype.define = function BPLATFORM() { this.plen = 2; this.csiz = 2; this.phi = 0; this.xmin = -5; this.xmax = 5; this.ymin = 0; this.ymax = 15; this.model = scicos_model(); this.model.sim = list(new ScilabString(["bplatform2"]), new ScilabDouble([5])); this.model.in1 = [[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.rpar = [[this.plen],[this.csiz],[this.phi],[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = string(this.model.rpar); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } BPLATFORM.prototype.details = function BPLATFORM() { return this.x; } BPLATFORM.prototype.get = function BPLATFORM() { var options = { plen:["pendulum length",this.plen], csiz:["cart size (square side)",this.csiz], phi:["slope",this.phi], xmin:["Xmin",this.xmin], xmax:["Xmax",this.xmax], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], } return options; } BPLATFORM.prototype.set = function BPLATFORM() { this.plen = parseFloat(arguments[0]["plen"]) this.csiz = parseFloat(arguments[0]["csiz"]) this.phi = parseFloat(arguments[0]["phi"]) this.xmin = parseFloat(arguments[0]["xmin"]) this.xmax = parseFloat(arguments[0]["xmax"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; dstate = this.model.dstate; while (true) { [ok,this.plen,this.csiz,this.phi,this.xmin,this.xmax,this.ymin,this.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; } mess = []; if (this.plen<=0||this.csiz<=0) { mess = [[mess],["Pendulum length and cart size must be positive."],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.xmin>=this.xmax) { mess = [[mess],["Xmax must be greater than Xmin"],[" "]]; ok = false; } if (!ok) { message(mess); } else { rpar = [[this.plen],[this.csiz],[this.phi],[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.rpar = rpar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/CBLOCK.sci" */ function CBLOCK() { CBLOCK.prototype.define = function CBLOCK() { in1 = 1; out = 1; clkin = []; clkout = []; x0 = []; z0 = []; typ = "c"; auto = []; this.rpar = []; this.ipar = []; funam = "toto"; this.ng = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString([" "]), new ScilabDouble([2004])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.evtin = clkin; this.model.evtout = clkout; this.model.state = x0; this.model.dstate = z0; this.model.rpar = this.rpar; this.model.ipar = this.ipar; this.model.blocktype = new ScilabString([typ]); this.model.firing = auto; this.model.dep_ut = [true,false]; this.model.nzcross = new ScilabDouble([this.ng]); label = list(transpose([funam,"n",sci2exp(in1),sci2exp(out),sci2exp(clkin),sci2exp(clkout),sci2exp(x0),sci2exp(0),sci2exp(z0),sci2exp(this.rpar),sci2exp(this.ipar),sci2exp(auto),"y","n"]),[]); gr_i = []; this.x = standard_define([4,2],this.model,label,gr_i); return new BasicBlock(this.x); } CBLOCK.prototype.details = function CBLOCK() { return this.x; } CBLOCK.prototype.get = function CBLOCK() { var options = { function_name:["simulation function",this.function_name], impli:["is block implicit? (y,n)",this.impli], i:["input ports sizes",this.i], o:["output ports sizes",this.o], ci:["input event ports sizes",this.ci], co:["output events ports sizes",this.co], xx:["initial continuous state",this.xx], ng:["number of zero crossing surfaces",this.ng], z:["initial discrete state",this.z], rpar:["Real parameters vector",this.rpar], ipar:["Integer parameters vector",this.ipar], auto0:["initial firing vector (<0 for no firing)",this.auto0], depu:["direct feedthrough (y or n)",this.depu], dept:["time dependence (y or n)",this.dept], } return options; } CBLOCK.prototype.set = function CBLOCK() { this.function_name = arguments[0]["function_name"] this.impli = arguments[0]["impli"] this.i = parseFloat(arguments[0]["i"]) this.o = parseFloat(arguments[0]["o"]) this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.ng = parseFloat(arguments[0]["ng"]) this.z = inverse(arguments[0]["z"]) this.rpar = inverse(arguments[0]["rpar"]) this.ipar = inverse(arguments[0]["ipar"]) this.auto0 = arguments[0]["auto0"] this.depu = parseBoolean(arguments[0]["depu"]) this.dept = parseBoolean(arguments[0]["dept"]) this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; while (true) { [ok,this.function_name,this.impli,this.i,this.o,this.ci,this.co,this.xx,this.ng,this.z,this.rpar,this.ipar,this.auto0,this.depu,this.dept,this.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[1-1] = this.lab; funam = stripblanks(this.function_name); this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); this.ipar = int(this.ipar.slice()); nx = size(this.xx,1); nz = size(this.z,1); this.i = int(this.i.slice()); this.o = int(this.o.slice()); nout = size(this.o,1); this.ci = int(this.ci.slice()); nevin = size(this.ci,1); this.co = int(this.co.slice()); nevout = size(this.co,1); if (part(this.impli,1)=="y") { funtyp = 12004; } else { funtyp = 2004; } if ([[this.ci],[this.co]]!=[]) { if (max([[this.ci],[this.co]])>1) { message("vector event links not supported"); ok = false; } } this.depu = stripblanks(this.depu); if (part(this.depu,1)=="y") { this.depu = true; } else { this.depu = false; } this.dept = stripblanks(this.dept); if (part(this.dept,1)=="y") { this.dept = true; } else { this.dept = false; } dep_ut = [this.depu,this.dept]; if (funam==" ") { break; } if (this.model.sim[1-1]!=funam||sign(size(this.model.state,"*"))!=sign(nx)||sign(size(this.model.dstate,"*"))!=sign(nz)||this.model.nzcross!=this.ng||sign(size(this.model.evtout,"*"))!=sign(nevout)) { tt = []; } tt = label[2-1]; while (true) { [ok,tt,cancel] = CFORTR2(funam,tt); if (!ok) { if (cancel) { break; } } else { [this.model,graphics,ok] = check_io(this.model,graphics,this.i,this.o,this.ci,this.co); if (ok) { this.model.sim = list(new ScilabDouble([funam]), new ScilabDouble([funtyp])); this.model.in1 = new ScilabDouble([this.i]); this.model.out = new ScilabDouble([this.o]); this.model.evtin = new ScilabDouble([this.ci]); this.model.evtout = new ScilabDouble([this.co]); this.model.state = this.xx; this.model.dstate = this.z; this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([this.ipar]); this.model.firing = new ScilabDouble([this.auto0]); this.model.dep_ut = dep_ut; this.model.nzcross = new ScilabDouble([this.ng]); label[2-1] = tt; this.x.model = this.model; graphics.exprs = label; this.x.graphics = graphics; break; } } } if (ok||cancel) { break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/CBLOCK4.sci" */ function CBLOCK4() { CBLOCK4.prototype.define = function CBLOCK4() { funam = "toto"; this.model = scicos_model(); this.model.sim = list(new ScilabString([" "]), new ScilabDouble([2004])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.dep_ut = [true,false]; label = list([[funam],["n"],[sci2exp([this.model.in1,this.model.in2])],[sci2exp(this.model.intyp)],[sci2exp([this.model.out,this.model.out2])],[sci2exp(this.model.outtyp)],[sci2exp(this.model.evtin)],[sci2exp(this.model.evtout)],[sci2exp(this.model.state)],[sci2exp(this.model.dstate)],[sci2exp(this.model.odstate)],[sci2exp(this.model.rpar)],[sci2exp(this.model.ipar)],[sci2exp(this.model.opar)],[sci2exp(this.model.nmode)],[sci2exp(this.model.nzcross)],[sci2exp(this.model.firing)],["y"],["n"]],[]); gr_i = []; this.x = standard_define([4,2],this.model,label,gr_i); return new BasicBlock(this.x); } CBLOCK4.prototype.details = function CBLOCK4() { return this.x; } CBLOCK4.prototype.get = function CBLOCK4() { var options = { function_name:["Simulation function",this.function_name], impli:["Is block implicit? (y,n)",this.impli], in1:["Input ports sizes",this.in1], it:["Input ports type",this.it], out:["Output port sizes",this.out], ot:["Output ports type",this.ot], ci:["Input event ports sizes",this.ci], co:["Output events ports sizes",this.co], xx:["Initial continuous state",this.xx], z:["Initial discrete state",this.z], oz:["Initial object state",this.oz], rpar:["Real parameters vector",this.rpar], ipar:["Integer parameters vector",this.ipar], opar:["Object parameters list",this.opar], nmode:["Number of modes",this.nmode], nzcr:["Number of zero crossings",this.nzcr], auto0:["Initial firing vector (<0 for no firing)",this.auto0], depu:["Direct feedthrough (y or n)",this.depu], dept:["Time dependence (y or n)",this.dept], } return options; } CBLOCK4.prototype.set = function CBLOCK4() { this.function_name = arguments[0]["function_name"] this.impli = arguments[0]["impli"] this.in1 = arguments[0]["in1"] this.it = arguments[0]["it"] this.out = arguments[0]["out"] this.ot = arguments[0]["ot"] this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.z = inverse(arguments[0]["z"]) this.oz = arguments[0]["oz"] this.rpar = inverse(arguments[0]["rpar"]) this.ipar = parseFloat(arguments[0]["ipar"]) this.opar = arguments[0]["opar"] this.nmode = arguments[0]["nmode"] this.nzcr = arguments[0]["nzcr"] this.auto0 = arguments[0]["auto0"] this.depu = parseBoolean(arguments[0]["depu"]) this.dept = parseBoolean(arguments[0]["dept"]) this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; while (true) { [ok,this.function_name,this.impli,this.in1,this.it,this.out,this.ot,this.ci,this.co,this.xx,this.z,this.oz,this.rpar,this.ipar,this.opar,this.nmode,this.nzcr,this.auto0,this.depu,this.dept,this.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; } label[1-1] = this.lab; funam = stripblanks(this.function_name); this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); this.ipar = int(this.ipar.slice()); nx = size(this.xx,1); nz = size(this.z,1); this.ci = int(this.ci.slice()); nevin = size(this.ci,1); this.co = int(this.co.slice()); nevout = size(this.co,1); if (part(this.impli,1)=="y") { funtyp = 12004; } else { funtyp = 2004; } if ([[this.ci],[this.co]]!=[]) { if (max([[this.ci],[this.co]])>1) { message("vector event links not supported"); ok = false; } } if (ok) { this.depu = stripblanks(this.depu); if (part(this.depu,1)=="y") { this.depu = true; } else { this.depu = false; } this.dept = stripblanks(this.dept); if (part(this.dept,1)=="y") { this.dept = true; } else { this.dept = false; } dep_ut = [this.depu,this.dept]; if (funam==" ") { break; } if (this.model.sim[1-1]!=funam||sign(size(this.model.state,"*"))!=sign(nx)||sign(size(this.model.dstate,"*"))!=sign(nz)||this.model.nzcross!=this.nzcr||sign(size(this.model.evtout,"*"))!=sign(nevout)) { tt = []; } tt = label[2-1]; [this.model,graphics,ok] = set_io(this.model,graphics,list(this.in1,this.it),list(this.out,this.ot),this.ci,this.co); } if (ok) { while (true) { [ok,tt,cancel] = this.CC4[funam-1][tt-1]; if (!ok) { if (cancel) { break; } } else { this.model.sim = list(new ScilabDouble([funam]), new ScilabDouble([funtyp])); this.model.state = this.xx; this.model.dstate = this.z; this.model.odstate = new ScilabDouble([this.oz]); this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([this.ipar]); this.model.opar = new ScilabDouble([this.opar]); this.model.firing = new ScilabDouble([this.auto0]); this.model.nzcross = new ScilabDouble([this.nzcr]); this.model.nmode = new ScilabDouble([this.nmode]); this.model.dep_ut = dep_ut; label[2-1] = tt; this.x.model = this.model; graphics.exprs = label; this.x.graphics = graphics; break; } } if (ok||cancel) { break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/CONSTRAINT2_c.sci" */ function CONSTRAINT2_c() { CONSTRAINT2_c.prototype.define = function CONSTRAINT2_c() { this.x0 = [0]; this.xd0 = [0]; this.id = [0]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["constraint_c"]), new ScilabDouble([10004])); this.model.in1 = new ScilabDouble([1]); this.model.out = [[1],[1]]; this.model.state = [[this.x0],[this.xd0]]; this.model.ipar = this.id; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = list(strcat(sci2exp(this.x0)),strcat(sci2exp(this.xd0)),strcat(sci2exp(this.id))); gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CONSTRAINT2_c.prototype.details = function CONSTRAINT2_c() { return this.x; } CONSTRAINT2_c.prototype.get = function CONSTRAINT2_c() { var options = { x0:["Initial guess values of states x",this.x0], xd0:["Initial guess values of derivative x\'",this.xd0], id:["Id(i)=1: if x\'(i) is present in the feedback, else Id(i)=0",this.id], } return options; } CONSTRAINT2_c.prototype.set = function CONSTRAINT2_c() { this.x0 = inverse(arguments[0]["x0"]) this.xd0 = inverse(arguments[0]["xd0"]) this.id = inverse(arguments[0]["id"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { ask_again = false; [ok,this.x0,this.xd0,this.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; } this.x0 = this.x0.slice(); N = size(this.x0,"*"); this.xd0 = this.xd0.slice(); Nxd = size(this.xd0,"*"); this.id = this.id.slice(); Nid = size(this.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 (!((this.id[i-1]==0)||(this.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 ((this.id[i-1]==0)) { this.id[i-1] = -1; } } } if (!ask_again) { graphics.exprs = exprs; this.model.state = [[this.x0],[this.xd0]]; this.model.out = [[N],[N]]; this.model.in1 = new ScilabDouble([N]); this.model.ipar = this.id; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/CONSTRAINT_c.sci" */ function CONSTRAINT_c() { CONSTRAINT_c.prototype.define = function CONSTRAINT_c() { this.x0 = [[0],[0]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["constraint_c"]), new ScilabDouble([10004])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([0]); this.model.state = this.x0; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = "0"; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CONSTRAINT_c.prototype.details = function CONSTRAINT_c() { return this.x; } CONSTRAINT_c.prototype.get = function CONSTRAINT_c() { var options = { } return options; } CONSTRAINT_c.prototype.set = function CONSTRAINT_c() { this.x0 = inverse(arguments[0]["x0"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.x0,exprs] = scicos_getvalue("Set solver block parameters","Initial guess values",list("vec",-1),exprs); if (!ok) { break; } this.x0 = this.x0.slice(); N = size(this.x0,"*"); if (N<=0) { message("number of states (constraints) must be > 0 "); } else { [this.model,graphics,ok] = check_io(this.model,graphics,N,N,[],[]); if (ok) { graphics.exprs = exprs; this.model.state = [[this.x0],[zeros(N,1)]]; this.model.out = new ScilabDouble([N]); this.model.in1 = new ScilabDouble([N]); this.model.ipar = new ScilabDouble([-1*ones(N,1)]); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/DEADBAND.sci" */ function DEADBAND() { DEADBAND.prototype.define = function DEADBAND() { this.minp = -.5; this.maxp = .5; rpar = [[this.maxp],[this.minp]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["deadband"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([2]); this.model.nmode = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = rpar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.maxp)],[string(this.minp)],[string(this.model.nmode)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DEADBAND.prototype.details = function DEADBAND() { return this.x; } DEADBAND.prototype.get = function DEADBAND() { var options = { maxp:["End of dead band",this.maxp], minp:["Start of dead band",this.minp], zeroc:["zero crossing (0:no, 1:yes)",this.zeroc], } return options; } DEADBAND.prototype.set = function DEADBAND() { this.maxp = parseFloat(arguments[0]["maxp"]) this.minp = parseFloat(arguments[0]["minp"]) this.zeroc = arguments[0]["zeroc"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.maxp,this.minp,this.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; } if (this.maxp<=this.minp) { message("Upper limit must be > Lower limit"); } else { rpar = [[this.maxp],[this.minp]]; this.model.rpar = rpar; if (this.zeroc!=0) { this.model.nzcross = new ScilabDouble([2]); this.model.nmode = new ScilabDouble([1]); } else { this.model.nzcross = new ScilabDouble([0]); this.model.nmode = new ScilabDouble([0]); } graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/DEBUG.sci" */ function DEBUG() { DEBUG.prototype.define = function DEBUG() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["%debug_scicos"]), new ScilabDouble([99])); this.model.blocktype = new ScilabString(["d"]); exprs = list("","xcos_debug_gui(flag,block);"); gr_i = []; this.x = standard_define([8,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DEBUG.prototype.details = function DEBUG() { return this.x; } DEBUG.prototype.get = function DEBUG() { var options = { } return options; } DEBUG.prototype.set = function DEBUG() { this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; 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); } break; } else { message([["Error in the instructions"],[lasterror()]]); } } else { ok = false; break; } } if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/DEBUG_SCICOS.sci" */ function DEBUG_SCICOS() { DEBUG_SCICOS.prototype.define = function DEBUG_SCICOS() { this.x = DEBUG("define"); return new BasicBlock(this.x); } DEBUG_SCICOS.prototype.details = function DEBUG_SCICOS() { return this.x; } DEBUG_SCICOS.prototype.get = function DEBUG_SCICOS() { var options = { } return options; } DEBUG_SCICOS.prototype.set = function DEBUG_SCICOS() { arg1.gui = "DEBUG"; [this.x,y,typ] = DEBUG("set",arg1); return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/DIFF_f.sci" */ function DIFF_f() { DIFF_f.prototype.define = function DIFF_f() { this.x0 = [[0],[0]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["diffblk"]), new ScilabDouble([10001])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.state = this.x0; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[strcat(sci2exp(this.x0[1-1]))],[strcat(sci2exp(this.x0[2-1]))]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DIFF_f.prototype.details = function DIFF_f() { return this.x; } DIFF_f.prototype.get = function DIFF_f() { var options = { x0:["Initial state",this.x0.toString().replace(/,/g," ")], xd0:["Initial Derivative",this.xd0], } return options; } DIFF_f.prototype.set = function DIFF_f() { this.x0 = inverse(arguments[0]["x0"]) this.xd0 = arguments[0]["xd0"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.x0,this.xd0,exprs] = scicos_getvalue("Set continuous linear system parameters",["Initial state","Initial Derivative"],list("vec",1,"vec",1),exprs); if (!ok) { break; } graphics.exprs = exprs; this.model.state = [[this.x0.slice()],[this.xd0.slice()]]; this.x.graphics = graphics; this.x.model = this.model; break; } this.x.model.firing = []; return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/DSUPER.sci" */ function DSUPER() { DSUPER.prototype.define = function DSUPER() { return new BasicBlock(this.x); } DSUPER.prototype.details = function DSUPER() { return this.x; } DSUPER.prototype.get = function DSUPER() { var options = { } return options; } DSUPER.prototype.set = function DSUPER() { y = this.needcompile; typ = list(); graphics = arg1.graphics; if ((length(graphics.exprs)==0)) { warnBlockByUID(arg1.model.label,"Invalid masked block."); this.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==[]) { this.x = arg1; return; } context = [arg1.model.rpar.props.context]; [PREVAR_scicos_context,ierr] = script2var(context,PREVAR_scicos_context); if (ierr!=0) { this.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 (this.ok) { this.x = arg1; PREVAR_scicos_context = scicos_context; sblock = this.x.model.rpar; [sblock,%w,needcompile2,this.ok] = do_eval(sblock,list(),scicos_context); y = max(2,this.needcompile,needcompile2); this.x.graphics.exprs[1-1] = exprs; this.x.model.rpar = sblock; } else { this.x = arg1; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/EDGETRIGGER.sci" */ function EDGETRIGGER() { EDGETRIGGER.prototype.define = function EDGETRIGGER() { this.edge = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["edgetrig"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.nzcross = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([sign(this.edge)]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [string(this.edge)]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EDGETRIGGER.prototype.details = function EDGETRIGGER() { return this.x; } EDGETRIGGER.prototype.get = function EDGETRIGGER() { var options = { edge:["rising (1), falling (-1), both (0)",this.edge], } return options; } EDGETRIGGER.prototype.set = function EDGETRIGGER() { this.edge = parseFloat(arguments[0]["edge"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.edge,exprs] = scicos_getvalue("Set edge trigger block parameters",["rising (1), falling (-1), both (0)"],list("vec",1),exprs); if (!ok) { break; } this.model.ipar = new ScilabDouble([sign(this.edge)]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* 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"); 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; this.model = blk.model; graphics.orig = [60,0]; graphics.sz = [60,40]; graphics.exprs = "0"; this.model.ipar = new ScilabDouble([0]); graphics.pin = 5; graphics.pout = 6; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[1-1] = blk; blk = scs_m_1.objs[2-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [160,0]; graphics.sz = [60,40]; graphics.exprs = [["0"],["0"]]; this.model.evtin = []; this.model.nzcross = new ScilabDouble([0]); this.model.nmode = new ScilabDouble([0]); graphics.pin = 6; graphics.peout = [[7],[0]]; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[2-1] = blk; blk = scs_m_1.objs[3-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [0,10]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.pout = 5; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[3-1] = blk; blk = scs_m_1.objs[4-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [170,-60]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.pein = 7; blk.graphics = graphics; blk.model = this.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={}; this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = scs_m_1; gr_i = []; this.x = standard_define([3,2],this.model,[],gr_i); return new BasicBlock(this.x); } EDGE_TRIGGER.prototype.details = function EDGE_TRIGGER() { return this.x; } EDGE_TRIGGER.prototype.get = function EDGE_TRIGGER() { var options = { } return options; } 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(this.xxn,xx)) { this.model = xx.model; model_n = this.xxn.model; if (!is_modelica_block(xx)) { modified = or(this.model.sim!=model_n.sim)||!isequal(this.model.state,model_n.state)||!isequal(this.model.dstate,model_n.dstate)||!isequal(this.model.rpar,model_n.rpar)||!isequal(this.model.ipar,model_n.ipar)||!isequal(this.model.label,model_n.label); if (or(this.model.in1!=model_n.in1)||or(this.model.out!=model_n.out)) { needcompile = 1; } if (or(this.model.firing!=model_n.firing)) { needcompile = 2; } if ((size(this.model.in1,"*")!=size(model_n.in1,"*"))||(size(this.model.out,"*")!=size(model_n.out,"*"))) { needcompile = 4; } if (this.model.sim=="input"||this.model.sim=="output") { if (this.model.ipar!=model_n.ipar) { needcompile = 4; } } if (or(this.model.blocktype!=model_n.blocktype)||or(this.model.dep_ut!=model_n.dep_ut)) { needcompile = 4; } if ((this.model.nzcross!=model_n.nzcross)||(this.model.nmode!=model_n.nmode)) { needcompile = 4; } if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (this.model.sim[1-1]!=model_n.sim[1-1]) { needcompile = 4; } } } } else { modified = or(model_n!=this.model); eq = this.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); } } this.x = arg1; typ = newpar; return new BasicBlock(this.x); } } /* 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]); this.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 = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } ENDBLK.prototype.details = function ENDBLK() { return this.x; } ENDBLK.prototype.get = function ENDBLK() { var options = { } return options; } 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; } } 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(this.xxn,xx)) { this.model = xx.model; model_n = this.xxn.model; if (!is_modelica_block(xx)) { modified = or(this.model.sim!=model_n.sim)||!isequal(this.model.state,model_n.state)||!isequal(this.model.dstate,model_n.dstate)||!isequal(this.model.odstate,model_n.odstate)||!isequal(this.model.rpar,model_n.rpar)||!isequal(this.model.ipar,model_n.ipar)||!isequal(this.model.opar,model_n.opar)||!isequal(this.model.label,model_n.label); if (or(this.model.in1!=model_n.in1)||or(this.model.out!=model_n.out)||or(this.model.in2!=model_n.in2)||or(this.model.out2!=model_n.out2)||or(this.model.outtyp!=model_n.outtyp)||or(this.model.intyp!=model_n.intyp)) { needcompile = 1; } if (or(this.model.firing!=model_n.firing)) { needcompile = 2; } if ((size(this.model.in1,"*")!=size(model_n.in1,"*"))||(size(this.model.out,"*")!=size(model_n.out,"*"))||(size(this.model.evtin,"*")!=size(model_n.evtin,"*"))) { needcompile = 4; } if (this.model.sim=="input"||this.model.sim=="output") { if (this.model.ipar!=model_n.ipar) { needcompile = 4; } } if (or(this.model.blocktype!=model_n.blocktype)||or(this.model.dep_ut!=model_n.dep_ut)) { needcompile = 4; } if ((this.model.nzcross!=model_n.nzcross)||(this.model.nmode!=model_n.nmode)) { needcompile = 4; } if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (this.model.sim[1-1]!=model_n.sim[1-1]) { needcompile = 4; } } } } else { modified = or(model_n!=this.model); eq = this.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); } } this.x = arg1; typ = newpar; return new BasicBlock(this.x); } } /* 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; this.model = blk.model; graphics.orig = [80,0]; graphics.sz = [60,40]; graphics.exprs = [["0"],["0"]]; this.model.evtin = []; this.model.nzcross = new ScilabDouble([0]); this.model.nmode = new ScilabDouble([0]); graphics.pin = 7; graphics.peout = [[5],[6]]; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[1-1] = blk; blk = scs_m_1.objs[2-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [80,-80]; graphics.sz = [80,40]; graphics.pein = [[5],[6]]; graphics.peout = 8; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[2-1] = blk; blk = scs_m_1.objs[3-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [0,10]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.pout = 7; blk.graphics = graphics; blk.model = this.model; scs_m_1.objs[3-1] = blk; blk = scs_m_1.objs[4-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [110,-140]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.pein = 8; blk.graphics = graphics; blk.model = this.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={}; this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = scs_m_1; gr_i = []; this.x = standard_define([3,2],this.model,[],gr_i); return new BasicBlock(this.x); } Extract_Activation.prototype.details = function Extract_Activation() { return this.x; } Extract_Activation.prototype.get = function Extract_Activation() { var options = { } return options; } Extract_Activation.prototype.set = function Extract_Activation() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/HYSTHERESIS.sci" */ function HYSTHERESIS() { HYSTHERESIS.prototype.define = function HYSTHERESIS() { in1 = 1; ipar = [0]; this.nzz = 2; rpar = [[1],[0],[1],[0]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["hystheresis"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([1]); this.model.rpar = rpar; this.model.nzcross = new ScilabDouble([this.nzz]); this.model.nmode = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(rpar)],[string(sign(this.nzz))]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } HYSTHERESIS.prototype.details = function HYSTHERESIS() { return this.x; } HYSTHERESIS.prototype.get = function HYSTHERESIS() { var options = { high_lim:["switch on at",this.high_lim], low_lim:["switch off at",this.low_lim], out_high:["output when on",this.out_high], out_low:["output when off",this.out_low], nzz:["use zero crossing: yes (1), no (0)",this.nzz], } return options; } HYSTHERESIS.prototype.set = function HYSTHERESIS() { this.high_lim = arguments[0]["high_lim"] this.low_lim = arguments[0]["low_lim"] this.out_high = arguments[0]["out_high"] this.out_low = arguments[0]["out_low"] this.nzz = parseFloat(arguments[0]["nzz"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.high_lim,this.low_lim,this.out_high,this.out_low,this.nzz,exprs] = scicos_getvalue("Set parameters",["switch on at","switch off at","output when on","output when off","use zero crossing: yes (1), no (0)"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.low_lim>this.high_lim) { message("switch on value must be larger than switch off value"); } else { graphics.exprs = exprs; this.model.rpar = transpose([this.high_lim,this.low_lim,this.out_high,this.out_low]); if (this.nzz>0) { this.nzz = 2; } this.model.nzcross = new ScilabDouble([this.nzz]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/IMPSPLIT_f.sci" */ function IMPSPLIT_f() { IMPSPLIT_f.prototype.define = function IMPSPLIT_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["limpsplit"]); mo = modelica(); mo.model = "limpsplit"; mo.inputs = "n"; mo.outputs = [["n"],["n"]]; this.model.equations = new ScilabDouble([mo]); this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"*"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"*"),1)]); this.x = standard_define([1,1]/3,this.model,[],[]); this.x.graphics.in_implicit = ["I"]; this.x.graphics.out_implicit = ["I","I"]; return new BasicBlock(this.x); } IMPSPLIT_f.prototype.details = function IMPSPLIT_f() { return this.x; } IMPSPLIT_f.prototype.get = function IMPSPLIT_f() { var options = { } return options; } IMPSPLIT_f.prototype.set = function IMPSPLIT_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/LOGICAL_OP.sci" */ function LOGICAL_OP() { LOGICAL_OP.prototype.define = function LOGICAL_OP() { in1 = [[-1],[-1]]; ipar = [0]; this.nin = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["logicalop"]), new ScilabDouble([4])); this.model.in1 = in1; this.model.out = new ScilabDouble([-1]); this.model.ipar = ipar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.nin)],[string(ipar)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } LOGICAL_OP.prototype.details = function LOGICAL_OP() { return this.x; } LOGICAL_OP.prototype.get = function LOGICAL_OP() { var options = { nin:["number of inputs",this.nin], rule:["Operator: AND (0), OR (1), NAND (2), NOR (3), XOR (4), NOT (5)",this.rule], Datatype:["Datatype (1=double 3=int32 ...)",this.Datatype], tp:["Bitwise Rule(0=No 1=yes)",this.tp], } return options; } LOGICAL_OP.prototype.set = function LOGICAL_OP() { this.nin = parseFloat(arguments[0]["nin"]) this.rule = parseFloat(arguments[0]["rule"]) this.Datatype = arguments[0]["Datatype"] this.tp = parseFloat(arguments[0]["tp"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,1)==2) { exprs = [[exprs],[sci2exp(1)],[sci2exp(0)]]; } while (true) { [ok,this.nin,this.rule,this.Datatype,this.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; } this.nin = int(this.nin); this.rule = int(this.rule); this.tp = int(this.tp); if (this.nin<1) { message("Number of inputs must be >=1 "); ok = false; } else if ((this.rule<0)||(this.rule>5)) { message("Incorrect operator "+string(this.rule)+" ; must be 0 to 5."); ok = false; } else if ((this.rule==5)&&(this.nin>1)) { message("Only one input allowed for NOT operation"); this.nin = 1; } else if (((this.Datatype==1)&&(this.tp!=0))) { message("Bitwise Rule is only activated when Data type is integer"); ok = false; } if (ok) { if ((this.tp!=0)) { this.tp = 1; } if (this.Datatype==1) { this.model.sim = list(new ScilabString(["logicalop"]), new ScilabDouble([4])); this.model.ipar = [this.rule]; } else { if (this.Datatype==3) { this.model.sim = list(new ScilabString(["logicalop_i32"]), new ScilabDouble([4])); } else if (this.Datatype==4) { this.model.sim = list(new ScilabString(["logicalop_i16"]), new ScilabDouble([4])); } else if (this.Datatype==5) { this.model.sim = list(new ScilabString(["logicalop_i8"]), new ScilabDouble([4])); } else if (this.Datatype==6) { this.model.sim = list(new ScilabString(["logicalop_ui32"]), new ScilabDouble([4])); } else if (this.Datatype==7) { this.model.sim = list(new ScilabString(["logicalop_ui16"]), new ScilabDouble([4])); } else if (this.Datatype==8) { this.model.sim = list(new ScilabString(["logicalop_ui8"]), new ScilabDouble([4])); } else { message("Datatype is not supported"); ok = false; } this.model.ipar = [[this.rule],[this.tp]]; } if (ok) { it = this.Datatype*ones(this.nin,1); ot = this.Datatype; in1 = [-ones(this.nin,1),-2*ones(this.nin,1)]; if ((this.rule!=5)&&(this.nin==1)) { out = [1,1]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } else { out = [-1,-2]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } } if (ok) { if (this.rule==0) { label = "AND"; } else if (this.rule==1) { label = "OR"; } else if (this.rule==2) { label = "NAND"; } else if (this.rule==3) { label = "NOR"; } else if (this.rule==4) { label = "XOR"; } else if (this.rule==5) { label = "NOT"; } graphics.exprs = exprs; graphics.style = ["blockWithLabel;displayedLabel="+label]; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/MBLOCK.sci" */ function MBLOCK() { MBLOCK.prototype.define = function MBLOCK() { this.in1 = ["u1"]; this.intype = ["I"]; this.out = [["y1"],["y2"]]; this.outtype = [["I"],["E"]]; param = [["R"],["L"]]; paramv = list(0.1,.0001); this.pprop = [[0],[0]]; nameF = "generic"; 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(this.pprop.slice()),nameF,[]); this.model = scicos_model(); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; this.model.rpar = []; for (i=1;i<=lstsize(paramv);i+=1) { this.model.rpar = [[this.model.rpar],[paramv[i-1].slice()]]; } mo = modelica(); mo.model = nameF; mo.parameters = list(param,paramv); this.model.sim = list(new ScilabString([mo.model]), new ScilabDouble([30004])); mo.inputs = this.in1; mo.outputs = this.out; this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"r"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"r"),1)]); this.model.equations = mo; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); this.x.graphics.in_implicit = this.intype; this.x.graphics.out_implicit = this.outtype; return new BasicBlock(this.x); } MBLOCK.prototype.details = function MBLOCK() { return this.x; } MBLOCK.prototype.get = function MBLOCK() { var options = { Tin:["Input variables: ",this.Tin], Tintype:["Input variables types: ",this.Tintype], Tout:["Output variables: ",this.Tout], Touttype:["Output variables types:",this.Touttype], Tparam:["Parameters in Modelica:",this.Tparam], pprop:["Parameters properties: ",this.pprop], Tfunam:["Function name: ",this.Tfunam], } return options; } MBLOCK.prototype.set = function MBLOCK() { this.Tin = arguments[0]["Tin"] this.Tintype = arguments[0]["Tintype"] this.Tout = arguments[0]["Tout"] this.Touttype = arguments[0]["Touttype"] this.Tparam = arguments[0]["Tparam"] this.pprop = inverse(arguments[0]["pprop"]) this.Tfunam = arguments[0]["Tfunam"] this.lab_1 = arguments[0]["lab_1"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; exprs = graphics.exprs; if (this.type[exprs-1]==15) { paramv = list(); this.pprop = []; for (i=1;i<=size(this.model.rpar,"*");i+=1) { paramv[$+1-1] = string(this.model.rpar[i-1]); this.pprop[$+1-1] = 0; } exprs = tlist(["MBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],exprs[1-1][1-1],exprs[1-1][2-1],exprs[1-1][3-1],exprs[1-1][4-1],exprs[1-1][5-1],paramv,sci2exp(this.pprop.slice()),exprs[1-1][7-1],exprs[2-1]); } this.lab_1 = list(exprs.in1,exprs.intype,exprs.out,exprs.outtype,exprs.param,exprs.pprop,exprs.nameF); lab_2 = exprs.paramv; while (true) { [ok,this.Tin,this.Tintype,this.Tout,this.Touttype,this.Tparam,this.pprop,this.Tfunam,this.lab_1] = scicos_getvalue("Set Modelica generic block parameters",["Input variables: ","Input variables types: ","Output variables: ","Output variables types:","Parameters in Modelica:","Parameters properties: ","Function name: "],list("str",-1,"str",-1,"str",-1,"str",-1,"str",-1,"vec",-1,"str",-1),this.lab_1); if (!ok) { break; } ierr = execstr("in=stripblanks(evstr(Tin)); intype=stripblanks(evstr(Tintype)); out=stripblanks(evstr(Tout)); outtype=stripblanks(evstr(Touttype)); param=stripblanks(evstr(Tparam)); funam=stripblanks(Tfunam)","errcatch"); if (ierr!=0) { messagebox("Error in evaluation of variables.","modal","error"); ok = false; } if (ok) { for (i=1;i<=size(this.in1,"*");i+=1) { r = false; ierr = execstr("r=validvar(in(i))","errcatch"); if (!r) { ok = false; break; } } if (!ok) { 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(this.out,"*");i+=1) { r = false; ierr = execstr("r=validvar(out(i))","errcatch"); if (!r) { ok = false; break; } } if (!ok) { messagebox([["Invalid variable name for the output "+string(i)+"."],["\""+this.out[i-1]+"\""],["Please choose another variable name."]],"modal","error"); } } if (ok) { param = param.slice(); for (i=1;i<=size(param,"*");i+=1) { r = false; ierr = execstr("r=validvar(param(i))","errcatch"); if (!r) { ok = false; break; } } if (!ok) { messagebox([["Invalid variable name for the parameter "+string(i)+"."],["\""+param[i-1]+"\""],["Please choose another variable name."]],"modal","error"); } } if (ok) { 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; } } } if (ok) { 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; } } } if (ok) { if (or(size(this.intype)!=size(this.in1))) { messagebox("Input variables are not well defined!","modal","error"); ok = false; } } if (ok) { if (or(size(this.outtype)!=size(this.out))) { messagebox("Output variables are not well defined!","modal","error"); ok = false; } } if (ok) { this.pprop = this.pprop.slice(); if ((size(param,"*")!=size(this.pprop,"*"))) { messagebox([["There is differences in"],["size of param and size "],["of param properties."]],"modal","error"); ok = false; } } if (ok) { if (max(this.pprop)>2||min(this.pprop)<0) { messagebox([["Parameters properties must be :"],["0 : for simple paramater,"],["1 : for initial state value,"],["2 : for a fixed initial state value."]],"modal","error"); ok = false; } } if (ok) { if (this.funam=="") { messagebox("The filename is not defined!","modal","error"); ok = false; } } if (ok) { [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(this.intype=="I"); outtypex = find(this.outtype=="I"); [this.model,graphics,ok] = set_io(this.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(this.Tparam); Tparam_sz = size(Tparam_lab,"*"); 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_sz0) { mo.parameters = list(transpose(param),paramv,transpose(this.pprop)); } else { mo.parameters = list(transpose(param),paramv); } this.model.equations = new ScilabDouble([mo]); this.model.rpar = []; for (i=1;i<=lstsize(paramv);i+=1) { this.model.rpar = [[this.model.rpar],[paramv[i-1].slice()]]; } this.model.sim[1] = new ScilabDouble([this.funam]); exprs.in1 = this.lab_1[1-1]; exprs.intype = this.lab_1[2-1]; exprs.out = this.lab_1[3-1]; exprs.outtype = this.lab_1[4-1]; exprs.param = this.lab_1[5-1]; exprs.paramv = list(); if (Tparam_sz!=0) { 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 { for (i=1;i<=size(lab_2,"*");i+=1) { exprs.paramv[i-1] = lab_2[i-1]; } } } exprs.pprop = this.lab_1[6-1]; exprs.nameF = this.lab_1[7-1]; exprs.funtxt = tt; this.x.model = this.model; graphics.gr_i[1-1][1-1] = "txt=[\'Modelica\';\' "+nameF+" \'];"; graphics.in_implicit = this.intype; graphics.out_implicit = this.outtype; graphics.exprs = exprs; this.x.graphics = graphics; break; } } return new BasicBlock(this.x); } } /* 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)]]; this.model = scicos_model(); this.model.sim = new ScilabString(["memo"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.rpar = new ScilabDouble([z]); this.model.blocktype = new ScilabString(["m"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } MEMORY_f.prototype.details = function MEMORY_f() { return this.x; } MEMORY_f.prototype.get = function MEMORY_f() { var options = { a:["initial condition",this.a], inh:["Inherit (1: no, 0: yes)",this.inh], } return options; } MEMORY_f.prototype.set = function MEMORY_f() { this.a = arguments[0]["a"] this.inh = parseFloat(arguments[0]["inh"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.a,this.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 (this.inh==0) { this.inh = []; } else { this.inh = 1; } [this.model,graphics,ok] = check_io(this.model,graphics,-1,-1,this.inh,[]); out = size(this.a,"*"); if (out==0) { ok = false; messagebox("Initial condition empty","modal","error"); } in1 = out; if (ok) { graphics.exprs = exprs; this.model.rpar = new ScilabDouble([this.a]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/MPBLOCK.sci" */ function MPBLOCK() { MPBLOCK.prototype.define = function MPBLOCK() { 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(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,[]); this.model = scicos_model(); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,true]; this.model.rpar = []; for (i=1;i<=lstsize(paramv);i+=1) { this.model.rpar = [[this.model.rpar],[paramv[i-1].slice()]]; } mo = modelica(); mo.model = nameF; mo.parameters = list(param,paramv); this.model.sim = list(new ScilabString([mo.model]), new ScilabDouble([10004])); mo.inputs = this.in1; mo.outputs = this.out; this.model.in1 = new ScilabDouble([ones(size(mo.inputs,"r"),1)]); this.model.out = new ScilabDouble([ones(size(mo.outputs,"r"),1)]); this.model.equations = mo; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); this.x.graphics.in_implicit = this.intype; this.x.graphics.out_implicit = this.outtype; return new BasicBlock(this.x); } MPBLOCK.prototype.details = function MPBLOCK() { return this.x; } MPBLOCK.prototype.get = function MPBLOCK() { var options = { } return options; } MPBLOCK.prototype.set = function MPBLOCK() { this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; exprs = graphics.exprs; if (this.type[exprs-1]==15) { paramv = list(); pprop = []; for (i=1;i<=size(this.model.rpar,"*");i+=1) { paramv[$+1-1] = string(this.model.rpar[i-1]); pprop[$+1-1] = 0; } exprs = tlist(["MPBLOCK","in","intype","out","outtype","param","paramv","pprop","nameF","funtxt"],exprs[1-1][1-1],exprs[1-1][2-1],exprs[1-1][3-1],exprs[1-1][4-1],exprs[1-1][5-1],paramv,sci2exp(pprop.slice()),exprs[1-1][7-1],exprs[2-1]); } lab_1 = list(exprs.in1,exprs.intype,exprs.out,exprs.outtype,exprs.param,exprs.pprop,exprs.nameF); lab_2 = exprs.paramv; while (true) { [ok,Tin,Tintype,Tout,Touttype,Tparam,pprop,Tfunam,lab_1] = getvalue("Set Modelica generic block parameters",[["Input variables: "],["Input variables types: "],["Output variables: "],["Output variables types:"],["Parameters in Modelica:"],["Parameters properties: "],["Model name in packages:"]],list("str",-1,"str",-1,"str",-1,"str",-1,"str",-1,"vec",-1,"str",-1),lab_1); if (!ok) { break; } ierr = execstr("in=stripblanks(evstr(Tin)); intype=stripblanks(evstr(Tintype)); out=stripblanks(evstr(Tout)); outtype=stripblanks(evstr(Touttype)); param=stripblanks(evstr(Tparam)); funam=stripblanks(Tfunam)","errcatch"); if (ierr!=0) { x_message("Error in evaluation of variables."); ok = false; } if (ok) { for (i=1;i<=size(this.in1,"*");i+=1) { r = false; ierr = execstr("r=validvar(in(i))","errcatch"); if (!r) { ok = false; break; } } if (!ok) { 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(this.out,"*");i+=1) { r = false; ierr = execstr("r=validvar(out(i))","errcatch"); if (!r) { ok = false; break; } } if (!ok) { x_message([["Invalid variable name for the output "+string(i)+"."],["\""+this.out[i-1]+"\""],["Please choose another variable name."]]); } } if (ok) { param = param.slice(); for (i=1;i<=size(param,"*");i+=1) { r = false; ierr = execstr("r=validvar(param(i))","errcatch"); if (!r) { ok = false; break; } } if (!ok) { x_message([["Invalid variable name for the parameter "+string(i)+"."],["\""+param[i-1]+"\""],["Please choose another variable name."]]); } } if (ok) { 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; } } } if (ok) { 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; } } } if (ok) { if (or(size(this.intype)!=size(this.in1))) { x_message("Input variables are not well defined!"); ok = false; } } if (ok) { if (or(size(this.outtype)!=size(this.out))) { x_message("Output variables are not well defined!"); ok = false; } } if (ok) { pprop = pprop.slice(); if ((size(param,"*")!=size(pprop,"*"))) { x_message([["There is differences in"],["size of param and size "],["of param properties."]]); ok = false; } } if (ok) { if (max(pprop)>2||min(pprop)<0) { x_message([["Parameters properties must be :"],["0 : if it is a paramaters"],["1 : if it is an initial value of state,"],["2 : it it is a fixed initial state value."]]); ok = false; } } if (ok) { if (this.funam=="") { x_message("The model name is not defined!"); ok = false; } } if (ok) { [dirF,nameF,extF] = fileparts(this.funam); if ((extF!="")||(dirF!="")) { x_message("Invalid model name!"); ok = false; } } if (ok) { intypex = find(this.intype=="I"); outtypex = find(this.outtype=="I"); [this.model,graphics,ok] = set_io(this.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)) { for (i=1;i<=(Tparam_sz-lstsize(lab_2));i+=1) { lab_2[$+1-1] = "0"; } } else if (Tparam_sz0) { mo.parameters = list(transpose(param),paramv,transpose(pprop)); } else { mo.parameters = list(transpose(param),paramv); } } this.model.equations = new ScilabDouble([mo]); this.model.rpar = []; for (i=1;i<=lstsize(paramv);i+=1) { this.model.rpar = [[this.model.rpar],[double(paramv[i-1].slice())]]; } this.model.sim[1] = new ScilabDouble([this.funam]); exprs.in1 = lab_1[1-1]; exprs.intype = lab_1[2-1]; exprs.out = lab_1[3-1]; exprs.outtype = lab_1[4-1]; exprs.param = lab_1[5-1]; exprs.paramv = list(); if (Tparam_sz!=0) { 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 { for (i=1;i<=size(lab_2,"*");i+=1) { exprs.paramv[i-1] = lab_2[i-1]; } } } exprs.pprop = lab_1[6-1]; exprs.nameF = lab_1[7-1]; exprs.funtxt = ""; this.x.model = this.model; graphics.gr_i[1-1][1-1] = "txt=[\' "+nameF+" \'];"; graphics.in_implicit = this.intype; graphics.out_implicit = this.outtype; graphics.exprs = exprs; this.x.graphics = graphics; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/PAL_f.sci" */ function PAL_f() { PAL_f.prototype.define = function PAL_f() { scs = scicos_diagram(); scs.props.title = "Palette"; this.model = scicos_model(); this.model.sim = new ScilabString(["palette"]); this.model.in1 = []; this.model.out = []; this.model.rpar = new ScilabDouble([scs]); this.model.blocktype = new ScilabString(["h"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); this.x.graphics.id = scs.props.title[1-1]; return new BasicBlock(this.x); } PAL_f.prototype.details = function PAL_f() { return this.x; } PAL_f.prototype.get = function PAL_f() { var options = { } return options; } PAL_f.prototype.set = function PAL_f() { [this.x,newparameters,needcompile,edited] = scicos(arg1.model.rpar); arg1.graphics.id = this.x.props.title[1-1]; arg1.model.rpar = this.x; this.x = arg1; y = []; typ = []; %exit = resume(false) return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/PENDULUM_ANIM.sci" */ function PENDULUM_ANIM() { PENDULUM_ANIM.prototype.define = function PENDULUM_ANIM() { this.plen = 2; this.csiz = 2; this.phi = 0; this.xmin = -5; this.xmax = 5; this.ymin = -5; this.ymax = 5; this.model = scicos_model(); this.model.sim = list(new ScilabString(["anim_pen"]), new ScilabDouble([5])); this.model.in1 = [[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.rpar = [[this.plen],[this.csiz],[this.phi],[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = string(this.model.rpar); gr_i = []; this.x = standard_define([3,3],this.model,exprs,gr_i); return new BasicBlock(this.x); } PENDULUM_ANIM.prototype.details = function PENDULUM_ANIM() { return this.x; } PENDULUM_ANIM.prototype.get = function PENDULUM_ANIM() { var options = { plen:["pendulum length",this.plen], csiz:["cart size (square side)",this.csiz], phi:["slope",this.phi], xmin:["Xmin",this.xmin], xmax:["Xmax",this.xmax], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], } return options; } PENDULUM_ANIM.prototype.set = function PENDULUM_ANIM() { this.plen = parseFloat(arguments[0]["plen"]) this.csiz = parseFloat(arguments[0]["csiz"]) this.phi = parseFloat(arguments[0]["phi"]) this.xmin = parseFloat(arguments[0]["xmin"]) this.xmax = parseFloat(arguments[0]["xmax"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; dstate = this.model.dstate; while (true) { [ok,this.plen,this.csiz,this.phi,this.xmin,this.xmax,this.ymin,this.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; } mess = []; if (this.plen<=0||this.csiz<=0) { mess = [[mess],["Pendulum length and cart size must be positive."],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.xmin>=this.xmax) { mess = [[mess],["Xmax must be greater than Xmin"],[" "]]; ok = false; } if (!ok) { message(mess); } else { rpar = [[this.plen],[this.csiz],[this.phi],[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.rpar = rpar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/RATELIMITER.sci" */ function RATELIMITER() { RATELIMITER.prototype.define = function RATELIMITER() { this.minp = -1; this.maxp = 1; rpar = [[this.maxp],[this.minp]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["ratelimiter"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = rpar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.maxp)],[string(this.minp)]]; gr_i = []; this.x = standard_define([3.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } RATELIMITER.prototype.details = function RATELIMITER() { return this.x; } RATELIMITER.prototype.get = function RATELIMITER() { var options = { maxp:["max slope",this.maxp], minp:["min slope",this.minp], } return options; } RATELIMITER.prototype.set = function RATELIMITER() { this.maxp = parseFloat(arguments[0]["maxp"]) this.minp = parseFloat(arguments[0]["minp"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.maxp,this.minp,exprs] = scicos_getvalue("Set rate limiter parameters",["max slope","min slope"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.maxp<=this.minp||this.maxp<=0||this.minp>=0) { message("We must have max_slope> 0 > min_slope."); } else { rpar = [[this.maxp],[this.minp]]; this.model.rpar = rpar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/RELATIONALOP.sci" */ function RELATIONALOP() { RELATIONALOP.prototype.define = function RELATIONALOP() { ipar = [2]; label = "<"; this.model = scicos_model(); this.model.sim = list(new ScilabString(["relationalop"]), new ScilabDouble([4])); this.model.in1 = [[1],[1]]; this.model.out = new ScilabDouble([1]); this.model.ipar = ipar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(ipar)],[string(0)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.style = ["fontSize=13;fontStyle=1;displayedLabel="+label]; return new BasicBlock(this.x); } RELATIONALOP.prototype.details = function RELATIONALOP() { return this.x; } RELATIONALOP.prototype.get = function RELATIONALOP() { var options = { rule:["Operator: == (0), ~= (1), < (2), <= (3), > (4), >= (5)",this.rule], zcr:["Use zero crossing (no: 0), (yes: 1)",this.zcr], Datatype:["Datatype (1=double 3=int32 ...)",this.Datatype], } return options; } RELATIONALOP.prototype.set = function RELATIONALOP() { this.rule = parseFloat(arguments[0]["rule"]) this.zcr = parseFloat(arguments[0]["zcr"]) this.Datatype = arguments[0]["Datatype"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,1)==2) { exprs = [[exprs],[sci2exp(1)]]; } while (true) { [ok,this.rule,this.zcr,this.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; } this.rule = int(this.rule); if (this.zcr!=0) { this.zcr = 1; } if ((this.rule<0)||(this.rule>5)) { message("Incorrect operator "+string(this.rule)+" ; must be 0 to 5."); ok = false; } if ((this.Datatype==1)) { this.model.sim = list(new ScilabString(["relational_op"]), new ScilabDouble([4])); } else if ((this.Datatype==3||this.Datatype==9)) { this.model.sim = list(new ScilabString(["relational_op_i32"]), new ScilabDouble([4])); } else if ((this.Datatype==4)) { this.model.sim = list(new ScilabString(["relational_op_i16"]), new ScilabDouble([4])); } else if ((this.Datatype==5)) { this.model.sim = list(new ScilabString(["relational_op_i8"]), new ScilabDouble([4])); } else if ((this.Datatype==6)) { this.model.sim = list(new ScilabString(["relational_op_ui32"]), new ScilabDouble([4])); } else if ((this.Datatype==7)) { this.model.sim = list(new ScilabString(["relational_op_ui16"]), new ScilabDouble([4])); } else if ((this.Datatype==8)) { this.model.sim = list(new ScilabString(["relational_op_ui8"]), new ScilabDouble([4])); } else { message("Datatype is not supported"); ok = false; } if (ok) { it = this.Datatype*ones(1,2); ot = this.Datatype; in1 = [[-1,-2],[-1,-2]]; out = [-1,-2]; [this.model,graphics,ok] = set_io(this.model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { if (this.rule==0) { label = "=="; } else if (this.rule==1) { label = "~="; } else if (this.rule==2) { label = "<"; } else if (this.rule==3) { label = "≤"; } else if (this.rule==4) { label = ">"; } else if (this.rule==5) { label = "≥"; } graphics.exprs = exprs; graphics.style = ["fontSize=13;fontStyle=1;displayedLabel="+label]; this.model.ipar = [this.rule]; this.model.nzcross = new ScilabDouble([this.zcr]); this.model.nmode = new ScilabDouble([this.zcr]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/SPLIT_f.sci" */ function SPLIT_f() { SPLIT_f.prototype.define = function SPLIT_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["lsplit"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = [[-1],[-1],[-1]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; this.x = standard_define([1,1]/3,this.model,[],[]); return new BasicBlock(this.x); } SPLIT_f.prototype.details = function SPLIT_f() { return this.x; } SPLIT_f.prototype.get = function SPLIT_f() { var options = { } return options; } SPLIT_f.prototype.set = function SPLIT_f() { this.x = arg1; return new BasicBlock(this.x); } } /* 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; this.model = scicos_model(); this.model.sim = new ScilabString(["super"]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([scs]); this.model.blocktype = new ScilabString(["h"]); this.model.dep_ut = [false,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new SuperBlock(this.x); } SUPER_f.prototype.details = function SUPER_f() { return this.x; } SUPER_f.prototype.get = function SUPER_f() { var options = { } return options; } SUPER_f.prototype.set = function SUPER_f() { xcos(arg1.model.rpar); return new SuperBlock(this.x); } } /* autogenerated from "macros/Misc/TEXT_f.sci" */ function TEXT_f() { TEXT_f.prototype.define = function TEXT_f() { this.font = 2; this.siz = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["text"]); this.model.rpar = new ScilabString(["Text"]); this.model.ipar = [[this.font],[this.siz]]; exprs = [["Text"],[string(this.font)],[string(this.siz)]]; graphics = scicos_graphics(); graphics.orig = [0,0]; graphics.sz = [2,1]; graphics.exprs = exprs; this.x = mlist(["Text","graphics","model","void","gui"],graphics,this.model," ","TEXT_f"); return new TextBlock(this.x); } TEXT_f.prototype.details = function TEXT_f() { return this.x; } TEXT_f.prototype.get = function TEXT_f() { var options = { txt:["Text",this.txt], font:["Font number",this.font], siz:["Font size",this.siz], } return options; } TEXT_f.prototype.set = function TEXT_f() { this.txt = arguments[0]["txt"] this.font = parseFloat(arguments[0]["font"]) this.siz = parseFloat(arguments[0]["siz"]) this.x = arg1; graphics = arg1.graphics; orig = graphics.orig; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==1) { exprs = [[exprs],["3"],["1"]]; } while (true) { [ok,this.txt,this.font,this.siz,exprs] = scicos_getvalue("Set Text block parameters",["Text","Font number","Font size"],list("str",-1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.font<=0||this.font>6) { message("Font number must be greater than 0 and less than 7"); ok = false; } if (this.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 = this.font; gh_winpal.font_size = this.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; this.x.graphics = graphics; ipar = [[this.font],[this.siz]]; this.model.rpar = new ScilabDouble([this.txt]); this.model.ipar = ipar; this.x.model = this.model; break; } } return new TextBlock(this.x); } } /* autogenerated from "macros/Misc/c_block.sci" */ function c_block() { c_block.prototype.define = function c_block() { in1 = 1; out = 1; clkin = []; clkout = []; x0 = []; z0 = []; typ = "c"; auto = []; this.rpar = []; this.funam = "toto"; this.model = scicos_model(); this.model.sim = list(new ScilabString([" "]), new ScilabDouble([2001])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.evtin = clkin; this.model.evtout = clkout; this.model.state = x0; this.model.dstate = z0; this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([0]); this.model.blocktype = new ScilabString([typ]); this.model.firing = auto; this.model.dep_ut = [true,false]; label = list([[sci2exp(in1)],[sci2exp(out)],[strcat(sci2exp(this.rpar))],[this.funam]],list([])); gr_i = []; this.x = standard_define([3,2],this.model,label,gr_i); return new BasicBlock(this.x); } c_block.prototype.details = function c_block() { return this.x; } c_block.prototype.get = function c_block() { var options = { i:["input ports sizes",this.i], o:["output port sizes",this.o], rpar:["System parameters vector",this.rpar], funam:["function name",this.funam], } return options; } c_block.prototype.set = function c_block() { this.i = parseFloat(arguments[0]["i"]) this.o = parseFloat(arguments[0]["o"]) this.rpar = inverse(arguments[0]["rpar"]) this.funam = arguments[0]["funam"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; while (true) { [ok,this.i,this.o,this.rpar,this.funam,this.lab] = scicos_getvalue("Set C_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; } if (this.funam==" ") { break; } label[1-1] = this.lab; this.rpar = this.rpar.slice(); this.i = int(this.i.slice()); ni = size(this.i,1); this.o = int(this.o.slice()); no = size(this.o,1); tt = label[2-1]; if (this.model.sim[1-1]!=this.funam||size(this.model.in1,"*")!=size(this.i,"*")||size(this.model.out,"*")!=size(this.o,"*")) { tt = []; } [ok,tt] = CFORTR(this.funam,tt,this.i,this.o); if (!ok) { break; } [this.model,graphics,ok] = check_io(this.model,graphics,this.i,this.o,[],[]); if (ok) { this.model.sim[1] = new ScilabString([this.funam]); this.model.rpar = this.rpar; label[2-1] = tt; this.x.model = this.model; graphics.exprs = label; this.x.graphics = graphics; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/fortran_block.sci" */ function fortran_block() { fortran_block.prototype.define = function fortran_block() { this.model = scicos_model(); this.model.sim = list(new ScilabString([" "]), new ScilabDouble([1001])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = new ScilabDouble([0]); this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; this.funam = "forty"; label = list([[sci2exp(this.model.in1)],[sci2exp(this.model.out)],[strcat(sci2exp(this.model.rpar))],[this.funam]],list([])); gr_i = []; this.x = standard_define([4,2],this.model,label,gr_i); return new BasicBlock(this.x); } fortran_block.prototype.details = function fortran_block() { return this.x; } fortran_block.prototype.get = function fortran_block() { var options = { i:["input ports sizes",this.i], o:["output port sizes",this.o], rpar:["System parameters vector",this.rpar], funam:["function name",this.funam], } return options; } fortran_block.prototype.set = function fortran_block() { this.i = parseFloat(arguments[0]["i"]) this.o = parseFloat(arguments[0]["o"]) this.rpar = inverse(arguments[0]["rpar"]) this.funam = arguments[0]["funam"] this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; while (true) { [ok,this.i,this.o,this.rpar,this.funam,this.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; } if (this.funam==" ") { break; } label[1-1] = this.lab; this.rpar = this.rpar.slice(); this.i = int(this.i.slice()); ni = size(this.i,1); this.o = int(this.o.slice()); no = size(this.o,1); tt = label[2-1]; if (this.model.sim[1-1]!=this.funam||size(this.model.in1,"*")!=size(this.i,"*")||size(this.model.out,"*")!=size(this.o,"*")) { tt = []; } [ok,tt] = FORTR(this.funam,tt,this.i,this.o); if (!ok) { break; } [this.model,graphics,ok] = check_io(this.model,graphics,this.i,this.o,[],[]); if (ok) { this.model.sim[1] = new ScilabString([this.funam]); this.model.rpar = this.rpar; label[2-1] = tt; this.x.model = this.model; graphics.exprs = label; this.x.graphics = graphics; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/func_block.sci" */ function func_block() { func_block.prototype.define = function func_block() { this.model = scicos_model(); this.model.sim = new ScilabString([" "]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = "v=sin(u);y=u*v"; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } func_block.prototype.details = function func_block() { return this.x; } func_block.prototype.get = function func_block() { var options = { } return options; } func_block.prototype.set = function func_block() { this.model = arg1.model; graphics = arg1.graphics; exprs = graphics.exprs; this.x = arg1; this.model = this.x.model; [ok,mac,exprs] = this.genfunc[exprs-1]; if (ok) { this.model.sim = new ScilabDouble([mac]); graphics.exprs = exprs; this.x.model = this.model; this.x.graphics = graphics; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/generic_block.sci" */ function generic_block() { generic_block.prototype.define = function generic_block() { this.model = scicos_model(); this.function_name = "sinblk"; this.funtyp = 1; this.model.sim = list(new ScilabString([this.function_name]), new ScilabDouble([this.funtyp])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[this.function_name],[sci2exp(this.funtyp)],[sci2exp(this.model.in1)],[sci2exp(this.model.out)],[sci2exp(this.model.evtin)],[sci2exp(this.model.evtout)],[sci2exp(this.model.state)],[sci2exp(this.model.dstate)],[sci2exp(this.model.rpar)],[sci2exp(this.model.ipar)],[sci2exp(this.model.firing)],["y"],["n"]]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } generic_block.prototype.details = function generic_block() { return this.x; } generic_block.prototype.get = function generic_block() { var options = { function_name:["simulation function",this.function_name], funtyp:["function type (0,1,2,..)",this.funtyp], i:["input ports sizes",this.i], o:["output port sizes",this.o], ci:["input event ports sizes",this.ci], co:["output events ports sizes",this.co], xx:["initial continuous state",this.xx], z:["initial discrete state",this.z], rpar:["Real parameters vector",this.rpar], ipar:["Integer parameters vector",this.ipar], auto0:["initial firing vector (<0 for no firing)",this.auto0], depu:["direct feedthrough (y or n)",this.depu], dept:["time dependence (y or n)",this.dept], } return options; } generic_block.prototype.set = function generic_block() { this.function_name = arguments[0]["function_name"] this.funtyp = parseFloat(arguments[0]["funtyp"]) this.i = parseFloat(arguments[0]["i"]) this.o = parseFloat(arguments[0]["o"]) this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.z = inverse(arguments[0]["z"]) this.rpar = inverse(arguments[0]["rpar"]) this.ipar = parseFloat(arguments[0]["ipar"]) this.auto0 = arguments[0]["auto0"] this.depu = parseBoolean(arguments[0]["depu"]) this.dept = parseBoolean(arguments[0]["dept"]) this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.function_name,this.funtyp,this.i,this.o,this.ci,this.co,this.xx,this.z,this.rpar,this.ipar,this.auto0,this.depu,this.dept,this.lab] = scicos_getvalue("Set GENERIC block parameters",["simulation function","function type (0,1,2,..)","input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","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,"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); if (!ok) { break; } label = this.lab; this.function_name = stripblanks(this.function_name); this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); this.ipar = int(this.ipar.slice()); this.i = int(this.i.slice()); this.o = int(this.o.slice()); this.ci = int(this.ci.slice()); this.co = int(this.co.slice()); this.funtyp = int(this.funtyp); if (this.funtyp<0) { message("function type cannot be negative"); ok = false; } if ([[this.ci],[this.co]]!=[]) { if (max([[this.ci],[this.co]])>1) { message("vector event links not supported"); ok = false; } } this.depu = stripblanks(this.depu); if (part(this.depu,1)=="y") { this.depu = true; } else { this.depu = false; } this.dept = stripblanks(this.dept); if (part(this.dept,1)=="y") { this.dept = true; } else { this.dept = false; } dep_ut = [this.depu,this.dept]; if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,this.i,this.o,this.ci,this.co); } if (ok) { if (this.funtyp==3) { needcompile = 4; } this.model.sim = list(new ScilabDouble([this.function_name]), new ScilabDouble([this.funtyp])); this.model.state = this.xx; this.model.dstate = this.z; this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([this.ipar]); this.model.firing = new ScilabDouble([this.auto0]); this.model.dep_ut = dep_ut; arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/generic_block2.sci" */ function generic_block2() { generic_block2.prototype.define = function generic_block2() { this.model = scicos_model(); this.function_name = "sinblk"; this.funtyp = 1; this.model.sim = list(new ScilabString([this.function_name]), new ScilabDouble([this.funtyp])); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.rpar = []; this.model.ipar = []; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; label = [[this.function_name],[sci2exp(this.funtyp)],[sci2exp(this.model.in1)],[sci2exp(this.model.out)],[sci2exp(this.model.evtin)],[sci2exp(this.model.evtout)],[sci2exp(this.model.state)],[sci2exp(this.model.dstate)],[sci2exp(this.model.rpar)],[sci2exp(this.model.ipar)],[sci2exp(this.model.nmode)],[sci2exp(this.model.nzcross)],[sci2exp(this.model.firing)],["y"],["n"]]; gr_i = []; this.x = standard_define([2,2],this.model,label,gr_i); return new BasicBlock(this.x); } generic_block2.prototype.details = function generic_block2() { return this.x; } generic_block2.prototype.get = function generic_block2() { var options = { function_name:["simulation function",this.function_name], funtyp:["function type (0,1,2,..)",this.funtyp], i:["input ports sizes",this.i], o:["output port sizes",this.o], ci:["input event ports sizes",this.ci], co:["output events ports sizes",this.co], xx:["initial continuous state",this.xx], z:["initial discrete state",this.z], rpar:["Real parameters vector",this.rpar], ipar:["Integer parameters vector",this.ipar], nmode:["number of modes",this.nmode], nzcr:["number of zero_crossings",this.nzcr], auto0:["initial firing vector (<0 for no firing)",this.auto0], depu:["direct feedthrough (y or n)",this.depu], dept:["time dependence (y or n)",this.dept], } return options; } generic_block2.prototype.set = function generic_block2() { this.function_name = arguments[0]["function_name"] this.funtyp = parseFloat(arguments[0]["funtyp"]) this.i = parseFloat(arguments[0]["i"]) this.o = parseFloat(arguments[0]["o"]) this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.z = inverse(arguments[0]["z"]) this.rpar = inverse(arguments[0]["rpar"]) this.ipar = parseFloat(arguments[0]["ipar"]) this.nmode = arguments[0]["nmode"] this.nzcr = arguments[0]["nzcr"] this.auto0 = arguments[0]["auto0"] this.depu = parseBoolean(arguments[0]["depu"]) this.dept = parseBoolean(arguments[0]["dept"]) this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.function_name,this.funtyp,this.i,this.o,this.ci,this.co,this.xx,this.z,this.rpar,this.ipar,this.nmode,this.nzcr,this.auto0,this.depu,this.dept,this.lab] = scicos_getvalue("Set GENERIC block parameters",["simulation function","function type (0,1,2,..)","input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","Real parameters vector","Integer parameters vector","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,"vec",1,"vec",-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); if (!ok) { break; } label = this.lab; this.function_name = stripblanks(this.function_name); this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); this.ipar = int(this.ipar.slice()); this.i = int(this.i.slice()); this.o = int(this.o.slice()); this.ci = int(this.ci.slice()); this.co = int(this.co.slice()); this.funtyp = int(this.funtyp); if (this.funtyp<0) { message("function type cannot be negative"); ok = false; } if ([[this.ci],[this.co]]!=[]) { if (max([[this.ci],[this.co]])>1) { message("vector event links not supported"); ok = false; } } this.depu = stripblanks(this.depu); if (part(this.depu,1)=="y") { this.depu = true; } else { this.depu = false; } this.dept = stripblanks(this.dept); if (part(this.dept,1)=="y") { this.dept = true; } else { this.dept = false; } dep_ut = [this.depu,this.dept]; if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,this.i,this.o,this.ci,this.co); } if (ok) { if (this.funtyp==3) { needcompile = 4; } this.model.sim = list(new ScilabDouble([this.function_name]), new ScilabDouble([this.funtyp])); this.model.state = this.xx; this.model.dstate = this.z; this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([this.ipar]); this.model.firing = new ScilabDouble([this.auto0]); this.model.nzcross = new ScilabDouble([this.nzcr]); this.model.nmode = new ScilabDouble([this.nmode]); this.model.dep_ut = dep_ut; arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/Misc/generic_block3.sci" */ function generic_block3() { generic_block3.prototype.define = function generic_block3() { this.model = scicos_model(); this.function_name = "sinblk"; this.funtyp = 4; this.model.sim = list(new ScilabString([this.function_name]), new ScilabDouble([this.funtyp])); this.model.in1 = new ScilabDouble([1]); this.model.in2 = new ScilabDouble([1]); this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.dep_ut = [true,false]; label = [[this.function_name],[sci2exp(this.funtyp)],[sci2exp([this.model.in1,this.model.in2])],[sci2exp(this.model.intyp)],[sci2exp([this.model.out,this.model.out2]),sci2exp(this.model.outtyp)],[sci2exp(this.model.evtin)],[sci2exp(this.model.evtout)],[sci2exp(this.model.state)],[sci2exp(this.model.dstate)],[sci2exp(this.model.odstate)],[sci2exp(this.model.rpar)],[sci2exp(this.model.ipar)],[sci2exp(this.model.opar)],[sci2exp(this.model.nmode)],[sci2exp(this.model.nzcross)],[sci2exp(this.model.firing)],["y"],["n"]]; gr_i = []; this.x = standard_define([4,2],this.model,label,gr_i); return new BasicBlock(this.x); } generic_block3.prototype.details = function generic_block3() { return this.x; } generic_block3.prototype.get = function generic_block3() { var options = { function_name:["Simulation function",this.function_name], funtyp:["Function type (0,1,2,..)",this.funtyp], in1:["Input ports sizes",this.in1], it:["Input ports type",this.it], out:["Output port sizes",this.out], ot:["Output ports type",this.ot], ci:["Input event ports sizes",this.ci], co:["Output events ports sizes",this.co], xx:["Initial continuous state",this.xx], z:["Initial discrete state",this.z], oz:["Initial object state",this.oz], rpar:["Real parameters vector",this.rpar], ipar:["Integer parameters vector",this.ipar], opar:["Object parameters list",this.opar], nmode:["Number of modes",this.nmode], nzcr:["Number of zero crossings",this.nzcr], auto0:["Initial firing vector (<0 for no firing)",this.auto0], depu:["Direct feedthrough (y or n)",this.depu], dept:["Time dependence (y or n)",this.dept], } return options; } generic_block3.prototype.set = function generic_block3() { this.function_name = arguments[0]["function_name"] this.funtyp = parseFloat(arguments[0]["funtyp"]) this.in1 = arguments[0]["in1"] this.it = arguments[0]["it"] this.out = arguments[0]["out"] this.ot = arguments[0]["ot"] this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.z = inverse(arguments[0]["z"]) this.oz = arguments[0]["oz"] this.rpar = inverse(arguments[0]["rpar"]) this.ipar = parseFloat(arguments[0]["ipar"]) this.opar = arguments[0]["opar"] this.nmode = arguments[0]["nmode"] this.nzcr = arguments[0]["nzcr"] this.auto0 = arguments[0]["auto0"] this.depu = parseBoolean(arguments[0]["depu"]) this.dept = parseBoolean(arguments[0]["dept"]) this.lab = arguments[0]["lab"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { label[9-1] = []; } while (true) { [ok,this.function_name,this.funtyp,this.in1,this.it,this.out,this.ot,this.ci,this.co,this.xx,this.z,this.oz,this.rpar,this.ipar,this.opar,this.nmode,this.nzcr,this.auto0,this.depu,this.dept,this.lab] = scicos_getvalue("Set GENERIC block parameters",["Simulation function","Function type (0,1,2,..)","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,"vec",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); if (!ok) { break; } label = this.lab; this.function_name = stripblanks(this.function_name); this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); this.ipar = int(this.ipar.slice()); this.ci = int(this.ci.slice()); this.co = int(this.co.slice()); this.funtyp = this.funtyp; if (this.funtyp<0) { message("function type cannot be negative"); ok = false; } if ([[this.ci],[this.co]]!=[]) { if (max([[this.ci],[this.co]])>1) { message("vector event links not supported"); ok = false; } } if (this.type[this.opar-1]!=15) { message("object parameter must be a list"); ok = false; } if (this.type[this.oz-1]!=15) { message("discrete object state must be a list"); ok = false; } this.depu = stripblanks(this.depu); if (part(this.depu,1)=="y") { this.depu = true; } else { this.depu = false; } this.dept = stripblanks(this.dept); if (part(this.dept,1)=="y") { this.dept = true; } else { this.dept = false; } dep_ut = [this.depu,this.dept]; if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(this.in1,this.it),list(this.out,this.ot),this.ci,this.co); } if (ok) { if (this.funtyp==3) { needcompile = 4; } this.model.sim = list(new ScilabDouble([this.function_name]), new ScilabDouble([this.funtyp])); this.model.state = this.xx; this.model.dstate = this.z; this.model.odstate = new ScilabDouble([this.oz]); this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([this.ipar]); this.model.opar = new ScilabDouble([this.opar]); this.model.firing = new ScilabDouble([this.auto0]); this.model.nzcross = new ScilabDouble([this.nzcr]); this.model.nmode = new ScilabDouble([this.nmode]); this.model.dep_ut = dep_ut; arg1.model = this.model; graphics.exprs = label; arg1.graphics = graphics; this.x = arg1; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* 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 = []; this.rpar = []; this.model = scicos_model(); this.model.sim = list(new ScilabString(["scifunc"]), new ScilabDouble([3])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([out]); this.model.evtin = clkin; this.model.evtout = clkout; this.model.state = x0; this.model.dstate = z0; this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([0]); this.model.opar = list(); this.model.blocktype = new ScilabString([typ]); this.model.firing = auto; this.model.dep_ut = [true,false]; exprs = list([[sci2exp(in1)],[sci2exp(out)],[sci2exp(clkin)],[sci2exp(clkout)],[strcat(sci2exp(x0))],[strcat(sci2exp(z0))],[strcat(sci2exp(this.rpar))],[sci2exp(auto)]],list("y1=sin(u1)"," "," ","y1=sin(u1)"," "," "," ")); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } scifunc_block.prototype.details = function scifunc_block() { return this.x; } scifunc_block.prototype.get = function scifunc_block() { var options = { i:["input ports sizes",this.i], o:["output port sizes",this.o], ci:["input event ports sizes",this.ci], co:["output events ports sizes",this.co], xx:["initial continuous state",this.xx], z:["initial discrete state",this.z], rpar:["System parameters vector",this.rpar], auto0:["initial firing vector (<0 for no firing)",this.auto0], deptime:["is block always active (0:no, 1:yes)",this.deptime], } return options; } scifunc_block.prototype.set = function scifunc_block() { this.i = parseFloat(arguments[0]["i"]) this.o = parseFloat(arguments[0]["o"]) this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.z = inverse(arguments[0]["z"]) this.rpar = inverse(arguments[0]["rpar"]) this.auto0 = arguments[0]["auto0"] this.deptime = arguments[0]["deptime"] this.lab = arguments[0]["lab"] needcompile = 0; this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; exprs = graphics.exprs; if (size(exprs[1-1],"*")==8) { exprs[1-1][9-1] = "0"; } while (true) { [ok,this.i,this.o,this.ci,this.co,this.xx,this.z,this.rpar,this.auto0,this.deptime,this.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] = this.lab; this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); nrp = prod(size(this.rpar)); this.i = int(this.i.slice()); ni = size(this.i,1); this.o = int(this.o.slice()); no = size(this.o,1); this.ci = int(this.ci.slice()); nci = size(this.ci,1); this.co = int(this.co.slice()); nco = size(this.co,1); [ok,tt,dep_ut] = genfunc1(exprs[2-1],this.i,this.o,nci,nco,size(this.xx,1),size(this.z,1),nrp,"c"); dep_ut[2-1] = (1==this.deptime); if (!ok) { break; } [this.model,graphics,ok] = check_io(this.model,graphics,this.i,this.o,this.ci,this.co); if (ok) { auto = this.auto0; this.model.state = this.xx; this.model.dstate = this.z; this.model.rpar = this.rpar; if (this.model.ipar!=0) { this.model.opar = new ScilabDouble([this.model.ipar]); this.model.ipar = new ScilabDouble([0]); } if (or(this.model.opar!=tt)) { needcompile = 4; } this.model.opar = new ScilabDouble([tt]); this.model.firing = new ScilabDouble([auto]); this.model.dep_ut = new ScilabDouble([dep_ut]); this.x.model = this.model; exprs[2-1] = tt; graphics.exprs = exprs; this.x.graphics = graphics; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* 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 = []; this.rpar = []; it = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["scifunc"]), new ScilabDouble([3])); this.model.in1 = new ScilabDouble([in1]); this.model.in2 = new ScilabDouble([in1]); this.model.intyp = new ScilabDouble([it]); this.model.out = new ScilabDouble([out]); this.model.out2 = new ScilabDouble([out]); this.model.outtyp = new ScilabDouble([it]); this.model.evtin = clkin; this.model.evtout = clkout; this.model.state = x0; this.model.dstate = z0; this.model.rpar = this.rpar; this.model.ipar = new ScilabDouble([0]); this.model.opar = list(); this.model.blocktype = new ScilabString([typ]); this.model.firing = auto; this.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(this.rpar))],[sci2exp(auto)],[sci2exp(0)]],list("y1=sin(u1)"," "," ","y1=sin(u1)"," "," "," ")); gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } scifunc_block_m.prototype.details = function scifunc_block_m() { return this.x; } scifunc_block_m.prototype.get = function scifunc_block_m() { var options = { i:["input ports sizes",this.i], o:["output port sizes",this.o], ci:["input event ports sizes",this.ci], co:["output events ports sizes",this.co], xx:["initial continuous state",this.xx], z:["initial discrete state",this.z], rpar:["System parameters vector",this.rpar], auto0:["initial firing vector (<0 for no firing)",this.auto0], deptime:["is block always active (0:no, 1:yes)",this.deptime], } return options; } scifunc_block_m.prototype.set = function scifunc_block_m() { this.i = arguments[0]["i"] this.o = arguments[0]["o"] this.ci = parseFloat(arguments[0]["ci"]) this.co = parseFloat(arguments[0]["co"]) this.xx = inverse(arguments[0]["xx"]) this.z = inverse(arguments[0]["z"]) this.rpar = inverse(arguments[0]["rpar"]) this.auto0 = arguments[0]["auto0"] this.deptime = arguments[0]["deptime"] this.lab = arguments[0]["lab"] needcompile = 0; this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; exprs = graphics.exprs; while (true) { [ok,this.i,this.o,this.ci,this.co,this.xx,this.z,this.rpar,this.auto0,this.deptime,this.lab] = scicos_getvalue([["Set scifunc_block parameters"],["only regular blocks supported"]],["input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","System parameters vector","initial firing vector (<0 for no firing)","is block always active (0:no, 1:yes)"],list("mat",[-1,2],"mat",[-2,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs[1-1]); if (!ok) { break; } exprs[1-1] = this.lab; this.xx = this.xx.slice(); this.z = this.z.slice(); this.rpar = this.rpar.slice(); it = ones(1,size(this.i,1)); ot = ones(1,size(this.o,1)); nrp = prod(size(this.rpar)); ni = size(this.i,1); no = size(this.o,1); this.ci = int(this.ci.slice()); nci = size(this.ci,1); this.co = int(this.co.slice()); nco = size(this.co,1); [ok,tt,dep_ut] = genfunc2(exprs[2-1],this.i,this.o,nci,nco,size(this.xx,1),size(this.z,1),nrp,"c"); dep_ut[2-1] = (1==this.deptime); if (!ok) { break; } [this.model,graphics,ok] = set_io(this.model,graphics,list(this.i,it),list(this.o,ot),this.ci,this.co); if (ok) { auto = this.auto0; this.model.state = this.xx; this.model.dstate = this.z; this.model.rpar = this.rpar; if (this.model.ipar!=0) { this.model.opar = new ScilabDouble([this.model.ipar]); this.model.ipar = new ScilabDouble([0]); } if (or(this.model.opar!=tt)) { needcompile = 4; } this.model.opar = new ScilabDouble([tt]); this.model.firing = new ScilabDouble([auto]); this.model.dep_ut = new ScilabDouble([dep_ut]); this.x.model = this.model; exprs[2-1] = tt; graphics.exprs = exprs; this.x.graphics = graphics; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/ABSBLK_f.sci" */ function ABSBLK_f() { ABSBLK_f.prototype.define = function ABSBLK_f() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["absblk"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } ABSBLK_f.prototype.details = function ABSBLK_f() { return this.x; } ABSBLK_f.prototype.get = function ABSBLK_f() { var options = { } return options; } ABSBLK_f.prototype.set = function ABSBLK_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/ABS_VALUE.sci" */ function ABS_VALUE() { ABS_VALUE.prototype.define = function ABS_VALUE() { nu = -1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["absolute_value"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([nu]); this.model.out = new ScilabDouble([nu]); this.model.nzcross = new ScilabDouble([nu]); this.model.nmode = new ScilabDouble([nu]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [string([1])]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } ABS_VALUE.prototype.details = function ABS_VALUE() { return this.x; } ABS_VALUE.prototype.get = function ABS_VALUE() { var options = { zcr:["use zero_crossing (1: yes) (0:no)",this.zcr], } return options; } ABS_VALUE.prototype.set = function ABS_VALUE() { this.zcr = arguments[0]["zcr"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.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 (this.zcr!=0) { this.model.nmode = new ScilabDouble([-1]); this.model.nzcross = new ScilabDouble([-1]); } else { this.model.nmode = new ScilabDouble([0]); this.model.nzcross = new ScilabDouble([0]); } this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/COSBLK_f.sci" */ function COSBLK_f() { COSBLK_f.prototype.define = function COSBLK_f() { in1 = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["cosblk"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } COSBLK_f.prototype.details = function COSBLK_f() { return this.x; } COSBLK_f.prototype.get = function COSBLK_f() { var options = { } return options; } COSBLK_f.prototype.set = function COSBLK_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/DLRADAPT_f.sci" */ function DLRADAPT_f() { DLRADAPT_f.prototype.define = function DLRADAPT_f() { this.p = [[0],[1]]; this.rn = []; this.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)]]; this.g = [[1],[1]]; this.last_u = []; this.last_y = [[0],[0]]; this.model = scicos_model(); this.model.sim = new ScilabString(["dlradp"]); this.model.in1 = [[1],[1]]; this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[this.last_u],[this.last_y]]; this.model.rpar = [[this.p.slice()],[real(this.rn.slice())],[imag(this.rn.slice())],[real(this.rd.slice())],[imag(this.rd.slice())],[this.g.slice()]]; this.model.ipar = [[0],[2],[2]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [true,false]; exprs = [[sci2exp(this.p)],[sci2exp(this.rn)],[sci2exp(this.rd,0)],[sci2exp(this.g)],[sci2exp(this.last_u)],[sci2exp(this.last_y)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } DLRADAPT_f.prototype.details = function DLRADAPT_f() { return this.x; } DLRADAPT_f.prototype.get = function DLRADAPT_f() { var options = { p:["Vector of p mesh points",this.p.toString().replace(/,/g," ")], rn:["Numerator roots (one line for each mesh)",this.rn], rd:["Denominator roots (one line for each mesh)",this.rd.toString().replace(/,/g," ")], g:["Vector of gain at mesh points",this.g.toString().replace(/,/g," ")], last_u:["past inputs (Num degree values)",this.last_u], last_y:["past outputs (Den degree values)",this.last_y.toString().replace(/,/g," ")], } return options; } DLRADAPT_f.prototype.set = function DLRADAPT_f() { this.p = inverse(arguments[0]["p"]) this.rn = inverse(arguments[0]["rn"]) this.rd = inverse(arguments[0]["rd"]) this.g = inverse(arguments[0]["g"]) this.last_u = inverse(arguments[0]["last_u"]) this.last_y = inverse(arguments[0]["last_y"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.p,this.rn,this.rd,this.g,this.last_u,this.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; } m = size(this.rn,2); [npt,n] = size(this.rd); if (m>=n) { message("Transfer must be strictly proper"); } else if (size(this.rn,1)!=0&&size(this.rn,1)!=size(this.p,"*")) { message("Numerator roots matrix row size\'s is incorrect"); } else { rpar = [[this.p.slice()],[real(this.rn.slice())],[imag(this.rn.slice())],[real(this.rd.slice())],[imag(this.rd.slice())],[this.g.slice()]]; ipar = [[m],[n],[npt]]; this.model.dstate = [[this.last_u.slice()],[this.last_y.slice()]]; this.model.rpar = rpar; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/EXPBLK_f.sci" */ function EXPBLK_f() { EXPBLK_f.prototype.define = function EXPBLK_f() { in1 = 1; this.a = math.E; this.model = scicos_model(); this.model.sim = new ScilabString(["expblk"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.rpar = new ScilabDouble([this.a]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = ["%e"]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EXPBLK_f.prototype.details = function EXPBLK_f() { return this.x; } EXPBLK_f.prototype.get = function EXPBLK_f() { var options = { } return options; } EXPBLK_f.prototype.set = function EXPBLK_f() { this.a = parseFloat(arguments[0]["a"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[2-1]; } while (true) { [ok,this.a,exprs] = scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); if (!ok) { break; } if (or(this.a<=0)) { message("a^u : a must be positive"); } else { graphics.exprs = exprs; this.model.rpar = new ScilabDouble([this.a]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/EXPBLK_m.sci" */ function EXPBLK_m() { EXPBLK_m.prototype.define = function EXPBLK_m() { in1 = 1; this.a = math.E; this.model = scicos_model(); this.model.sim = list(new ScilabString(["expblk_m"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([this.a]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = ["%e"]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } EXPBLK_m.prototype.details = function EXPBLK_m() { return this.x; } EXPBLK_m.prototype.get = function EXPBLK_m() { var options = { } return options; } EXPBLK_m.prototype.set = function EXPBLK_m() { this.a = parseFloat(arguments[0]["a"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[2-1]; } while (true) { [ok,this.a,exprs] = scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); if (!ok) { break; } if (or(this.a<=0)) { message("a^u : a must be positive"); } else { graphics.exprs = exprs; this.model.rpar = new ScilabDouble([this.a]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/FSV_f.sci" */ function FSV_f() { FSV_f.prototype.define = function FSV_f() { in1 = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["fsv"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = " "; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } FSV_f.prototype.details = function FSV_f() { return this.x; } FSV_f.prototype.get = function FSV_f() { var options = { } return options; } FSV_f.prototype.set = function FSV_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/INTRP2BLK_f.sci" */ function INTRP2BLK_f() { INTRP2BLK_f.prototype.define = function INTRP2BLK_f() { this.a = [[0],[1]]; this.b = [[0],[1]]; this.c = [[0,1],[1,2]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["intrp2"]), new ScilabDouble([1])); this.model.in1 = [[1],[1]]; this.model.out = new ScilabDouble([1]); this.model.rpar = [[this.a],[this.b],[this.c.slice()]]; this.model.ipar = [[2],[2]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(sci2exp(this.a))],[strcat(sci2exp(this.b))],[strcat(sci2exp(this.c,0))]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } INTRP2BLK_f.prototype.details = function INTRP2BLK_f() { return this.x; } INTRP2BLK_f.prototype.get = function INTRP2BLK_f() { var options = { a:["X coord.",this.a.toString().replace(/,/g," ")], b:["Y coord.",this.b.toString().replace(/,/g," ")], c:["Z values",this.c.toString().replace(/,/g," ")], } return options; } INTRP2BLK_f.prototype.set = function INTRP2BLK_f() { this.a = inverse(arguments[0]["a"]) this.b = inverse(arguments[0]["b"]) this.c = inverse(arguments[0]["c"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.a,this.b,this.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; } if (size(this.a,"*")!=size(this.c,"c")||size(this.b,"*")!=size(this.c,"r")) { message("incompatible dimension"); } else if (min(this.a.slice(2-1,$)-this.a.slice(1-1,$-1))<=0||min(this.b.slice(2-1,$)-this.b.slice(1-1,$-1))<=0) { message("X and Y must be strictly increasing"); } else { if (ok) { graphics.exprs = exprs; this.model.rpar = [[this.a.slice()],[this.b.slice()],[this.c.slice()]]; this.model.ipar = [[size(this.a,"*")],[size(this.b,"*")]]; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/INTRPLBLK_f.sci" */ function INTRPLBLK_f() { INTRPLBLK_f.prototype.define = function INTRPLBLK_f() { this.a = [[0],[1]]; this.b = [[0],[1]]; this.model = scicos_model(); this.model.sim = new ScilabString(["intrpl"]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = [[this.a],[this.b]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(sci2exp(this.a))],[strcat(sci2exp(this.b))]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } INTRPLBLK_f.prototype.details = function INTRPLBLK_f() { return this.x; } INTRPLBLK_f.prototype.get = function INTRPLBLK_f() { var options = { a:["X coord.",this.a.toString().replace(/,/g," ")], b:["Y coord.",this.b.toString().replace(/,/g," ")], } return options; } INTRPLBLK_f.prototype.set = function INTRPLBLK_f() { this.a = inverse(arguments[0]["a"]) this.b = inverse(arguments[0]["b"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.a,this.b,exprs] = scicos_getvalue("Set Interpolation block parameters",["X coord.","Y coord."],list("vec",-1,"vec",-1),exprs); if (!ok) { break; } if (size(this.a,"*")!=size(this.b,"*")) { message("X and Y must have the same size"); } else if (min(this.a.slice(2-1,$)-this.a.slice(1-1,$-1))<=0) { message("X must be strictly increasing"); } else { if (ok) { graphics.exprs = exprs; this.model.rpar = [[this.a.slice()],[this.b.slice()]]; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/INVBLK.sci" */ function INVBLK() { INVBLK.prototype.define = function INVBLK() { in1 = -1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["invblk4"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = " "; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } INVBLK.prototype.details = function INVBLK() { return this.x; } INVBLK.prototype.get = function INVBLK() { var options = { } return options; } INVBLK.prototype.set = function INVBLK() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/INVBLK_f.sci" */ function INVBLK_f() { INVBLK_f.prototype.define = function INVBLK_f() { in1 = -1; this.model = scicos_model(); this.model.sim = new ScilabString(["invblk"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = " "; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } INVBLK_f.prototype.details = function INVBLK_f() { return this.x; } INVBLK_f.prototype.get = function INVBLK_f() { var options = { } return options; } INVBLK_f.prototype.set = function INVBLK_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/LOGBLK_f.sci" */ function LOGBLK_f() { LOGBLK_f.prototype.define = function LOGBLK_f() { in1 = 1; this.a = math.E; this.model = scicos_model(); this.model.sim = new ScilabString(["logblk"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.rpar = new ScilabDouble([this.a]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = "%e"; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } LOGBLK_f.prototype.details = function LOGBLK_f() { return this.x; } LOGBLK_f.prototype.get = function LOGBLK_f() { var options = { } return options; } LOGBLK_f.prototype.set = function LOGBLK_f() { this.a = parseFloat(arguments[0]["a"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[2-1]; } while (true) { [ok,this.a,exprs] = scicos_getvalue("Set log block parameters","Basis (>1)",list("vec",1),exprs); if (!ok) { break; } if (this.a<=1) { message("Basis must be larger than 1"); } else { if (ok) { graphics.exprs = exprs; this.model.rpar = new ScilabDouble([this.a]); this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/LOOKUP2D.sci" */ function LOOKUP2D() { LOOKUP2D.prototype.define = function LOOKUP2D() { this.model = scicos_model(); this.xx = [1:4]; this.yy = [1:3]; this.zz = [[4,5,6],[16,19,20],[10,18,23],[6,3,-1]]; this.Method = 1; Graf = "n"; Nx = length(this.xx); Ny = length(this.yy); this.model.sim = list(new ScilabString(["lookup2d"]), new ScilabDouble([4])); this.model.in1 = [[1],[1]]; this.model.out = new ScilabDouble([1]); this.model.rpar = [[this.xx.slice()],[this.yy.slice()],[this.zz.slice()]]; this.model.ipar = [[Nx],[Ny],[this.Method]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = list(strcat(sci2exp(this.xx)),strcat(sci2exp(this.yy)),strcat(sci2exp(this.zz)),sci2exp(this.Method),Graf); gr_i = []; this.x = standard_define([2.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } LOOKUP2D.prototype.details = function LOOKUP2D() { return this.x; } LOOKUP2D.prototype.get = function LOOKUP2D() { var options = { xx:["Row index input values",this.xx], yy:["Column index input values",this.yy], zz:["Table data",this.zz.toString().replace(/,/g," ")], Method:["Lookup method(1..5)",this.Method], graf:["Launch graphic window(y/n)?",this.graf], } return options; } LOOKUP2D.prototype.set = function LOOKUP2D() { this.xx = inverse(arguments[0]["xx"]) this.yy = inverse(arguments[0]["yy"]) this.zz = inverse(arguments[0]["zz"]) this.Method = parseFloat(arguments[0]["Method"]) this.graf = arguments[0]["graf"] this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; exprs = graphics.exprs; ok = false; SaveExit = false; while (true) { Ask_again = false; [ok,this.xx,this.yy,this.zz,this.Method,this.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; } mtd = int(this.Method); if (mtd<1) { mtd = 1; } if (mtd>6) { mtd = 6; } if (this.graf!="y"&&this.graf!="Y") { this.graf = "n"; } exprs[5-1] = "n"; exprs[4-1] = sci2exp(mtd); METHOD = getmethod(mtd); if (!Ask_again) { this.xx = this.xx.slice(); this.yy = this.yy.slice(); [nx,mx] = size(this.xx); [ny,my] = size(this.yy); [nz,mz] = size(this.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(this.xx); if ((!ok)) { x_message("Row input values must be monotonically increasing"); Ask_again = true; } [ok] = test_increasing(this.yy); if ((!ok)) { x_message("Column input values must be monotonically increasing"); Ask_again = true; } } if (!Ask_again) { if ((this.graf=="Y"||this.graf=="y")) { gh = gcf(); curwin = gh.figure_id; save_curwin = curwin; gh2 = scf(); curwin = max(winsid())+1; plot3d(this.xx,this.yy,this.zz,35,45,"X@Y@Z",[5,2,4]); curwin = save_curwin; gh.figure_id = curwin; } this.model.rpar = [[this.xx.slice()],[this.yy.slice()],[this.zz.slice()]]; this.model.ipar = [[nx],[ny],[mtd]]; graphics.exprs = exprs; this.x.model = this.model; this.x.graphics = graphics; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/LOOKUP_f.sci" */ function LOOKUP_f() { LOOKUP_f.prototype.define = function LOOKUP_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["lookup"]); this.model.in1 = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = [[-2],[-1],[1],[2],[-1],[1],[-1],[1]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } LOOKUP_f.prototype.details = function LOOKUP_f() { return this.x; } LOOKUP_f.prototype.get = function LOOKUP_f() { var options = { } return options; } LOOKUP_f.prototype.set = function LOOKUP_f() { this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; rpar = this.model.rpar; n = size(rpar,"*")/2; xx = rpar.slice(1-1,n); yy = rpar.slice(n+1-1,2*n); while (true) { [ln,fun]=where() if (!or(fun=="do_eval")) { [xx,yy,ok,gc] = edit_curv(xx,yy,"axy"); } else { ok = true; } 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) { this.model.rpar = [[xx.slice()],[yy.slice()]]; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/MAXMIN.sci" */ function MAXMIN() { MAXMIN.prototype.define = function MAXMIN() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["minmax"]), new ScilabDouble([4])); this.model.out = new ScilabDouble([1]); this.model.in1 = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; this.model.ipar = new ScilabDouble([0]); exprs = [string(transpose([2,1,1]))]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); this.x.graphics.style = "MAXMIN;displayedLabel=MAX"; return new BasicBlock(this.x); } MAXMIN.prototype.details = function MAXMIN() { return this.x; } MAXMIN.prototype.get = function MAXMIN() { var options = { mm:["Min (1) or Max (2) ",this.mm], nin:["Number of input vectors (1 or 2)",this.nin], zcr:["zero-crossing (1: yes, 0;no)",this.zcr], } return options; } MAXMIN.prototype.set = function MAXMIN() { this.mm = parseFloat(arguments[0]["mm"]) this.nin = arguments[0]["nin"] this.zcr = parseFloat(arguments[0]["zcr"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.mm,this.nin,this.zcr,exprs] = scicos_getvalue("Set Max/Min block parameters",["Min (1) or Max (2) ","Number of input vectors (1 or 2)","zero-crossing (1: yes, 0;no)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.zcr!=0) { this.zcr = -1; } if (this.mm!=1) { this.mm = 2; } if (this.nin!=1&&this.nin!=2) { message("Wrong number of inputs, only 1 and 2 allowed"); ok = false; } if (ok) { if (this.nin==1) { [this.model,graphics,ok] = check_io(this.model,graphics,-1,1,[],[]); } else { [this.model,graphics,ok] = check_io(this.model,graphics,[-1,-1],-1,[],[]); } } if (ok) { this.model.nzcross = new ScilabDouble([this.zcr]); if (this.nin==1) { this.model.nmode = new ScilabDouble([abs(this.zcr)]); } else { this.model.nmode = new ScilabDouble([this.zcr]); } this.model.ipar = new ScilabDouble([this.mm]); if (this.mm==1) { label = "MIN"; } else { label = "MAX"; } graphics.style = "MAXMIN;displayedLabel="+label; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/MAX_f.sci" */ function MAX_f() { MAX_f.prototype.define = function MAX_f() { in1 = -1; this.model = scicos_model(); this.model.sim = new ScilabString(["maxblk"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([1]); this.model.dstate = [[0],[0]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = " "; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } MAX_f.prototype.details = function MAX_f() { return this.x; } MAX_f.prototype.get = function MAX_f() { var options = { } return options; } MAX_f.prototype.set = function MAX_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/MIN_f.sci" */ function MIN_f() { MIN_f.prototype.define = function MIN_f() { in1 = -1; this.model = scicos_model(); this.model.sim = new ScilabString(["minblk"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([1]); this.model.dstate = [[0],[0]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = sci2exp(in1); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } MIN_f.prototype.details = function MIN_f() { return this.x; } MIN_f.prototype.get = function MIN_f() { var options = { } return options; } MIN_f.prototype.set = function MIN_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/POWBLK_f.sci" */ function POWBLK_f() { POWBLK_f.prototype.define = function POWBLK_f() { in1 = 1; this.a = 1.5; this.model = scicos_model(); this.model.sim = new ScilabString(["powblk"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.rpar = new ScilabDouble([this.a]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = string(this.a); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } POWBLK_f.prototype.details = function POWBLK_f() { return this.x; } POWBLK_f.prototype.get = function POWBLK_f() { var options = { } return options; } POWBLK_f.prototype.set = function POWBLK_f() { this.a = parseFloat(arguments[0]["a"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[2-1]; } while (true) { [ok,this.a,exprs] = scicos_getvalue("Set u^a block parameters","to the power of",list("vec",1),exprs); if (!ok) { break; } graphics.exprs = exprs; if (this.a==int(this.a)) { this.model.ipar = new ScilabDouble([this.a]); this.model.rpar = []; } else { this.model.rpar = new ScilabDouble([this.a]); this.model.ipar = []; } this.model.firing = []; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/PRODUCT.sci" */ function PRODUCT() { PRODUCT.prototype.define = function PRODUCT() { this.sgn = [[1],[-1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["product"]), new ScilabDouble([4])); this.model.in1 = [[-1],[-1]]; this.model.out = new ScilabDouble([-1]); this.model.ipar = this.sgn; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = sci2exp(this.sgn); gr_i = []; this.x = standard_define([2,3],this.model,exprs,gr_i); return new Product(this.x); } PRODUCT.prototype.details = function PRODUCT() { return this.x; } PRODUCT.prototype.get = function PRODUCT() { var options = { } return options; } PRODUCT.prototype.set = function PRODUCT() { this.sgn = inverse(arguments[0]["sgn"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.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; } this.sgn = this.sgn.slice(); if (size(this.sgn,1)==1) { if (this.sgn<1) { message("Number of inputs must be > 0"); ok = false; } else if (this.sgn==1) { in1 = -1; this.sgn = []; nout = 1; } else { in1 = -ones(this.sgn,1); this.sgn = ones(this.sgn,1); nout = -1; } } else { if (!and(abs(this.sgn)==1)) { message("Signs can only be +1 or -1"); ok = false; } else { in1 = -ones(size(this.sgn,1),1); nout = -1; } } if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,in1,nout,[],[]); } if (ok) { this.model.ipar = new ScilabDouble([this.sgn]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new Product(this.x); } } /* autogenerated from "macros/NonLinear/PROD_f.sci" */ function PROD_f() { PROD_f.prototype.define = function PROD_f() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["prod"]), new ScilabDouble([2])); this.model.in1 = [[-1],[-1]]; this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; this.x = standard_define([1,1],this.model,[],[]); return new BasicBlock(this.x); } PROD_f.prototype.details = function PROD_f() { return this.x; } PROD_f.prototype.get = function PROD_f() { var options = { } return options; } PROD_f.prototype.set = function PROD_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/QUANT_f.sci" */ function QUANT_f() { QUANT_f.prototype.define = function QUANT_f() { this.pas = 0.1; this.meth = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["qzrnd"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.rpar = new ScilabDouble([this.pas]); this.model.ipar = new ScilabDouble([this.meth]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.pas)],[string(this.meth)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } QUANT_f.prototype.details = function QUANT_f() { return this.x; } QUANT_f.prototype.get = function QUANT_f() { var options = { pas:["Step",this.pas], meth:["Quantization Type (1-4)",this.meth], } return options; } QUANT_f.prototype.set = function QUANT_f() { this.pas = parseFloat(arguments[0]["pas"]) this.meth = parseFloat(arguments[0]["meth"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.pas,this.meth,exprs] = scicos_getvalue("Set parameters",["Step","Quantization Type (1-4)"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.meth<1||this.meth>4) { message("Quantization Type must be from 1 to 4"); } else { rpar = this.pas; this.model.rpar = new ScilabDouble([rpar]); this.model.ipar = new ScilabDouble([this.meth]); switch (this.meth) { case 1: this.model.sim = new ScilabString(["qzrnd"]); case 2: this.model.sim = new ScilabString(["qztrn"]); case 3: this.model.sim = new ScilabString(["qzflr"]); case 4: this.model.sim = new ScilabString(["qzcel"]); } graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/SATURATION.sci" */ function SATURATION() { SATURATION.prototype.define = function SATURATION() { this.minp = -1; this.maxp = 1; rpar = [[this.maxp],[this.minp]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["satur"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([2]); this.model.nmode = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.rpar = rpar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.maxp)],[string(this.minp)],[string(this.model.nmode)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SATURATION.prototype.details = function SATURATION() { return this.x; } SATURATION.prototype.get = function SATURATION() { var options = { maxp:["Upper limit",this.maxp], minp:["Lower limit",this.minp], zeroc:["zero crossing (0:no, 1:yes)",this.zeroc], } return options; } SATURATION.prototype.set = function SATURATION() { this.maxp = parseFloat(arguments[0]["maxp"]) this.minp = parseFloat(arguments[0]["minp"]) this.zeroc = arguments[0]["zeroc"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.maxp,this.minp,this.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; } if (this.maxp<=this.minp) { message("Upper limit must be > Lower limit"); } else { rpar = [[this.maxp],[this.minp]]; this.model.rpar = rpar; if (this.zeroc!=0) { this.model.nzcross = new ScilabDouble([2]); this.model.nmode = new ScilabDouble([1]); } else { this.model.nzcross = new ScilabDouble([0]); this.model.nmode = new ScilabDouble([0]); } graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/SAT_f.sci" */ function SAT_f() { SAT_f.prototype.define = function SAT_f() { this.minp = -1; this.maxp = 1; slope = 1; rpar = [[this.minp],[this.maxp],[slope]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["lusat"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([2]); this.model.out = new ScilabDouble([1]); this.model.rpar = [[this.minp],[this.maxp],[slope]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string(this.minp)],[string(this.maxp)],[string(slope)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SAT_f.prototype.details = function SAT_f() { return this.x; } SAT_f.prototype.get = function SAT_f() { var options = { minp:["Min",this.minp], maxp:["Max",this.maxp], pente:["Slope",this.pente], } return options; } SAT_f.prototype.set = function SAT_f() { this.minp = parseFloat(arguments[0]["minp"]) this.maxp = parseFloat(arguments[0]["maxp"]) this.pente = arguments[0]["pente"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.minp,this.maxp,this.pente,exprs] = scicos_getvalue("Set Saturation parameters",["Min","Max","Slope"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.maxp<=0) { message("Max must be strictly positive"); } else if (this.pente<=0) { message("Slope must be strictly positive"); } else { rpar = [[this.minp/this.pente],[this.maxp/this.pente],[this.pente]]; this.model.rpar = rpar; this.model.firing = []; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/SIGNUM.sci" */ function SIGNUM() { SIGNUM.prototype.define = function SIGNUM() { nu = -1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["signum"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([nu]); this.model.out = new ScilabDouble([nu]); this.model.nzcross = new ScilabDouble([nu]); this.model.nmode = new ScilabDouble([nu]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [string([1])]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SIGNUM.prototype.details = function SIGNUM() { return this.x; } SIGNUM.prototype.get = function SIGNUM() { var options = { zcr:["use zero_crossing (1: yes) (0:no)",this.zcr], } return options; } SIGNUM.prototype.set = function SIGNUM() { this.zcr = arguments[0]["zcr"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.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 (this.zcr!=0) { this.model.nmode = new ScilabDouble([-1]); this.model.nzcross = new ScilabDouble([-1]); } else { this.model.nmode = new ScilabDouble([0]); this.model.nzcross = new ScilabDouble([0]); } this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/SINBLK_f.sci" */ function SINBLK_f() { SINBLK_f.prototype.define = function SINBLK_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["sinblk"]); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = " "; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SINBLK_f.prototype.details = function SINBLK_f() { return this.x; } SINBLK_f.prototype.get = function SINBLK_f() { var options = { } return options; } SINBLK_f.prototype.set = function SINBLK_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/TANBLK_f.sci" */ function TANBLK_f() { TANBLK_f.prototype.define = function TANBLK_f() { in1 = -1; this.model = scicos_model(); this.model.sim = new ScilabString(["tanblk"]); this.model.in1 = new ScilabDouble([in1]); this.model.out = new ScilabDouble([in1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = sci2exp(in1); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TANBLK_f.prototype.details = function TANBLK_f() { return this.x; } TANBLK_f.prototype.get = function TANBLK_f() { var options = { } return options; } TANBLK_f.prototype.set = function TANBLK_f() { this.x = arg1; this.x.model.firing = []; return new BasicBlock(this.x); } } /* autogenerated from "macros/NonLinear/TrigFun.sci" */ function TrigFun() { TrigFun.prototype.define = function TrigFun() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["sin_blk"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.out = new ScilabDouble([-1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = "sin"; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TrigFun.prototype.details = function TrigFun() { return this.x; } TrigFun.prototype.get = function TrigFun() { var options = { } return options; } TrigFun.prototype.set = function TrigFun() { this.fun = arguments[0]["fun"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.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,this.fun,exprs] = scicos_getvalue(PREVAR_GG,"Function",list("str",1),exprs); if (!ok) { break; } if (find(PREVAR_FF==this.fun)==[]) { message("Sorry but "+this.fun+" is not in the list!"); } else { graphics.exprs = exprs; execstr("model.sim=list(\'"+this.fun+"_blk\',4)"); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/PDE/PDE.sci" */ function PDE() { PDE.prototype.define = function PDE() { this.model = scicos_model(); this.model.state = new ScilabDouble([zeros(10,1)]); this.model.sim = list(new ScilabString(["PDE"]), new ScilabDouble([0])); this.model.in1 = [[1],[1],[1],[1],[1]]; this.model.out = [[10],[0]]; this.model.blocktype = new ScilabString(["c"]); this.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 = []; this.x = standard_define([3,3],this.model,label,gr_i); return new BasicBlock(this.x); } PDE.prototype.details = function PDE() { return this.x; } PDE.prototype.get = function PDE() { var options = { } return options; } PDE.prototype.set = function PDE() { this.okk = parseBoolean(arguments[0]["okk"]) this.rdnom = arguments[0]["rdnom"] this.lab = arguments[0]["lab"] this.x = arg1; graphics = arg1.graphics; label = graphics.exprs; this.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); } } this.okk = false; this.rdnom = "PDE"; ok1 = true; while (true) { [this.okk,this.rdnom,this.lab] = scicos_getvalue("PLEASE, GIVE US THE BLOCK\'s NAME. ","New block\'s name :",list("str",1),label[3-1]); if (this.okk==false) { ok1 = false; return; } label[3-1] = this.lab; this.rdnom = stripblanks(this.rdnom); if (this.rdnom==emptystr()) { ok1 = false; x_message("sorry C file name not defined"); } if (ok1) { break; } } 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 { delta = evstr(a4)^2-4*evstr(a1)*evstr(a2); } if ((delta==[])) { delta = 0; } type_meth = this.arbre_decision[delta-1]; } [flag_type,this.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,this.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)) { this.model.sim = list(new ScilabDouble([this.rdnom]), new ScilabDouble([2004])); if ((find(oper==1)!=[])) { this.model.state = new ScilabDouble([zeros(2*Nbr_maillage,1)]); } else { this.model.state = new ScilabDouble([zeros(Nbr_maillage,1)]); } } else if ((flag_type==2)) { this.model.sim = list(new ScilabDouble([this.rdnom]), new ScilabDouble([12004])); if ((find(oper==1)!=[])) { if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) { this.model.state = new ScilabDouble([zeros(6*Nbr_maillage,1)]); } else if ((type_meth==1)) { this.model.state = new ScilabDouble([zeros(4*Nbr,1)]); } else { this.model.state = new ScilabDouble([zeros(4*Nbr_maillage,1)]); } } else { if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) { this.model.state = new ScilabDouble([zeros(4*Nbr_maillage,1)]); } else if ((type_meth==1)) { this.model.state = new ScilabDouble([zeros(2*Nbr,1)]); } else { this.model.state = new ScilabDouble([zeros(2*Nbr_maillage,1)]); } } } [ok1] = CFORTREDP(this.rdnom,tt); if (!ok1) { break; } if (!ok) { [this.model,graphics,ok] = check_io(this.model,graphics,ones(k,1),out.slice(),[],[]); } label[1-1] = params_pde; label[2-1] = tt; graphics.exprs = label; this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/AFFICH_m.sci" */ function AFFICH_m() { AFFICH_m.prototype.define = function AFFICH_m() { this.font = 1; this.fontsize = 1; this.colr = 1; this.nt = 5; this.nd = 1; this.in1 = [1,1]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["affich2"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([this.in1[1-1][1-1]]); this.model.in2 = new ScilabDouble([this.in1[1-1][2-1]]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[-1],[0],[0],[1],[1],[0],[zeros(this.in1[1-1][1-1]*this.in1[1-1][2-1],1)]]; this.model.ipar = [[this.font],[this.fontsize],[this.colr],[1000],[this.nt],[this.nd],[this.in1[1-1][1-1]]]; this.model.blocktype = new ScilabString(["c"]); this.model.firing = []; this.model.dep_ut = [true,false]; this.model.label = new ScilabString([""]); exprs = [[sci2exp([this.model.in1,this.model.in2])],[string(this.font)],[string(this.fontsize)],[string(this.colr)],[string(this.nt)],[string(this.nd)],[string(0)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new AfficheBlock(this.x); } AFFICH_m.prototype.details = function AFFICH_m() { return this.x; } AFFICH_m.prototype.get = function AFFICH_m() { var options = { in1:["Input Size",this.in1], font:["Font number",this.font], fontsize:["Font size",this.fontsize], colr:["Color",this.colr], nt:["Total number of digits",this.nt], nd:["Number of rational part digits",this.nd], herit:["Block inherits (1) or not (0)",this.herit], } return options; } AFFICH_m.prototype.set = function AFFICH_m() { this.in1 = inverse(arguments[0]["in1"]) this.font = parseFloat(arguments[0]["font"]) this.fontsize = parseFloat(arguments[0]["fontsize"]) this.colr = parseFloat(arguments[0]["colr"]) this.nt = parseFloat(arguments[0]["nt"]) this.nd = parseFloat(arguments[0]["nd"]) this.herit = arguments[0]["herit"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.in1,this.font,this.fontsize,this.colr,this.nt,this.nd,this.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; } mess = []; if (this.font<=0) { mess = [[mess],["Font number must be positive"],[" "]]; ok = false; } if (this.fontsize<=0) { mess = [[mess],["Font size must be positive"],[" "]]; ok = false; } if (this.nt<=3) { mess = [[mess],["Total number of digits must be greater than 3"],[" "]]; ok = false; } if (this.nd<0) { mess = [[mess],["Number of rational part digits must be ","greater or equal 0"],[" "]]; ok = false; } if (!ok) { message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (!or(this.herit==[0,1])) { mess = [[mess],["Accept inherited values are 0 and 1"],[" "]]; ok = false; } if (!ok) { message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(this.in1,1),list(),ones(1-this.herit,1),[]); } if (ok) { this.model.ipar = [[this.font],[this.fontsize],[this.colr],[this.nt],[this.nd],[this.in1[1-1][1-1]]]; this.model.dstate = [[-1],[0],[0],[1],[1],[0],[zeros(this.in1[1-1][1-1]*this.in1[1-1][2-1],1)]]; this.model.evtin = new ScilabDouble([ones(1-this.herit,1)]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new AfficheBlock(this.x); } } /* autogenerated from "macros/Sinks/BARXY.sci" */ function BARXY() { BARXY.prototype.define = function BARXY() { this.model = scicos_model(); this.xmin = -15; this.xmax = 15; this.ymin = -15; this.ymax = 15; this.model.sim = list(new ScilabString(["BARXY_sim"]), new ScilabDouble([5])); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [true,false]; this.model.in1 = [[-1],[-1]]; this.model.intyp = [1]; this.model.out = []; this.model.evtin = [1]; this.model.rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.ipar = new ScilabDouble([1]); this.x = standard_define([2,2],this.model,[],[]); this.x.graphics.in_implicit = ["E","E"]; this.x.graphics.out_implicit = []; this.x.graphics.exprs = [["-15"],["15"],["-15"],["15"],["1"]]; return new BasicBlock(this.x); } BARXY.prototype.details = function BARXY() { return this.x; } BARXY.prototype.get = function BARXY() { var options = { xmin:["Xmin",this.xmin], xmax:["Xmax",this.xmax], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], thickness:["Segs Thickness",this.thickness], } return options; } BARXY.prototype.set = function BARXY() { this.xmin = parseFloat(arguments[0]["xmin"]) this.xmax = parseFloat(arguments[0]["xmax"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.thickness = arguments[0]["thickness"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.xmin,this.xmax,this.ymin,this.ymax,this.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 (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.xmin>=this.xmax) { mess = [[mess],["Xmax must be greater than Xmin"],[" "]]; ok = false; } if (this.thickness<=0) { mess = [[mess],["Thickness must be strictly positive."]]; ok = false; } if (!ok) { message(mess); } else { this.model.rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.ipar = new ScilabDouble([this.thickness]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CANIMXY.sci" */ function CANIMXY() { CANIMXY.prototype.define = function CANIMXY() { this.win = -1; this.clrs = -4; this.N = 2; this.siz = 1; this.wpos = [[-1],[-1]]; this.wdim = [[-1],[-1]]; this.xmin = -15; this.xmax = 15; this.ymin = -15; this.ymax = 15; this.nbr_curves = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["canimxy"]), new ScilabDouble([4])); this.model.in1 = [[1],[1]]; this.model.in2 = [[1],[1]]; this.model.intyp = [[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.ipar = [[this.win],[1],[this.N],[this.clrs],[this.siz],[0],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; exprs = [[string(this.nbr_curves)],[string(this.clrs)],[string(this.siz)],[string(this.win)],["[]"],["[]"],[string(this.xmin)],[string(this.xmax)],[string(this.ymin)],[string(this.ymax)],[string(this.N)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CANIMXY.prototype.details = function CANIMXY() { return this.x; } CANIMXY.prototype.get = function CANIMXY() { var options = { nbr_curves:["Number of Curves",this.nbr_curves], clrs:["color (>0) or mark (<0)",this.clrs], siz:["line or mark size",this.siz], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], xmin:["Xmin",this.xmin], xmax:["Xmax",this.xmax], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], N:["Buffer size",this.N], } return options; } CANIMXY.prototype.set = function CANIMXY() { this.nbr_curves = parseFloat(arguments[0]["nbr_curves"]) this.clrs = parseFloat(arguments[0]["clrs"]) this.siz = parseFloat(arguments[0]["siz"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.xmin = parseFloat(arguments[0]["xmin"]) this.xmax = parseFloat(arguments[0]["xmax"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nbr_curves,this.clrs,this.siz,this.win,this.wpos,this.wdim,this.xmin,this.xmax,this.ymin,this.ymax,this.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(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (this.nbr_curves<=0) { mess = [[mess],["Number of curves cannot be negative or null"],[" "]]; ok = false; } if (this.N<1) { mess = [[mess],["Buffer size must be at least 1"],[" "]]; ok = false; } if (this.N==1&&this.clrs>0) { mess = [[mess],["Buffer size must be at least 2"],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.xmin>=this.xmax) { mess = [[mess],["Xmax must be greater than Xmin"],[" "]]; ok = false; } if (!ok) { message(mess); } else { in1 = this.nbr_curves*ones(2,1); in2 = ones(2,1); [this.model,graphics,ok] = set_io(this.model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; ipar = [[this.win],[1],[this.N],[this.clrs],[this.siz],[0],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.rpar = rpar; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CANIMXY3D.sci" */ function CANIMXY3D() { CANIMXY3D.prototype.define = function CANIMXY3D() { this.win = -1; this.N = 2; this.clrs = [[1],[2],[3],[4],[5],[6],[7],[13]]; this.siz = [[1],[1],[1],[1],[1],[1],[1],[1]]; this.wpos = [[-1],[-1]]; this.wdim = [[-1],[-1]]; this.param3ds = [[50],[280]]; this.vec_x = [[-15],[15]]; this.vec_y = [[-15],[15]]; this.vec_z = [[-15],[15]]; this.nbr_curves = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["canimxy3d"]), new ScilabDouble([4])); this.model.in1 = [[1],[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.in2 = [[1],[1],[1]]; this.model.intyp = [[1],[1],[1]]; this.model.rpar = [[this.vec_x.slice()],[this.vec_y.slice()],[this.vec_z.slice()],[this.param3ds.slice()]]; this.model.ipar = [[this.win],[8],[this.N],[this.clrs.slice()],[this.siz.slice()],[8],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; exprs = [[string(this.nbr_curves)],[strcat(string(this.clrs)," ")],[strcat(string(this.siz)," ")],[string(this.win)],["[]"],["[]"],[strcat(string(this.vec_x)," ")],[strcat(string(this.vec_y)," ")],[strcat(string(this.vec_z)," ")],[strcat(string(this.param3ds)," ")],[string(this.N)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CANIMXY3D.prototype.details = function CANIMXY3D() { return this.x; } CANIMXY3D.prototype.get = function CANIMXY3D() { var options = { nbr_curves:["Number of curves",this.nbr_curves], clrs:["color (>0) or mark (<0)",this.clrs.toString().replace(/,/g," ")], siz:["line or mark size",this.siz.toString().replace(/,/g," ")], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], vec_x:["Xmin and Xmax",this.vec_x.toString().replace(/,/g," ")], vec_y:["Ymin and Ymax",this.vec_y.toString().replace(/,/g," ")], vec_z:["Zmin and Zmax",this.vec_z.toString().replace(/,/g," ")], param3ds:["Alpha and Theta",this.param3ds.toString().replace(/,/g," ")], N:["Buffer size",this.N], } return options; } CANIMXY3D.prototype.set = function CANIMXY3D() { this.nbr_curves = parseFloat(arguments[0]["nbr_curves"]) this.clrs = inverse(arguments[0]["clrs"]) this.siz = inverse(arguments[0]["siz"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.vec_x = inverse(arguments[0]["vec_x"]) this.vec_y = inverse(arguments[0]["vec_y"]) this.vec_z = inverse(arguments[0]["vec_z"]) this.param3ds = inverse(arguments[0]["param3ds"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nbr_curves,this.clrs,this.siz,this.win,this.wpos,this.wdim,this.vec_x,this.vec_y,this.vec_z,this.param3ds,this.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; } mess = []; if (size(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (size(this.clrs,"*")!=size(this.siz,"*")) { mess = [[mess],["Colors and Size must have same size"],[" "]]; ok = false; } if (this.nbr_curves<=0) { mess = [[mess],["Number of curves cannot be negative or null"],[" "]]; ok = false; } if (size(this.clrs,"*")0) { mess = [[mess],["Buffer size must be at least 2 or Change a color (must be <0)"],[" "]]; ok = false; } } } if (this.vec_y[1-1]>=this.vec_y[2-1]) { mess = [[mess],["Ymax must be higher than Ymin"],[" "]]; ok = false; } if (this.vec_x[1-1]>=this.vec_x[2-1]) { mess = [[mess],["Xmax must be higher than Xmin"],[" "]]; ok = false; } if (this.vec_z[1-1]>=this.vec_z[2-1]) { mess = [[mess],["Zmax must be higher than Zmin"],[" "]]; ok = false; } if (!ok) { message(mess); } else { in1 = this.nbr_curves*ones(3,1); in2 = ones(3,1); [this.model,graphics,ok] = set_io(this.model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = [[this.vec_x.slice()],[this.vec_y.slice()],[this.vec_z.slice()],[this.param3ds.slice()]]; size_siz = size(this.siz,"*"); ipar = [[this.win],[size_siz],[this.N],[this.clrs.slice()],[this.siz.slice()],[1],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.rpar = rpar; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CEVENTSCOPE.sci" */ function CEVENTSCOPE() { CEVENTSCOPE.prototype.define = function CEVENTSCOPE() { this.nclock = 1; this.win = -1; this.clrs = [[1],[3],[5],[7],[9],[11],[13],[15]]; this.wdim = [[600],[400]]; this.wpos = [[-1],[-1]]; this.per = 30; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cevscpe"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([this.per]); this.model.ipar = [[this.win],[1],[this.clrs[this.nclock-1]],[this.wpos.slice()],[this.wdim.slice()]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[sci2exp(this.nclock)],[strcat(sci2exp(this.clrs[this.nclock-1])," ")],[string(this.win)],[sci2exp([])],[sci2exp(this.wdim)],[string(this.per)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CEVENTSCOPE.prototype.details = function CEVENTSCOPE() { return this.x; } CEVENTSCOPE.prototype.get = function CEVENTSCOPE() { var options = { nclock:["Number of event inputs",this.nclock], clrs:["colors c (>0) or mark (<0)",this.clrs.toString().replace(/,/g," ")], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], per:["Refresh period",this.per], } return options; } CEVENTSCOPE.prototype.set = function CEVENTSCOPE() { this.nclock = parseFloat(arguments[0]["nclock"]) this.clrs = inverse(arguments[0]["clrs"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.per = parseFloat(arguments[0]["per"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nclock,this.clrs,this.win,this.wpos,this.wdim,this.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); this.nclock = int(this.nclock); this.clrs = int(this.clrs); this.win = int(this.win); if (!ok) { break; } mess = []; if (size(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (this.nclock<=0) { mess = [[mess],["Block must have at least one input event"],[" "]]; ok = false; } if (size(this.clrs,"*")!=this.nclock) { mess = [[mess],["Inputs color c size must be equal to Number of inputs"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (this.per<=0) { mess = [[mess],["Refresh period must be positive"],[" "]]; ok = false; } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list(),list(),ones(this.nclock,1),[]); } else { message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (ok) { if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = this.per; ipar = [[this.win],[1],[this.clrs.slice()],[this.wpos.slice()],[this.wdim.slice()]]; this.model.rpar = new ScilabDouble([rpar]); this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CFSCOPE.sci" */ function CFSCOPE() { CFSCOPE.prototype.define = function CFSCOPE() { this.win = -1; this.wdim = [[600],[400]]; this.wpos = [[-1],[-1]]; this.clrs = [[1],[3],[5],[7],[9],[11],[13],[15]]; this.N = 2; this.ymin = -15; this.ymax = 15; this.per = 30; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cfscope"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[0],[this.ymin],[this.ymax],[this.per]]; this.model.ipar = [[this.win],[1],[this.N],[this.clrs],[this.wpos],[this.wdim],[1],[1]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(string(this.clrs)," ")],[string(this.win)],[sci2exp([])],[sci2exp(this.wdim)],[string(this.ymin)],[string(this.ymax)],[string(this.per)],[string(this.N)],[string([1])]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CFSCOPE.prototype.details = function CFSCOPE() { return this.x; } CFSCOPE.prototype.get = function CFSCOPE() { var options = { clrs:["Color (>0) or mark (<0) vector (8 entries)",this.clrs.toString().replace(/,/g," ")], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], per:["Refresh period",this.per], N:["Buffer size",this.N], wu:["Links to view",this.wu], } return options; } CFSCOPE.prototype.set = function CFSCOPE() { this.clrs = inverse(arguments[0]["clrs"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.per = parseFloat(arguments[0]["per"]) this.N = parseFloat(arguments[0]["N"]) this.wu = arguments[0]["wu"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.clrs,this.win,this.wpos,this.wdim,this.ymin,this.ymax,this.per,this.N,this.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; } mess = []; if (size(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (this.per<=0) { mess = [[mess],["Refresh period must be positive"],[" "]]; ok = false; } if (this.N<2) { mess = [[mess],["Buffer size must be at least 2"],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.wu<0) { mess = [[mess],["Link to view must be positive"],[" "]]; ok = false; } if (!ok) { message([["Some specified values are inconsistent:"],[" "],[mess]]); } if (ok) { if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = [[0],[this.ymin],[this.ymax],[this.per]]; if (size(this.clrs,"*")>8) { this.clrs = this.clrs.slice(1-1,8); } if (size(this.clrs,"*")<8) { this.clrs[8-1] = 0; } ipar = [[this.win],[1],[this.N],[this.clrs.slice()],[this.wpos.slice()],[this.wdim.slice()],[size(this.wu,"*")],[this.wu.slice()]]; this.model.rpar = rpar; this.model.ipar = ipar; this.model.firing = []; this.model.dep_ut = [true,false]; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CLKOUTV_f.sci" */ function CLKOUTV_f() { CLKOUTV_f.prototype.define = function CLKOUTV_f() { this.prt = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["output"]); this.model.evtin = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([this.prt]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; exprs = string(this.prt); this.x = standard_define([1,1],this.model,exprs," "); return new EventOutBlock(this.x); } CLKOUTV_f.prototype.details = function CLKOUTV_f() { return this.x; } CLKOUTV_f.prototype.get = function CLKOUTV_f() { var options = { } return options; } CLKOUTV_f.prototype.set = function CLKOUTV_f() { this.prt = arguments[0]["prt"] this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.prt,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","CLKOUTV_f")],[" "],["Event output port"]],"Port number",list("vec",1),exprs); if (!ok) { break; } this.prt = int(this.prt); if (this.prt<=0) { block_parameter_error(msprintf("Wrong value for \'Port Number\' parameter: %d.",this.prt),"Strictly positive integer expected."); } else { this.model.ipar = new ScilabDouble([this.prt]); this.model.evtin = new ScilabDouble([1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new EventOutBlock(this.x); } CLKOUTV_f.prototype.getinputs = function CLKOUTV_f() { orig = arg1.graphics.orig; sz = arg1.graphics.sz; this.x = orig[1-1]+sz[1-1]/2; y = orig[2-1]+sz[2-1]; typ = -ones(this.x); } CLKOUTV_f.prototype.getorigin = function CLKOUTV_f() { [this.x,y] = this.standard_origin[arg1-1]; } CLKOUTV_f.prototype.getoutputs = function CLKOUTV_f() { this.x = []; y = []; typ = []; } CLKOUTV_f.prototype.plot = function CLKOUTV_f() { xf = 60; yf = 40; orig = arg1.graphics.orig; sz = arg1.graphics.sz; orient = arg1.graphics.flip; this.prt = arg1.model.ipar; pat = xget("pattern"); xset("pattern",this.default_color[-1-1]); thick = xget("thickness"); xset("thickness",2); this.x = orig[1-1]+sz[1-1]*[[1/2],[1],[1],[0],[0]]; y = orig[2-1]+sz[2-1]*[[0],[1/3],[1],[1],[1/3]]; xo = orig[1-1]; yo = orig[2-1]+sz[2-1]/3; gr_i = arg1.graphics.gr_i; if (this.type[gr_i-1]==15) { coli = gr_i[2-1]; pcoli = xget("pattern"); xfpolys(this.x,y,coli); xset("pattern",coli); xstringb(xo,yo,string(this.prt),sz[1-1],sz[2-1]/1.5); xset("pattern",pcoli); xstringb(xo,yo,string(this.prt),sz[1-1],sz[2-1]/1.5); } else { xstringb(xo,yo,string(this.prt),sz[1-1],sz[2-1]/1.5); xpoly(this.x,y,"lines",1); } in1 = [-1/14,1/7,0,0,1/14,1/7,-1/14,1/7]*this.diag[[xf,yf]-1]; xfpoly(in1.slice()[1-1]+ones(4,1)*(orig[1-1]+sz[1-1]/2),in1.slice()[2-1]+ones(4,1)*(orig[2-1]+sz[2-1]),1); xset("thickness",thick); xset("pattern",pat); ident = arg1.graphics.id; if (ident!=[]&&ident!="") { font = xget("font"); xset("font",this.options.ID[1-1][1-1],this.options.ID[1-1][2-1]); rectangle = xstringl(orig[1-1],orig[2-1],ident); w = rectangle[3-1]; h = rectangle[4-1]; xstringb(orig[1-1]+sz[1-1]/2-w/2,orig[2-1]-3*h/2,ident,w,h); xset("font",font[1-1],font[2-1]); } this.x = []; y = []; } } /* autogenerated from "macros/Sinks/CLKOUT_f.sci" */ function CLKOUT_f() { CLKOUT_f.prototype.define = function CLKOUT_f() { this.prt = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["output"]); this.model.evtin = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([this.prt]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; exprs = string(this.prt); this.x = standard_define([1,1],this.model,exprs," "); return new BasicBlock(this.x); } CLKOUT_f.prototype.details = function CLKOUT_f() { return this.x; } CLKOUT_f.prototype.get = function CLKOUT_f() { var options = { } return options; } CLKOUT_f.prototype.set = function CLKOUT_f() { this.prt = parseFloat(arguments[0]["prt"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; exprs = exprs[1-1]; while (true) { [ok,this.prt,exprs] = scicos_getvalue("Set Event Output block parameters","Port number",list("vec",1),exprs); if (!ok) { break; } this.prt = int(this.prt); if (this.prt<=0) { message("Port number must be a positive integer"); } else { this.model.ipar = new ScilabDouble([this.prt]); this.model.evtin = new ScilabDouble([1]); this.model.firing = []; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CMAT3D.sci" */ function CMAT3D() { CMAT3D.prototype.define = function CMAT3D() { this.cmin = 0; this.cmax = 100; this.colormap = this.jetcolormap[25-1]; size_c = 25; this.x = -1; y = -1; size_x = 1; size_y = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cmat3d"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.ipar = [[this.cmin],[this.cmax],[size_c],[size_x],[size_y]]; this.model.rpar = [[this.colormap.slice()],[this.x],[y]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(string(this.x)," ")],[strcat(string(y)," ")],[string("jetcolormap(25)")],[string(this.cmin)],[string(this.cmax)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CMAT3D.prototype.details = function CMAT3D() { return this.x; } CMAT3D.prototype.get = function CMAT3D() { var options = { vec_x:["Bounds Vector X (-1 for standard)",this.vec_x], vec_y:["Bounds Vector Y (-1 for standard)",this.vec_y], colormap:["ColorMap",this.colormap], cmin:["Zmin",this.cmin], cmax:["Zmax",this.cmax], } return options; } CMAT3D.prototype.set = function CMAT3D() { this.vec_x = arguments[0]["vec_x"] this.vec_y = arguments[0]["vec_y"] this.colormap = parseFloat(arguments[0]["colormap"]) this.cmin = parseFloat(arguments[0]["cmin"]) this.cmax = parseFloat(arguments[0]["cmax"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.vec_x,this.vec_y,this.colormap,this.cmin,this.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(this.vec_x,"*")!=size(this.vec_y,"*")) { mess = [[mess],["Vector X and Vector Y must have the same size"],[" "]]; ok = false; } if (this.cmax<=this.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(this.vec_x,"*"); size_c = size(this.colormap.slice(),1); ipar = [[this.cmin],[this.cmax],[size_c],[size_x]]; rpar = [[this.colormap.slice()],[this.vec_x.slice()],[this.vec_y.slice()]]; this.model.ipar = ipar; this.model.rpar = rpar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CMATVIEW.sci" */ function CMATVIEW() { CMATVIEW.prototype.define = function CMATVIEW() { this.cmin = 0; this.cmax = 100; size_c = 25; this.colormap = this.jetcolormap[size_c-1]; alpha_c = 0.24; beta_c = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cmatview"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.ipar = [[this.cmin],[this.cmax],[size_c]]; this.model.rpar = [[alpha_c],[beta_c],[this.colormap.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[string("jetcolormap(25)")],[string(this.cmin)],[string(this.cmax)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CMATVIEW.prototype.details = function CMATVIEW() { return this.x; } CMATVIEW.prototype.get = function CMATVIEW() { var options = { colormap:["ColorMap",this.colormap], cmin:["Minimum level range",this.cmin], cmax:["Maximum level range",this.cmax], } return options; } CMATVIEW.prototype.set = function CMATVIEW() { this.colormap = parseFloat(arguments[0]["colormap"]) this.cmin = parseFloat(arguments[0]["cmin"]) this.cmax = parseFloat(arguments[0]["cmax"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.colormap,this.cmin,this.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 (this.cmax<=this.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(this.colormap.slice(),1); sol = inv([[this.cmin,1],[this.cmax,1]])*[[1],[size_c/3]]; alpha_c = sol[1-1]; beta_c = sol[2-1]; ipar = [[this.cmin],[this.cmax],[size_c]]; rpar = [[alpha_c],[beta_c],[this.colormap.slice()]]; this.model.ipar = ipar; this.model.rpar = rpar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CMSCOPE.sci" */ function CMSCOPE() { CMSCOPE.prototype.define = function CMSCOPE() { this.win = -1; this.in1 = [[1],[1]]; this.wdim = [[-1],[-1]]; this.wpos = [[-1],[-1]]; this.clrs = [[1],[3],[5],[7],[9],[11],[13],[15]]; this.N = 20; this.ymin = [[-1],[-5]]; this.ymax = [[1],[5]]; this.per = [[30],[30]]; yy = [[transpose(this.ymin.slice())],[transpose(this.ymax.slice())]]; period = transpose(this.per.slice()); this.model = scicos_model(); this.model.sim = list(new ScilabString(["cmscope"]), new ScilabDouble([4])); this.model.in1 = this.in1; this.model.in2 = [[1],[1]]; this.model.intyp = [[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[0],[period.slice()],[yy.slice()]]; this.model.ipar = [[this.win],[size(this.in1,"*")],[this.N],[this.wpos.slice()],[this.wdim.slice()],[this.in1.slice()],[this.clrs.slice(1-1,sum(this.in1))]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(string(this.in1)," ")],[strcat(string(this.clrs)," ")],[string(this.win)],[sci2exp([])],[sci2exp([])],[strcat(string(this.ymin)," ")],[strcat(string(this.ymax)," ")],[strcat(string(this.per)," ")],[string(this.N)],[string(0)],[emptystr()]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CMSCOPE.prototype.details = function CMSCOPE() { return this.x; } CMSCOPE.prototype.get = function CMSCOPE() { var options = { in1:["Input ports sizes",this.in1.toString().replace(/,/g," ")], clrs:["Drawing colors (>0) or mark (<0)",this.clrs.toString().replace(/,/g," ")], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], ymin:["Ymin vector",this.ymin.toString().replace(/,/g," ")], ymax:["Ymax vector",this.ymax.toString().replace(/,/g," ")], per:["Refresh period",this.per.toString().replace(/,/g," ")], N:["Buffer size",this.N], heritance:["Accept herited events 0/1",this.heritance], nom:["Name of Scope (label&Id)",this.nom], } return options; } CMSCOPE.prototype.set = function CMSCOPE() { this.in1 = inverse(arguments[0]["in1"]) this.clrs = inverse(arguments[0]["clrs"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.ymin = inverse(arguments[0]["ymin"]) this.ymax = inverse(arguments[0]["ymax"]) this.per = inverse(arguments[0]["per"]) this.N = parseFloat(arguments[0]["N"]) this.heritance = arguments[0]["heritance"] this.nom = arguments[0]["nom"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.in1,this.clrs,this.win,this.wpos,this.wdim,this.ymin,this.ymax,this.per,this.N,this.heritance,this.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; } mess = []; if (size(this.in1,"*")<=0) { mess = [[mess],["Block must have at least one input port"],[" "]]; ok = false; } if (min(this.in1)<=0) { mess = [[mess],["Port sizes must be positive"],[" "]]; ok = false; } if (size(this.clrs,"*")=this.ymax)) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (!or(this.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) { this.in1 = this.in1.slice(); a = size(this.in1,1); in2 = ones(a,1); [this.model,graphics,ok] = set_io(this.model,graphics,list([this.in1,in2],ones(a,1)),list(),ones(1-this.heritance,1),[]); } if (ok) { if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } if (ok) { period = transpose(this.per.slice()); yy = [[transpose(this.ymin.slice())],[transpose(this.ymax.slice())]]; rpar = [[0],[period.slice()],[yy.slice()]]; this.clrs = this.clrs.slice(1-1,sum(this.in1)); ipar = [[this.win],[size(this.in1,"*")],[this.N],[this.wpos.slice()],[this.wdim.slice()],[this.in1.slice()],[this.clrs.slice()],[this.heritance]]; this.model.evtin = new ScilabDouble([ones(1-this.heritance,1)]); this.model.dstate = []; this.model.rpar = rpar; this.model.ipar = ipar; this.model.label = new ScilabDouble([this.nom]); graphics.id = this.nom; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CSCOPE.sci" */ function CSCOPE() { CSCOPE.prototype.define = function CSCOPE() { this.win = -1; this.wdim = [[600],[400]]; this.wpos = [[-1],[-1]]; this.clrs = [[1],[3],[5],[7],[9],[11],[13],[15]]; this.N = 20; this.ymin = -15; this.ymax = 15; this.per = 30; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cscope"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[0],[this.ymin],[this.ymax],[this.per]]; this.model.ipar = [[this.win],[1],[this.N],[this.clrs],[this.wpos],[this.wdim]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [true,false]; exprs = [[strcat(string(this.clrs)," ")],[string(this.win)],[sci2exp([])],[sci2exp(this.wdim)],[string(this.ymin)],[string(this.ymax)],[string(this.per)],[string(this.N)],[transpose(string(0))],[emptystr()]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CSCOPE.prototype.details = function CSCOPE() { return this.x; } CSCOPE.prototype.get = function CSCOPE() { var options = { clrs:["Color (>0) or mark (<0) vector (8 entries)",this.clrs.toString().replace(/,/g," ")], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], per:["Refresh period",this.per], N:["Buffer size",this.N], heritance:["Accept herited events 0/1",this.heritance], nom:["Name of Scope (label&Id)",this.nom], } return options; } CSCOPE.prototype.set = function CSCOPE() { this.clrs = inverse(arguments[0]["clrs"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.per = parseFloat(arguments[0]["per"]) this.N = parseFloat(arguments[0]["N"]) this.heritance = arguments[0]["heritance"] this.nom = arguments[0]["nom"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.clrs,this.win,this.wpos,this.wdim,this.ymin,this.ymax,this.per,this.N,this.heritance,this.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; } mess = []; if (size(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number can\'t be < -1"],[" "]]; ok = false; } if (this.per<=0) { mess = [[mess],["Refresh period must be positive"],[" "]]; ok = false; } if (this.N<2) { mess = [[mess],["Buffer size must be at least 2"],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (!or(this.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) { [this.model,graphics,ok] = set_io(this.model,graphics,list([-1,1],1),list(),ones(1-this.heritance,1),[]); } if (ok) { if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = [[0],[this.ymin],[this.ymax],[this.per]]; ipar = [[this.win],[1],[this.N],[this.clrs.slice()],[this.wpos.slice()],[this.wdim.slice()]]; this.model.rpar = rpar; this.model.ipar = ipar; this.model.evtin = new ScilabDouble([ones(1-this.heritance,1)]); this.model.label = new ScilabDouble([this.nom]); graphics.id = this.nom; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CSCOPXY.sci" */ function CSCOPXY() { CSCOPXY.prototype.define = function CSCOPXY() { this.win = -1; this.clrs = 4; this.siz = 1; this.wdim = [[600],[400]]; this.wpos = [[-1],[-1]]; this.N = 2; this.xmin = -15; this.xmax = 15; this.ymin = -15; this.ymax = 15; this.nbr_curves = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cscopxy"]), new ScilabDouble([4])); this.model.in1 = [[1],[1]]; this.model.in2 = [[1],[1]]; this.model.intyp = [[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; this.model.ipar = [[this.win],[1],[this.N],[this.clrs],[this.siz],[1],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[string(this.nbr_curves)],[sci2exp(this.clrs)],[sci2exp(this.siz)],[string(this.win)],[sci2exp([])],[sci2exp(this.wdim)],[string(this.xmin)],[string(this.xmax)],[string(this.ymin)],[string(this.ymax)],[string(this.N)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CSCOPXY.prototype.details = function CSCOPXY() { return this.x; } CSCOPXY.prototype.get = function CSCOPXY() { var options = { nbr_curves:["Number of Curves",this.nbr_curves], clrs:["color (>0) or mark (<0)",this.clrs], siz:["line or mark size",this.siz], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], xmin:["Xmin",this.xmin], xmax:["Xmax",this.xmax], ymin:["Ymin",this.ymin], ymax:["Ymax",this.ymax], N:["Buffer size",this.N], } return options; } CSCOPXY.prototype.set = function CSCOPXY() { this.nbr_curves = parseFloat(arguments[0]["nbr_curves"]) this.clrs = parseFloat(arguments[0]["clrs"]) this.siz = parseFloat(arguments[0]["siz"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.xmin = parseFloat(arguments[0]["xmin"]) this.xmax = parseFloat(arguments[0]["xmax"]) this.ymin = parseFloat(arguments[0]["ymin"]) this.ymax = parseFloat(arguments[0]["ymax"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nbr_curves,this.clrs,this.siz,this.win,this.wpos,this.wdim,this.xmin,this.xmax,this.ymin,this.ymax,this.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(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (this.nbr_curves<=0) { mess = [[mess],["Number of Curves cannot be negative or null"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (this.N<1) { mess = [[mess],["Buffer size must be at least 1"],[" "]]; ok = false; } if (this.N==1&&this.clrs>0) { mess = [[mess],["Buffer size must be at least 2"],[" "]]; ok = false; } if (this.ymin>=this.ymax) { mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; ok = false; } if (this.xmin>=this.xmax) { mess = [[mess],["Xmax must be greater than Xmin"],[" "]]; ok = false; } if (!ok) { message(mess); } else { in1 = this.nbr_curves*ones(2,1); in2 = ones(2,1); [this.model,graphics,ok] = set_io(this.model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = [[this.xmin],[this.xmax],[this.ymin],[this.ymax]]; ipar = [[this.win],[1],[this.N],[this.clrs],[this.siz],[1],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.rpar = rpar; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/CSCOPXY3D.sci" */ function CSCOPXY3D() { CSCOPXY3D.prototype.define = function CSCOPXY3D() { this.win = -1; this.clrs = [[1],[2],[3],[4],[5],[6],[7],[13]]; this.siz = [[1],[1],[1],[1],[1],[1],[1],[1]]; this.wdim = [[600],[400]]; this.wpos = [[-1],[-1]]; this.N = 2; this.param3ds = [[50],[280]]; this.vec_x = [[-15],[15]]; this.vec_y = [[-15],[15]]; this.vec_z = [[-15],[15]]; this.nbr_curves = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cscopxy3d"]), new ScilabDouble([4])); this.model.in1 = [[1],[1],[1]]; this.model.in2 = [[1],[1],[1]]; this.model.intyp = [[1],[1],[1]]; this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[this.vec_x.slice()],[this.vec_y.slice()],[this.vec_z.slice()],[this.param3ds.slice()]]; this.model.ipar = [[this.win],[8],[this.N],[this.clrs.slice()],[this.siz.slice()],[8],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[string(this.nbr_curves)],[strcat(string(this.clrs)," ")],[strcat(string(this.siz)," ")],[string(this.win)],[sci2exp([])],[sci2exp(this.wdim)],[strcat(string(this.vec_x)," ")],[strcat(string(this.vec_y)," ")],[strcat(string(this.vec_z)," ")],[strcat(string(this.param3ds)," ")],[string(this.N)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CSCOPXY3D.prototype.details = function CSCOPXY3D() { return this.x; } CSCOPXY3D.prototype.get = function CSCOPXY3D() { var options = { nbr_curves:["Number of curves",this.nbr_curves], clrs:["color (>0) or mark (<0)",this.clrs.toString().replace(/,/g," ")], siz:["Line or Mark Size",this.siz.toString().replace(/,/g," ")], win:["Output window number (-1 for automatic)",this.win], wpos:["Output window position",this.wpos.toString().replace(/,/g," ")], wdim:["Output window sizes",this.wdim.toString().replace(/,/g," ")], vec_x:["Xmin and Xmax",this.vec_x.toString().replace(/,/g," ")], vec_y:["Ymin and Ymax",this.vec_y.toString().replace(/,/g," ")], vec_z:["Zmin and Zmax",this.vec_z.toString().replace(/,/g," ")], param3ds:["Alpha and Theta",this.param3ds.toString().replace(/,/g," ")], N:["Buffer size",this.N], } return options; } CSCOPXY3D.prototype.set = function CSCOPXY3D() { this.nbr_curves = parseFloat(arguments[0]["nbr_curves"]) this.clrs = inverse(arguments[0]["clrs"]) this.siz = inverse(arguments[0]["siz"]) this.win = parseFloat(arguments[0]["win"]) this.wpos = inverse(arguments[0]["wpos"]) this.wdim = inverse(arguments[0]["wdim"]) this.vec_x = inverse(arguments[0]["vec_x"]) this.vec_y = inverse(arguments[0]["vec_y"]) this.vec_z = inverse(arguments[0]["vec_z"]) this.param3ds = inverse(arguments[0]["param3ds"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.nbr_curves,this.clrs,this.siz,this.win,this.wpos,this.wdim,this.vec_x,this.vec_y,this.vec_z,this.param3ds,this.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(this.wpos,"*")!=0&&size(this.wpos,"*")!=2) { mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.wdim,"*")!=0&&size(this.wdim,"*")!=2) { mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; ok = false; } if (size(this.clrs,"*")!=size(this.siz,"*")) { mess = [[mess],["Colors and Size must have same size"],[" "]]; ok = false; } if (this.nbr_curves<=0) { mess = [[mess],["Number of curves cannot be negative or null"],[" "]]; ok = false; } if (this.win<-1) { mess = [[mess],["Window number cannot be inferior than -1"],[" "]]; ok = false; } if (this.N<1) { mess = [[mess],["Buffer size must be at least 1"],[" "]]; ok = false; } if (this.N<2) { for (i=1;i<=size(this.clrs,"*");i+=1) { if (this.clrs[i-1]>0) { mess = [[mess],["Buffer size must be at least 2 or Change a color (must be >0)"],[" "]]; ok = false; } } } if (this.vec_y[1-1]>=this.vec_y[2-1]) { mess = [[mess],["Ymax must be higher than Ymin"],[" "]]; ok = false; } if (this.vec_x[1-1]>=this.vec_x[2-1]) { mess = [[mess],["Xmax must be higher than Xmin"],[" "]]; ok = false; } if (this.vec_z[1-1]>=this.vec_z[2-1]) { mess = [[mess],["Zmax must be higher than Zmin"],[" "]]; ok = false; } if (ok) { in1 = this.nbr_curves*ones(3,1); in2 = ones(3,1); [this.model,graphics,ok] = set_io(this.model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); if (this.wpos==[]) { this.wpos = [[-1],[-1]]; } if (this.wdim==[]) { this.wdim = [[-1],[-1]]; } rpar = [[this.vec_x.slice()],[this.vec_y.slice()],[this.vec_z.slice()],[this.param3ds.slice()]]; size_siz = size(this.siz,"*"); ipar = [[this.win],[size_siz],[this.N],[this.clrs.slice()],[this.siz.slice()],[1],[this.wpos.slice()],[this.wdim.slice()],[this.nbr_curves]]; this.model.rpar = rpar; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } else { message(mess); } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/OUTIMPL_f.sci" */ function OUTIMPL_f() { OUTIMPL_f.prototype.define = function OUTIMPL_f() { this.model = scicos_model(); this.model.in1 = [-1]; this.model.in2 = [1]; this.prt = 1; this.model.sim = new ScilabString(["outimpl"]); this.model.ipar = [1]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; mo = modelica(); mo.model = "PORT"; mo.inputs = "n"; this.model.equations = new ScilabDouble([mo]); exprs = "1"; gr_i = []; this.x = standard_define([1,1],this.model,exprs,gr_i); this.x.graphics.in_implicit = ["I"]; return new ImplicitOutBlock(this.x); } OUTIMPL_f.prototype.details = function OUTIMPL_f() { return this.x; } OUTIMPL_f.prototype.get = function OUTIMPL_f() { var options = { } return options; } OUTIMPL_f.prototype.set = function OUTIMPL_f() { this.prt = parseFloat(arguments[0]["prt"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[1-1]; } while (true) { [ok,this.prt,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","OUTIMPL_f")],[" "],["Implicit output port"]],"Port number",list("vec",1),exprs); if (!ok) { break; } this.prt = int(this.prt); if (this.prt<=0) { block_parameter_error(msprintf("Wrong value for \'Port Number\' parameter: %d.",this.prt),"Strictly positive integer expected."); } else { if (this.model.ipar!=this.prt) { needcompile = 4; y = needcompile; } this.model.ipar = new ScilabDouble([this.prt]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new ImplicitOutBlock(this.x); } } /* autogenerated from "macros/Sinks/OUT_f.sci" */ function OUT_f() { OUT_f.prototype.define = function OUT_f() { n = -1; this.prt = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["output"]); this.model.in1 = new ScilabDouble([-1]); this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([-1]); this.model.ipar = new ScilabDouble([this.prt]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = string(this.prt); gr_i = []; this.x = standard_define([1,1],this.model,exprs,gr_i); return new ExplicitOutBlock(this.x); } OUT_f.prototype.details = function OUT_f() { return this.x; } OUT_f.prototype.get = function OUT_f() { var options = { } return options; } OUT_f.prototype.set = function OUT_f() { this.prt = parseFloat(arguments[0]["prt"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; if (size(exprs,"*")==2) { exprs = exprs[1-1]; } while (true) { [ok,this.prt,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","OUT_f")],[" "],["Regular output port"]],"Port number",list("vec",1),exprs); if (!ok) { break; } this.prt = int(this.prt); if (this.prt<=0) { block_parameter_error(msprintf("Wrong value for \'Port Number\' parameter: %d.",this.prt),"Strictly positive integer expected."); } else { this.model.ipar = new ScilabDouble([this.prt]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new ExplicitOutBlock(this.x); } } /* autogenerated from "macros/Sinks/TOWS_c.sci" */ function TOWS_c() { TOWS_c.prototype.define = function TOWS_c() { nu = -1; this.nz = 128; this.varnam = "A"; this.herit = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["tows_c"]), new ScilabDouble([4])); this.model.in1 = [nu]; this.model.in2 = new ScilabDouble([-2]); this.model.intyp = new ScilabDouble([-1]); this.model.out = []; this.model.evtin = [1]; this.model.evtout = []; this.model.rpar = []; this.model.ipar = [[this.nz],[length(this.varnam)],[transpose(this.ascii[this.varnam-1])]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; gr_i = []; exprs = [[string(this.nz)],[string(this.varnam)],[string(this.herit)]]; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TOWS_c.prototype.details = function TOWS_c() { return this.x; } TOWS_c.prototype.get = function TOWS_c() { var options = { nz:["Size of buffer",this.nz], varnam:["Scilab variable name",this.varnam], herit:["Inherit (no:0, yes:1)",this.herit], } return options; } TOWS_c.prototype.set = function TOWS_c() { this.nz = parseFloat(arguments[0]["nz"]) this.varnam = arguments[0]["varnam"] this.herit = parseFloat(arguments[0]["herit"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.nz,this.varnam,this.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 ((this.nz<=0)) { message("Size of buffer must be positive"); ok = false; } r = false; ierr = execstr("r = validvar(varnam)","errcatch"); if (!r||ierr!=0||length(this.varnam)>19) { message([["Invalid variable name."],["Please choose another variable name."]]); ok = false; } execstr("if type("+this.varnam+") <> 17 | or(fieldnames("+this.varnam+") <> [\"values\"; \"time\"]) then"+" message([\"Protected variable name.\"; \"Please choose another variable name.\"]);"+" ok = %f;"+" end","errcatch"); if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list([-1,-2],-1),list(),ones(1-this.herit,1),[]); if (this.herit==1) { this.model.blocktype = new ScilabString(["x"]); } else { this.model.blocktype = new ScilabString(["d"]); } this.model.ipar = [[this.nz],[length(this.varnam)],[transpose(this.ascii[this.varnam-1])]]; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/TRASH_f.sci" */ function TRASH_f() { TRASH_f.prototype.define = function TRASH_f() { in1 = -1; this.model = scicos_model(); this.model.sim = new ScilabString(["trash"]); this.model.in1 = new ScilabDouble([in1]); this.model.evtin = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = " "; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TRASH_f.prototype.details = function TRASH_f() { return this.x; } TRASH_f.prototype.get = function TRASH_f() { var options = { } return options; } TRASH_f.prototype.set = function TRASH_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/WFILE_f.sci" */ function WFILE_f() { WFILE_f.prototype.define = function WFILE_f() { this.in1 = 1; nin = sum(this.in1); frmt = "(7(e10.3,1x))"; fname = "foo"; lunit = 0; this.N = 2; this.model = scicos_model(); this.model.sim = new ScilabString(["writef"]); this.model.in1 = new ScilabDouble([this.in1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[-1],[lunit],[zeros((nin+1)*this.N,1)]]; this.model.ipar = [[length(fname)],[length(frmt)],[0],[this.N],[this._str2code[fname-1]],[this._str2code[frmt-1]]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(this.in1)],[fname],[frmt],[string(this.N)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } WFILE_f.prototype.details = function WFILE_f() { return this.x; } WFILE_f.prototype.get = function WFILE_f() { var options = { in1:["Input Size",this.in1], fname1:["Output File Name",this.fname1], frmt1:["Output Format",this.frmt1], N:["Buffer Size",this.N], } return options; } WFILE_f.prototype.set = function WFILE_f() { this.in1 = parseFloat(arguments[0]["in1"]) this.fname1 = parseFloat(arguments[0]["fname1"]) this.frmt1 = parseFloat(arguments[0]["frmt1"]) this.N = parseFloat(arguments[0]["N"]) 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); this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; dstate = this.model.dstate; lunit = dstate[2-1]; fname = exprs[2-1]; frmt = exprs[3-1]; while (true) { [ok,this.in1,this.fname1,this.frmt1,this.N,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","WFILE_f")],[" "],["Write to output file"],[" "],["Write is done on:"],["  - A binary file if no format given"],["  - A formatted text file if a format (Fortran type) is given"]],["Input Size","Output File Name","Output Format","Buffer Size"],list("vec",1,"str",1,"str",1,"vec",1),exprs); if (!ok) { break; } this.in1 = int(this.in1); nin = this.in1; this.fname1 = pathconvert(stripblanks(this.fname1),false,true); this.frmt1 = stripblanks(this.frmt1); if (lunit>0&&min(length(frmt),1)!=min(length(this.frmt1),1)) { block_parameter_error("Simulation running !!! You cannot switch
between formatted and unformatted when running","End current simulation first."); ok = false; } else if (lunit>0&&this.fname1!=fname) { block_parameter_error("You cannot modify \'Output File Name\' when running.","End current simulation first."); ok = false; } else if (this.fname1=="") { block_parameter_error("Wrong value for \'Output File Name\' parameter","You must provide a filename."); ok = false; } else if (fileparts(this.fname1)!="") { [pa,fn,ex] = fileparts(this.fname1); if (!this.isdir[pa-1]) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Output File Name"),msprintf("Directory \'%s\' does not exist",pa)); ok = false; } } else if (this.frmt1!=""&&(part(this.frmt1,1)!="("||part(this.frmt1,length(this.frmt1))!=")")) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Input Format",this.frmt1),"You must enclose the format\'s string between parentheses."); ok = false; } else if (this.N<2) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Must be greater than 1."); ok = false; } else if (this.in1<=0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Input Size",this.in1),"Strictly positive integer expected."); ok = false; } if (ok) { ipar = [[length(this.fname1)],[length(this.frmt1)],[0],[this.N],[this._str2code[this.fname1-1]],[this._str2code[this.frmt1-1]]]; if (prod(size(dstate))!=(nin+1)*this.N+2) { dstate = [[-1],[lunit],[zeros((nin+1)*this.N,1)]]; } this.model.in1 = new ScilabDouble([nin]); this.model.dstate = dstate; this.model.ipar = ipar; this.model.dep_ut = [true,false]; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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"; this.swap = 0; lunit = 0; this.N = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["writeau"]), new ScilabDouble([2])); this.model.in1 = new ScilabDouble([in1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[-1],[lunit],[zeros((nin+1)*this.N,1)]]; this.model.ipar = [[length(fname)],[this._str2code[frmt-1]],[this.N],[this.swap],[this._str2code[fname-1]]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [true,false]; exprs = [string(this.N),string(this.swap)]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } WRITEAU_f.prototype.details = function WRITEAU_f() { return this.x; } WRITEAU_f.prototype.get = function WRITEAU_f() { var options = { N:["Buffer Size",this.N], swap:["Swap Mode (0:No, 1:Yes)",this.swap], } return options; } WRITEAU_f.prototype.set = function WRITEAU_f() { this.N = parseFloat(arguments[0]["N"]) this.swap = parseFloat(arguments[0]["swap"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; ipar = this.model.ipar; dstate = this.model.dstate; lunit = dstate[2-1]; while (true) { [ok,this.N,this.swap,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","WRITEAU_f")],[" "],["Write \'.au\' sound file on audio device"]],["Buffer Size","Swap Mode (0:No, 1:Yes)"],list("vec",1,"vec",1),exprs); if (!ok) { break; } nin = 1; fname1 = "/dev/audio"; frmt1 = "uc "; if (this.alreadyran&&(this.N!=ipar[5-1])) { block_parameter_error(msprintf("You cannot modify \'%s\' when running.","Buffer Size"),"End current simulation first"); ok = false; } else if (this.N<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Strictly positive integer expected."); ok = false; } if (this.swap!=0&&this.swap!=1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Swap Mode",this.swap),msprintf("Must be in the interval %s.","[0, 1]")); ok = false; } if (ok) { ipar = [[length(fname1)],[this._str2code[frmt1-1]],[this.N],[this.swap],[this._str2code[fname1-1]]]; if (prod(size(dstate))!=(nin+1)*this.N+2) { dstate = [[-1],[lunit],[zeros((nin+1)*this.N,1)]]; } this.model.in1 = new ScilabDouble([1]); this.model.dstate = dstate; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sinks/WRITEC_f.sci" */ function WRITEC_f() { WRITEC_f.prototype.define = function WRITEC_f() { this.in1 = 1; nin = sum(this.in1); frmt = "c "; fname = "foo"; this.swap = 0; lunit = 0; this.N = 2; this.model = scicos_model(); this.model.sim = list(new ScilabString(["writec"]), new ScilabDouble([2])); this.model.in1 = new ScilabDouble([this.in1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[-1],[lunit],[zeros((nin+1)*this.N,1)]]; this.model.ipar = [[length(fname)],[this._str2code[frmt-1]],[this.N],[this.swap],[this._str2code[fname-1]]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [true,false]; exprs = [[sci2exp(this.in1)],[fname],[frmt],[string(this.N),string(this.swap)]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } WRITEC_f.prototype.details = function WRITEC_f() { return this.x; } WRITEC_f.prototype.get = function WRITEC_f() { var options = { in1:["Input Size",this.in1], fname1:["Output File Name",this.fname1], frmt1:["Output Format",this.frmt1], N:["Buffer Size",this.N], swap:["Swap Mode (0:No, 1:Yes)",this.swap], } return options; } WRITEC_f.prototype.set = function WRITEC_f() { this.in1 = parseFloat(arguments[0]["in1"]) this.fname1 = parseFloat(arguments[0]["fname1"]) this.frmt1 = arguments[0]["frmt1"] this.N = parseFloat(arguments[0]["N"]) this.swap = parseFloat(arguments[0]["swap"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; ipar = this.model.ipar; dstate = this.model.dstate; lunit = dstate[2-1]; fname = exprs[2-1]; frmt = exprs[3-1]; while (true) { [ok,this.in1,this.fname1,this.frmt1,this.N,this.swap,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","WRITEC_f")],[" "],["Write to C binary file"]],["Input Size","Output File Name","Output Format","Buffer Size","Swap Mode (0:No, 1:Yes)"],list("vec",1,"str",1,"str",1,"vec",1,"vec",1),exprs); if (!ok) { break; } this.in1 = int(this.in1); nin = this.in1; this.fname1 = pathconvert(stripblanks(this.fname1),false,true); this.frmt1 = stripblanks(this.frmt1); fmts = ["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; if (and(this.frmt1!=fmts)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Input Format",this.frmt1),"Valid formats are: "+strcat(fmts,", ")); ok = false; } else if (this.alreadyran&&this.fname1!=fname) { block_parameter_error(msprintf("You cannot modify \'%s\' when running","Input Format"),"End current simulation first."); ok = false; } else if (this.alreadyran&&this.N!=ipar[5-1]) { block_parameter_error(msprintf("You cannot modify \'Buffer Size\' when running.","Buffer Size"),"End current simulation first"); ok = false; } else if (this.fname1=="") { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Output File Name"),"You must provide a filename."); } else if (fileparts(this.fname1)!="") { [pa,fn,ex] = fileparts(this.fname1); if (!this.isdir[pa-1]) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Output File Name"),msprintf("Directory \'%s\' does not exist",pa)); ok = false; } } else if (this.N<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Strictly positive integer expected."); ok = false; } else if (this.in1<=0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Input Size",this.in1),"Strictly positive integer expected."); ok = false; } else if (this.swap!=0&&this.swap!=1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Swap Mode",this.swap),msprintf("Must be in the interval %s.","[0, 1]")); ok = false; } this.frmt1 = part(this.frmt1,1,3); if (ok) { ipar = [[length(this.fname1)],[this._str2code[this.frmt1-1]],[this.N],[this.swap],[this._str2code[this.fname1-1]]]; if (prod(size(dstate))!=(nin+1)*this.N+2) { dstate = [[-1],[lunit],[zeros((nin+1)*this.N,1)]]; } this.model.in1 = new ScilabDouble([nin]); this.model.dstate = dstate; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/CLKINV_f.sci" */ function CLKINV_f() { CLKINV_f.prototype.define = function CLKINV_f() { this.prt = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["input"]); this.model.evtout = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([this.prt]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = string(this.prt); gr_i = []; this.x = standard_define([1,1],this.model,exprs,gr_i); return new EventInBlock(this.x); } CLKINV_f.prototype.details = function CLKINV_f() { return this.x; } CLKINV_f.prototype.get = function CLKINV_f() { var options = { } return options; } CLKINV_f.prototype.set = function CLKINV_f() { this.prt = parseFloat(arguments[0]["prt"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; exprs = exprs[1-1]; while (true) { [ok,this.prt,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","CLKINV_f")],[" "],["Event input port"],[" "]],"Port Number",list("vec",1),exprs); this.prt = int(this.prt); if (!ok) { break; } if (this.prt<=0) { block_parameter_error(msprintf("Wrong values for \'Port Number\' parameter: %d.",this.prt),"Strictly positive integer expected."); } else { this.model.ipar = new ScilabDouble([this.prt]); this.model.evtout = new ScilabDouble([1]); this.model.firing = new ScilabDouble([-1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new EventInBlock(this.x); } } /* autogenerated from "macros/Sources/CLKIN_f.sci" */ function CLKIN_f() { CLKIN_f.prototype.define = function CLKIN_f() { this.prt = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["input"]); this.model.evtout = new ScilabDouble([1]); this.model.ipar = new ScilabDouble([this.prt]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = string(this.prt); this.x = standard_define([1,1],this.model,exprs," "); return new BasicBlock(this.x); } CLKIN_f.prototype.details = function CLKIN_f() { return this.x; } CLKIN_f.prototype.get = function CLKIN_f() { var options = { } return options; } CLKIN_f.prototype.set = function CLKIN_f() { this.prt = parseFloat(arguments[0]["prt"]) this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; exprs = exprs[1-1]; while (true) { [ok,this.prt,exprs] = scicos_getvalue("Set Event Input block parameters","Port number",list("vec",1),exprs); this.prt = int(this.prt); if (!ok) { break; } if (this.prt<=0) { message("Port number must be a positive integer"); } else { this.model.ipar = new ScilabDouble([this.prt]); this.model.evtout = new ScilabDouble([1]); this.model.firing = new ScilabDouble([-1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/CLOCK_c.sci" */ function CLOCK_c() { CLOCK_c.prototype.define = function CLOCK_c() { evtdly = EVTDLY_c("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],[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]); this.x = scicos_block(); this.x.gui = "CLOCK_c"; this.x.graphics.sz = [2,2]; this.x.graphics.gr_i = gr_i; this.x.graphics.peout = 0; this.x.model.sim = "csuper"; this.x.model.evtout = 1; this.x.model.blocktype = "h"; this.x.model.firing = false; this.x.model.dep_ut = [false,false]; this.x.model.rpar = diagram; return new BasicBlock(this.x); } CLOCK_c.prototype.details = function CLOCK_c() { return this.x; } CLOCK_c.prototype.get = function CLOCK_c() { var options = { dt:["Period",this.dt], t0:["Initialisation Time",this.t0], } return options; } CLOCK_c.prototype.set = function CLOCK_c() { this.dt = arguments[0]["dt"] this.t0 = arguments[0]["t0"] this.exprs0 = arguments[0]["exprs0"] 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; this.model = xx.model; t0_old = this.model.firing; dt_old = this.model.rpar[1-1]; model_n = this.model; while (true) { [ok,this.dt,this.t0,this.exprs0] = scicos_getvalue([[msprintf("Set %s block parameters","CLOCK_c")],[" "],["Event clock generator"],[" "],["  Do not start if \'Initialisation Time\' is negative"],[" "]],["Period","Initialisation Time"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.dt<=0) { block_parameter_error(msprintf("Wrong values for \'%s\' parameter: %5.1e.","Period",this.dt),"Strictly positive number expected."); ok = false; } if (ok) { xx.graphics.exprs = this.exprs0; this.model.rpar = [[this.dt],[this.t0]]; this.model.firing = new ScilabDouble([this.t0]); xx.model = this.model; arg1.model.rpar.objs[path-1] = xx; break; } } if (!and([t0_old,dt_old]==[this.t0,this.dt])) { newpar[size(newpar)+1-1] = path; } if (t0_old!=this.t0) { needcompile = 2; } else { needcompile = 0; } this.x = arg1; y = needcompile; typ = newpar; return new BasicBlock(this.x); } } /* 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]); this.x = scicos_block(); this.x.gui = "CLOCK_f"; this.x.graphics.sz = [2,2]; this.x.graphics.gr_i = gr_i; this.x.graphics.peout = 0; this.x.model.sim = "csuper"; this.x.model.evtout = 1; this.x.model.blocktype = "h"; this.x.model.firing = false; this.x.model.dep_ut = [false,false]; this.x.model.rpar = diagram; return new BasicBlock(this.x); } CLOCK_f.prototype.details = function CLOCK_f() { return this.x; } CLOCK_f.prototype.get = function CLOCK_f() { var options = { dt:["Period",this.dt], t0:["Init time",this.t0], } return options; } CLOCK_f.prototype.set = function CLOCK_f() { this.dt = arguments[0]["dt"] this.t0 = arguments[0]["t0"] this.exprs0 = arguments[0]["exprs0"] 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; this.model = xx.model; t0_old = this.model.firing; dt_old = this.model.rpar; model_n = this.model; while (true) { [ok,this.dt,this.t0,this.exprs0] = scicos_getvalue("Set Clock block parameters",["Period","Init time"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.dt<=0) { message("period must be positive"); ok = false; } if (ok) { xx.graphics.exprs = this.exprs0; this.model.rpar = new ScilabDouble([this.dt]); this.model.firing = new ScilabDouble([this.t0]); xx.model = this.model; arg1.model.rpar.objs[path-1] = xx; break; } } if (!and([t0_old,dt_old]==[this.t0,this.dt])||!and(this.exprs0==exprs)) { newpar[size(newpar)+1-1] = path; } if (t0_old!=this.t0) { needcompile = 2; } else { needcompile = 0; } this.x = arg1; y = needcompile; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/CONST.sci" */ function CONST() { CONST.prototype.define = function CONST() { this.C = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cstblk4"]), new ScilabDouble([4])); this.model.in1 = []; this.model.out = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([this.C]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = strcat(sci2exp(this.C)); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CONST.prototype.details = function CONST() { return this.x; } CONST.prototype.get = function CONST() { var options = { } return options; } CONST.prototype.set = function CONST() { this.C = parseFloat(arguments[0]["C"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.C,exprs] = scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); if (!ok) { break; } sz = size(this.C); nout = size(this.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 { this.model.rpar = this.C.slice(); this.model.out = new ScilabDouble([nout]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/CONST_f.sci" */ function CONST_f() { CONST_f.prototype.define = function CONST_f() { this.C = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cstblk"]), new ScilabDouble([1])); this.model.in1 = []; this.model.out = new ScilabDouble([1]); this.model.rpar = new ScilabDouble([this.C]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = strcat(sci2exp(this.C)); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CONST_f.prototype.details = function CONST_f() { return this.x; } CONST_f.prototype.get = function CONST_f() { var options = { } return options; } CONST_f.prototype.set = function CONST_f() { this.C = parseFloat(arguments[0]["C"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.C,exprs] = scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); if (!ok) { break; } nout = size(this.C,"*"); if (nout==0) { message("C must have at least one element"); } else { this.model.rpar = this.C.slice(); this.model.out = new ScilabDouble([nout]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/CONST_m.sci" */ function CONST_m() { CONST_m.prototype.define = function CONST_m() { this.C = [1]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cstblk4"]), new ScilabDouble([4])); this.model.in1 = []; this.model.out = new ScilabDouble([size(this.C,1)]); this.model.in2 = []; this.model.out2 = new ScilabDouble([size(this.C,2)]); this.model.rpar = this.C; this.model.opar = list(); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = sci2exp(this.C); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } CONST_m.prototype.details = function CONST_m() { return this.x; } CONST_m.prototype.get = function CONST_m() { var options = { } return options; } CONST_m.prototype.set = function CONST_m() { this.C = inverse(arguments[0]["C"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.C,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","CONST_m")],[" "],["Constant value generator"],[" "]],"Constant Value",list("vec",-1),exprs); if (!ok) { break; } nout = size(this.C); if (find(nout==0)!=[]) { block_parameter_error(msprintf("Wrong size for \'%s\' parameter","Constant Value"),"Constant value must have at least one element."); } else { this.model.sim = list(new ScilabString(["cstblk4_m"]), new ScilabDouble([4])); this.model.opar = list(this.C); if ((this.type[this.C-1]==1)) { if (isreal(this.C)) { ot = 1; } else { ot = 2; } } else if ((typeof(this.C)=="int32")) { ot = 3; } else if ((typeof(this.C)=="int16")) { ot = 4; } else if ((typeof(this.C)=="int8")) { ot = 5; } else if ((typeof(this.C)=="uint32")) { ot = 6; } else if ((typeof(this.C)=="uint16")) { ot = 7; } else if ((typeof(this.C)=="uint8")) { ot = 8; } else { block_parameter_error(msprintf("Wrong type for \'%s\' parameter","Constant Value"),"Value type must be a numeric type (double, complex, int, int8, ...)."); ok = false; } if (ok) { this.model.rpar = []; [this.model,graphics,ok] = set_io(this.model,graphics,list(),list(nout,ot),[],[]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* 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()]]; this.model = scicos_model(); this.model.sim = new ScilabString(["intplt"]); this.model.in1 = []; this.model.out = new ScilabDouble([1]); this.model.rpar = [[xx],[yy],[rect.slice()]]; this.model.ipar = [[size(xx,1)],[axisdata.slice()]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } CURV_f.prototype.details = function CURV_f() { return this.x; } CURV_f.prototype.get = function CURV_f() { var options = { } return options; } CURV_f.prototype.set = function CURV_f() { this.x = arg1; this.model = arg1.model; graphics = arg1.graphics; rpar = this.model.rpar; ipar = this.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",[" "," "," "],gc); } else { ok = true; } 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) { this.model.sim = new ScilabString(["intplt"]); this.model.firing = []; rect = gc[1-1]; this.model.rpar = [[xx.slice()],[yy.slice()],[rect.slice()]]; axisdata = gc[2-1]; this.model.ipar = [[size(xx,"*")],[axisdata.slice()]]; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/Counter.sci" */ function Counter() { Counter.prototype.define = function Counter() { this.minim = 0; this.maxim = 2; this.rule = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["counter"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.ipar = [[this.rule],[this.maxim],[this.minim]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = [[string(this.minim)],[string(this.maxim)],[string(this.rule)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } Counter.prototype.details = function Counter() { return this.x; } Counter.prototype.get = function Counter() { var options = { minim:["Minimum",this.minim], maxim:["Maximum",this.maxim], rule:["Rule (1:Increment, 2:Decrement)",this.rule], } return options; } Counter.prototype.set = function Counter() { this.minim = parseFloat(arguments[0]["minim"]) this.maxim = parseFloat(arguments[0]["maxim"]) this.rule = parseFloat(arguments[0]["rule"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.minim,this.maxim,this.rule,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","Counter")],[" "],["Integer counter generator"],[" "]],["Minimum","Maximum","Rule (1:Increment, 2:Decrement)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } this.maxim = int(this.maxim); this.minim = int(this.minim); if (this.maxim1) { if (model_n.sim[2-1]>1000) { if (this.model.sim[1-1]!=model_n.sim[1-1]) { needcompile = 4; } } } } else { modified = or(model_n!=this.model); eq = this.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); } } this.x = arg1; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/FROMWS_c.sci" */ function FROMWS_c() { FROMWS_c.prototype.define = function FROMWS_c() { this.varnam = "V"; this.Method = 1; this.ZC = 1; this.OutEnd = 0; this.model = scicos_model(); this.model.sim = list(new ScilabString(["fromws_c"]), new ScilabDouble([4])); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([-1]); this.model.ipar = [[length(this.varnam)],[this._str2code[this.varnam-1]],[this.Method],[this.ZC],[this.OutEnd]]; this.model.evtin = [1]; this.model.evtout = [1]; this.model.firing = [0]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,true]; gr_i = []; exprs = [[string(this.varnam)],[string(this.Method)],[string(this.ZC)],[string(this.OutEnd)]]; this.x = standard_define([3.5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } FROMWS_c.prototype.details = function FROMWS_c() { return this.x; } FROMWS_c.prototype.get = function FROMWS_c() { var options = { varnam:["Variable name",this.varnam], Method:["Interpolation Method",this.Method], ZC:["Enable zero crossing(0:No, 1:Yes)?",this.ZC], OutEnd:["Output at end(0:Zero, 1:Hold, 2:Repeat)",this.OutEnd], } return options; } FROMWS_c.prototype.set = function FROMWS_c() { this.varnam = arguments[0]["varnam"] this.Method = parseFloat(arguments[0]["Method"]) this.ZC = parseFloat(arguments[0]["ZC"]) this.OutEnd = parseFloat(arguments[0]["OutEnd"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.varnam,this.Method,this.ZC,this.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; } if (!(this.Method==0||this.Method==1||this.Method==2||this.Method==3)) { message("Interpolation method should be chosen in [0,1,2,3]"); ok = false; } if (!(this.ZC==0||this.ZC==1)) { message("Zero crossing should be either 0 or 1"); ok = false; } if (!(this.OutEnd==0||this.OutEnd==1||this.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) { this.model.ipar = [[length(this.varnam)],[this._str2code[this.varnam-1]],[this.Method],[this.ZC],[this.OutEnd]]; [this.model,graphics,ok] = set_io(this.model,graphics,list(),list([-1,-2],-1),1,1); if (ok) { graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/GENSIN_f.sci" */ function GENSIN_f() { GENSIN_f.prototype.define = function GENSIN_f() { rpar = [[1],[1],[0]]; this.model = scicos_model(); this.model.sim = new ScilabString(["gensin"]); this.model.in1 = []; this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.rpar = [[1],[1],[0]]; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = [[string(rpar[1-1])],[string(rpar[2-1])],[string(rpar[3-1])]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GENSIN_f.prototype.details = function GENSIN_f() { return this.x; } GENSIN_f.prototype.get = function GENSIN_f() { var options = { M:["Magnitude",this.M], F:["Frequency (rad/s)",this.F], P:["Phase (rad)",this.P], } return options; } GENSIN_f.prototype.set = function GENSIN_f() { this.M = arguments[0]["M"] this.F = arguments[0]["F"] this.P = arguments[0]["P"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.M,this.F,this.P,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","GENSIN_f")],[" "],["Sine wave generator"],[" "]],["Magnitude","Frequency (rad/s)","Phase (rad)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.F<0) { block_parameter_error(msprintf("Wrong value for \'Frequency\' parameter: %e.",this.F),"Strictly positive integer expected."); ok = false; } if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,[],1,[],[]); this.model.rpar = [[this.M],[this.F],[this.P]]; this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/GENSQR_f.sci" */ function GENSQR_f() { GENSQR_f.prototype.define = function GENSQR_f() { this.Amplitude = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["gensqr"]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([this.Amplitude]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = string(this.Amplitude); gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GENSQR_f.prototype.details = function GENSQR_f() { return this.x; } GENSQR_f.prototype.get = function GENSQR_f() { var options = { Amplitude:["Amplitude",this.Amplitude], } return options; } GENSQR_f.prototype.set = function GENSQR_f() { this.Amplitude = parseFloat(arguments[0]["Amplitude"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[2-1]; } while (true) { [ok,this.Amplitude,exprs] = scicos_getvalue(["Set Square generator block parameters"],["Amplitude"],list("vec",1),exprs); if (!ok) { break; } graphics.exprs = exprs; this.model.dstate = new ScilabDouble([this.Amplitude]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.x.graphics = graphics; this.x.model = this.model; break; } return new BasicBlock(this.x); } } /* 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]); this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = []; this.model.in2 = []; this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([-1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.odstate = list(); this.model.rpar = new ScilabDouble([scs_m_1]); this.model.ipar = new ScilabDouble([1]); this.model.opar = list(); this.model.blocktype = new ScilabString(["h"]); this.model.firing = []; this.model.dep_ut = [false,false]; this.model.label = new ScilabString([""]); this.model.nzcross = new ScilabDouble([0]); this.model.nmode = new ScilabDouble([0]); this.model.equations = list(); Amin = -1; Amax = 1; rule = 1; F = 1; exprs = [sci2exp(Amin),sci2exp(Amax),sci2exp(rule),sci2exp(F)]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GEN_SQR.prototype.details = function GEN_SQR() { return this.x; } GEN_SQR.prototype.get = function GEN_SQR() { var options = { } return options; } GEN_SQR.prototype.set = function GEN_SQR() { scicos_context.Amin = arguments[0]["scicos_context.Amin"] scicos_context.Amax = arguments[0]["scicos_context.Amax"] scicos_context.rule = arguments[0]["scicos_context.rule"] scicos_context.F = arguments[0]["scicos_context.F"] 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(); this.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 = this.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); this.x.graphics.exprs = exprs; this.x.model.rpar = sblock; break; } } else { message(lasterror()); ok = false; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/Ground_g.sci" */ function Ground_g() { Ground_g.prototype.define = function Ground_g() { C = [0]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["cstblk4_m"]), new ScilabDouble([4])); this.model.in1 = []; this.model.out = new ScilabDouble([1]); this.model.in2 = []; this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([-1]); this.model.rpar = []; this.model.opar = list(C); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = []; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } Ground_g.prototype.details = function Ground_g() { return this.x; } Ground_g.prototype.get = function Ground_g() { var options = { } return options; } Ground_g.prototype.set = function Ground_g() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/INIMPL_f.sci" */ function INIMPL_f() { INIMPL_f.prototype.define = function INIMPL_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["inimpl"]); this.model.out = [-1]; this.model.out2 = [1]; this.model.ipar = [1]; this.model.dep_ut = [false,false]; this.model.blocktype = new ScilabString(["c"]); mo = modelica(); mo.model = "PORT"; mo.outputs = "n"; this.model.equations = new ScilabDouble([mo]); this.prt = 1; exprs = "1"; gr_i = []; this.x = standard_define([1,1],this.model,exprs,gr_i); this.x.graphics.out_implicit = ["I"]; return new ImplicitInBlock(this.x); } INIMPL_f.prototype.details = function INIMPL_f() { return this.x; } INIMPL_f.prototype.get = function INIMPL_f() { var options = { } return options; } INIMPL_f.prototype.set = function INIMPL_f() { this.prt = parseFloat(arguments[0]["prt"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==2) { exprs = exprs[1-1]; } while (true) { [ok,this.prt,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","INIMPL_f")],[" "],["Implicit input port"],[" "]],"Port Number",list("vec",1),exprs); if (!ok) { break; } this.prt = int(this.prt); if (this.prt<=0) { block_parameter_error(msprintf("Wrong value for \'Port Number\' parameter: %d.",this.prt),"Strictly positive integer expected."); } else { if (this.model.ipar!=this.prt) { needcompile = 4; y = needcompile; } this.model.ipar = new ScilabDouble([this.prt]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new ImplicitInBlock(this.x); } } /* autogenerated from "macros/Sources/IN_f.sci" */ function IN_f() { IN_f.prototype.define = function IN_f() { prt = 1; this.model = scicos_model(); this.model.sim = new ScilabString(["input"]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([-1]); this.model.ipar = new ScilabDouble([prt]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = sci2exp(prt); gr_i = []; this.x = standard_define([1,1],this.model,exprs,gr_i); return new ExplicitInBlock(this.x); } IN_f.prototype.details = function IN_f() { return this.x; } IN_f.prototype.get = function IN_f() { var options = { } return options; } IN_f.prototype.set = function IN_f() { this.x = arg1; graphics = arg1.graphics; this.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"]]; } while (true) { [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")); } 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 (this.model.ipar!=prt) { needcompile = 4; y = needcompile; } this.model.ipar = new ScilabDouble([prt]); this.model.firing = []; this.model.out = new ScilabDouble([otsz[1-1]]); this.model.out2 = new ScilabDouble([otsz[2-1]]); this.model.outtyp = new ScilabDouble([ot]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new ExplicitInBlock(this.x); } } /* autogenerated from "macros/Sources/Modulo_Count.sci" */ function Modulo_Count() { Modulo_Count.prototype.define = function Modulo_Count() { this.ini_c = 0; this.base = 3; this.model = scicos_model(); this.model.sim = list(new ScilabString(["modulo_count"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([this.ini_c]); this.model.ipar = new ScilabDouble([this.base]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = [[string(this.ini_c)],[string(this.base)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } Modulo_Count.prototype.details = function Modulo_Count() { return this.x; } Modulo_Count.prototype.get = function Modulo_Count() { var options = { ini_c:["Initial State (zero or positive number)",this.ini_c], base:["Upper Limit (positive number)",this.base], } return options; } Modulo_Count.prototype.set = function Modulo_Count() { this.ini_c = parseFloat(arguments[0]["ini_c"]) this.base = parseFloat(arguments[0]["base"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.ini_c,this.base,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","Modulo_Count")],[" "],["Modulo counter (0 to N counter)"],[" "]],["Initial State (zero or positive number)","Upper Limit (positive number)"],list("vec",1,"vec",1),exprs); this.ini_c = int(this.ini_c); this.base = int(this.base); if (!ok) { break; } if (this.ini_c<0) { block_parameter_error(msprintf("Wrong value for \'Initial State\' parameter: %d.",this.ini_c),"Null or positive integer expected."); } else if (this.base<=0) { block_parameter_error(msprintf("Wrong values for \'Upper Limit\' parameter: %d.",this.base),"Strictly positive integer expected."); } else { graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.base]); this.model.dstate = new ScilabDouble([this.ini_c]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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]); this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.in1 = []; this.model.in2 = []; this.model.intyp = new ScilabDouble([1]); this.model.out = new ScilabDouble([-1]); this.model.out2 = new ScilabDouble([-2]); this.model.outtyp = new ScilabDouble([-1]); this.model.evtin = []; this.model.evtout = []; this.model.state = []; this.model.dstate = []; this.model.odstate = list(); this.model.rpar = new ScilabDouble([scs_m_1]); this.model.ipar = new ScilabDouble([1]); this.model.opar = list(); this.model.blocktype = new ScilabString(["h"]); this.model.firing = []; this.model.dep_ut = [false,false]; this.model.label = new ScilabString([""]); this.model.nzcross = new ScilabDouble([0]); this.model.nmode = new ScilabDouble([0]); this.model.equations = list(); E = 0.1; W = 30; F = 1; A = 1; exprs = [sci2exp(E),sci2exp(W),sci2exp(F),sci2exp(A)]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } PULSE_SC.prototype.details = function PULSE_SC() { return this.x; } PULSE_SC.prototype.get = function PULSE_SC() { var options = { } return options; } PULSE_SC.prototype.set = function PULSE_SC() { scicos_context.E = arguments[0]["scicos_context.E"] scicos_context.W = arguments[0]["scicos_context.W"] scicos_context.F = arguments[0]["scicos_context.F"] scicos_context.A = arguments[0]["scicos_context.A"] 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(); this.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 = this.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); this.x.graphics.exprs = exprs; this.x.model.rpar = sblock; break; } } else { if ((lasterror()!=[])) { messagebox(lasterror()); } ok = false; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/RAMP.sci" */ function RAMP() { RAMP.prototype.define = function RAMP() { this.slope = 0; this.iout = 0; this.stt = 0; rpar = [[this.slope],[this.stt],[this.iout]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["ramp"]), new ScilabDouble([4])); this.model.in1 = []; this.model.out = new ScilabDouble([1]); this.model.rpar = rpar; this.model.blocktype = new ScilabString(["c"]); this.model.nmode = new ScilabDouble([1]); this.model.nzcross = new ScilabDouble([1]); this.model.dep_ut = [false,true]; exprs = [string(rpar)]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } RAMP.prototype.details = function RAMP() { return this.x; } RAMP.prototype.get = function RAMP() { var options = { slope:["Slope",this.slope], stt:["Start Time",this.stt], iout:["Initial Value",this.iout], } return options; } RAMP.prototype.set = function RAMP() { this.slope = parseFloat(arguments[0]["slope"]) this.stt = parseFloat(arguments[0]["stt"]) this.iout = parseFloat(arguments[0]["iout"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.slope,this.stt,this.iout,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","RAMP")],[" "],["Ramp function"],[" "]],["Slope","Start Time","Initial Value"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break; } if (this.stt<0) { block_parameter_error(msprintf("Wrong value for \'Start Time\' parameter: %e.",this.stt),"Null or positive integer expected."); } else { this.model.rpar = [[this.slope],[this.stt],[this.iout]]; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/RAND_f.sci" */ function RAND_f() { RAND_f.prototype.define = function RAND_f() { this.a = 0; this.b = 1; dt = 0; out = 1; this.flag = 0; this.model = scicos_model(); this.model.sim = new ScilabString(["rndblk"]); this.model.out = new ScilabDouble([out]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[int(rand()*(10^7-1))],[0*this.a.slice()]]; this.model.rpar = [[this.a.slice()],[this.b.slice()]]; this.model.ipar = new ScilabDouble([this.flag]); this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[string(this.flag)],[sci2exp(this.a.slice())],[sci2exp(this.b.slice())],[string(this.model.dstate[1-1])]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } RAND_f.prototype.details = function RAND_f() { return this.x; } RAND_f.prototype.get = function RAND_f() { var options = { flag:["flag",this.flag], a:["A",this.a], b:["B",this.b], seed_c:["seed",this.seed_c], } return options; } RAND_f.prototype.set = function RAND_f() { this.flag = parseFloat(arguments[0]["flag"]) this.a = parseFloat(arguments[0]["a"]) this.b = parseFloat(arguments[0]["b"]) this.seed_c = arguments[0]["seed_c"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==5) { exprs = exprs.slice(1-1,3); } if (size(exprs,"*")==3) { exprs = [[exprs],[string(this.model.dstate[1-1])]]; } while (true) { [ok,this.flag,this.a,this.b,this.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 (this.flag!=0&&this.flag!=1) { message("flag must be equal to 1 or 0"); } else { nout = size(this.a,"*"); graphics.exprs = exprs; this.model.out = new ScilabDouble([nout]); this.model.ipar = new ScilabDouble([this.flag]); this.model.rpar = [[this.a.slice()],[this.b.slice()]]; this.model.dstate = [[this.seed_c],[0*this.a.slice()]]; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/RAND_m.sci" */ function RAND_m() { RAND_m.prototype.define = function RAND_m() { this.a = 0; this.b = 1; dt = 0; this.flag = 0; function_name = "rndblk_m"; funtyp = 4; this.model = scicos_model(); this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([funtyp])); this.model.in1 = []; this.model.in2 = []; this.model.intyp = []; this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = []; this.model.state = []; this.model.dstate = [[int(rand()*(10^7-1))],[0*this.a.slice()]]; this.model.rpar = [this.a.slice(),this.b.slice()]; this.model.ipar = new ScilabDouble([this.flag]); this.model.blocktype = new ScilabString(["d"]); this.model.firing = []; this.model.dep_ut = [false,false]; exprs = [[sci2exp(1)],[string(this.flag)],[sci2exp([this.a])],[sci2exp([this.b])],[sci2exp([this.model.dstate[1-1],int(rand()*(10^7-1))])]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } RAND_m.prototype.details = function RAND_m() { return this.x; } RAND_m.prototype.get = function RAND_m() { var options = { typ:["Datatype(1=real double 2=complex)",this.typ], flag:["flag",this.flag], a:["A",this.a], b:["B",this.b], seed_c:["SEED",this.seed_c], } return options; } RAND_m.prototype.set = function RAND_m() { this.typ = inverse(arguments[0]["typ"]) this.flag = parseFloat(arguments[0]["flag"]) this.a = parseFloat(arguments[0]["a"]) this.b = parseFloat(arguments[0]["b"]) this.seed_c = arguments[0]["seed_c"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; if (size(exprs,"*")==14) { exprs[9-1] = []; } while (true) { [ok,this.typ,this.flag,this.a,this.b,this.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 (this.flag!=0&&this.flag!=1) { message("flag must be equal to 1 or 0"); } else { out = size(this.a); if (this.typ==1) { function_name = "rndblk_m"; this.model.rpar = [[real(this.a.slice())],[real(this.b.slice())]]; this.model.dstate = [[this.seed_c[1-1]],[0*real(this.a.slice())]]; ot = 1; } else if (this.typ==2) { function_name = "rndblkz_m"; ot = 2; this.model.rpar = [[real(this.a.slice())],[imag(this.a.slice())],[real(this.b.slice())],[imag(this.b.slice())]]; this.model.dstate = [[this.seed_c.slice()],[0*[[real(this.a.slice())],[imag(this.a.slice())]]]]; } else { message("Datatype is not supported"); ok = false; } if (ok) { [this.model,graphics,ok] = set_io(this.model,graphics,list([],[]),list(out,ot),1,[]); if (ok) { this.model.sim = list(new ScilabString([function_name]), new ScilabDouble([4])); graphics.exprs = exprs; this.model.ipar = new ScilabDouble([this.flag]); this.x.graphics = graphics; this.x.model = this.model; break; } } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/READAU_f.sci" */ function READAU_f() { READAU_f.prototype.define = function READAU_f() { frmt = "uc "; fname = "test.au"; lunit = 0; this.N = 20; M = 1; tmask = []; this.swap = 0; offset = 1; outmask = 1; ievt = 0; nout = size(outmask,"*"); this.model = scicos_model(); this.model.sim = list(new ScilabString(["readau"]), new ScilabDouble([2])); this.model.out = new ScilabDouble([nout]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = [[1],[1],[lunit],[zeros(this.N*M,1)]]; this.model.ipar = [[length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[M],[this.swap],[offset],[this._str2code[fname-1]],[tmask],[outmask]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[fname],[string(this.N)],[string(this.swap)]]; gr_i = []; this.x = standard_define([5,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } READAU_f.prototype.details = function READAU_f() { return this.x; } READAU_f.prototype.get = function READAU_f() { var options = { fname1:["Input File Name",this.fname1], N:["Buffer size",this.N], swap:["Swap Mode (0:No, 1:Yes)",this.swap], } return options; } READAU_f.prototype.set = function READAU_f() { this.fname1 = parseFloat(arguments[0]["fname1"]) this.N = parseFloat(arguments[0]["N"]) this.swap = parseFloat(arguments[0]["swap"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; out = this.model.out; dstate = this.model.dstate; ipar = this.model.ipar; imask = 9+ipar[1-1]; tmask = ipar[imask-1]; lunit = dstate[3-1]; fname = exprs[1-1]; while (true) { [ok,this.fname1,this.N,this.swap,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","READAU_f")],[" "],["(Read Audio File)"],[" "],["Read is done on a binary \'.au\' file"]],["Input File Name","Buffer size","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; } this.fname1 = stripblanks(this.fname1); frmt1 = stripblanks(frmt1); if (this.alreadyran&&this.fname1!=fname) { block_parameter_error("Simulation running !!! You cannot modify Input file name","End current simulation first."); } else if (this.fname1=="") { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Input File Name"),"You must provide a filename."); } else if (this.N<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer size",this.N),msprintf("Must be greater than %d.",1)); } else if (this.alreadyran&&(this.N!=ipar[6-1])) { block_parameter_error(msprintf("You cannot modify \'%s\' when running.","Buffer Size"),"End current simulation first."); } else if (this.swap!=0&&this.swap!=1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Swap Mode",this.swap),msprintf("Must be in the interval %s.","[0, 1]")); } else { [this.model,graphics,ok] = check_io(this.model,graphics,[],1,1,[]); frmt1 = part(frmt1,1,3); if (ok) { ipar = [[length(this.fname1)],[this._str2code[frmt1-1]],[0],[this.N],[M],[this.swap],[offset,this._str2code[this.fname1-1]],[tmask1,outmask.slice()]]; if (prod(size(dstate))!=(this.N*M)+3) { dstate = [[-1],[-1],[lunit],[zeros(this.N*M,1)]]; } this.model.dstate = dstate; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/READC_f.sci" */ function READC_f() { READC_f.prototype.define = function READC_f() { frmt = "d "; fname = "foo"; lunit = 0; this.N = 20; this.M = 1; rpar = []; tmask = 0; this.swap = 0; this.offset = 1; this.outmask = 1; ievt = 0; nout = size(this.outmask,"*"); ipar = [[length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[fname-1]],[tmask],[this.outmask]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["readc"]), new ScilabDouble([2])); this.model.out = new ScilabDouble([nout]); this.model.evtin = new ScilabDouble([1]); this.model.evtout = []; this.model.dstate = [[1],[1],[lunit],[zeros(this.N*this.M,1)]]; this.model.ipar = [[length(fname)],[this._str2code[frmt-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[fname-1]],[tmask],[this.outmask]]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = [["[]"],[sci2exp(this.outmask)],[fname],[frmt],[string(this.M)],[string(this.N)],[string(this.offset)],[string(this.swap)]]; gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } READC_f.prototype.details = function READC_f() { return this.x; } READC_f.prototype.get = function READC_f() { var options = { tmask1:["Time Record Selection",this.tmask1], outmask:["Outputs Record Selection",this.outmask], fname1:["Input File Name",this.fname1], frmt1:["Input Format",this.frmt1], M:["Record Size",this.M], N:["Buffer Size",this.N], offset:["Initial Record Index",this.offset], swap:["Swap Mode (0:No, 1:Yes)",this.swap], } return options; } READC_f.prototype.set = function READC_f() { this.tmask1 = parseFloat(arguments[0]["tmask1"]) this.outmask = parseFloat(arguments[0]["outmask"]) this.fname1 = parseFloat(arguments[0]["fname1"]) this.frmt1 = arguments[0]["frmt1"] this.M = parseFloat(arguments[0]["M"]) this.N = parseFloat(arguments[0]["N"]) this.offset = parseFloat(arguments[0]["offset"]) this.swap = parseFloat(arguments[0]["swap"]) this.x = arg1; this.model = this.x.model; graphics = arg1.graphics; exprs = graphics.exprs; out = this.model.out; dstate = this.model.dstate; ipar = this.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,this.tmask1,this.outmask,this.fname1,this.frmt1,this.M,this.N,this.offset,this.swap,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","READC_f")],[" "],["Read from C binary file"]],["Time Record Selection","Outputs Record Selection","Input File Name","Input Format","Record Size","Buffer Size","Initial Record Index","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; } this.fname1 = pathconvert(stripblanks(this.fname1),false,true); this.frmt1 = stripblanks(this.frmt1); fmts = ["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; nout = size(this.outmask,"*"); if (prod(size(this.tmask1))>1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Time Record Selection"),"Must be a scalar or an empty matrix."); } else if (and(this.frmt1!=fmts)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Input Format",this.frmt1),"Valid formats are: "+strcat(fmts,", ")); } else if (this.alreadyran&&this.fname1!=fname) { block_parameter_error(msprintf("You cannot modify \'%s\' when running","Input File Name"),"End current simulation first."); } else if (this.N!=ipar[6-1]&&this.alreadyran) { block_parameter_error(msprintf("You cannot modify \'%s\' when running.","Buffer Size"),"End current simulation first"); } else if (this.alreadyran&&size(this.tmask1)!=size(tmask)) { block_parameter_error(msprintf("You cannot modify \'%s\' when running.","Time Record Selection"),"End current simulation first."); } else if (this.fname1=="") { block_parameter_error(msprintf("Wrong value for \'%s\' parameter.","Input File Name"),"You must provide a file name."); } else if (this.M<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Record Size",this.M),"Strictly positive integer expected."); } else if (this.tmask1!=[]&&(this.tmask1<1||this.tmask1>this.M)) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Time Record Selection",this.tmask1),msprintf("Must be in the interval %s.","[1, Record Size = "+string(this.M)+"]")); } else if (nout==0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Outputs Record Selection",nout),"Strictly positive integer expected."); } else if (nout>this.M) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Outputs Record Selection",nout),msprintf("Must be in the interval %s.","[1, Record Size = "+string(this.M)+"]")); } else if (max(this.outmask)>this.M||min(this.outmask)<1) { block_parameter_error(msprintf("Wrong value for indexes in \'%s\' parameter: %s.","Outputs Record Selection",strcat(string(this.outmask.slice())," ")),msprintf("Must be in the interval %s.","[1, Record Size = "+string(this.M)+"]")); } else if (this.N<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Strictly positive integer expected."); } else if (this.swap!=0&&this.swap!=1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Swap Mode",this.swap),msprintf("Must be in the interval %s.","[0, 1]")); } else if (this.offset<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Initial Record Index",this.offset),"Strictly positive integer expected."); } else { if (this.tmask1==[]) { ievt = 0; this.tmask1 = 0; outpt = []; } else { ievt = 1; outpt = 1; } out = size(this.outmask,"*"); [this.model,graphics,ok] = check_io(this.model,graphics,[],out,1,outpt); this.frmt1 = part(this.frmt1,1,3); if (ok) { if (ievt==0) { this.model.firing = new ScilabDouble([-1]); } else { this.model.firing = new ScilabDouble([0]); } ipar = [[length(this.fname1)],[this._str2code[this.frmt1-1]],[ievt],[this.N],[this.M],[this.swap],[this.offset],[this._str2code[this.fname1-1]],[this.tmask1],[this.outmask.slice()]]; if (prod(size(dstate))!=(this.N*this.M)+3) { dstate = [[-1],[-1],[lunit],[zeros(this.N*this.M,1)]]; } this.model.dstate = dstate; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* 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; this.N = 2; rpar = []; tmask = 0; this.outmask = 1; ipar = [[length(fname)],[length(frmt)],[0],[this.N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[this.outmask]]; dstate = [[1],[1],[lunit],[zeros((nout)*this.N,1)]]; this.model = scicos_model(); this.model.sim = new ScilabString(["readf"]); this.model.out = new ScilabDouble([nout]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = dstate; this.model.ipar = [[length(fname)],[length(frmt)],[0],[this.N],[this._str2code[fname-1]],[this._str2code[frmt-1]],[tmask],[this.outmask]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[sci2exp([])],[sci2exp(this.outmask)],[fname],[frmt],[string(this.N)],[sci2exp(out)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } RFILE_f.prototype.details = function RFILE_f() { return this.x; } RFILE_f.prototype.get = function RFILE_f() { var options = { tmask1:["Time Record Selection",this.tmask1], outmask:["Outputs Record Selection",this.outmask], fname1:["Input File Name",this.fname1], frmt1:["Input Format",this.frmt1], N:["Buffer Size",this.N], } return options; } RFILE_f.prototype.set = function RFILE_f() { this.tmask1 = parseFloat(arguments[0]["tmask1"]) this.outmask = parseFloat(arguments[0]["outmask"]) this.fname1 = parseFloat(arguments[0]["fname1"]) this.frmt1 = parseFloat(arguments[0]["frmt1"]) this.N = parseFloat(arguments[0]["N"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; dstate = this.model.dstate; ipar = this.model.ipar; ievt = ipar[3-1]; this.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,this.tmask1,this.outmask,this.fname1,this.frmt1,this.N,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","RFILE_f")],[" "],["Read from an input file"],[" "],["Read is done on:"],["  - A binary file if no format given"],["  - A formatted text file if a format (fortran type) is given"]],["Time Record Selection","Outputs Record Selection","Input File Name","Input Format","Buffer Size"],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1),exprs); if (!ok) { break; } this.fname1 = pathconvert(stripblanks(this.fname1),false,true); this.frmt1 = stripblanks(this.frmt1); nout = size(this.outmask,"*"); if (prod(size(this.tmask1))>1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s.","Time Record Selection",strcat(string(this.tmask1.slice())," ")),"Empty matrix or scalar expected."); } else if (this.tmask1!=[]&&this.tmask1<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d","Time Record Selection",this.tmask1),"Strictly positive integer expected."); } else if (lunit>0&&min(length(frmt),1)!=min(length(this.frmt1),1)) { block_parameter_error(["Simulation running !!! You cannot switch
between formatted and unformatted"],"End current simulation first."); } else if (lunit>0&&this.fname1!=fname) { block_parameter_error("Simulation running !!! You cannot modify \'Input File Name\'","End current simulation first."); } else if (lunit>0&&size(this.tmask1)!=size(tmask)) { block_parameter_error("Simulation running !!! You cannot modify \'Time Record Selection\'","End current simulation first."); } else if (this.fname1=="") { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s","Input File Name",this.fname1),"You must provide a filename."); } else if (this.frmt1!=""&&(part(this.frmt1,1)!="("||part(this.frmt1,length(this.frmt1))!=")")) { block_parameter_error(msprintf("Wrong format for \'%s\' parameter: %s.","Input Format",this.frmt1),"You must enclose the format\'s string between parentheses."); } else if (this.N<2) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Buffer Size",this.N),"Buffer size must be at least 2."); } else if (nout==0) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %d.","Outputs Record Selection",nout),"You must read at least one field in record."); } else if (min(this.outmask)<1) { block_parameter_error(msprintf("Wrong value for \'%s\' parameter: %s","Outputs Record Selection",strcat(string(this.outmask.slice())," ")),"Strictly positive indexes expected."); } else { if (this.tmask1==[]) { ievt = 0; cout = []; this.tmask1 = 0; } else { ievt = 1; cout = 1; } [this.model,graphics,ok] = check_io(this.model,graphics,[],nout,1,cout); if (ok) { if (ievt==0) { this.model.firing = []; } else { this.model.firing = new ScilabDouble([0]); } ipar = [[length(this.fname1)],[length(this.frmt1)],[ievt],[this.N],[this._str2code[this.fname1-1]],[this._str2code[this.frmt1-1]],[this.tmask1],[this.outmask.slice()]]; if (prod(size(dstate))!=(nout+ievt)*this.N+3) { dstate = [[-1],[-1],[lunit],[zeros((nout+ievt)*this.N,1)]]; } this.model.dstate = dstate; this.model.ipar = ipar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/SAWTOOTH_f.sci" */ function SAWTOOTH_f() { SAWTOOTH_f.prototype.define = function SAWTOOTH_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["sawtth"]); this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.dstate = new ScilabDouble([0]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; exprs = " "; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } SAWTOOTH_f.prototype.details = function SAWTOOTH_f() { return this.x; } SAWTOOTH_f.prototype.get = function SAWTOOTH_f() { var options = { } return options; } SAWTOOTH_f.prototype.set = function SAWTOOTH_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/STEP.sci" */ function STEP() { STEP.prototype.define = function STEP() { rpar = [[0],[1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["step_func"]), new ScilabDouble([4])); this.model.evtin = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.firing = new ScilabDouble([1]); this.model.rpar = rpar; this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,false]; exprs = [[string(1)],[string(rpar)]]; gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } STEP.prototype.details = function STEP() { return this.x; } STEP.prototype.get = function STEP() { var options = { temps:["Step Time",this.temps], in1:["Initial Value",this.in1], fi:["Final Value",this.fi], } return options; } STEP.prototype.set = function STEP() { this.temps = arguments[0]["temps"] this.in1 = arguments[0]["in1"] this.fi = arguments[0]["fi"] this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.temps,this.in1,this.fi,exprs] = scicos_getvalue([[msprintf("Set %s block parameters","STEP_FUNCTION")],[" "],["Step Function"],[" "]],["Step Time","Initial Value","Final Value"],list("vec",1,"vec",-1,"vec",-1),exprs); if (!ok) { break; } this.in1 = this.in1.slice(); this.fi = this.fi.slice(); if (size(this.in1,"*")!=size(this.fi,"*")) { if (size(this.in1,"*")==1) { this.in1 = this.in1*ones(this.fi); } else if (size(this.fi,"*")==1) { this.fi = this.fi*ones(this.in1); } else { block_parameter_error(msprintf("\'Initial Value\' and \'Final Value\': incompatible sizes: %d and %d.",size(this.in1,"*"),size(this.fi,"*")),"Same sizes expected."); ok = false; } } if (ok) { this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); [this.model,graphics,ok] = check_io(this.model,graphics,[],size(this.fi,"*"),1,1); } if (ok) { this.model.firing = new ScilabDouble([this.temps]); if (this.temps==0) { rpar = [[this.fi],[this.fi]]; } else { rpar = [[this.in1],[this.fi]]; } this.model.rpar = rpar; graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* 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"); 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; this.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 = this.model; scs_m_1.objs[1-1] = blk; blk = scs_m_1.objs[2-1]; graphics = blk.graphics; this.model = blk.model; graphics.orig = [80,10]; graphics.sz = [20,20]; graphics.exprs = ["1"]; this.model.ipar = new ScilabDouble([1]); graphics.pin = 3; blk.graphics = graphics; blk.model = this.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={}; this.model = scicos_model(); this.model.sim = new ScilabString(["csuper"]); this.model.out = new ScilabDouble([1]); this.model.out2 = new ScilabDouble([1]); this.model.outtyp = new ScilabDouble([1]); this.model.rpar = scs_m_1; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } STEP_FUNCTION.prototype.details = function STEP_FUNCTION() { return this.x; } STEP_FUNCTION.prototype.get = function STEP_FUNCTION() { var options = { } return options; } 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)) { this.model = xx.model; model_n = this.xxn.model; if (!is_modelica_block(xx)) { modified = or(this.model.sim!=model_n.sim)||!isequal(this.model.state,model_n.state)||!isequal(this.model.dstate,model_n.dstate)||!isequal(this.model.rpar,model_n.rpar)||!isequal(this.model.ipar,model_n.ipar)||!isequal(this.model.label,model_n.label); if (or(this.model.in1!=model_n.in1)||or(this.model.out!=model_n.out)) { needcompile = 1; } if (or(this.model.firing!=model_n.firing)) { needcompile = 2; } if (this.model.sim=="input"||this.model.sim=="output") { if (this.model.ipar!=model_n.ipar) { needcompile = 4; } } if (or(this.model.blocktype!=model_n.blocktype)||or(this.model.dep_ut!=model_n.dep_ut)) { needcompile = 4; } if ((this.model.nzcross!=model_n.nzcross)||(this.model.nmode!=model_n.nmode)) { needcompile = 4; } if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (this.model.sim[1-1]!=model_n.sim[1-1]) { needcompile = 4; } } } } else { modified = or(model_n!=this.model); eq = this.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.x = arg1; y = needcompile; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/SampleCLK.sci" */ function SampleCLK() { SampleCLK.prototype.define = function SampleCLK() { this.model = scicos_model(); this.model.sim = new ScilabString(["sampleclk"]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = [1,0]; this.model.blocktype = new ScilabString(["d"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [false,false]; exprs = [[sci2exp(1)],[sci2exp(0)]]; this.x = standard_define([2,2],this.model,exprs," "); return new BasicBlock(this.x); } SampleCLK.prototype.details = function SampleCLK() { return this.x; } SampleCLK.prototype.get = function SampleCLK() { var options = { frequ:["Sample time",this.frequ], offset:["Offset",this.offset], } return options; } SampleCLK.prototype.set = function SampleCLK() { this.frequ = arguments[0]["frequ"] this.offset = arguments[0]["offset"] this.x = arg1; graphics = arg1.graphics; this.model = arg1.model; exprs = graphics.exprs; while (true) { [ok,this.frequ,this.offset,exprs] = scicos_getvalue("Set block parameters",["Sample time","Offset"],list("vec",1,"vec",1),exprs); if (!ok) { break; } if (this.frequ<0) { message("Frequency must be a positif number"); ok = false; } if (abs(this.offset)>this.frequ) { message("The |Offset| must be less than the Frequency"); ok = false; } if (ok) { if (or(this.model.rpar.slice()!=[[this.frequ],[this.offset]])) { needcompile = 4; y = needcompile; } this.model.rpar = [[this.frequ],[this.offset]]; this.model.evtout = new ScilabDouble([1]); this.model.firing = new ScilabDouble([-1]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; break; } } needcompile = resume(needcompile) return new BasicBlock(this.x); } } /* 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]); this.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 = []; this.x = standard_define([3,2],this.model,[],gr_i); return new BasicBlock(this.x); } Sigbuilder.prototype.details = function Sigbuilder() { return this.x; } Sigbuilder.prototype.get = function Sigbuilder() { var options = { } return options; } 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)) { this.model = xx.model; model_n = this.xxn.model; if (!is_modelica_block(xx)) { modified = or(this.model.sim!=model_n.sim)||!isequal(this.model.state,model_n.state)||!isequal(this.model.dstate,model_n.dstate)||!isequal(this.model.odstate,model_n.odstate)||!isequal(this.model.rpar,model_n.rpar)||!isequal(this.model.ipar,model_n.ipar)||!isequal(this.model.opar,model_n.opar)||!isequal(this.model.label,model_n.label); if (or(this.model.in1!=model_n.in1)||or(this.model.out!=model_n.out)||or(this.model.in2!=model_n.in2)||or(this.model.out2!=model_n.out2)||or(this.model.outtyp!=model_n.outtyp)||or(this.model.intyp!=model_n.intyp)) { needcompile = 1; } if (or(this.model.firing!=model_n.firing)) { needcompile = 2; } if ((size(this.model.in1,"*")!=size(model_n.in1,"*"))||(size(this.model.out,"*")!=size(model_n.out,"*"))) { needcompile = 4; } if (this.model.sim=="input"||this.model.sim=="output") { if (this.model.ipar!=model_n.ipar) { needcompile = 4; } } if (or(this.model.blocktype!=model_n.blocktype)||or(this.model.dep_ut!=model_n.dep_ut)) { needcompile = 4; } if ((this.model.nzcross!=model_n.nzcross)||(this.model.nmode!=model_n.nmode)) { needcompile = 4; } if (prod(size(model_n.sim))>1) { if (model_n.sim[2-1]>1000) { if (this.model.sim[1-1]!=model_n.sim[1-1]) { needcompile = 4; } } } } else { modified = or(model_n!=this.model); eq = this.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); } } this.x = arg1; typ = newpar; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/TIME_f.sci" */ function TIME_f() { TIME_f.prototype.define = function TIME_f() { this.model = scicos_model(); this.model.sim = new ScilabString(["timblk"]); this.model.out = new ScilabDouble([1]); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = [false,true]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } TIME_f.prototype.details = function TIME_f() { return this.x; } TIME_f.prototype.get = function TIME_f() { var options = { } return options; } TIME_f.prototype.set = function TIME_f() { this.x = arg1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Sources/TKSCALE.sci" */ function TKSCALE() { TKSCALE.prototype.define = function TKSCALE() { this.a = -10; this.b = 10; this.f = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["tkscaleblk"]), new ScilabDouble([5])); this.model.out = new ScilabDouble([1]); this.model.evtin = new ScilabDouble([1]); this.model.rpar = [[this.a],[this.b],[this.f]]; this.model.blocktype = new ScilabString(["d"]); this.model.dep_ut = [false,false]; exprs = [[sci2exp(this.a)],[sci2exp(this.b)],[sci2exp(this.f)]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } TKSCALE.prototype.details = function TKSCALE() { return this.x; } TKSCALE.prototype.get = function TKSCALE() { var options = { a:["Min value",this.a], b:["Max value",this.b], f:["Normalization",this.f], } return options; } TKSCALE.prototype.set = function TKSCALE() { this.a = parseFloat(arguments[0]["a"]) this.b = parseFloat(arguments[0]["b"]) this.f = parseFloat(arguments[0]["f"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; [ok,this.a,this.b,this.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; this.model.rpar = [[this.a],[this.b],[this.f]]; this.x.graphics = graphics; this.x.model = this.model; } return new BasicBlock(this.x); } } /* autogenerated from "macros/Threshold/GENERAL_f.sci" */ function GENERAL_f() { GENERAL_f.prototype.define = function GENERAL_f() { rpar = [[0],[0],[0],[0]]; this.in1 = 1; this.out = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["zcross"]), new ScilabDouble([1])); this.model.nzcross = new ScilabDouble([this.in1]); this.model.in1 = new ScilabDouble([this.in1]); this.model.evtout = new ScilabDouble([ones(this.out,1)]); this.model.rpar = [[0],[0],[0],[0]]; this.model.blocktype = new ScilabString(["z"]); this.model.firing = new ScilabDouble([-ones(this.out,1)]); this.model.dep_ut = [true,false]; exprs = [[strcat(sci2exp(this.in1))],[strcat(sci2exp(this.out))]]; gr_i = []; this.x = standard_define([3,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } GENERAL_f.prototype.details = function GENERAL_f() { return this.x; } GENERAL_f.prototype.get = function GENERAL_f() { var options = { in1:["Input size",this.in1], out:["Number of event output",this.out], } return options; } GENERAL_f.prototype.set = function GENERAL_f() { this.in1 = parseFloat(arguments[0]["in1"]) this.out = parseFloat(arguments[0]["out"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; rpar = this.model.rpar; this.in1 = this.model.in1; this.out = this.model.evtout; nin = sum(this.in1); nout = sum(this.out); [ok,this.in1,this.out,exprs] = scicos_getvalue("Set General Zero-Crossing parameters",["Input size","Number of event output"],list("vec",1,"vec",1),exprs); if (ok) { [this.model,graphics,ok] = check_io(this.model,graphics,this.in1,[],[],ones(this.out,1)); if (ok) { nout1 = this.out; nin1 = this.in1; if (nout==nout1&&nin==nin1) { rp = matrix(rpar,nout,2^(2*nin)); } 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); this.model.nzcross = new ScilabDouble([this.in1]); this.model.rpar = rp.slice(); this.model.firing = new ScilabDouble([-ones(this.out,1)]); graphics.exprs = exprs; this.x.graphics = graphics; this.x.model = this.model; } } } return new BasicBlock(this.x); } } /* autogenerated from "macros/Threshold/NEGTOPOS_f.sci" */ function NEGTOPOS_f() { NEGTOPOS_f.prototype.define = function NEGTOPOS_f() { this.model = scicos_model(); this.model.sim = list(new ScilabString(["zcross"]), new ScilabDouble([1])); this.model.nzcross = new ScilabDouble([1]); this.model.in1 = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = [[-1],[-1],[0],[-1]]; this.model.blocktype = new ScilabString(["z"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [true,false]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } NEGTOPOS_f.prototype.details = function NEGTOPOS_f() { return this.x; } NEGTOPOS_f.prototype.get = function NEGTOPOS_f() { var options = { } return options; } NEGTOPOS_f.prototype.set = function NEGTOPOS_f() { this.x = arg1; this.x.model.firing = -1; return new BasicBlock(this.x); } } /* autogenerated from "macros/Threshold/POSTONEG_f.sci" */ function POSTONEG_f() { POSTONEG_f.prototype.define = function POSTONEG_f() { rpar = [[-1],[-1],[-1],[0]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["zcross"]), new ScilabDouble([1])); this.model.nzcross = new ScilabDouble([1]); this.model.in1 = new ScilabDouble([1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = [[-1],[-1],[-1],[0]]; this.model.blocktype = new ScilabString(["z"]); this.model.dep_ut = [true,false]; this.model.firing = [-1]; gr_i = []; this.x = standard_define([2,2],this.model,[],gr_i); return new BasicBlock(this.x); } POSTONEG_f.prototype.details = function POSTONEG_f() { return this.x; } POSTONEG_f.prototype.get = function POSTONEG_f() { var options = { } return options; } POSTONEG_f.prototype.set = function POSTONEG_f() { this.x = arg1; this.x.model.firing = [-1]; return new BasicBlock(this.x); } } /* autogenerated from "macros/Threshold/ZCROSS_f.sci" */ function ZCROSS_f() { ZCROSS_f.prototype.define = function ZCROSS_f() { rpar = [[-1],[-1],[0],[0]]; this.in1 = 1; this.model = scicos_model(); this.model.sim = list(new ScilabString(["zcross"]), new ScilabDouble([1])); this.model.in1 = new ScilabDouble([this.in1]); this.model.nzcross = new ScilabDouble([this.in1]); this.model.evtout = new ScilabDouble([1]); this.model.rpar = [[-1],[-1],[0],[0]]; this.model.blocktype = new ScilabString(["z"]); this.model.firing = new ScilabDouble([-1]); this.model.dep_ut = [true,false]; exprs = strcat(sci2exp(this.in1)); gr_i = []; this.x = standard_define([2,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } ZCROSS_f.prototype.details = function ZCROSS_f() { return this.x; } ZCROSS_f.prototype.get = function ZCROSS_f() { var options = { } return options; } ZCROSS_f.prototype.set = function ZCROSS_f() { this.in1 = parseFloat(arguments[0]["in1"]) this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; this.model = arg1.model; while (true) { [ok,this.in1,exprs] = scicos_getvalue([["Set Zero-Crossing parameters"],["All surfaces must cross together"]],"Input size",list("vec",1),exprs); if (!ok) { break; } this.in1 = int(this.in1); if (this.in1<=0) { message("Block must have at least one input"); } else { kk = 0; for (jj=1;jj<=this.in1;jj+=1) { kk = kk+2^(this.in1+jj-1); } this.model.rpar = [[-ones(kk,1)],[zeros(2^(2*this.in1)-kk,1)]]; graphics.exprs = exprs; this.model.in1 = new ScilabDouble([this.in1]); this.model.nzcross = new ScilabDouble([this.in1]); this.model.firing = new ScilabDouble([-1]); this.x.graphics = graphics; this.x.model = this.model; break; } } return new BasicBlock(this.x); } } /* made from 271/274 files */