# buffer_sumator

### Funkce

Jednoduché operace pro práci s kanály a proměnnými typu buffer. Přístroj poskytuje součet bufferů a násobení bufferu konstantou.

### Syntax

       buffer_sumator buffer_sumator_name;
         rem = string;
         timer = timer_name;
         input
           condition = boolean_expression;
           name = name_buffer;
           coefficient = real;
           add_all_buffer = boolean_expression;
           first_sample = real;
           last_sample = real;
         end_input
         output = name_buffer;
       end_buffer_display;

### Specifické parametry přístroje

- input a end_input
  Mezi těmito klíčovými slovy je definován jeden vstupní buffer spolu s koeficientem a parametry určujícími způsob práce s tímto vstupem.
- condition
  Obsahuje podmínku při jejímž splnění bude tato vstupní položka přičítána.
- name
  Jméno vstupního bufferu.
- coefficient
  Reálná hodnota, kterou se každý vzorek bufferu před přičtením k výstupnímu bufferu vynásobí. Například, bude-li hodnota tohoto koeficientu rovna -1, nebude se buffer přičítat, ale odečítat.
- add_all_buffer
  Obsahuje podmínku. Touto podmínkou se řídí způsob přičítání vstupního bufferu do výsledného bufferu. Je-li výslednou hodnotou tohoto výrazu false potom budou zpracovány pouze vzorky v rozsahu definovaném výrazy first_sample a last_sample. Součet s výstupním bufferem se vždy provádí od vzorku 0 výstupního bufferu. Bude-li tudíž hodnota výrazu first_sample rovna 300. Bude sečten vzorek 300 se vzorkem 0 výstupního bufferu, vzorek 301 se vzorkem 1 atd. Je-li výsledkem tohoto výrazu true, přičítá se celý buffer bez omezení.
- first_sample a last_sample
  Obsahují výraz, jehož výsledkem je první a poslední vzorek bufferu, který se má zpracovávat.
- output
  Jméno výstupního dataelementu typu buffer.

### Poznámky

- Tento přístroj slouží k demonstraci práce s elementy typu buffer, pro rozsáhlejší použití datových elementů typu buffer, jako je DSP, je k dispozici samostatná knihovna se speciálními přístroji.
- Implicitně nejsou nastaveny žádné parametry.

### Příklad

Příklad nastavení parametrů přístroje:

      buffer_sumator Sumator;
        input
          condition = true;
          name = Buffer1;
          coefficient = 1;
          add_all_buffer = false;
          first_sample = 600;
          last_sample = 1000;
        end_input;
        input
          condition = true;
          name = Buffer2;
          coefficient = 1;
          add_all_buffer = false;
          first_sample = 600;
          last_sample = 1000;
        end_input;
        output = OBuffer;
      end_buffer_sumator;

### Nativní procedury přístroje

Přístroj nemá žádné nativní procedury.

### Událostní procedury přístroje

Přístroj může volat standardní událostní procedury:

    OnActivate()

Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.