diff options
Diffstat (limited to 'combined.js')
-rw-r--r-- | combined.js | 618 |
1 files changed, 585 insertions, 33 deletions
diff --git a/combined.js b/combined.js index edc62903..690976c7 100644 --- a/combined.js +++ b/combined.js @@ -1080,7 +1080,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs(1)); +[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); if (!ok) { break } @@ -1268,7 +1268,7 @@ x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==7) { -exprs=exprs([1:4,7]); +exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { @@ -1491,13 +1491,13 @@ ok=None; if (!ok) { message(mess); } else { -evtdly.graphics.exprs[1-1]=exprs(1); +evtdly.graphics.exprs[1-1]=exprs[1-1]; if (evtdly.model.rpar!=dt) { evtdly.model.rpar=dt; newpar[$+1-1]=ppath[2-1]; } x.model.rpar.objs[ppath[2-1]-1]=evtdly; -register.graphics.exprs=exprs(2); +register.graphics.exprs=exprs[2-1]; if (or(register.model.dstate!=z0.slice())) { register.model.dstate=z0.slice(); newpar[$+1-1]=ppath[1-1]; @@ -1587,7 +1587,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==7) { -exprs=exprs([1:4,7]); +exprs=exprs[[1:4,7]-1]; } while (true) { [ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",["A matrix","B matrix","C matrix","D matrix","Initial state"],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); @@ -2056,7 +2056,7 @@ graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; if (size(exprs,"*")==2) { -exprs=exprs(2); +exprs=exprs[2-1]; } if (size(exprs,"*")!=3) { exprs=string(model.rpar); @@ -2247,7 +2247,7 @@ x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==7) { -exprs=exprs([1:4,7]); +exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { @@ -2324,7 +2324,7 @@ x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==7) { -exprs=exprs([1:4,7]); +exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { @@ -2519,7 +2519,7 @@ x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==7) { -exprs=exprs([1:4,7]); +exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { @@ -2819,7 +2819,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==7) { -exprs=exprs([1:4,7]); +exprs=exprs[[1:4,7]-1]; } while (true) { [ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",["A matrix","B matrix","C matrix","D matrix","Initial state"],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); @@ -2924,7 +2924,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { -[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs(1)); +[ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); if (!ok) { break } @@ -3239,6 +3239,96 @@ x=standard_define([2,2],model,exprs,gr_i); CANIMXY.prototype.details = function CANIMXY() { } } +/* autogenerated from "macros/Sinks/WFILE_f.sci" */ +function WFILE_f() { +WFILE_f.prototype.get = function WFILE_f() { +} +WFILE_f.prototype.set = function WFILE_f() { +warnobsolete("WRITEC_f","6.0.0"); +warnMessage=msprintf(_("Feature %s is obsolete."),"WFILE_f"); +warnAdvise=msprintf(_("Please use %s instead."),"WRITEC_f"); +warnXcosMessage=msprintf("%s %s",warnMessage,warnAdvise); +warnBlockByUID(arg1.model.label,warnXcosMessage); +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +dstate=model.dstate; +lunit=dstate(2); +fname=exprs[2-1]; +frmt=exprs[3-1]; +while (true) { +[ok,in1,fname1,frmt1,N,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"WFILE_f")," ",gettext("Write to output file")," ",gettext("Write is done on:"),gettext(" - A binary file if no format given"),gettext(" - A formatted text file if a format (Fortran type) is given")],[gettext("Input Size"),gettext("Output File Name"),gettext("Output Format"),gettext("Buffer Size")],list("vec",1,"str",1,"str",1,"vec",1),exprs); +if (!ok) { +break +} +in1=int(in1); +nin=in1; +fname1=pathconvert(stripblanks(fname1),None,true); +frmt1=stripblanks(frmt1); +if (lunit>0&&min(length(frmt),1)!=min(length(frmt1),1)) { +block_parameter_error(gettext("Simulation running !!! You cannot switch<br />between formatted and unformatted when running"),gettext("End current simulation first.")); +ok=None; +} else if (lunit>0&&fname1!=fname) { +block_parameter_error(gettext("You cannot modify \'Output File Name\' when running."),gettext("End current simulation first.")); +ok=None; +} else if (fname1=="") { +block_parameter_error(gettext("Wrong value for \'Output File Name\' parameter"),gettext("You must provide a filename.")); +ok=None; +} else if (fileparts(fname1)!="") { +[pa,fn,ex]=fileparts(fname1); +if (!isdir(pa)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); +ok=None; +} +} else if (frmt1!=""&&(part(frmt1,1)!="("||part(frmt1,length(frmt1))!=")")) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("You must enclose the format\'s string between parentheses.")); +ok=None; +} else if (N<2) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Must be greater than 1.")); +ok=None; +} else if (in1<=0) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); +ok=None; +} +if (ok) { +ipar=[length(fname1),length(frmt1),0,N,_str2code(fname1),_str2code(frmt1)]; +if (prod(size(dstate))!=(nin+1)*N+2) { +dstate=[-1,lunit,zeros((nin+1)*N,1)]; +} +model.in1=nin; +model.dstate=dstate; +model.ipar=ipar; +model.dep_ut=[true,None]; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break +} +} +} +WFILE_f.prototype.define = function WFILE_f() { +in1=1; +nin=sum(in1); +frmt="(7(e10.3,1x))"; +fname="foo"; +lunit=0; +N=2; +model=scicos_model(); +model.sim="writef"; +model.in1=in1; +model.evtin=1; +model.dstate=[-1,lunit,zeros((nin+1)*N,1)]; +model.ipar=[length(fname),length(frmt),0,N,_str2code(fname),_str2code(frmt)]; +model.blocktype="d"; +model.dep_ut=[true,None]; +exprs=[sci2exp(in1),fname,frmt,string(N)]; +gr_i=[]; +x=standard_define([3,2],model,exprs,gr_i); +} +WFILE_f.prototype.details = function WFILE_f() { +} +} /* autogenerated from "macros/Sinks/CSCOPE.sci" */ function CSCOPE() { CSCOPE.prototype.get = function CSCOPE() { @@ -3738,7 +3828,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(1); +exprs=exprs[1-1]; } while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"OUTIMPL_f")," ",gettext("Implicit output port")],gettext("Port number"),list("vec",1),exprs); @@ -3958,8 +4048,8 @@ model=arg1.model; ipar=model.ipar; dstate=model.dstate; lunit=dstate(2); -fname=exprs(2); -frmt=exprs(3); +fname=exprs[2-1]; +frmt=exprs[3-1]; while (true) { [ok,in1,fname1,frmt1,N,swap,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"WRITEC_f")," ",gettext("Write to C binary file")],[gettext("Input Size"),gettext("Output File Name"),gettext("Output Format"),gettext("Buffer Size"),gettext("Swap Mode (0:No, 1:Yes)")],list("vec",1,"str",1,"str",1,"vec",1,"vec",1),exprs); if (!ok) { @@ -4486,7 +4576,7 @@ x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; -exprs=exprs(1); +exprs=exprs[1-1]; while (true) { [ok,prt,exprs]=scicos_getvalue("Set Event Output block parameters","Port number",list("vec",1),exprs); if (!ok) { @@ -4531,7 +4621,7 @@ graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; if (size(exprs,"*")==2) { -exprs=exprs(1); +exprs=exprs[1-1]; } while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"OUT_f")," ",gettext("Regular output port")],gettext("Port number"),list("vec",1),exprs); @@ -5744,7 +5834,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(1); +exprs=exprs[1-1]; } while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"INIMPL_f")," ",gettext("Implicit input port")," "],"Port Number",list("vec",1),exprs); @@ -5878,7 +5968,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(2); +exprs=exprs[2-1]; } while (true) { [ok,Amplitude,exprs]=scicos_getvalue(["Set Square generator block parameters"],["Amplitude"],list("vec",1),exprs); @@ -5922,10 +6012,10 @@ graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; if (size(exprs,"*")==2) { -exprs=exprs(1); +exprs=exprs[1-1]; } if (size(exprs,"*")==1) { -exprs=[exprs(1),"[-1 -2]","-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); @@ -6557,7 +6647,7 @@ ipar=model.ipar; imask=9+ipar(1); tmask=ipar(imask); lunit=dstate(3); -fname=exprs(1); +fname=exprs[1-1]; while (true) { [ok,fname1,N,swap,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"READAU_f")," ",gettext("(Read Audio File)")," ",gettext("Read is done on a binary \'.au\' file")],[gettext("Input File Name"),gettext("Buffer size"),gettext("Swap Mode (0:No, 1:Yes)")],list("str",1,"vec",1,"vec",1),exprs); tmask1=[]; @@ -6634,7 +6724,7 @@ x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; -exprs=exprs(1); +exprs=exprs[1-1]; while (true) { [ok,prt,exprs]=scicos_getvalue("Set Event Input block parameters","Port number",list("vec",1),exprs); prt=int(prt); @@ -6755,8 +6845,8 @@ ipar=model.ipar; imask=9+ipar(1); tmask=ipar(imask); lunit=dstate(3); -fname=exprs(3); -frmt=exprs(4); +fname=exprs[3-1]; +frmt=exprs[4-1]; while (true) { [ok,tmask1,outmask,fname1,frmt1,M,N,offset,swap,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"READC_f")," ",gettext("Read from C binary file")],[gettext("Time Record Selection"),gettext("Outputs Record Selection"),gettext("Input File Name"),gettext("Input Format"),gettext("Record Size"),gettext("Buffer Size"),gettext("Initial Record Index"),gettext("Swap Mode (0:No, 1:Yes)")],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { @@ -7125,7 +7215,7 @@ x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; -exprs=exprs(1); +exprs=exprs[1-1]; while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"CLKINV_f")," ",gettext("Event input port")," "],"Port Number",list("vec",1),exprs); prt=int(prt); @@ -10750,7 +10840,7 @@ model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; while (true) { -[ok,i,o,ci,co,xx,z,rpar,auto0,deptime,lab]=scicos_getvalue(["Set scifunc_block parameters","only regular blocks supported"],["input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","System parameters vector","initial firing vector (<0 for no firing)","is block always active (0:no, 1:yes)"],list("mat",[-1,2],"mat",[-2,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs(1)); +[ok,i,o,ci,co,xx,z,rpar,auto0,deptime,lab]=scicos_getvalue(["Set scifunc_block parameters","only regular blocks supported"],["input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","System parameters vector","initial firing vector (<0 for no firing)","is block always active (0:no, 1:yes)"],list("mat",[-1,2],"mat",[-2,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs[1-1]); if (!ok) { break } @@ -11128,7 +11218,7 @@ DEBUG.prototype.set = function DEBUG() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; -textmp=exprs(2); +textmp=exprs[2-1]; ok=true; while (1==1) { [txt]=dialog(["Enter scilab instructions for debugging."," Inputs are block and flag, output is block"],textmp); @@ -11624,7 +11714,7 @@ default_font_size=gh_winpal.font_size; default_font_color=gh_winpal.font_color; gh_winpal.font_style=font; gh_winpal.font_size=siz; -r=xstringl(0,0,exprs(1),evstr(exprs(2)),evstr(exprs(3))); +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; @@ -12083,6 +12173,118 @@ x=standard_define([3,3],model,exprs,gr_i); PENDULUM_ANIM.prototype.details = function PENDULUM_ANIM() { } } +/* autogenerated from "macros/Misc/LOGICAL_OP.sci" */ +function LOGICAL_OP() { +LOGICAL_OP.prototype.get = function LOGICAL_OP() { +} +LOGICAL_OP.prototype.set = function LOGICAL_OP() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +if (size(exprs,1)==2) { +exprs=[exprs,sci2exp(1),sci2exp(0)]; +} +while (true) { +[ok,nin,rule,Datatype,tp,exprs]=scicos_getvalue("Set parameters",["number of inputs","Operator: AND (0), OR (1), NAND (2), NOR (3), XOR (4), NOT (5)","Datatype (1=double 3=int32 ...)","Bitwise Rule(0=No 1=yes)"],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break +} +nin=int(nin); +rule=int(rule); +tp=int(tp); +if (nin<1) { +message("Number of inputs must be >=1 "); +ok=None; +} else if ((rule<0)||(rule>5)) { +message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); +ok=None; +} else if ((rule==5)&&(nin>1)) { +message("Only one input allowed for NOT operation"); +nin=1; +} else if (((Datatype==1)&&(tp!=0))) { +message("Bitwise Rule is only activated when Data type is integer"); +ok=None; +} +if (ok) { +if ((tp!=0)) { +tp=1; +} +if (Datatype==1) { +model.sim=list("logicalop",4); +model.ipar=[rule]; +} else { +if (Datatype==3) { +model.sim=list("logicalop_i32",4); +} else if (Datatype==4) { +model.sim=list("logicalop_i16",4); +} else if (Datatype==5) { +model.sim=list("logicalop_i8",4); +} else if (Datatype==6) { +model.sim=list("logicalop_ui32",4); +} else if (Datatype==7) { +model.sim=list("logicalop_ui16",4); +} else if (Datatype==8) { +model.sim=list("logicalop_ui8",4); +} else { +message("Datatype is not supported"); +ok=None; +} +model.ipar=[rule,tp]; +} +if (ok) { +it=Datatype*ones(nin,1); +ot=Datatype; +in1=[-ones(nin,1),-2*ones(nin,1)]; +if ((rule!=5)&&(nin==1)) { +out=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} else { +out=[-1,-2]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} +} +if (ok) { +if (rule==0) { +label="AND"; +} else if (rule==1) { +label="OR"; +} else if (rule==2) { +label="NAND"; +} else if (rule==3) { +label="NOR"; +} else if (rule==4) { +label="XOR"; +} else if (rule==5) { +label="NOT"; +} +graphics.exprs=exprs; +graphics.style=["blockWithLabel;displayedLabel="+label]; +x.graphics=graphics; +x.model=model; +break +} +} +} +} +LOGICAL_OP.prototype.define = function LOGICAL_OP() { +in1=[-1,-1]; +ipar=[0]; +nin=2; +model=scicos_model(); +model.sim=list("logicalop",4); +model.in1=in1; +model.out=-1; +model.ipar=ipar; +model.blocktype="c"; +model.dep_ut=[true,None]; +exprs=[string(nin),string(ipar)]; +gr_i=[]; +x=standard_define([2,2],model,exprs,gr_i); +} +LOGICAL_OP.prototype.details = function LOGICAL_OP() { +} +} /* autogenerated from "macros/Misc/MEMORY_f.sci" */ function MEMORY_f() { MEMORY_f.prototype.get = function MEMORY_f() { @@ -13087,6 +13289,356 @@ x=standard_define([4,2],model,exprs,gr_i); BITCLEAR.prototype.details = function BITCLEAR() { } } +/* autogenerated from "macros/IntegerOp/EXTRACTBITS.sci" */ +function EXTRACTBITS() { +EXTRACTBITS.prototype.get = function EXTRACTBITS() { +} +EXTRACTBITS.prototype.set = function EXTRACTBITS() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +while (true) { +[ok,Datatype,rule,bit,scal,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"EXTRACTBITS")," ",gettext("Bits Extraction")," ",gettext(" - Bits to Extract:"),gettext(" 1 Upper Half"),gettext(" 2 Lower Half"),gettext(" 3 Range from MSB"),gettext(" 4 Range to LSB"),gettext(" 5 Range of Bits"),gettext(" - Number of Bits or Index of bit : Index 0 is LSB"),gettext(" If \'Bits to Extract\' is set to \'Range of bits\': [Start, End]")," "],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Bits to extract"),gettext("Number of Bits or Index of Bit"),gettext("Treat Bit Field as an Integer (0:No, 1:Yes)")],list("vec",1,"vec",1,"vec",-1,"vec",1),exprs); +if (!ok) { +break +} +bitstr=strcat(string(bit.slice())," "); +if ((rule<1)||(rule>5)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Bits to Extract"),rule),msprintf(gettext("Must be in the interval %s."),"[1, 5]")); +ok=None; +} else if (scal<0||scal>1) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Treat Bit Field as an Integer"),scal),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +ok=None; +} else { +in1=[model.in1,model.in2]; +bit=int(bit); +rule=int(rule); +if ((rule==3)||(rule==4)) { +if ((size(bit,"*")!=1)) { +block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must be a single value.")); +ok=None; +} else { +numb=bit; +} +} else if ((rule==5)) { +if ((size(bit,"*")!=2)) { +block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must have this form: [Start, End].")); +ok=None; +} else if (bit(1)>bit(2)) { +block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("\'Start\' must be less than \'End\'."))); +ok=None; +} else { +numb=bit(2)-bit(1); +} +} else { +bit=0; +numb=[]; +} +} +if (ok) { +if ((Datatype==3||Datatype==6)) { +if (or(bit.slice()>31)||or(bit.slice()<0)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 31]")); +ok=None; +} +switch (rule) { +case 1: +switch (scal) { +case 0: +model.sim=list("extract_bit_32_UH0",4); +case 1: +switch (Datatype) { +case 3: +model.sim=list("extract_bit_32_UH1",4); +case 6: +model.sim=list("extract_bit_u32_UH1",4); +} +} +case 2: +model.sim=list("extract_bit_32_LH",4); +case 3: +switch (scal) { +case 0: +model.sim=list("extract_bit_32_MSB0",4); +case 1: +switch (Datatype) { +case 3: +model.sim=list("extract_bit_32_MSB1",4); +case 6: +model.sim=list("extract_bit_u32_MSB1",4); +} +} +case 4: +model.sim=list("extract_bit_32_LSB",4); +case 5: +switch (scal) { +case 0: +model.sim=list("extract_bit_32_RB0",4); +case 1: +switch (Datatype) { +case 3: +model.sim=list("extract_bit_32_RB1",4); +case 6: +model.sim=list("extract_bit_u32_RB1",4); +} +} +} +} else if ((Datatype==4||Datatype==7)) { +if (or(bit.slice()>15)||or(bit.slice()<0)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 15]")); +ok=None; +} +switch (rule) { +case 1: +switch (scal) { +case 0: +model.sim=list("extract_bit_16_UH0",4); +case 1: +switch (Datatype) { +case 4: +model.sim=list("extract_bit_16_UH1",4); +case 7: +model.sim=list("extract_bit_u16_UH1",4); +} +} +case 2: +model.sim=list("extract_bit_16_LH",4); +case 3: +switch (scal) { +case 0: +model.sim=list("extract_bit_16_MSB0",4); +case 1: +switch (Datatype) { +case 4: +model.sim=list("extract_bit_16_MSB1",4); +case 7: +model.sim=list("extract_bit_u16_MSB1",4); +} +} +case 4: +model.sim=list("extract_bit_16_LSB",4); +case 5: +switch (scal) { +case 0: +model.sim=list("extract_bit_16_RB0",4); +case 1: +switch (Datatype) { +case 4: +model.sim=list("extract_bit_16_RB1",4); +case 7: +model.sim=list("extract_bit_u16_RB1",4); +} +} +} +} else if ((Datatype==5||Datatype==8)) { +if (or(bit.slice()>7)||or(bit.slice()<0)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 7]")); +ok=None; +} +switch (rule) { +case 1: +switch (scal) { +case 0: +model.sim=list("extract_bit_8_UH0",4); +case 1: +switch (Datatype) { +case 5: +model.sim=list("extract_bit_8_UH1",4); +case 8: +model.sim=list("extract_bit_u8_UH1",4); +} +} +case 2: +model.sim=list("extract_bit_8_LH",4); +case 3: +switch (scal) { +case 0: +model.sim=list("extract_bit_8_MSB0",4); +case 1: +switch (Datatype) { +case 5: +model.sim=list("extract_bit_8_MSB1",4); +case 8: +model.sim=list("extract_bit_u8_MSB1",4); +} +} +case 4: +model.sim=list("extract_bit_8_LSB",4); +case 5: +switch (scal) { +case 0: +model.sim=list("extract_bit_8_RB0",4); +case 1: +switch (Datatype) { +case 5: +model.sim=list("extract_bit_8_RB1",4); +case 8: +model.sim=list("extract_bit_u8_RB1",4); +} +} +} +} else { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +ok=None; +} +} +if (ok) { +it=Datatype; +ot=Datatype; +out=[1,1]; +[model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); +} +if (ok) { +graphics.exprs=exprs; +model.ipar=[int(bit.slice()),int(numb.slice())]; +x.graphics=graphics; +x.model=model; +break +} +} +} +EXTRACTBITS.prototype.define = function EXTRACTBITS() { +numb=[]; +model=scicos_model(); +model.sim=list("extract_bit_32_UH0",4); +model.in1=1; +model.in2=1; +model.out=1; +model.out2=1; +model.intyp=3; +model.outtyp=3; +model.ipar=[0,numb]; +model.blocktype="c"; +model.dep_ut=[true,None]; +exprs=[sci2exp(3),sci2exp(1),sci2exp(0),sci2exp(0)]; +gr_i=[]; +x=standard_define([4,2],model,exprs,gr_i); +} +EXTRACTBITS.prototype.details = function EXTRACTBITS() { +} +} +/* autogenerated from "macros/IntegerOp/SHIFT.sci" */ +function SHIFT() { +SHIFT.prototype.get = function SHIFT() { +} +SHIFT.prototype.set = function SHIFT() { +x=arg1; +graphics=arg1.graphics; +model=arg1.model; +exprs=graphics.exprs; +while (true) { +[ok,Datatype,nb,np,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"SHIFT")," ",gettext("Shift/Rotates bits")],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Number of Bits to Shift Left (Negative number to shift right)"),gettext("Shift Type (0:Arithmetic, 1:Circular)")],list("vec",1,"vec",1,"vec",1),exprs); +if (!ok) { +break +} +if ((np!=0&&np!=1)) { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Shift Type"),np),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); +ok=None; +} +it=Datatype; +ot=Datatype; +if ((Datatype==3||Datatype==6)) { +if (nb>0) { +switch (np) { +case 0: +model.sim=list("shift_32_LA",4); +case 1: +model.sim=list("shift_32_LC",4); +} +} else if (nb<0) { +switch (np) { +case 0: +switch (Datatype) { +case 3: +model.sim=list("shift_32_RA",4); +case 6: +model.sim=list("shift_u32_RA",4); +} +case 1: +model.sim=list("shift_32_RC",4); +} +} +} else if ((Datatype==4||Datatype==7)) { +if (nb>0) { +switch (np) { +case 0: +model.sim=list("shift_16_LA",4); +case 1: +model.sim=list("shift_16_LC",4); +} +} else if (nb<0) { +switch (np) { +case 0: +switch (Datatype) { +case 4: +model.sim=list("shift_16_RA",4); +case 7: +model.sim=list("shift_u16_RA",4); +} +case 1: +model.sim=list("shift_16_RC",4); +} +} +} else if ((Datatype==5||Datatype==8)) { +if (nb>0) { +switch (np) { +case 0: +model.sim=list("shift_8_LA",4); +case 1: +model.sim=list("shift_8_LC",4); +} +} else if (nb<0) { +switch (np) { +case 0: +switch (Datatype) { +case 5: +model.sim=list("shift_8_RA",4); +case 8: +model.sim=list("shift_u8_RA",4); +} +case 1: +model.sim=list("shift_8_RC",4); +} +} +} else { +block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); +ok=None; +} +if (ok) { +[model,graphics,ok]=set_io(model,graphics,list([-1,-2],it),list([-1,-2],ot),[],[]); +} +if (ok) { +model.ipar=nb; +graphics.exprs=exprs; +x.graphics=graphics; +x.model=model; +break +} +} +} +SHIFT.prototype.define = function SHIFT() { +sgn=[0,0]; +OPER=0; +model=scicos_model(); +model.sim=list("shift_32_LA",4); +model.in1=-1; +model.out=-1; +model.in2=-2; +model.out2=-2; +model.intyp=3; +model.outtyp=3; +model.rpar=[]; +model.ipar=sgn; +model.blocktype="c"; +model.dep_ut=[true,None]; +exprs=[sci2exp(3),sci2exp(0),sci2exp(0)]; +gr_i=[]; +x=standard_define([3,2],model,exprs,gr_i); +} +SHIFT.prototype.details = function SHIFT() { +} +} /* autogenerated from "macros/IntegerOp/DFLIPFLOP.sci" */ function DFLIPFLOP() { DFLIPFLOP.prototype.get = function DFLIPFLOP() { @@ -13743,7 +14295,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(2); +exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set log block parameters","Basis (>1)",list("vec",1),exprs); @@ -13835,7 +14387,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(2); +exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); @@ -14051,7 +14603,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(2); +exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); @@ -14116,7 +14668,7 @@ graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { -exprs=exprs(2); +exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set u^a block parameters","to the power of",list("vec",1),exprs); @@ -14177,4 +14729,4 @@ INVBLK_f.prototype.details = function INVBLK_f() { } } -/* made from 232/274 files */ +/* made from 236/274 files */ |