MX_SLFS – Ukládání a čtení matice/vektoru do souboru nebo textového retězce

Symbol blokuPotřebná licence: STANDARD
PIC

Popis funkce
Blok umožňuje konvertovat matici nebo vektor do textové podoby a naopak. Matice se přivádí jako odkaz na vstup uMV. Výstup yMV odkazuje na stejnou matici, jako vstup uMV a je určen pro řetězení maticových bloků ve správném pořadí, jak je obvyklé u všech bloků ze skupiny MATRIX.

Text může být buď na vstupu uStr ( resp. výstupu yStr pro opačný směr konverze) nebo v souboru. Pokud je text v souboru, tak jeho název je text pripojený na vstup uStr. Pro název souboru platí obvyklá pravidla systému REXYGEN, tj. je relativně k datadir a není dovoleno ../ pro opuštění adresáře. Pokud je vstup uStr nepřipojený (nebo prázdný text), použije se pro jméno souboru název bloku s celou cestou (tj. včetně jména tasku a všech subsystémů) s příponou .dat .

Formát matice v textovém souboru nebo v textovém vstupu a výstupu určuje parametr format. Podpořeno je anglické i české CSV (tj. sloupce odděleny čárkou nebo středníkem), formát JSON (vytvořený firmou Google a často používaný ve webových aplikacích) a formát používaný MATLABem (pro zadávání matice ve skriptech MATLABu).

Konverze z textové podoby do matice/vektoru nebo naopak může probíhat v každém kroku algoritmu nebo je spouštěna pomocí vstupů LOAD a SAVE. Přesný způsob je určen parametrem mode a je podrobně vysvětlen u popisu tohoto parametru. Pokud nastane chyba, je signalizována na výstupy iE a v logu. Po fatální chybě se konverze z/do matice přestane provádět. Resetování chyby se pro mode = 1 .. 4 provede nastavením LOAD = SAVE = off, pro mode = 5 .. 8 resetování fatální chyby nelze provézt (musí se přepnout na mode = 1 .. 4 a pak zpět).

Parametr nmax slouží k předalokování výstupního textu. Pokud je nmax > 0, naalokuje se při inicializaci úlohy zadané množství znaků a pokud je to nedostatečné, blok hlásí chybu. Pokud je nmax = 0, blok zvětšuje délku výstupního textu podle potřeby. Může se zdát nesmyslné zadávat omezení na velikost, když pak může blok selhávat, ale pokud se nezadá, může v extrémním případě dojít k použití celé dostupné paměti, která pak chybí dalším komponentám (např. operačnímu systému) a pak selže celý systém nekontrolovatelně.

Vstupy

uMV

Vstupní reference na matici nebo vektor

Reference

uStr

Text pro konverzi na matici/vektor nebo jméno souboru

String

LOAD

Povolení zápisu hodnoty do matice/vektoru

Bool

SAVE

Povolení zápisu hodnoty do souboru/textu

Bool

Parametry

mode

Režim spouštění konverze  2

Long (I32)

1 ....

aktivované úrovní, do/z souboru – data jsou konvertována ze souboru do matice při LOAD=on a z matice do souboru při SAVE=on; pokud jsou aktivní oba signály, je to chyba a žádná akce se neprovede

2 ....

aktivované hranou, do/z souboru – data jsou konvertována ze souboru do matice při náběžné hraně na vstupu LOAD a z matice do souboru při náběžné hraně SAVE; pokud jsou náběžné hrany na obou signálech, je to chyba a žádná akce se neprovede

3 ....

aktivované úrovní, do/z textu – data jsou konvertována ze vstupu uStr do matice při LOAD=on a z matice na výstup yStr při SAVE=on; pokud jsou aktivní oba signály, je to chyba a žádná akce se neprovede

4 ....

aktivované hranou, do/z textu – data jsou konvertována ze vstupu uStr do matice při náběžné hraně na vstupu LOAD a z matice na výstup yStr při náběžné hraně SAVE; pokud jsou náběžné hrany na obou signálech, je to chyba a žádná akce se neprovede

5 ....

trvale text do matice – data jsou konvertována ze vstupu uStr do matice v každém kroku algoritmu

6 ....

trvale matice do textu – data jsou konvertována z matice na výstup yStr v každém kroku algoritmu

7 ....

trvale soubor do matice – data jsou konvertována ze souboru do matice v každém kroku algoritmu

8 ....

trvale matice do souboru – data jsou konvertována z matice do souboru v každém kroku algoritmu

format

Formát souboru/textu  1

Long (I32)

1 ....

CSV

2 ....

CSV(středník)

3 ....

JSON

4 ....

MATLAB

prec

Počet platných cifer pro každou hodnotu   0  20 6

Long (I32)

TRN

Příznak transpozice matice

Bool

nmax

Rezervovaná paměť pro řetězec   0

Long (I32)

Výstupy

yMV

Výstupní reference na matici nebo vektor

Reference

yStr

Textová podoba matice/vektoru

String

iE

Kód chyby

Error

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