[ { "id": "2e8554c4cacf5240", "type": "tcp in", "z": "ec4547d237679549", "name": "ShortFast", "server": "client", "host": "192.168.100.113", "port": "20000", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "ShortFast", "trim": false, "base64": false, "tls": "", "x": 80, "y": 40, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "31a2e27ea5b2e77b", "type": "function", "z": "ec4547d237679549", "name": "Buffer2Hex", "func": "msg.payload = msg.payload.toString('hex');\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 510, "y": 220, "wires": [ [ "cd015e39b23c58c7" ] ] }, { "id": "cd015e39b23c58c7", "type": "function", "z": "ec4547d237679549", "name": "Hex2MeshHeader", "func": "// From https://meshtastic.org/docs/overview/mesh-algo/\n// This is in MSB/big endian order. \n\nvar destination = msg.payload.substring(0, 8); // 4 bytes \nvar sender = msg.payload.substring(8, 16); // 4 bytes\nvar packetID = msg.payload.substring(16, 24); // 4 bytes\nvar flags = msg.payload.substring(24, 26); // 1 byte\nvar channelHash = msg.payload.substring(26, 28); // 1 byte\nvar reserved = msg.payload.substring(28, 32); // 2 bytes\nvar data = msg.payload.substring(32, msg.payload.length); // the rest\n\nmsg.meshtastic = [destination, sender, packetID, flags, channelHash, reserved, data];\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 690, "y": 220, "wires": [ [ "61306710ab42e6d8" ] ] }, { "id": "61306710ab42e6d8", "type": "function", "z": "ec4547d237679549", "name": "MSBtoLSB", "func": "var changeEndianness = (msb) => {\n var lsb = \"\";\n for (var i = msb.length; i > 0; i = i - 2) {\n lsb = lsb + msb.substring((i - 2), i)\n }\n return lsb;\n}\n\nmsg.meshtastic[0] = changeEndianness(msg.meshtastic[0]);\nmsg.meshtastic[1] = changeEndianness(msg.meshtastic[1]);\nmsg.meshtastic[2] = changeEndianness(msg.meshtastic[2]);\nmsg.meshtastic[3] = changeEndianness(msg.meshtastic[3]);\nmsg.meshtastic[4] = changeEndianness(msg.meshtastic[4]);\nmsg.meshtastic[5] = changeEndianness(msg.meshtastic[5]);\nmsg.meshtastic[6] = changeEndianness(msg.meshtastic[6]);\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 870, "y": 220, "wires": [ [ "d91efbc96f023aee" ] ] }, { "id": "d91efbc96f023aee", "type": "function", "z": "ec4547d237679549", "name": "recombinePayload", "func": "msg.payload = msg.meshtastic[0] + msg.meshtastic[1] + msg.meshtastic[2] + msg.meshtastic[3] + msg.meshtastic[4] + msg.meshtastic[5] + msg.meshtastic[6];\n\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1050, "y": 220, "wires": [ [ "b7d858594cd04b91" ] ] }, { "id": "b7d858594cd04b91", "type": "debug", "z": "ec4547d237679549", "name": "correctByteOrder", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1250, "y": 220, "wires": [] }, { "id": "afc8ec524838f5f1", "type": "tcp in", "z": "ec4547d237679549", "name": "ShortSlow", "server": "client", "host": "192.168.100.113", "port": "20001", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "ShortSlow", "trim": false, "base64": false, "tls": "", "x": 80, "y": 100, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "54e752f80b657416", "type": "tcp in", "z": "ec4547d237679549", "name": "MediumFast", "server": "client", "host": "192.168.100.113", "port": "20002", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "MediumFast", "trim": false, "base64": false, "tls": "", "x": 90, "y": 160, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "c3cf8213b9816e28", "type": "tcp in", "z": "ec4547d237679549", "name": "MediumSlow", "server": "client", "host": "192.168.100.113", "port": "20003", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "MediumSlow", "trim": false, "base64": false, "tls": "", "x": 90, "y": 220, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "9041db64281742aa", "type": "tcp in", "z": "ec4547d237679549", "name": "LongFast", "server": "client", "host": "192.168.100.113", "port": "20004", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "LongFast", "trim": false, "base64": false, "tls": "", "x": 80, "y": 280, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "6b5657786491171d", "type": "tcp in", "z": "ec4547d237679549", "name": "LongModerate", "server": "client", "host": "192.168.100.113", "port": "20005", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "LongModerate", "trim": false, "base64": false, "tls": "", "x": 90, "y": 340, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "76777577f97247d3", "type": "tcp in", "z": "ec4547d237679549", "name": "LongSlow", "server": "client", "host": "192.168.100.113", "port": "20006", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "LongSlow", "trim": false, "base64": false, "tls": "", "x": 80, "y": 400, "wires": [ [ "31a2e27ea5b2e77b" ] ] }, { "id": "b04c3fbb14e0d023", "type": "tcp in", "z": "ec4547d237679549", "name": "VeryLongSlow", "server": "client", "host": "192.168.100.113", "port": "20007", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "VeryLongSlow", "trim": false, "base64": false, "tls": "", "x": 90, "y": 460, "wires": [ [ "31a2e27ea5b2e77b" ] ] } ]