mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
171 lines
10 KiB
HTML
171 lines
10 KiB
HTML
<!--
|
|
Copyright JS Foundation and other contributors, http://js.foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<script type="text/html" data-help-name="split">
|
|
<p>Rozdeľuje správu na sekvenciu správ.</p>
|
|
|
|
<h3>Vstupy</h3>
|
|
<dl class="message-properties">
|
|
<dt>payload<span class="property-type">objekt | reťazec | pole | vyrovnávacia pamäť</span></dt>
|
|
<dd>Správanie uzla je určené typom <code>msg.payload</code>:
|
|
<ul>
|
|
<li><b>reťazec</b>/<b>vyrovnávacia pamäť</b> - správa je rozdelená pomocou špecifikovaného znaku (predvolene: <code>\n</code>), sekvencie vyrovnávacej pamäte alebo na pevné dĺžky.</li>
|
|
<li><b>pole</b> - správa je rozdelená na jednotlivé prvky poľa alebo na polia pevnej dĺžky.</li>
|
|
<li><b>objekt</b> - pre každú dvojicu kľúč/hodnota objektu sa odošle správa.</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<h3>Výstupy</h3>
|
|
<dl class="message-properties">
|
|
<dt>parts<span class="property-type">objekt</span></dt>
|
|
<dd>Táto vlastnosť obsahuje informácie o tom, ako bola správa oddelená od pôvodnej správy.
|
|
Ak je prenesená do uzla <b>join</b>, sekvencia môže byť znovu zoskupená do jednej správy.
|
|
Vlastnosť má nasledujúce vlastnosti:
|
|
<ul>
|
|
<li><code>id</code> - identifikátor pre skupinu správ</li>
|
|
<li><code>index</code> - pozícia v rámci skupiny</li>
|
|
<li><code>count</code> - ak je známe, celkový počet správ v skupine. Pozri 'režim prenosu' nižšie.</li>
|
|
<li><code>type</code> - typ správy - reťazec/pole/objekt/vyrovnávacia pamäť</li>
|
|
<li><code>ch</code> - pre reťazec alebo vyrovnávaciu pamäť, údaje použité na rozdelenie správy na reťazec alebo pole bajtov</li>
|
|
<li><code>key</code> - pre objekt, kľúč vlastnosti, z ktorej bola táto správa vytvorená. Uzol môže byť nakonfigurovaný tak, aby túto hodnotu tiež kopíroval do iných vlastností správy, ako je napríklad <code>msg.topic</code>.</li>
|
|
<li><code>len</code> - dĺžka každej správy pri rozdelení pomocou pevnej hodnoty dĺžky</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<h3>Detaily</h3>
|
|
<p>Tento uzol uľahčuje vytvorenie toku, ktorý vykonáva bežné akcie na
|
|
sekvencii správ pomocou uzla <b>join</b>, ktorý znovu kombinuje
|
|
sekvenciu do jednej správy.</p>
|
|
<p>Používa vlastnosť <code>msg.parts</code>, aby sledoval jednotlivé časti sekvencie.</p>
|
|
<h4>Režim prenosu</h4>
|
|
<p>Uzol môže byť tiež použitý na opätovné vysielanie toku správ.
|
|
Napríklad sériové zariadenie, ktoré posiela príkazy ukončené novým riadkom,
|
|
môže doručiť jednu správu s čiastočným príkazom na svojom konci.
|
|
V "režime prenosu" tento uzol rozdelí správu a odošle každý úplný segment.
|
|
Ak je na konci čiastočný segment, uzol ho uchová a pridá k ďalšej prijatej správe.
|
|
</p>
|
|
<p>Pri práci v tomto režime uzol nenastaví <code>msg.parts.count</code>,
|
|
pretože nevie, koľko správ čaká v toku.
|
|
To znamená, že ho nemožno použiť s uzlom <b>join</b>
|
|
v automatickom režime.</p>
|
|
</script>
|
|
|
|
<script type="text/html" data-help-name="join">
|
|
<p>Spája sekvencie správ do jednej správy.</p>
|
|
<p>Sú dostupné tri režimy:</p>
|
|
<dl>
|
|
<dt>automatický</dt>
|
|
<dd>Keď je spojený s uzlom <b>split</b>, automaticky spojí správy, aby zvrátil rozdelenie, ktoré bolo vykonané.</dd>
|
|
<dt>manuálny</dt>
|
|
<dd>Spájať sekvencie správ rôznymi spôsobmi.</dd>
|
|
<dt>zredukovať sekvenciu</dt>
|
|
<dd>Aplikovať výraz na všetky správy v sekvencii, aby sa zredukovali na jednu správu.</dd>
|
|
</dl>
|
|
<h3>Vstupy</h3>
|
|
<dl class="message-properties">
|
|
<dt class="optional">parts<span class="property-type">objekt</span></dt>
|
|
<dd>Na automatické spojenie sekvencie správ musia mať všetky tieto vlastnosti
|
|
nastavené. Uzol <b>split</b> generuje túto vlastnosť,
|
|
ale môže byť vytvorená aj manuálne. Má nasledujúce vlastnosti:
|
|
<ul>
|
|
<li><code>id</code> - identifikátor pre skupinu správ</li>
|
|
<li><code>index</code> - pozícia v rámci skupiny</li>
|
|
<li><code>count</code> - celkový počet správ v skupine</li>
|
|
<li><code>type</code> - typ správy - reťazec/pole/objekt/vyrovnávacia pamäť</li>
|
|
<li><code>ch</code> - pre reťazec alebo vyrovnávaciu pamäť, údaje použité na rozdelenie správy na reťazec alebo pole bajtov</li>
|
|
<li><code>key</code> - pre objekt, kľúč vlastnosti, z ktorej bola táto správa vytvorená</li>
|
|
<li><code>len</code> - dĺžka každej správy pri rozdelení pomocou pevnej hodnoty dĺžky</li>
|
|
</ul>
|
|
<dd>
|
|
<dt class="optional">complete</dt>
|
|
<dd>Ak je definovaný, uzol pridá užitočné zaťaženie a potom odošle výstupnú správu v jej aktuálnom stave.
|
|
Ak nechcete pridať užitočné zaťaženie, odstráňte ho zo správy.</dd>
|
|
<dt class="optional">reset</dt>
|
|
<dd>Ak je definovaný, uzol vymaže všetky čiastočne dokončené správy a neodošle ich.</dd>
|
|
<dt class="optional">restartTimeout</dt>
|
|
<dd>Ak je definovaný a uzol má nakonfigurovaný časový limit, tento časový limit sa reštartuje.</dd>
|
|
</dl>
|
|
<h3>Podrobnosti</h3>
|
|
|
|
<h4>Automatický režim</h4>
|
|
<p>Automatický režim používa vlastnosť <code>parts</code> prichádzajúcich správ na
|
|
určenie, ako má byť sekvencia spojená. To mu umožňuje automaticky
|
|
zvrátiť činnosť uzla <b>split</b>.</p>
|
|
|
|
<h4>Manuálny režim</h4>
|
|
<p>Keď je nakonfigurovaný na spájanie v manuálnom režime, uzol môže spájať sekvencie
|
|
správ do rôznych výsledkov:</p>
|
|
<ul>
|
|
<li><b>Reťazec</b> alebo <b>buffer</b> - vytvorený spojením vybranej vlastnosti každej správy so zadanými znakmi alebo bufferom.</li>
|
|
<li><b>Pole</b> - vytvorené pridaním každej vybranej vlastnosti alebo celej správy do výstupného poľa.</li>
|
|
<li><b>Objekt kľúč/hodnota</b> - vytvorený použitím vlastnosti každej správy na určenie kľúča,
|
|
pod ktorým je uložená požadovaná hodnota.</li>
|
|
<li><b>Zlúčený objekt</b> - vytvorený zlúčením vlastností každej správy do jedného objektu.</li>
|
|
</ul>
|
|
<p>Ostatné vlastnosti výstupnej správy sú prevzaté z poslednej prijatej správy pred odoslaním výsledku.</p>
|
|
<p>Môže byť definovaný <i>počítač</i> pre počet správ, ktoré majú byť prijaté pred generovaním výstupnej správy.
|
|
Pre výstupy objektu, keď sa tento počet dosiahne, môže byť uzol nakonfigurovaný tak, aby odoslal správu pre každú nasledujúcu prijatú správu.</p>
|
|
<p>Môže byť definovaný <i>časový limit</i> na spustenie odoslania novej správy pomocou všetkého, čo bolo doteraz prijaté.
|
|
Tento časový limit môže byť reštartovaný odoslaním správy s nastavenou vlastnosťou <code>msg.restartTimeout</code>.</p>
|
|
<p>Ak je prijatá správa s nastavenou vlastnosťou <code>msg.complete</code>, výstupná správa je dokončená a odoslaná.
|
|
To resetuje všetky počítadlá častí.</p>
|
|
<p>Ak je prijatá správa s nastavenou vlastnosťou <code>msg.reset</code>, čiastočne dokončená správa je odstránená a nie je odoslaná.
|
|
To resetuje všetky počítadlá častí.</p>
|
|
|
|
<h4>Zredukovať režim sekvencie</h4>
|
|
<p>Keď je nakonfigurovaný na spájanie v redukčnom režime,
|
|
na každú správu v sekvencii sa aplikuje výraz
|
|
a akumulovaný výsledok sa odošle ako jediná správa.</p>
|
|
|
|
<dl class="message-properties">
|
|
<dt>Počiatočná hodnota</dt>
|
|
<dd>Počiatočná hodnota kumulovanej hodnoty (<code>$A</code>).</dd>
|
|
<dt>Zredukovať výraz</dt>
|
|
<dd>Výraz JSONata volaný pre každú správu v sekvencii.
|
|
Výsledok je prenesený do ďalšieho volania výrazu ako kumulovaná hodnota.
|
|
Vo výraze môžu byť použité nasledujúce špeciálne premenné:
|
|
<ul>
|
|
<li><code>$A</code>: kumulovaná hodnota, </li>
|
|
<li><code>$I</code>: index správy v sekvencii, </li>
|
|
<li><code>$N</code>: počet správ v sekvencii.</li>
|
|
</ul>
|
|
</dd>
|
|
<dt>Výraz korekcie</dt>
|
|
<dd>Voliteľný výraz JSONata, ktorý sa aplikuje po tom, ako bol výraz redukcie aplikovaný na všetky správy v sekvencii.
|
|
Vo výraze môžu byť použité nasledujúce špeciálne premenné:
|
|
<ul>
|
|
<li><code>$A</code>: kumulovaná hodnota, </li>
|
|
<li><code>$N</code>: počet správ v sekvencii.</li>
|
|
</ul>
|
|
</dd>
|
|
<p>V predvolenom nastavení je výraz redukcie aplikovaný v poradí, od prvej
|
|
po poslednú správu v sekvencii. Môže byť prípadne aplikovaný v
|
|
opačnom poradí.</p>
|
|
<p>$N je počet prichádzajúcich správ - aj keď sú identické.</p>
|
|
</dl>
|
|
<p><b>Príklad</b>: s nasledujúcimi parametrami, zadanými ako sekvencia číselných hodnôt,
|
|
uzol vypočíta priemernú hodnotu:
|
|
<ul>
|
|
<li><b>Zredukovať výraz</b>: <code>$A+payload</code></li>
|
|
<li><b>Počiatočná hodnota</b>: <code>0</code></li>
|
|
<li><b>Výraz korekcie</b>: <code>$A/$N</code></li>
|
|
</ul>
|
|
</p>
|
|
<h4>Ukladanie správ</h4>
|
|
<p>Tento uzol bude ukladať správy do interného bufferu, aby mohol pracovať na viacerých sekvenciách.
|
|
Parameter vykonávania <code>nodeMessageBufferMaxLength</code> môže byť použitý na obmedzenie počtu správ,
|
|
ktoré sa majú uložiť do bufferu v uzle.</p>
|
|
</script> |