node-red/packages/node_modules/@node-red/nodes/locales/de/sequence/17-split.html

163 lines
11 KiB
HTML
Raw Normal View History

2018-12-22 09:22:25 +01:00
<!--
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">
2018-12-22 09:22:25 +01:00
<p>Teilt eine Nachricht in eine Folge von Nachrichten auf.</p>
<h3>Eingaben</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">Objekt | String | Array | Buffer</span></dt>
<dd>Das Verhalten des Nodes wird durch den Typ der <code>msg.payload</code> bestimmt:
2018-12-22 09:22:25 +01:00
<ul>
<li><b>String</b>/<b>Buffer</b> - die Nachricht wird anhand des angegebenen Zeichens (Standard: <code>\n</code>),
der Buffersequenz oder in feste Längen aufgeteilt.</li>
2018-12-22 09:22:25 +01:00
<li><b>Array</b> - die Nachricht wird entweder in einzelne Array-Elemente oder Arrays mit fester Länge aufgeteilt.</li>
<li><b>Objekt</b> - es wird für jedes Schlüssel-Wert-Paar des Objekts eine Nachricht gesendet.</li>
</ul>
</dd>
</dl>
<h3>Ausgaben</h3>
<dl class="message-properties">
<dt>parts<span class="property-type">Objekt</span></dt>
<dd>Diese Eigenschaft enthält Informationen darüber, wie die Nachricht von der ursprünglichen Nachricht getrennt wurde.
Wenn sie an einen Node <b>join</b> übergeben werden,
2018-12-22 09:22:25 +01:00
kann die Sequenz wieder zu einer einzigen Nachricht zusammengefasst werden.
Diese Eigenschaft hat die folgenden Eigenschaften:
<ul>
<li><code>id</code> - ein Identifikator für die Gruppe der Nachrichten</li>
<li><code>index</code> - die Position innerhalb der Gruppep</li>
<li><code>count</code> - falls bekannt, die Gesamtzahl der Nachrichten in der Gruppe. Siehe dazu unten "Streaming-Modus".</li>
<li><code>type</code> - die Art der Nachricht - string/array/object/buffer</li>
<li><code>ch</code> - für ein String oder einen Buffer, die Daten, die für das Aufteilen der Nachricht verwendet wurden, entweder als String oder als Array von Bytes.</li>
<li><code>key</code> - für ein Objekt, den Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde. Der Node kann konfiguriert werden, um diesen Wert auch in andere Nachrichteneigenschaften zu kopieren, wie z.B. <code>msg.topic</code>.</li>
2018-12-22 09:22:25 +01:00
<li><code>len</code> - die Länge jeder Nachricht, wenn sie durch einen Wert fester Länge aufgeteilt wird.</li>
</ul>
</dd>
</dl>
<h3>Details</h3>
<p>Dieser Node macht es einfach, einen Flow zu erstellen, der gemeinsame Aktionen über eine Sequenz von Nachrichten ausführt,
bevor er den Node <b>join</b> verwendet und die Sequenz zu einer einzigen Nachricht neu kombiniert.</p>
2018-12-22 09:22:25 +01:00
<p>Es verwendet die Eigenschaft <code>msg.parts</code>, um die einzelnen Teile einer Sequenz zu verfolgen.</p>
<h4>Streaming Modus</h4>
<p>Der Node kann auch zum Wiederaufbereiten eines Nachrichtenstroms verwendet werden.
2018-12-22 09:22:25 +01:00
So kann beispielsweise ein serielles Gerät, das <code><newline/code>-terminierte Befehle sendet,
eine einzelne Nachricht mit einem Teilbefehl am Ende liefern.
Im Streaming-Modus teilt dieser Node eine Nachricht auf und sendet jedes komplette Segment.
Befindet er sich am Ende eines Teilsegments, hält der Node es fest und wird es der nächsten empfangenen Nachricht voranstellen.
2018-12-22 09:22:25 +01:00
</p>
<p>Wenn der Node in diesem Modus arbeitet, setzt er die Eigenschaft <code>msg.parts.count</code> nicht, da er nicht weiß, wie viele Nachrichten im Stream zu erwarten sind.
Das bedeutet, dass er nicht mit dem <b>join</b> Node im Automatikmodus verwendet werden kann.</p>
2018-12-22 09:22:25 +01:00
</script>
<script type="text/html" data-help-name="join">
2018-12-22 09:22:25 +01:00
<p>Verbindet Sequenzen von Nachrichten zu einer einzigen Nachricht.</p>
<p>Es sind drei Modi verfügbar:</p>
<dl>
<dt>automatisch</dt>
<dd>Wenn es mit dem Node <b>split</b> gepaart wird, verbindet es automatisch die Nachrichten, um die durchgeführte Aufteilung rückgängig zu machen.</dd>
2018-12-22 09:22:25 +01:00
<dt>manual</dt>
<dd>Die Sequenzen von Nachrichten können auf verschiedene Weise verknüpft werden.</dd>
<dt>Reihenfolge reduzieren</dt>
<dd>Einen Ausdruck auf alle Nachrichten in einer Sequenz anwenden, um sie auf eine einzige Nachricht zu reduzieren.</dd>
</dl>
<h3>Eingaben</h3>
<dl class="message-properties">
<dt class="optional">parts<span class="property-type">Objekt</span></dt>
<dd>Um automatisch einer Nachrichtensequenz beizutreten, sollten sie alle über diese Eigenschaft verfügen.
Der Node <b>split</b> erzeugt diese Eigenschaft, sie kann aber manuell erstellt werden.
2018-12-22 09:22:25 +01:00
Es hat die folgenden Eigenschaften:
<ul>
<li><code>id</code> - ein Identifikator für die Gruppe der Nachrichten</li>
<li><code>index</code> - die Position innerhalb der Gruppep</li>
<li><code>count</code> - fie Gesamtzahl der Nachrichten in der Gruppe.</li>
<li><code>type</code> - die Art der Nachricht - string/array/object/buffer</li>
<li><code>ch</code> - für ein String oder einen Buffer, die Daten, die für das Aufteilen der Nachricht verwendet wurden, entweder als String oder als Array von Bytes.</li>
2018-12-22 09:22:25 +01:00
<li><code>key</code> - für ein Objekt, den Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde.</li>
<li><code>len</code> - die Länge jeder Nachricht, wenn sie durch einen Wert fester Länge aufgeteilt wird.</li>
</ul>
</dd>
<dt class="optional">complete</dt>
<dd>Wenn gesetzt, sendet der Node seine Ausgangsnachricht im aktuellen Zustand.</dd>
2018-12-22 09:22:25 +01:00
</dl>
<h3>Details</h3>
<h4>Automatischer Modus</h4>
<p>Der automatische Modus verwendet die Eigenschaft <code>parts</code> der eingehenden Nachrichten, um festzulegen,
wie die Sequenz verknüpft werden soll.
Dies ermöglicht es ihm, die Aktion eines <b>split</b>-Nodes automatisch rückgängig zu machen.
2018-12-22 09:22:25 +01:00
</p>
<h4>Manueller Modus</h4>
<p>Wenn der Node für die Zusammenführung im manuellen Modus konfiguriert ist,
2018-12-22 09:22:25 +01:00
kann er Sequenzen von Nachrichten zu einer Reihe von verschiedenen Ergebnissen zusammenfügen:</p>
<ul>
<li>ein <b>String </b> oder <b>Buffer</b> - erstellt durch Verbinden der ausgewählten Eigenschaft
jeder Nachricht mit den angegebenen Join-Zeichen oder dem angegebenen Buffer.</li>
2018-12-22 09:22:25 +01:00
<li>ein <b>Array</b> - erstellt durch Hinzufügen jeder ausgewählten Eigenschaft oder einer ganzen Nachricht zum Ausgangsarray.</li>
<li>ein <b>Schlüssel/Wert-Objekt</b> - erstellt durch Verwendung einer Eigenschaft jeder Nachricht, um den Schlüssel zu bestimmen,
unter dem der gewünschte Wert gespeichert ist.</li>
<li>ein <b>zusammengefügtes Objekt</b> - erstellt durch Zusammenführen der Eigenschaft jeder Nachricht unter einem einzigen Objekt.</li>
</ul>
<p>Die anderen Eigenschaften der Ausgangsnachricht werden aus der letzten empfangenen Nachricht entnommen, bevor das Ergebnis gesendet wird.</p>
<p>Mit <i>count</i> kann angegeben werden, wie viele Nachrichten vor dem Erzeugen der Ausgabemeldung empfangen werden sollen.
Bei Objektausgaben kann der Node nach Erreichen dieser Anzahl konfiguriert werden,
2018-12-22 09:22:25 +01:00
um für jede nachfolgende empfangene Nachricht eine Nachricht zu senden.</p>
<p>Ein <i>Timeout</i> kann so eingestellt werden, dass das Senden einer neuen Nachricht mit dem ausgelöst wird, was bisher empfangen wurde.</p>
<p>Wenn eine Nachricht mit der Eigenschaft <b>msg.complete</b> empfangen wird, wird die Ausgabemeldung finalisiert und gesendet.
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
<p>Wenn eine Nachricht mit der Eigenschaft <b>msg.reset</b> empfangen wird, wird die teilweise vollständige Nachricht gelöscht und nicht gesendet.
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
<h4>Reduktion der Sequenz Modus</h4>
<p>Wenn sie so konfiguriert sind, dass sie sich im Reduktionsmodus befinden, wird auf jede Nachricht in einer Sequenz ein Ausdruck angewendet
und das Ergebnis zu einer einzigen Nachricht zusammengefasst.</p>
<dl class="message-properties">
<dt>Anfangswert</dt>
<dd>Der Anfangswert des kumulierten Wertes (<code>$A</code>).</dd>
<dt>Reduktionsausdruck</dt>
<dd>Ein JSONata-Ausdruck, der für jede Nachricht in der Sequenz aufgerufen wird.
Das Ergebnis wird als kumulierter Wert an den nächsten Aufruf des Ausdrucks übergeben.
Im Ausdruck können die folgenden speziellen Variablen verwendet werden:
<ul>
<li><code>$A</code>: der kumulierte Wert, </li>
<li><code>$I</code>: Index der Nachricht innerhalb der Squenz, </li>
2019-05-04 09:47:29 +02:00
<li><code>$N</code>: Anzahl der Nachrichten in der Sequenz.</li>
2018-12-22 09:22:25 +01:00
</ul>
</dd>
<dt>Fix-up Ausdruck</dt>
<dd>Ein optionaler JSONata-Ausdruck, der angewendet wird, nachdem der Reduzierungsausdruck auf alle Nachrichten in der Sequenz angewendet wurde.
Im Ausdruck können folgende spezielle Variablen verwendet werden:
<ul>
<li><code>$A</code>: der kumulierte Wert, </li>
2019-05-04 09:47:29 +02:00
<li><code>$N</code>: Anzahl der Nachrichten in der Sequenz.</li>
2018-12-22 09:22:25 +01:00
</ul>
</dd>
<p>Standardmäßig wird der Reduktionsausdruck in der Reihenfolge von der ersten bis zur letzten Nachricht der Sequenz angewendet.
Er kann optional in umgekehrter Reihenfolge angewendet werden.</p>
</dl>
<p><b>Beispiel:</b> Die folgenden Einstellungen berechnen bei einer Folge von Zahlenwerten den Mittelwert:
<ul>
<li><b>Reduce expression</b>: <code>$A+payload</code></li>
<li><b>Initial value</b>: <code>0</code></li>
<li><b>Fix-up expression</b>: <code>$A/$N</code></li>
</ul>
</p>
<h4>Speichern von Nachrichtens</h4>
<p>Dieser Node puffert Nachrichten intern, um sequenzübergreifend zu arbeiten.
2018-12-22 09:22:25 +01:00
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
2018-12-22 09:22:25 +01:00
</script>