diff options
Diffstat (limited to 'js/Sinks/CMSCOPE.js')
-rw-r--r-- | js/Sinks/CMSCOPE.js | 177 |
1 files changed, 89 insertions, 88 deletions
diff --git a/js/Sinks/CMSCOPE.js b/js/Sinks/CMSCOPE.js index cfef200f..f8b69469 100644 --- a/js/Sinks/CMSCOPE.js +++ b/js/Sinks/CMSCOPE.js @@ -24,103 +24,104 @@ function CMSCOPE() { model.dep_ut = [true,false]; exprs = [[strcat(string(in1)," ")],[strcat(string(clrs)," ")],[string(win)],[sci2exp([])],[sci2exp([])],[strcat(string(ymin)," ")],[strcat(string(ymax)," ")],[strcat(string(per)," ")],[string(N)],[string(0)],[emptystr()]]; gr_i = []; - x = standard_define([2,2],model,exprs,gr_i); + this.x = standard_define([2,2],model,exprs,gr_i); } CMSCOPE.prototype.details = function CMSCOPE() { + return this.x; } CMSCOPE.prototype.get = function CMSCOPE() { } CMSCOPE.prototype.set = function CMSCOPE() { - x = arg1; + this.x = arg1; graphics = arg1.graphics; exprs = graphics.exprs; model = arg1.model; while (true) { - [ok,in1,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs] = scicos_getvalue("Set Scope parameters",[["Input ports sizes"],["Drawing colors (>0) or mark (<0)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin vector"],["Ymax vector"],["Refresh period"],["Buffer size"],["Accept herited events 0/1","Name of Scope (label&Id)"]],list("vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec",1,"vec",1,"str",1),exprs); - if (!ok) { -break; -} - mess = []; - if (size(in1,"*")<=0) { - mess = [[mess],["Block must have at least one input port"],[" "]]; - ok = false; -} - if (min(in1)<=0) { - mess = [[mess],["Port sizes must be positive"],[" "]]; - ok = false; -} - if (size(clrs,"*")<sum(in1)) { - mess = [[mess],["Not enough colors defined (at least "+string(sum(in1))+")"],[" "]]; - ok = false; -} - if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { - mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; - ok = false; -} - if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { - mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; - ok = false; -} - if (win<-1) { - mess = [[mess],["Window number can\'t be < -1"],[" "]]; - ok = false; -} - if (size(per,"*")!=size(ymin,"*")) { - mess = [[mess],["Size of Refresh Period must equal size of Ymin/Ymax vector"],[" "]]; - ok = false; -} -for (i=1;i<=size(per,"*");i+=1) { - if ((per[i-1]<=0)) { - mess = [[mess],["Refresh Period must be positive"],[" "]]; - ok = false; -} -} - if (N<2) { - mess = [[mess],["Buffer size must be at least 2"],[" "]]; - ok = false; -} - if (or(ymin>=ymax)) { - mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; - ok = false; -} - if (!or(heritance==[0,1])) { - mess = [[mess],["Accept herited events must be 0 or 1"],[" "]]; - ok = false; -} - if (!ok) { -message([["Some specified values are inconsistent:"],[" "],[mess]]); -} - if (ok) { - in1 = in1.slice(); - a = size(in1,1); - in2 = ones(a,1); - [model,graphics,ok] = set_io(model,graphics,list([in1,in2],ones(a,1)),list(),ones(1-heritance,1),[]); -} - if (ok) { - if (wpos==[]) { - wpos = [[-1],[-1]]; -} - if (wdim==[]) { - wdim = [[-1],[-1]]; -} - if (ok) { - period = transpose(per.slice()); - yy = [[transpose(ymin.slice())],[transpose(ymax.slice())]]; - rpar = [[0],[period.slice()],[yy.slice()]]; - clrs = clrs.slice(1-1,sum(in1)); - ipar = [[win],[size(in1,"*")],[N],[wpos.slice()],[wdim.slice()],[in1.slice()],[clrs.slice()],[heritance]]; - model.evtin = ones(1-heritance,1); - model.dstate = []; - model.rpar = rpar; - model.ipar = ipar; - model.label = nom; - graphics.id = nom; - graphics.exprs = exprs; - x.graphics = graphics; - x.model = model; -break; -} -} -} + [ok,in1,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs] = scicos_getvalue("Set Scope parameters",[["Input ports sizes"],["Drawing colors (>0) or mark (<0)"],["Output window number (-1 for automatic)"],["Output window position"],["Output window sizes"],["Ymin vector"],["Ymax vector"],["Refresh period"],["Buffer size"],["Accept herited events 0/1","Name of Scope (label&Id)"]],list("vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec",1,"vec",1,"str",1),exprs); + if (!ok) { + break; + } + mess = []; + if (size(in1,"*")<=0) { + mess = [[mess],["Block must have at least one input port"],[" "]]; + ok = false; + } + if (min(in1)<=0) { + mess = [[mess],["Port sizes must be positive"],[" "]]; + ok = false; + } + if (size(clrs,"*")<sum(in1)) { + mess = [[mess],["Not enough colors defined (at least "+string(sum(in1))+")"],[" "]]; + ok = false; + } + if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { + mess = [[mess],["Window position must be [] or a 2 vector"],[" "]]; + ok = false; + } + if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { + mess = [[mess],["Window dim must be [] or a 2 vector"],[" "]]; + ok = false; + } + if (win<-1) { + mess = [[mess],["Window number can\'t be < -1"],[" "]]; + ok = false; + } + if (size(per,"*")!=size(ymin,"*")) { + mess = [[mess],["Size of Refresh Period must equal size of Ymin/Ymax vector"],[" "]]; + ok = false; + } + for (i=1;i<=size(per,"*");i+=1) { + if ((per[i-1]<=0)) { + mess = [[mess],["Refresh Period must be positive"],[" "]]; + ok = false; + } + } + if (N<2) { + mess = [[mess],["Buffer size must be at least 2"],[" "]]; + ok = false; + } + if (or(ymin>=ymax)) { + mess = [[mess],["Ymax must be greater than Ymin"],[" "]]; + ok = false; + } + if (!or(heritance==[0,1])) { + mess = [[mess],["Accept herited events must be 0 or 1"],[" "]]; + ok = false; + } + if (!ok) { + message([["Some specified values are inconsistent:"],[" "],[mess]]); + } + if (ok) { + in1 = in1.slice(); + a = size(in1,1); + in2 = ones(a,1); + [model,graphics,ok] = set_io(model,graphics,list([in1,in2],ones(a,1)),list(),ones(1-heritance,1),[]); + } + if (ok) { + if (wpos==[]) { + wpos = [[-1],[-1]]; + } + if (wdim==[]) { + wdim = [[-1],[-1]]; + } + if (ok) { + period = transpose(per.slice()); + yy = [[transpose(ymin.slice())],[transpose(ymax.slice())]]; + rpar = [[0],[period.slice()],[yy.slice()]]; + clrs = clrs.slice(1-1,sum(in1)); + ipar = [[win],[size(in1,"*")],[N],[wpos.slice()],[wdim.slice()],[in1.slice()],[clrs.slice()],[heritance]]; + model.evtin = ones(1-heritance,1); + model.dstate = []; + model.rpar = rpar; + model.ipar = ipar; + model.label = nom; + graphics.id = nom; + graphics.exprs = exprs; + this.x.graphics = graphics; + this.x.model = model; + break; + } + } + } } } |