//  Scicos
//
//  Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// See the file ../license.txt
//
function [x,y,typ]=PULSE_SC(job,arg1,arg2)
    //Generated from SuperBlock on 7-Feb-2008
    x=[];
    y=[];
    typ=[];
    select job
    case "set" then
        y=needcompile
        arg1.model.ipar=1;
        typ=list()
        graphics=arg1.graphics;
        exprs=graphics.exprs
        Btitre=..
        "Set Pulse Generator parameters"
        Exprs0=..
        ["E";"W";"F";"A"]
        Bitems=..
        ["Phase delay (secs):";"Pulse Width (% of period):";"Period (secs):";"Amplitude:"]
        Ss=..
        list("pol",-1,"pol",-1,"pol",-1,"mat",[-1 -1])
        scicos_context=struct();
        x=arg1
        ok=%f
        while ~ok do
            [ok,scicos_context.E,scicos_context.W,scicos_context.F,scicos_context.A,exprs]=scicos_getvalue(Btitre,Bitems,Ss,exprs)
            if ~ok then
                return;
            end
            %scicos_context=scicos_context;
            sblock=x.model.rpar
            [%scicos_context,ierr]=script2var(sblock.props.context,%scicos_context)
            if ierr==0 then
                [sblock,%w,needcompile2,ok]=do_eval(sblock,list())
                if ok then
                    y=max(2,needcompile,needcompile2)
                    x.graphics.exprs=exprs
                    x.model.rpar=sblock
                    break
                end
            else
                if (lasterror() <> []) then
                    messagebox(lasterror())
                end
                ok=%f
            end
        end
    case "define" then
        scs_m_1=scicos_diagram(..
        version="scicos4.2",..
        props=scicos_params(..
        wpar=[-162.7581,435.54369,67.607292,416.67644,827,479,0,15,827,480,715,167,1.4],..
        Title=["SuperBlock","/home/fady/Scicos_examples/"],..
        tol=[0.0001;0.000001;1.000D-10;100001;0;0;0],..
        tf=10,..
        context=["E2=E+W/100*F";
        "if (W<0 | W>100) then error(''Width must be between 0 and 100'');end";
        "if (E2 >= F) then error (''Offset must be lower than (frequency*(1-Width/100))''); end"],..
        void1=[],..
        options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(%t,33),[8,1],[1,5],..
        list([5,1],[4,1]),[0.8,0.8,0.8]),..
        void2=[],..
        void3=[],..
        doc=list()))
        scs_m_1.objs(1)=scicos_block(..
        gui="CONST_m",..
        graphics=scicos_graphics(..
        orig=[30.801202,158.91733],..
        sz=[40,40],..
        flip=%t,..
        theta=0,..
        exprs="A",..
        pin=[],..
        pout=5,..
        pein=[],..
        peout=[],..
        gr_i=[],..
        id="",..
        in_implicit=[],..
        out_implicit="E"),..
        model=scicos_model(..
        sim=list("cstblk4_m",4),..
        in=[],..
        in2=[],..
        intyp=1,..
        out=1,..
        out2=1,..
        outtyp=1,..
        evtin=[],..
        evtout=[],..
        state=[],..
        dstate=[],..
        odstate=list(),..
        rpar=[],..
        ipar=[],..
        opar=list(1),..
        blocktype="d",..
        firing=[],..
        dep_ut=[%f,%f],..
        label="",..
        nzcross=0,..
        nmode=0,..
        equations=list()),..
        doc=list())
        scs_m_1.objs(2)=scicos_block(..
        gui="Ground_g",..
        graphics=scicos_graphics(..
        orig=[31.534535,215.384],..
        sz=[40,40],..
        flip=%t,..
        theta=0,..
        exprs=[],..
        pin=[],..
        pout=4,..
        pein=[],..
        peout=[],..
        gr_i=[],..
        id="",..
        in_implicit=[],..
        out_implicit="E"),..
        model=scicos_model(..
        sim=list("cstblk4_m",4),..
        in=[],..
        in2=[],..
        intyp=1,..
        out=1,..
        out2=1,..
        outtyp=-1,..
        evtin=[],..
        evtout=[],..
        state=[],..
        dstate=[],..
        odstate=list(),..
        rpar=[],..
        ipar=[],..
        opar=list(0),..
        blocktype="d",..
        firing=[],..
        dep_ut=[%f,%f],..
        label="",..
        nzcross=0,..
        nmode=0,..
        equations=list()),..
        doc=list())
        scs_m_1.objs(3)=scicos_block(..
        gui="SELECT_m",..
        graphics=scicos_graphics(..
        orig=[106.00652,186.09381],..
        sz=[40,40],..
        flip=%t,..
        theta=0,..
        exprs=["-1";"2";"1"],..
        pin=[4;5],..
        pout=11,..
        pein=[9;8],..
        peout=[],..
        gr_i=[],..
        id="",..
        in_implicit=["E";"E"],..
        out_implicit="E"),..
        model=scicos_model(..
        sim=list("selector_m",4),..
        in=[-1;-1],..
        in2=[-2;-2],..
        intyp=[-1;-1],..
        out=-1,..
        out2=-2,..
        outtyp=-1,..
        evtin=[1;1],..
        evtout=[],..
        state=[],..
        dstate=1,..
        odstate=list(),..
        rpar=[],..
        ipar=[],..
        opar=list(),..
        blocktype="c",..
        firing=[],..
        dep_ut=[%t,%f],..
        label="",..
        nzcross=0,..
        nmode=0,..
        equations=list()),..
        doc=list())
        scs_m_1.objs(4)=scicos_link(..
        xx=[80.105964;97.43509;97.43509],..
        yy=[235.384;235.384;212.76048],..
        id="drawlink",..
        thick=[0,0],..
        ct=[1,1],..
        from=[2,1,0],..
        to=[3,1,1])
        scs_m_1.objs(5)=scicos_link(..
        xx=[79.372631;97.43509;97.43509],..
        yy=[178.91733;178.91733;199.42714],..
        id="drawlink",..
        thick=[0,0],..
        ct=[1,1],..
        from=[1,1,0],..
        to=[3,2,1])
        scs_m_1.objs(6)=scicos_block(..
        gui="SampleCLK",..
        graphics=scicos_graphics(..
        orig=[82.349744,274.21741],..
        sz=[60,40],..
        flip=%t,..
        theta=0,..
        exprs=["F";"E2"],..
        pin=[],..
        pout=[],..
        pein=[],..
        peout=9,..
        gr_i=[],..
        id="",..
        in_implicit=[],..
        out_implicit=[]),..
        model=scicos_model(..
        sim="sampleclk",..
        in=[],..
        in2=[],..
        intyp=1,..
        out=[],..
        out2=[],..
        outtyp=1,..
        evtin=[],..
        evtout=1,..
        state=[],..
        dstate=[],..
        odstate=list(),..
        rpar=[1;0.4],..
        ipar=[],..
        opar=list(),..
        blocktype="d",..
        firing=-1,..
        dep_ut=[%f,%f],..
        label="",..
        nzcross=0,..
        nmode=0,..
        equations=list()),..
        doc=list())
        scs_m_1.objs(7)=scicos_block(..
        gui="SampleCLK",..
        graphics=scicos_graphics(..
        orig=[160.48879,274.21741],..
        sz=[60,40],..
        flip=%t,..
        theta=0,..
        exprs=["F";"E"],..
        pin=[],..
        pout=[],..
        pein=[],..
        peout=8,..
        gr_i=[],..
        id="",..
        in_implicit=[],..
        out_implicit=[]),..
        model=scicos_model(..
        sim="sampleclk",..
        in=[],..
        in2=[],..
        intyp=1,..
        out=[],..
        out2=[],..
        outtyp=1,..
        evtin=[],..
        evtout=1,..
        state=[],..
        dstate=[],..
        odstate=list(),..
        rpar=[1;0.1],..
        ipar=[],..
        opar=list(),..
        blocktype="d",..
        firing=-1,..
        dep_ut=[%f,%f],..
        label="",..
        nzcross=0,..
        nmode=0,..
        equations=list()),..
        doc=list())
        scs_m_1.objs(8)=scicos_link(..
        xx=[190.48879;190.48879;132.67318;132.67318],..
        yy=[274.21741;240.99048;240.99048;231.80809],..
        id="drawlink",..
        thick=[0,0],..
        ct=[5,-1],..
        from=[7,1,0],..
        to=[3,2,1])
        scs_m_1.objs(9)=scicos_link(..
        xx=[112.34974;112.34974;119.33985;119.33985],..
        yy=[274.21741;248.21372;248.21372;231.80809],..
        id="drawlink",..
        thick=[0,0],..
        ct=[5,-1],..
        from=[6,1,0],..
        to=[3,1,1])
        scs_m_1.objs(10)=scicos_block(..
        gui="OUT_f",..
        graphics=scicos_graphics(..
        orig=[174.57795,196.09381],..
        sz=[20,20],..
        flip=%t,..
        theta=0,..
        exprs="1",..
        pin=11,..
        pout=[],..
        pein=[],..
        peout=[],..
        gr_i=[],..
        id="",..
        in_implicit="E",..
        out_implicit=[]),..
        model=scicos_model(..
        sim="output",..
        in=-1,..
        in2=-2,..
        intyp=-1,..
        out=[],..
        out2=[],..
        outtyp=1,..
        evtin=[],..
        evtout=[],..
        state=[],..
        dstate=[],..
        odstate=list(),..
        rpar=[],..
        ipar=1,..
        opar=list(),..
        blocktype="c",..
        firing=[],..
        dep_ut=[%f,%f],..
        label="",..
        nzcross=0,..
        nmode=0,..
        equations=list()),..
        doc=list())
        scs_m_1.objs(11)=scicos_link(..
        xx=[154.57795;174.57795],..
        yy=[206.09381;206.09381],..
        id="drawlink",..
        thick=[0,0],..
        ct=[1,1],..
        from=[3,1,0],..
        to=[10,1,1])
        model=scicos_model()
        model.sim="csuper"
        model.in=[]
        model.in2=[]
        model.intyp=1
        model.out=-1
        model.out2=-2
        model.outtyp=-1
        model.evtin=[]
        model.evtout=[]
        model.state=[]
        model.dstate=[]
        model.odstate=list()
        model.rpar=scs_m_1
        model.ipar=1
        model.opar=list()
        model.blocktype="h"
        model.firing=[]
        model.dep_ut=[%f,%f]
        model.label=""
        model.nzcross=0
        model.nmode=0
        model.equations=list()
        E=0.1
        W=30
        F=1
        A=1
        exprs=[..
        sci2exp(E)
        sci2exp(W)
        sci2exp(F)
        sci2exp(A)
        ]
        gr_i=[]
        x=standard_define([3,2],model,exprs,gr_i)
    end
endfunction