BSFIFO – Binární Struktura - serializace a deserializace do cyklického bufferu

Symbol blokuPotřebná licence: ADVANCED
PIC

Popis funkce
Tento blok postupně přidává a vybírá data do velkého bufferu (přivedeného na vstup uBuff). Základní jednotka v bufferu je sloupec. Všechny matice (tj. matice nebo vektory přivedené na vstupy uBuff, uMatIn, uMatOut) musí mít stejnou velikost sloupce v bajtech. Data jsou organizována buď jako fronta (pokud REV=off) nebo jako zásobník (pokud REV=on). Chování bloku závisí na vstupech tímto způsobem:

  • Pokud je PUSH=on, vkládá se do bufferu obsah matice uMatIn (všechny definované sloupce).
  • Pokud je POP=on, vyjímá se z bufferu počet sloupců určených parametrem col a tato data se vloží do matice uMatOut (musí mít dostatečnou velikost).
  • Pokud je R1=on, data se znovu načtou (hlavně počet platných sloupců) do bufferu bloku. Vlastní data se předávají odkazem a jsou proto sdílená. Tento signál je prioritní a blokuje signály PUSH, POP.

Chybové stavy (např. neodpovídající si rozměry matic, nedostatečné místo v některé matici, nedostatek dat v bufferu) jsou indikovány na výstupu iE a zprávou v SystemLog.

Vstupy

uBuff

Binární struktura s daty (pole bajtů)

Reference

uMatIn

Reference matice se vstupními daty (pro PUSH)

Reference

uMatOut

Reference matice pro uložení výstupních dat (pro POP)

Reference

PUSH

Povolení vkládání do bufferu

Bool

POP

Povolení vyčítání z bufferu

Bool

R1

Reset bufferu (znovu načtení hlaviček z uBuff)

Bool

Parametry

OW

Režim přepisu nejstarších položek

Bool

REV

Vyčítání posledních vložených položek nejdříve

Bool

col

Počet vyčítaných sloupců (pro POP)  1

Long (I32)

Výstupy

yBuff

Kopie uBuff pro řetězení

Reference

yMatIn

Kopie uMatIn pro řetězení

Reference

yMatOut

Kopie uMatOut pro řetězení

Reference

iused

Počet použitých bajtů v bufferu

Long (I32)

ifree

Počet volných bajtů v bufferu

Long (I32)

iE

Kód chyby

Error

2023 © REX Controls s.r.o., www.rexygen.com