Interfacing function
eng


MCLOCK_f

File content


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