UNPKG

node-red-contrib-netvar-utils

Version:

Network Variable List utility nodes for node-red

189 lines (184 loc) 6.29 kB
<script type="text/javascript"> (function () { 'use strict'; RED.nodes.registerType('nvl-reader', { category: 'codesys', color: '#a6bbcf', defaults: { name: { value: '' }, nvl: { value: '', type: 'nvl-config', required: true, }, emitOn: { value: 'last-packet', required: true, }, initial: { value: 'topic' }, initialType: { value: 'msg' }, timeout: { value: 100, validate: RED.validators.number(true), }, timeoutBehaviour: { value: 'send', required: true, }, sendStats: { value: false, }, }, inputs: 1, outputs: 1, icon: 'codesys.svg', paletteLabel: 'nvl reader', label: function () { return this.name || 'nvl reader'; }, oneditprepare: function () { $('#node-input-emitOn').on('change', function () { var value = $(this).val(); $('.node-row-timeout').toggle(value === 'last-packet'); $('.node-row-initial').toggle(value === 'every-packet'); }); $('#node-input-initial').typedInput({ types: ['msg', 'flow', 'global'], typeField: '#node-input-initial-type', default: this.initialType || 'msg', }); }, oneditsave: function () { this.initialType = $('#node-input-initial').typedInput('type'); }, }); })(); </script> <script type="text/html" data-template-name="nvl-reader"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Name" /> </div> <div class="form-row"> <label for="node-input-nvl"><i class="fa fa-th-list"></i> NVL </label> <input type="text" id="node-input-nvl" /> </div> <div class="form-row"> <label for="node-input-emitOn"><i class="fa fa-archive"></i> Send msg</label> <select type="text" id="node-input-emitOn" style="width: 300px;"> <option value="last-packet">When all expected packets are received</option> <option value="every-packet">On Every Packet</option> </select> </div> <div class="node-row-timeout"> <div class="form-row"> <label for="node-input-timeout"><i class="fa fa-clock-o"></i> Timeout </label> <input type="text" id="node-input-timeout" placeholder="Milliseconds (Default: 100ms)" /> </div> <div class="form-row"> <label for="node-input-timeoutBehaviour"> On Timeout </label> <select type="text" id="node-input-timeoutBehaviour" style="width: 300px;"> <option value="send">Send message</option> <option value="discard">Discard payload</option> </select> </div> <div class="form-row"> <label></label> <input style="width: 20px; vertical-align: baseline;" type="checkbox" id="node-input-sendStats" /> <label style="margin: 0; width: auto;" for="node-input-sendStats"> Send reader stats</label> </div> <div class="form-tips"> Timeout counter will start on first received packet. Timeout counter will be reset on each subsequent packet. </div> </div> <div class="form-row node-row-initial"> <label for="node-input-initial"> Initial JSON </label> <input type="text" id="node-input-initial" /> <input type="hidden" id="node-input-initial-type" /> </div> </script> <script type="text/html" data-help-name="nvl-reader"> <p> Reads buffers sent by a network variable list sender (or emitted by <code>nvl-emitter</code>). </p> <h3>Input</h3> <dl class="message-properties"> <dt> payload <span class="property-type">buffer</span> </dt> <dd>Netvar packet sent by a sender</dd> </dl> <h3>Output</h3> <dl class="message-properties"> <dt> payload <span class="property-type">object | null</span> </dt> <dd> Network variable list as JSON object filled with values acquired from the buffer. Can be <code>null</code> if stats are enabled and payload is discarded on timeout. </dd> <dt> stats <span class="property-type">object</span> </dt> <dd> Contains statistics about the read process that produced <code>payload</code>. Must be enabled. Stats object contains following properties: </dd> <dl class="message-properties" style="margin: 6px"> <dt> start <span class="property-type">number</span> </dt> <dd> Start timestamp of read process. Read process starts when a valid packet is received after last read process. </dd> <dt> end <span class="property-type">number</span> </dt> <dd> End timestamp of read process. Read process ends when all expected packets are received or when it times out while waiting for expected packets. </dd> <dt> duration <span class="property-type">number</span> </dt> <dd>Duration of read process.</dd> <dt> timeout <span class="property-type">boolean</span> </dt> <dd>true will read process timed-out.</dd> <dt> validPacketsReceived <span class="property-type">number</span> </dt> <dd>Number of valid and uniquely indexed packets received.</dd> <dt> invalidPacketsReceived <span class="property-type">number</span> </dt> <dd>Number of invalid packets received.</dd> <dt> missingPackets <span class="property-type">number[]</span> </dt> <dd>Packet indexes that were expected but not received.</dd> </dl> </dl> <h3>Details</h3> <p>Output is sent when the all the expected packets are received.</p> <p>Node ignores buffers that doesnt comply to its standard.</p> <p>Node throws <code>Error</code> if it receieves anything other than <code>Buffer</code></p> </script> //# sourceMappingURL=nvl-reader.html.map