Subsections

- Library
- Description
- Dialog Box
- Default properties
- Interfacing function
- Computational function (type -2)

##
Event select

### Library

Events

### Description

Special block similar to If-Then-Else. Input and output are synchronized. The incoming event is directed to one of the output event ports depending on the value of the regular input.

### Dialog Box

Set ESELECT block parameters |
number of output event ports | 2
Inherit (1: no, 0: yes) | 1
zero-crossing (0: no, 1: yes) | 0

- number of output event ports: integer
- Inherit : 0 or 1; 0 means inheritance so the block has no input activation port
- zero-crossing : should zero-crossing be used if the block is continuously active.

### Default properties

- always active: no
- direct-feedthrough: no
- zero-crossing: no
- mode: no
- number/sizes of inputs: 1 / 1
- number/sizes of outputs: 0 /
- number/sizes of activation inputs: 1 / 1
- number/sizes of activation outputs: 2 / 1 1
- continuous-time state: no
- discrete-time state: no
- name of computational function: eselect

### Interfacing function

`scilab/macros/scicos_blocks/branching/ESELECT_f.sci`

### Computational function (type -2)

          subroutine eselect(flag,nevprt,ntvec,rpar,nrpar,ipar,nipar,u,nu)
    c     Scicos block simulator
    c     if-then-else block
    c     if event input exits from then or else clock ouputs based
    c     on the sign of the unique input (if input>0 then  else )
    c
    c     Copyright INRIA
          double precision rpar(*),u(*)
          integer flag,nevprt,nx,nz,ntvec,nrpar,ipar(*)
          integer nipar,nu
    c
          integer iu
    c
          common /dbcos/ idb
    c
          if(idb.eq.1) then
             write(6,'(''ifthel     t='',e10.3,'' flag='',i1)') t,flag
          endif
    c
          iu=max(min(int(u(1)),ipar(1)),1)
          if(flag.eq.3) then
                ntvec=iu
          endif
          end