NodeREDGuidUKR

ДОВІДНИК З NODE-RED українською мовою

<- На головну Розділ

node-red-contrib-buffer-parser

Вступ

https://github.com/Steve-Mcl/node-red-contrib-buffer-parser

Пара вузлів Node-RED для перетворення значень у буфер/масив і назад. Підтримує Big/Little Endian, BCD, переставлення байтів та багато іншого. Краще один раз побачити, ніж сто разів почути.

Перетворює масив цілих чисел на окремі повідомлення topic/payload – ідеально підходить для відправки в MQTT.

example1

Перетворює буфер у пари ключ/значення – ідеально підходить для відправки на дашборд або в базу даних.

example3

Fan out - це режим, за якого вузол Node-RED створює кілька вихідних контактів, і кожен результат надсилається через власний вихід.

example3

Масштабування кінцевих значень

example3

Вузол buffer-parser

image-20250901111125808 перетворює масив цілих чисел (Int16) або буфер на об’єкт значень відповідно до наданої специфікації.

image-20250901112720585

Налаштування через вікно властивостей

image-20250901113214709

Динамічні налаштування через властивості msg

specification може передаватися через msg, flow або global замість конфігурування через UI. Динамічна специфікація повинна бути об’єктом із такими властивостями:

Об’єкт options може мати такі властивості:

Масив items повинен містити один або більше об’єктів у такому форматі (не використовується, коли resultType = “buffer”):

Допустимі типи (Allowable types):

Примітки:

Приклад динамічної специфікації:

{
    "options": {
        "byteSwap": ["swap32", "swap16"],
        "resultType": "object",
        "multipleResult": true,
        "setTopic": true,
        "msgProperty": "payload"
    },
    "items": [
        {
            "name": "digit1",
            "type": "int",
            "offset": 4,
            "mask": "0x00f0"
            "scale": ">> 4"
        },
        {
            "name": "myInt16Array_LE_divided_by_100",
            "type": "int16le",
            "offset": 26,
            "length": 6,
            "scale": 0.01
        },
        {
            "name": "myInt16Array_BE",
            "type": "int16be",
            "offset": 26,
            "length": 6
        },
        {
            "name": "booleans",
            "type": "bool",
            "offset": 0,
            "length": 16
        },
        {
            "name": "16bits",
            "type": "16bit",
            "offset": 0
        },
        {
            "name": "myString",
            "type": "string",
            "offset": 0,
            "length": -1
        }
    ]
}
        

Вузол buffer-maker

image-20250901111127632 перетворює вхідні елементи даних у буфер відповідно до наданої специфікації.

Налаштування через вікно властивостей

image-20250901120625685

Динамічні налаштування через властивості msg

Об’єкт options може мати такі властивості:

Масив items повинен містити один або більше об’єктів у такому форматі (не використовується, коли resultType = “buffer”):

Допустимі типи (Allowable types):

Примітки:

{
    "options": {
        "byteSwap": ["swap32", "swap16"],
        "msgProperty": "payload"
    },
    "items": [
        {
            "name": "myInts",
            "type": "int",
            "length": 6,
            "data": "payload.myInts"
            "dataType": "msg"
        },
        {
            "name": "myInt16ArrayInFlow",
            "type": "int16be",
            "length": 6,
            "data": "myInt16Array"
            "dataType": "flow"
        },
        {
            "name": "booleans",
            "type": "bool",
            "length": 8,
            "data": "[true,true,false,false,true,true,false,false]"
            "dataType": "json"
        },
        {
            "name": "16bits",
            "type": "16bit",
            "length": 1,
            "data": "[1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0]"
            "dataType": "json"
        },
        {
            "name": "myString",
            "type": "string",
            "length": -1,
            "data": "title",
            "dataType": "global"
        }
    ]
}