Fonction d'interfaçage
fr
MCLOCK_f
function [x,y,typ]=MCLOCK_f(job,arg1,arg2)
// Copyright INRIA
x=[];y=[],typ=[]
select job
case 'plot' then
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
// paths to updatable parameters or states
if arg1.model.rpar.objs(1)==mlist('Deleted') then
path = 2 //compatibility with translated blocks
else
path = 1
end
newpar=list();
spath=list('model','rpar','objs',path)
xx=arg1(spath)// get the block
execstr('xxn='+xx.gui+'(''set'',xx)')
if or(xxn<>xx) then
// parameter or states changed
arg1(spath)=xxn// Update
newpar(size(newpar)+1)=path// Notify modification
end
x=arg1
y=0
typ=newpar
case 'define' then
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=%t
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=%t
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=%t
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=%t
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=['txt=[''2freq clock'';'' f/n f''];';
'xstringb(orig(1),orig(2),txt,sz(1),sz(2),''fill'')']
diagram=scicos_diagram();
diagram.objs(1)=mfclck
diagram.objs(2)=clksom
diagram.objs(3)=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)=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)=scicos_link(xx=[468.9;482.5],yy=[169.3;169.3],..
ct=[10,-1],from=[2,1],to=[11,1])
diagram.objs(6)=output_port1
diagram.objs(7)=output_port2
diagram.objs(8)=split1
diagram.objs(9)=scicos_link(xx=[411.9;457],..
yy=[169.3;169.3],..
ct=[10,-1],from=[8,1],to=[2,2])
diagram.objs(10)=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)=split2
diagram.objs(12)=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)=scicos_link(xx=[482.4;482.4;509],yy=[169.3;152;152],..
ct=[10,-1],from=[11,2],to=[7,1])
x=scicos_block()
x.gui='MCLOCK_f'
x.graphics.sz=[2,2]
x.graphics.gr_i=gr_i
x.model.sim='csuper'
x.model.evtout=[1;1]
x.model.blocktype='h'
x.model.rpar=diagram
x.graphics.peout=[0;0]
end
endfunction