Fonction d'interfaçage
fr
CONVERT
function [x,y,typ]=CONVERT(job,arg1,arg2)
// Copyright INRIA
x=[];y=[];typ=[];
select job
case 'plot' then
sgn=arg1.model.ipar
VOP=[' double ',' double ',' int32 ',' int16 ',...
' int8 ',' uint32 ',' uint16 ',' uint8 ']
OPER=VOP(evstr( arg1.graphics.exprs(2)))
standard_draw(arg1)
case 'getinputs' then
[x,y,typ]=standard_inputs(arg1)
case 'getoutputs' then
[x,y,typ]=standard_outputs(arg1)
case 'getorigin' then
[x,y]=standard_origin(arg1)
case 'set' then
x=arg1;
graphics=arg1.graphics
model=arg1.model
exprs=graphics.exprs
while %t do
[ok,it,ot,np,exprs]=getvalue('Set CONVERT block parameters',..
['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 then break,end
if (np~=0 & np~=1 & np~=2) then message ("type is not supported");ok=%f;end
if it==2 then it =1;end
if ot==2 then ot=1;end
if (it>8|it<1) then message ("input type is not supported");ok=%f;end
if (ot>8|ot<1) then message ("output type is not supported");ok=%f;end
model.sim=list('convert',4)
if (it==ot) then
model.ipar=1;
else
if (np==0) then
if (it==1) then
if (ot==3) then model.ipar=2;
elseif (ot==4) then model.ipar=3;
elseif (ot==5) then model.ipar=4;
elseif (ot==6) then model.ipar=5;
elseif (ot==7) then model.ipar=6;
elseif (ot==8) then model.ipar=7;
end
elseif (it==3) then
if (ot==1) then model.ipar=8;
elseif (ot==4) then model.ipar=9;
elseif (ot==5) then model.ipar=10;
elseif (ot==6) then model.ipar=1;
elseif (ot==7) then model.ipar=11;
elseif (ot==8) then model.ipar=12;
end
elseif (it==4) then
if (ot==1) then model.ipar=13;
elseif (ot==3) then model.ipar=14;
elseif (ot==5) then model.ipar=15;
elseif (ot==6) then model.ipar=16;
elseif (ot==7) then model.ipar=1;
elseif (ot==8) then model.ipar=17;
end
elseif (it==5) then
if (ot==1) then model.ipar=18;
elseif (ot==3) then model.ipar=19;
elseif (ot==4) then model.ipar=20;
elseif (ot==6) then model.ipar=21;
elseif (ot==7) then model.ipar=22;
elseif (ot==8) then model.ipar=1;
end
elseif (it==6) then
if (ot==1) then model.ipar=23;
elseif (ot==3) then model.ipar=1;
elseif (ot==4) then model.ipar=24;
elseif (ot==5) then model.ipar=25;
elseif (ot==7) then model.ipar=26;
elseif (ot==8) then model.ipar=27;
end
elseif (it==7) then
if (ot==1) then model.ipar=28;
elseif (ot==3) then model.ipar=29;
elseif (ot==4) then model.ipar=1;
elseif (ot==5) then model.ipar=30;
elseif (ot==6) then model.ipar=31;
elseif (ot==8) then model.ipar=32;
end
elseif (it==8) then
if (ot==1) then model.ipar=33;
elseif (ot==3) then model.ipar=34;
elseif (ot==4) then model.ipar=35;
elseif (ot==5) then model.ipar=1;
elseif (ot==6) then model.ipar=36;
elseif (ot==7) then model.ipar=37;
end
end
elseif (np==1) then
if (it==1) then
if (ot==3) then model.ipar=38;
elseif (ot==4) then model.ipar=39;
elseif (ot==5) then model.ipar=40;
elseif (ot==6) then model.ipar=41;
elseif (ot==7) then model.ipar=42;
elseif (ot==8) then model.ipar=43;
end
elseif (it==3) then
if (ot==1) then model.ipar=8;
elseif (ot==4) then model.ipar=44;
elseif (ot==5) then model.ipar=45;
elseif (ot==6) then model.ipar=46;
elseif (ot==7) then model.ipar=47;
elseif (ot==8) then model.ipar=48;
end
elseif (it==4) then
if (ot==1) then model.ipar=13;
elseif (ot==3) then model.ipar=14;
elseif (ot==5) then model.ipar=49;
elseif (ot==6) then model.ipar=50;
elseif (ot==7) then model.ipar=51;
elseif (ot==8) then model.ipar=52;
end
elseif (it==5) then
if (ot==1) then model.ipar=18;
elseif (ot==3) then model.ipar=19;
elseif (ot==4) then model.ipar=20;
elseif (ot==6) then model.ipar=53;
elseif (ot==7) then model.ipar=54;
elseif (ot==8) then model.ipar=55;
end
elseif (it==6) then
if (ot==1) then model.ipar=23;
elseif (ot==3) then model.ipar=56;
elseif (ot==4) then model.ipar=57;
elseif (ot==5) then model.ipar=58;
elseif (ot==7) then model.ipar=59;
elseif (ot==8) then model.ipar=60;
end
elseif (it==7) then
if (ot==1) then model.ipar=28;
elseif (ot==3) then model.ipar=29;
elseif (ot==4) then model.ipar=61;
elseif (ot==5) then model.ipar=62;
elseif (ot==6) then model.ipar=31;
elseif (ot==8) then model.ipar=63;
end
elseif (it==8) then
if (ot==1) then model.ipar=33;
elseif (ot==3) then model.ipar=34;
elseif (ot==4) then model.ipar=35;
elseif (ot==5) then model.ipar=64;
elseif (ot==6) then model.ipar=36;
elseif (ot==7) then model.ipar=37;
end
end
elseif (np==2) then
if (it==1) then
if (ot==3) then model.ipar=65;
elseif (ot==4) then model.ipar=66;
elseif (ot==5) then model.ipar=67;
elseif (ot==6) then model.ipar=68;
elseif (ot==7) then model.ipar=69;
elseif (ot==8) then model.ipar=70;
end
elseif (it==3) then
if (ot==1) then model.ipar=8;
elseif (ot==4) then model.ipar=71;
elseif (ot==5) then model.ipar=72;
elseif (ot==6) then model.ipar=73;
elseif (ot==7) then model.ipar=74;
elseif (ot==8) then model.ipar=75;
end
elseif (it==4) then
if (ot==1) then model.ipar=13;
elseif (ot==3) then model.ipar=14;
elseif (ot==5) then model.ipar=76;
elseif (ot==6) then model.ipar=77;
elseif (ot==7) then model.ipar=78;
elseif (ot==8) then model.ipar=79;
end
elseif (it==5) then
if (ot==1) then model.ipar=18;
elseif (ot==3) then model.ipar=19;
elseif (ot==4) then model.ipar=20;
elseif (ot==6) then model.ipar=80;
elseif (ot==7) then model.ipar=81;
elseif (ot==8) then model.ipar=82;
end
elseif (it==6) then
if (ot==1) then model.ipar=23;
elseif (ot==3) then model.ipar=83;
elseif (ot==4) then model.ipar=84;
elseif (ot==5) then model.ipar=85;
elseif (ot==7) then model.ipar=86;
elseif (ot==8) then model.ipar=87;
end
elseif (it==7) then
if (ot==1) then model.ipar=28;
elseif (ot==3) then model.ipar=29;
elseif (ot==4) then model.ipar=88;
elseif (ot==5) then model.ipar=89;
elseif (ot==6) then model.ipar=31;
elseif (ot==8) then model.ipar=90;
end
elseif (it==8) then
if (ot==1) then model.ipar=33;
elseif (ot==3) then model.ipar=34;
elseif (ot==4) then model.ipar=35;
elseif (ot==5) then model.ipar=91;
elseif (ot==6) then model.ipar=36;
elseif (ot==7) then model.ipar=37;
end
end
end
end
in=[model.in model.in2]
out=[model.out model.out2]
if ok then
[model,graphics,ok]=set_io(model,graphics,...
list(in,it),...
list(out,ot),[],[])
end
if ok then
graphics.exprs=exprs
x.graphics=graphics;x.model=model
break
end
end
case 'define' then
sgn=2
model=scicos_model()
model.sim=list('convert',4)
model.in=-1
model.out=-1
model.in2=-2
model.out2=-2
model.intyp=1
model.outtyp=3
model.rpar=[]
model.ipar=sgn
model.blocktype='c'
model.dep_ut=[%t %f]
exprs=[sci2exp(1);sci2exp(3);sci2exp(0)]
gr_i=['xstringb(orig(1),orig(2),[''convert to'';OPER],sz(1),sz(2),''fill'');']
x=standard_define([3 2],model, exprs,gr_i)
end
endfunction