[{"data":1,"prerenderedAt":72},["ShallowReactive",2],{"integration-node-red-contrib-buffer-parser\u002F":3},{"_id":4,"categories":5,"author":8,"description":10,"npmOwners":11,"npmScope":13,"name":4,"ffCertified":14,"downloads":15,"version":17,"updatedAt":18,"tier":19,"maintainers":20,"homepage":23,"bugs":24,"repository":26,"time":29,"lastUpdated":32,"created":30,"license":57,"githubOwner":9,"githubRepo":4,"examples":58,"readme":71},"node-red-contrib-buffer-parser",[6,7],"catalogue_data-and-analytics","catalogue",{"name":9},"Steve-Mcl","Node-red nodes to convert values to and from buffer\u002Farray. Supports Big\u002FLittle Endian, BCD, byte swapping and much more",[12],"steve-mcl",null,true,{"week":16},2796,"3.2.2","2022-01-30T11:39:26.813Z","recommended",[21],{"name":12,"email":22},"sdmclaughlin+npm@gmail.com","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser",{"url":25},"https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fissues",{"type":27,"url":28},"git","git+https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser.git",{"created":30,"1.0.0":31,"modified":32,"1.0.1":33,"1.0.2":34,"2.0.0":35,"2.0.1":36,"2.0.2":37,"2.1.0":38,"2.2.0":39,"2.3.0":40,"2.4.0":41,"2.5.0":42,"2.5.1":43,"3.0.1":44,"3.0.2":45,"3.0.3":46,"3.1.0":47,"3.1.1":48,"3.1.2":49,"3.1.3":50,"3.1.5":51,"3.1.6":52,"3.1.7":53,"3.2.0":54,"3.2.1":55,"3.2.2":56},"2020-05-01T17:44:16.381Z","2020-05-01T17:44:16.592Z","2022-05-11T02:59:10.102Z","2020-05-01T17:59:27.534Z","2020-07-05T19:24:31.598Z","2020-07-13T16:27:04.161Z","2020-07-15T08:21:23.330Z","2020-07-15T08:29:53.309Z","2020-07-25T14:26:45.924Z","2020-08-13T09:41:10.448Z","2020-08-15T14:07:12.477Z","2020-09-26T15:44:27.841Z","2020-10-25T14:23:12.689Z","2020-10-25T14:34:27.816Z","2020-11-22T22:00:07.197Z","2020-11-22T22:35:55.837Z","2020-11-23T17:05:43.468Z","2020-11-24T22:51:45.484Z","2020-11-24T23:00:45.594Z","2020-11-25T23:05:12.540Z","2020-11-29T13:10:17.736Z","2020-12-08T23:22:07.341Z","2021-07-05T06:57:38.247Z","2021-08-18T15:15:04.065Z","2022-01-09T15:36:13.969Z","2022-01-30T08:37:35.523Z","2022-01-30T11:39:24.997Z","MIT",[59,65],{"name":60,"path":61,"url":62,"downloadUrl":63,"flow":64},"buffer-maker examples","examples\u002Fbuffer-maker examples.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fblob\u002Fmaster\u002Fexamples\u002Fbuffer-maker%20examples.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002Fexamples\u002Fbuffer-maker%20examples.json","[{\"id\":\"791a95ae.26555c\",\"type\":\"buffer-maker\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"name\":\"item1\",\"type\":\"ascii\",\"length\":8,\"dataType\":\"str\",\"data\":\"abcdefgh\"},{\"name\":\"item2\",\"type\":\"uint16le\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.anumber\"},{\"name\":\"item3\",\"type\":\"uint16le\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.anarray\"},{\"name\":\"item4\",\"type\":\"biguint64le\",\"length\":1,\"dataType\":\"str\",\"data\":\"123456\"},{\"name\":\"item5\",\"type\":\"8bit\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.a8bit\"},{\"name\":\"item6\",\"type\":\"16bitle\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.a16bit\"},{\"name\":\"item7\",\"type\":\"bool\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.bools\"},{\"name\":\"bcd1\",\"type\":\"bcdle\",\"length\":2,\"dataType\":\"jsonata\",\"data\":\"[1234,2345]\"},{\"name\":\"bcd2\",\"type\":\"bcdbe\",\"length\":1,\"dataType\":\"num\",\"data\":\"5678\"},{\"name\":\"item8\",\"type\":\"hex\",\"length\":-1,\"dataType\":\"msg\",\"data\":\"payload.hexstring\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"str\",\"x\":330,\"y\":960,\"wires\":[[\"fe3067d4.300288\",\"a08cf05c.aea2\"]]},{\"id\":\"ca252362.2b25d\",\"type\":\"inject\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"},{\"p\":\"spec\",\"v\":\"{\\\"options\\\":{\\\"byteSwap\\\":[\\\"swap16\\\"],\\\"msgProperty\\\":\\\"payload\\\"},\\\"items\\\":[{\\\"name\\\":\\\"item1\\\",\\\"type\\\":\\\"ascii\\\",\\\"length\\\":8,\\\"dataType\\\":\\\"str\\\",\\\"data\\\":\\\"abcdefgh\\\",\\\"value\\\":\\\"abcdefgh\\\"},{\\\"name\\\":\\\"item2\\\",\\\"type\\\":\\\"uint16le\\\",\\\"length\\\":1,\\\"dataType\\\":\\\"msg\\\",\\\"data\\\":\\\"payload.anumber\\\",\\\"value\\\":123},{\\\"name\\\":\\\"item3\\\",\\\"type\\\":\\\"uint16le\\\",\\\"length\\\":1,\\\"dataType\\\":\\\"msg\\\",\\\"data\\\":\\\"payload.anarray\\\"},{\\\"name\\\":\\\"item4\\\",\\\"type\\\":\\\"biguint64le\\\",\\\"length\\\":1,\\\"dataType\\\":\\\"str\\\",\\\"data\\\":\\\"123456\\\"},{\\\"name\\\":\\\"item5\\\",\\\"type\\\":\\\"8bit\\\",\\\"length\\\":1,\\\"dataType\\\":\\\"msg\\\",\\\"data\\\":\\\"payload.a8bit\\\"},{\\\"name\\\":\\\"item6\\\",\\\"type\\\":\\\"16bitle\\\",\\\"length\\\":1,\\\"dataType\\\":\\\"msg\\\",\\\"data\\\":\\\"payload.a16bit\\\"},{\\\"name\\\":\\\"item7\\\",\\\"type\\\":\\\"bool\\\",\\\"length\\\":1,\\\"dataType\\\":\\\"msg\\\",\\\"data\\\":\\\"payload.bools\\\"},{\\\"name\\\":\\\"item8\\\",\\\"type\\\":\\\"hex\\\",\\\"length\\\":-1,\\\"dataType\\\":\\\"msg\\\",\\\"data\\\":\\\"payload.hexstring\\\"}]}\",\"vt\":\"json\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"{\\\"astring\\\":\\\"hello\\\",\\\"anumber\\\":123,\\\"anarray\\\":[1,2,3,4,5,6,7,8,9,10],\\\"a8bit\\\":[[1,1,1,0,0,0,1,0]],\\\"a16bit\\\":[[true,true,true,0,0,0,1,0,0,0,0,1,1,1,0,1]],\\\"bools\\\":[1,0,0,1,false,false,true,true],\\\"hexstring\\\":\\\"0102030405060708\\\"}\",\"payloadType\":\"json\",\"x\":150,\"y\":960,\"wires\":[[\"791a95ae.26555c\",\"bd497a1e.4aff58\"]]},{\"id\":\"fe3067d4.300288\",\"type\":\"debug\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":430,\"y\":1020,\"wires\":[]},{\"id\":\"a08cf05c.aea2\",\"type\":\"buffer-parser\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"string\",\"name\":\"item1\",\"offset\":0,\"length\":8,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"int16le\",\"name\":\"item2\",\"offset\":8,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"int16le\",\"name\":\"item3\",\"offset\":10,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"biguint64le\",\"name\":\"item4\",\"offset\":12,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"8bit\",\"name\":\"item5\",\"offset\":20,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"16bitle\",\"name\":\"item6\",\"offset\":21,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"item7\",\"offset\":23,\"length\":8,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"bcdle\",\"name\":\"bcd1\",\"offset\":24,\"length\":2,\"offsetbit\":8,\"scale\":1,\"mask\":\"\"},{\"type\":\"bcdbe\",\"name\":\"bcd2\",\"offset\":28,\"length\":1,\"offsetbit\":8,\"scale\":1,\"mask\":\"\"},{\"type\":\"hex\",\"name\":\"item8\",\"offset\":29,\"length\":-1,\"offsetbit\":8,\"scale\":1,\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"str\",\"resultType\":\"keyvalue\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":570,\"y\":960,\"wires\":[[\"64289929.b60d78\"]]},{\"id\":\"64289929.b60d78\",\"type\":\"debug\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":690,\"y\":1020,\"wires\":[]},{\"id\":\"bd497a1e.4aff58\",\"type\":\"buffer-maker\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"msg\",\"items\":[{\"name\":\"item1\",\"type\":\"ascii\",\"length\":8,\"dataType\":\"str\",\"data\":\"abcdefgh\"},{\"name\":\"item2\",\"type\":\"uint16le\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.anumber\"},{\"name\":\"item3\",\"type\":\"uint16le\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.anarray\"},{\"name\":\"item4\",\"type\":\"biguint64le\",\"length\":1,\"dataType\":\"str\",\"data\":\"123456\"},{\"name\":\"item5\",\"type\":\"8bit\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.a8bit\"},{\"name\":\"item6\",\"type\":\"16bitle\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.a16bit\"},{\"name\":\"item7\",\"type\":\"bool\",\"length\":1,\"dataType\":\"msg\",\"data\":\"payload.bools\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"str\",\"x\":330,\"y\":1120,\"wires\":[[\"fd9977f7.520068\",\"f32e8db7.9554a\"]]},{\"id\":\"fd9977f7.520068\",\"type\":\"debug\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":400,\"y\":1180,\"wires\":[]},{\"id\":\"f32e8db7.9554a\",\"type\":\"buffer-parser\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"string\",\"name\":\"item1\",\"offset\":0,\"length\":8,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"int16le\",\"name\":\"item2\",\"offset\":8,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"int16le\",\"name\":\"item3\",\"offset\":10,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"biguint64le\",\"name\":\"item4\",\"offset\":12,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"8bit\",\"name\":\"item5\",\"offset\":20,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"16bitle\",\"name\":\"item6\",\"offset\":21,\"length\":1,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"item7\",\"offset\":23,\"length\":8,\"offsetbit\":0,\"scale\":1,\"mask\":\"\"},{\"type\":\"hex\",\"name\":\"item8\",\"offset\":24,\"length\":-1,\"offsetbit\":8,\"scale\":1,\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"str\",\"resultType\":\"keyvalue\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":570,\"y\":1120,\"wires\":[[\"d1a9924.18b1e7\"]]},{\"id\":\"d1a9924.18b1e7\",\"type\":\"debug\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":700,\"y\":1180,\"wires\":[]},{\"id\":\"89881af3.d907c8\",\"type\":\"comment\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"Convert values to a buffer then back again (UI Spec)\",\"info\":\"\",\"x\":450,\"y\":920,\"wires\":[]},{\"id\":\"213d42e.e087cbe\",\"type\":\"comment\",\"z\":\"a9fbaedc.8f9c1\",\"name\":\"Convert values to a buffer then back again (msg.spec)\",\"info\":\"\",\"x\":460,\"y\":1080,\"wires\":[]}]",{"name":66,"path":67,"url":68,"downloadUrl":69,"flow":70},"buffer-parser examples","examples\u002Fbuffer-parser examples.json","https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fblob\u002Fmaster\u002Fexamples\u002Fbuffer-parser%20examples.json","https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002Fexamples\u002Fbuffer-parser%20examples.json","[{\"id\":\"1a961982.6e0c66\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Trigger\",\"topic\":\"\",\"payload\":\"true\",\"payloadType\":\"bool\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":270,\"y\":220,\"wires\":[[\"429874da.f0bfcc\"]]},{\"id\":\"a03288ed.d73cf8\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"16bitbe\",\"name\":\"3 lots of 16 bits\",\"offset\":\"0\",\"length\":\"3\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"32 bools offest by 8 bits\",\"offset\":\"0\",\"length\":\"32\",\"offsetbit\":\"8\",\"mask\":\"\"}],\"swap1\":\"\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"str\",\"resultType\":\"value\",\"resultTypeType\":\"return\",\"multipleResult\":true,\"setTopic\":true,\"x\":610,\"y\":220,\"wires\":[[\"af863e2a.965e3\"]]},{\"id\":\"af863e2a.965e3\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":790,\"y\":220,\"wires\":[]},{\"id\":\"709dd163.59831\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Working with bits and bools\",\"info\":\"\",\"x\":310,\"y\":180,\"wires\":[]},{\"id\":\"429874da.f0bfcc\",\"type\":\"function\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Array of WORDs\",\"func\":\"msg.payload = [\\n    0xffff,\\n    0x000f,\\n    0x00f0,\\n    0x0f00,\\n    0xf000,\\n    0x0000,\\n    0x0001,\\n    0x1111,\\n    ]\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":430,\"y\":220,\"wires\":[[\"a03288ed.d73cf8\"]]},{\"id\":\"51b464c8.11fc6c\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"a buffer\",\"topic\":\"\",\"payload\":\"[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]\",\"payloadType\":\"bin\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":270,\"y\":1060,\"wires\":[[\"5ff0a2f.c0b505c\",\"19d8cbd0.a50204\",\"768d5cd5.de98e4\",\"517a8685.5bc3a8\",\"24e73864.d37938\"]]},{\"id\":\"517a8685.5bc3a8\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"swap 16\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"booboo.poopoo\",\"msgPropertyType\":\"\",\"resultType\":\"buffer\",\"resultTypeType\":\"return\",\"multipleResult\":false,\"setTopic\":true,\"x\":540,\"y\":980,\"wires\":[[\"d7ed39ae.6fc9f8\"]]},{\"id\":\"d7ed39ae.6fc9f8\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"16\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":770,\"y\":980,\"wires\":[]},{\"id\":\"e9648adf.fd8888\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"32\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":770,\"y\":1040,\"wires\":[]},{\"id\":\"fbf8d38a.e7063\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"64\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":770,\"y\":1100,\"wires\":[]},{\"id\":\"5ff0a2f.c0b505c\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"swap 32\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[],\"swap1\":\"swap32\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"booboo.poopoo\",\"msgPropertyType\":\"\",\"resultType\":\"buffer\",\"resultTypeType\":\"return\",\"multipleResult\":false,\"setTopic\":true,\"x\":540,\"y\":1040,\"wires\":[[\"e9648adf.fd8888\"]]},{\"id\":\"19d8cbd0.a50204\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"swap 64\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[],\"swap1\":\"swap64\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"booboo.poopoo\",\"msgPropertyType\":\"\",\"resultType\":\"buffer\",\"resultTypeType\":\"return\",\"multipleResult\":false,\"setTopic\":true,\"x\":540,\"y\":1100,\"wires\":[[\"fbf8d38a.e7063\"]]},{\"id\":\"768d5cd5.de98e4\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"swap 64 32 16\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[],\"swap1\":\"swap64\",\"swap2\":\"swap32\",\"swap3\":\"swap16\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"booboo.poopoo\",\"msgPropertyType\":\"\",\"resultType\":\"buffer\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":560,\"y\":1160,\"wires\":[[\"63965e1a.2467\"]]},{\"id\":\"63965e1a.2467\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"64 32 16\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":780,\"y\":1160,\"wires\":[]},{\"id\":\"24e73864.d37938\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"none\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[],\"swap1\":\"\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"booboo.poopoo\",\"msgPropertyType\":\"\",\"resultType\":\"buffer\",\"resultTypeType\":\"return\",\"multipleResult\":false,\"setTopic\":true,\"x\":530,\"y\":920,\"wires\":[[\"1f005eb1.c33691\"]]},{\"id\":\"1f005eb1.c33691\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"none\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":770,\"y\":920,\"wires\":[]},{\"id\":\"f06126a.b3cc7d8\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"an array\",\"topic\":\"\",\"payload\":\"[258,772,1286,1800,2314,2828,3342,3856]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":280,\"y\":1000,\"wires\":[[\"24e73864.d37938\",\"517a8685.5bc3a8\",\"5ff0a2f.c0b505c\",\"19d8cbd0.a50204\",\"768d5cd5.de98e4\"]]},{\"id\":\"78cb82d2.22c08c\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"msg\",\"items\":[],\"swap1\":\"\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"\",\"msgPropertyType\":\"\",\"resultType\":\"value\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":false,\"x\":770,\"y\":60,\"wires\":[[\"4e362474.a8e83c\"]]},{\"id\":\"4e362474.a8e83c\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":790,\"y\":120,\"wires\":[]},{\"id\":\"ec2a43b5.c3d2b\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Pass data in as buffer\",\"topic\":\"\",\"payload\":\"[97,98,99,100,101,102,103,104,105,106,107,108,109,109,111,112,113,114,115,116,117,118,119,120,121,122]\",\"payloadType\":\"bin\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":320,\"y\":60,\"wires\":[[\"db40592a.547028\"]]},{\"id\":\"2d2fb31f.39dc1c\",\"type\":\"function\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"dynamically set data\",\"func\":\"msg.payload = [0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6D, 0x6F70, 0x7172, 0x7374, 0x7576, 0x7778, 0x797A]\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":480,\"y\":120,\"wires\":[[\"db40592a.547028\"]]},{\"id\":\"63781545.9792ac\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"just a trigger\",\"topic\":\"\",\"payload\":\"true\",\"payloadType\":\"bool\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":290,\"y\":120,\"wires\":[[\"2d2fb31f.39dc1c\"]]},{\"id\":\"db40592a.547028\",\"type\":\"function\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"dynamically set spec\",\"func\":\"msg.spec = {\\n    \\\"options\\\":\\n    {\\n        \\\"byteSwap\\\":true,\\n        \\\"resultType\\\":\\\"object\\\",\\n        \\\"singleResult\\\": true\\n    },\\n    \\\"items\\\":[\\n        {\\\"name\\\":\\\"myInt\\\",\\\"type\\\":\\\"int\\\",\\\"offset\\\":4},{\\\"name\\\":\\\"uint32s\\\",\\\"type\\\":\\\"uint32\\\",\\\"offset\\\":0,\\\"length\\\":4},{\\\"name\\\":\\\"floats\\\",\\\"type\\\":\\\"float\\\",\\\"offset\\\":0,\\\"length\\\":4},{\\\"name\\\":\\\"doubles\\\",\\\"type\\\":\\\"double\\\",\\\"offset\\\":0,\\\"length\\\":2},{\\\"name\\\":\\\"myString\\\",\\\"type\\\":\\\"string\\\",\\\"offset\\\":0,\\\"length\\\":5}\\n    ]\\n}\\n\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":580,\"y\":60,\"wires\":[[\"78cb82d2.22c08c\"]]},{\"id\":\"1b83d748.5c0a29\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"string\",\"name\":\"plc1\u002Fproduction\u002Falphabet\",\"offset\":\"0\",\"length\":\"26\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"uint8\",\"name\":\"plc1\u002Fproduction\u002Fstatus\u002Fcount\",\"offset\":\"25\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"uint8\",\"name\":\"plc1\u002Fproduction\u002Fstatus\u002Fsequence\",\"offset\":\"4\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"int16le\",\"name\":\"plc1\u002Fmachine\u002Fstatus\u002Frunner\u002Ftemperature\",\"offset\":\"26\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"int16be\",\"name\":\"plc1\u002Fmachine\u002Fstatus\u002Frunner\u002Fspeed\",\"offset\":\"26\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"plc1\u002Fmachine\u002Fstatus\u002Frunning\",\"offset\":\"0\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"plc1\u002Fmachine\u002Fstatus\u002Fwarning\",\"offset\":\"0\",\"length\":\"1\",\"offsetbit\":\"1\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"plc1\u002Fmachine\u002Fstatus\u002Ffault\",\"offset\":\"0\",\"length\":\"1\",\"offsetbit\":\"2\",\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"\",\"resultType\":\"value\",\"resultTypeType\":\"output\",\"multipleResult\":true,\"setTopic\":true,\"x\":550,\"y\":320,\"wires\":[[\"58018932.2ccce8\"]]},{\"id\":\"58018932.2ccce8\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":790,\"y\":320,\"wires\":[]},{\"id\":\"25ba06cd.4b38ca\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"string\",\"name\":\"alphabet\",\"offset\":\"0\",\"length\":\"26\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"byte\",\"name\":\"single byte pos 4\",\"offset\":\"4\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bcdbe\",\"name\":\"3bcd\",\"offset\":\"4\",\"length\":\"5\",\"offsetbit\":\"0\",\"mask\":\"0x0FFF\"},{\"type\":\"int16le\",\"name\":\"Array[6] of int16le\",\"offset\":\"26\",\"length\":\"6\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"int16be\",\"name\":\"Array[6] of int16be\",\"offset\":\"26\",\"length\":\"6\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"32 bools\",\"offset\":\"0\",\"length\":\"32\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"16bitbe\",\"name\":\"Array[4] of 16bits\",\"offset\":\"0\",\"length\":\"4\",\"offsetbit\":\"0\",\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"data\",\"msgPropertyType\":\"\",\"resultType\":\"object\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":550,\"y\":400,\"wires\":[[\"86a325f6.aa8688\"]]},{\"id\":\"86a325f6.aa8688\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"data\",\"targetType\":\"msg\",\"x\":780,\"y\":400,\"wires\":[]},{\"id\":\"84bede4f.ca9ad\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Fake PLC data 16bit Array\",\"topic\":\"\",\"payload\":\"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":330,\"y\":320,\"wires\":[[\"1b83d748.5c0a29\"]]},{\"id\":\"7b98fcf3.8e73c4\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Fake PLC data 16bit Array\",\"topic\":\"\",\"payload\":\"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":330,\"y\":400,\"wires\":[[\"25ba06cd.4b38ca\"]]},{\"id\":\"c7b2a471.623fd8\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"take an array of 16bit values, byte reverse, split out several values and transmit individual messages with topic + payload\",\"info\":\"\",\"x\":600,\"y\":280,\"wires\":[]},{\"id\":\"e35f44bf.0724e8\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"take an array of 16bit values, byte reverse, split out several values and transmit one message with named objects in msg.data\",\"info\":\"\",\"x\":620,\"y\":360,\"wires\":[]},{\"id\":\"be080136.0ddf6\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"string\",\"name\":\"alphabet\",\"offset\":\"0\",\"length\":\"26\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"floatbe\",\"name\":\"float BE from byte4\",\"offset\":\"4\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"floatle\",\"name\":\"float LE from byte4\",\"offset\":\"4\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"32 bools\",\"offset\":\"0\",\"length\":\"32\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"16bitbe\",\"name\":\"Array[4] of 16bits\",\"offset\":\"0\",\"length\":\"4\",\"offsetbit\":\"0\",\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"\",\"resultType\":\"array\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":550,\"y\":500,\"wires\":[[\"fd5c5940.190838\"]]},{\"id\":\"fd5c5940.190838\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":790,\"y\":500,\"wires\":[]},{\"id\":\"cc51cb1e.3f1428\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Fake PLC data  buffer\",\"topic\":\"\",\"payload\":\"[98,97,100,99,102,101,104,103,106,105,108,107,110,109,112,111,114,113,116,115,118,117,120,119,122,121]\",\"payloadType\":\"bin\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":320,\"y\":500,\"wires\":[[\"be080136.0ddf6\"]]},{\"id\":\"d45509ca.dcb138\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"take a buffer, byte reverse, split out several values and transmit one message as array of objects in msg.payload\",\"info\":\"\",\"x\":580,\"y\":460,\"wires\":[]},{\"id\":\"63a1e6f7.e6ae38\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"string\",\"name\":\"alphabet\",\"offset\":\"0\",\"length\":\"26\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"floatbe\",\"name\":\"float BE from byte4\",\"offset\":\"4\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"floatle\",\"name\":\"float LE from byte4\",\"offset\":\"4\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bool\",\"name\":\"32 bools\",\"offset\":\"0\",\"length\":\"32\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"16bitbe\",\"name\":\"Array[4] of 16bits\",\"offset\":\"0\",\"length\":\"4\",\"offsetbit\":\"0\",\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"result\",\"msgPropertyType\":\"\",\"resultType\":\"value\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":550,\"y\":600,\"wires\":[[\"c4f314e6.4a4d58\"]]},{\"id\":\"c4f314e6.4a4d58\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"result\",\"targetType\":\"msg\",\"x\":790,\"y\":600,\"wires\":[]},{\"id\":\"1e66e973.4a2b07\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Fake PLC data  buffer\",\"topic\":\"\",\"payload\":\"[98,97,100,99,102,101,104,103,106,105,108,107,110,109,112,111,114,113,116,115,118,117,120,119,122,121]\",\"payloadType\":\"bin\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":320,\"y\":600,\"wires\":[[\"63a1e6f7.e6ae38\"]]},{\"id\":\"66eb1379.961c2c\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"take a buffer, split out several values and transmit one message as values in  msg.result\",\"info\":\"\",\"x\":500,\"y\":560,\"wires\":[]},{\"id\":\"712e7a13.d64a04\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Dynamically set data and spec\",\"info\":\"\",\"x\":320,\"y\":20,\"wires\":[]},{\"id\":\"a7e43760.9ac7a8\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"an array\",\"topic\":\"\",\"payload\":\"[258,772,1286,1800,2314,2828,3342,3856]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":280,\"y\":800,\"wires\":[[\"9b05469c.03bbf8\"]]},{\"id\":\"9b05469c.03bbf8\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[],\"swap1\":\"\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"\",\"resultType\":\"buffer\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":550,\"y\":800,\"wires\":[[\"9e69d945.7303f8\"]]},{\"id\":\"9e69d945.7303f8\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"buffer\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":770,\"y\":800,\"wires\":[]},{\"id\":\"fb9ae3fd.f1628\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Convert [258,772,1286,1800,2314,2828,3342,3856] to a buffer only\",\"info\":\"\",\"x\":440,\"y\":760,\"wires\":[]},{\"id\":\"bb0683be.3011\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Convert an array or buffer to a buffer, do various swaps (sometimes multiple swaps), output only the buffer\",\"info\":\"\",\"x\":560,\"y\":880,\"wires\":[]},{\"id\":\"cf9b6d1e.3ebf\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"an array\",\"topic\":\"\",\"payload\":\"[258,772,1286,1800,2314,2828,3342,3856]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":300,\"y\":1300,\"wires\":[[\"d6bfcb3c.eedd08\"]]},{\"id\":\"6978e83c.6100d8\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":790,\"y\":1300,\"wires\":[]},{\"id\":\"21a5c90f.6a98b6\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Dealing with BigInt. NOTE: At the time of writing, node-red debug node cannot handle BigInt.\",\"info\":\"\",\"x\":540,\"y\":1260,\"wires\":[]},{\"id\":\"d6bfcb3c.eedd08\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"bigint64le\",\"name\":\"bigint64le\",\"offset\":\"0\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bigint64be\",\"name\":\"bigint64be\",\"offset\":\"0\",\"length\":\"1\",\"offsetbit\":\"0\",\"mask\":\"\"}],\"swap1\":\"swap16\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"bigValues\",\"msgPropertyType\":\"\",\"resultType\":\"object\",\"resultTypeType\":\"output\",\"multipleResult\":false,\"setTopic\":true,\"x\":450,\"y\":1300,\"wires\":[[\"4d237375.24f27c\"]]},{\"id\":\"4d237375.24f27c\",\"type\":\"function\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Parse BigInts\",\"func\":\"msg.payload = {\\n    bigint64le_string : msg.bigValues.bigint64le.value.toString(),\\n    bigint64le_number : Number(msg.bigValues.bigint64le.value),\\n    bigint64le_parseInt : parseInt(msg.bigValues.bigint64le.value),\\n    bigint64be_string : msg.bigValues.bigint64be.value.toString(),\\n    bigint64be_number : Number(msg.bigValues.bigint64be.value),\\n    bigint64be_parseInt : parseInt(msg.bigValues.bigint64be.value),\\n}\\nreturn msg;\",\"outputs\":1,\"noerr\":0,\"x\":610,\"y\":1300,\"wires\":[[\"6978e83c.6100d8\",\"9e4aba0c.0e5478\"]]},{\"id\":\"9e4aba0c.0e5478\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"full object (this might throw error)\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"true\",\"targetType\":\"full\",\"x\":720,\"y\":1360,\"wires\":[]},{\"id\":\"459c1701.897c58\",\"type\":\"inject\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"Fake PLC data 16bit Array\",\"topic\":\"1234 4321 9999\",\"payload\":\"[4660,17185,39321]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":330,\"y\":700,\"wires\":[[\"b9ebe3b6.8486e\"]]},{\"id\":\"b9ebe3b6.8486e\",\"type\":\"buffer-parser\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"spec\",\"specificationType\":\"ui\",\"items\":[{\"type\":\"bcdbe\",\"name\":\"bcdle\",\"offset\":\"0\",\"length\":\"3\",\"offsetbit\":\"2\",\"mask\":\"\"},{\"type\":\"bcdle\",\"name\":\"bcdbe\",\"offset\":\"0\",\"length\":\"3\",\"offsetbit\":\"0\",\"mask\":\"\"},{\"type\":\"bcdbe\",\"name\":\"3bcd\",\"offset\":\"0\",\"length\":\"3\",\"offsetbit\":\"0\",\"mask\":\"0x0FFF\"}],\"swap1\":\"\",\"swap2\":\"\",\"swap3\":\"\",\"swap1Type\":\"swap\",\"swap2Type\":\"swap\",\"swap3Type\":\"swap\",\"msgProperty\":\"payload\",\"msgPropertyType\":\"\",\"resultType\":\"value\",\"resultTypeType\":\"output\",\"multipleResult\":true,\"setTopic\":true,\"x\":550,\"y\":700,\"wires\":[[\"511aab5b.892944\"]]},{\"id\":\"511aab5b.892944\",\"type\":\"debug\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":790,\"y\":700,\"wires\":[]},{\"id\":\"576ed17f.e86d2\",\"type\":\"comment\",\"z\":\"8b5f79cc.4f9308\",\"name\":\"BCD values [4660,17185,39321] (0x1234 0x4321 0x9999) to decimal equivelant (1234 4321 9999)\",\"info\":\"\",\"x\":540,\"y\":660,\"wires\":[]}]","\u003Ch1 id=\"node-red-contrib-buffer-parser\">\u003Ca class=\"header-anchor\" href=\"#node-red-contrib-buffer-parser\">node-red-contrib-buffer-parser\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002Fdata:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAIoAAABJCAYAAADi+75+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAgPSURBVHhe7ZzfbxRVFMf5k4y7+mLif7BP+uJDH1ATNaSJGl4oTyZESYhAlBVW2G5LkyKhdGvQWh9EIzUpkNg0kEABI6YtNqSS0kAp8uMw5+69d8\u002FcvTN75+7s7pQ5J\u002FnS+XHvmTtzPnvvzDD37ACLra+vy6XOjP3E23byw6B4WB79MCgelkc\u002FDIqH5dFPJChbW1vw8OFD+OW3C1AZHoNypZpYRyonrNtNVaqjsTpWHbFuTyr206rqyVPw+x9z8OTJEz9QVlZWoPztMLz3ZR3e2H8BXv1irit65bNfobD\u002FErx28AqrD3rz0J\u002FwYXlGALO8vCwJaLVIUKpj38HbB36wBjdNMSjZ0DtfnYeTpyclAa1mBeXWrVvw+dExa2DTFoOSHR2onoHV1VVJQdisoFy+fFkMObbApi0GJTvCIejq1auSgrBZQbl48SIMHJiyBjZtMSjZ0btf\u002FwwLCwuSgrD1AJR5+GD8imV7QwxKdtRHUObh4N\u002F\u002FBx6fwsLcdct+BiVLcgbl+fPn4i8FpWAENlY\u002F3oVL1\u002F6BklhXkDRs47baHlZ7UGahWCpAcdesZV871aFYKEAhUHHXtPCDy4WBuqVsL9XJOaWv1+VfCopiQZkGBW9gp6enYWJiAmrDNagcr8KR4XE4XJuAj7851xJgqxY2ha+N20tQppCs3IFBW\u002FlAXQVl104olMqN5T17A0j2tpbpi7IDyqeVGTg8Ognl2imonBiGWq0mGEAWkAllAhTcMDU1JWhaXFwMCbednZx0g0WCQi0OElTXQVG9B4KioOm7sgHKJwEkZyfrkXFHJhQsO7CLQXpshZVw36GgZ2k7DJmgrK\u002FBkK0ckTsoZT2MNANuueADcmhBSFT5wltkeScU92HZ5rCEKu6R9ffhcfZCEf3Q7UqyZyoS\u002F6KMLB+u02if2t7s0Yx2C5+kHm07hTs4RnEgOLa53UM43GBP0i7uyAYyInoU7GpsBanKwTBkC3RIth4l4t5EyRWUZoDluugpYkDB5cihx6gn4JD+xbLhk0oFVe2XQdVBxuOrY+I+fT9Ej0mWQ+0KZK7T8xEwpjd84nBjizUVsoG2A1\u002FXj4yMWAtRHT1eswY6pLkH8Fi4JfZsE+pjlrJSzqDoCx5IX0xPUGSvoeuggnrCD4WG7ldqF1h6zJAaPVgIlBJCFtEOtU7bSs8tBR09UbPGmgrZQEZEjzI6OmotRBUG5S+YfSAwCNvqHVLGTV73KPrieYIilvHXaQjrpQlK6DiBT91WCX9oG9ZX203J9vQBFGQDzXnowScgGuDS+fuw9kz4aNra3VAZF3mBooPjCYqtR1FKDRSzbXSdLJvHM3sUqpRBSTT0uN7M4mNy+GZ2HspLT4UTbV0EpRkMua4uGF483dXLG9R2oLQEkQwLKYOi2yLKWUAJ1Ynwp9ZTBMXrZjb543H4ZZq2rvYoGMDgQqE0GIFEYOX24IKKp5G2oKDCTz26TmqgqH3Evw50DKjKh6pn9DZpgYLCdyjOj8fi38BwA9KDXY164YZPOvhYHAcJvicZUsNQV0BhdVP4LsX5hZsy9do27hX+0LUtUQaNvkwrzdyBsZn5UFkXMSj9V6JX+NRi\u002F1OwtgSXNtu\u002FcXUVg5Id9fkzg3gxKNkRg8JyUmJQ8CaGP4XMnxJ\u002FCskfV+dTiT+u5uka+ZPXdA2eAJYfdTwBjKeURounlEqLq5DE2E+8bSc\u002FDIqH5dEPg+JhefQjvnAzde\u002FevZZtPmI\u002F8dpOfrhH8bA8+mFQPCyPfhgUD8ujHwbFw\u002FLoJxIUfuEWLX7hJg0rqFf47\u002FMr\u002FJda+Ar\u002FI87hxnIV53BjOcsrhxsOObbApi0GJTviHG4sJ\u002FX8m9nS98tQv7IGPxHVZ296Zlxi9Uo9B2Vo0TKL8NF9OGgpy6BkR86guEwAc9N1GFsx5iV7g2JOv0yi5rTRbOVwy5Z6n8NNyzI3uR+gxM49ZqH6k8NNyJib\u002FEj2LP0CRfUeCAqd3M7qYw43ywT2QTUMdQyKLZuBBSI14z+UEaAHOdxC+4lf1TYBalBPDH+yDfIYQibEdJ8eKuX5DshjdDCE9jeH2\u002Fn7sCEQMecmz0PpGClH5ApKM8ByXVykGFBwOXLoMerRVBcyjUZkD6ZAUMcQ6xQ+taz2yWPKehoqXKdwBO3Wx6TtDrVVnrsJlaf6l8Mt0ODCJiwvuU9gdwaF\u002Fnp0ADxBkb2GroNSgXLKj0L3W9qgJHodCgo5plgP6pk9lvJn9lLiPGKO5aEe5HCjagw3j9fuemU38LpH0YH2BEUGqUVYzwmUCMhke5S\u002FUDI\u002FWz2jHQ04jAQ\u002FWhHn24G6msOtNH4DBmsq0OF7kuVrNzQArvICRV90T1BsPYpSJz2KCQNdN\u002FeZ0r2P9NfS06DSBaWrOdzqa0GtRw\u002Fg9Bnbjasdhji536OoiyzXFQwIhh6z5a+xHSgtF7xRT6w7gULqinVZni6b7TZBoW1T+9W6uU+fY3qgdD2HmwAFjWSE7CSpjnuPggHEC0\u002FBCCQCK7cHgehVDjf1VIRq\u002FvoVHKjAxx7iq+X4gYiPcC9l7osCvDN1NYebBkXaxr\u002F+kKDag5Ix2QK+jdW1HG4mKI1hKFwmiRiU\u002FqsrOdxaQEFb\u002Fw92W8q6iEHJjtL93+PadRg6dzOk3ePJs0EqbTtQXmL1\u002FDODJGJQsqPEoOBNDH8KmT9xDjeWkziHG6utOs7hxhPAXm51PAGMp5RGi6eUSourkMTYT7xtJz8Miofl0Q+D4mF59MM53DyURz\u002Fco3hY\u002FvwAvABP3UATcHo5dQAAAABJRU5ErkJggg==\" \u002F>\n\u003Ch2 id=\"about\">\u003Ca class=\"header-anchor\" href=\"#about\">About\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>A pair of \u003Ca href=\"http:\u002F\u002Fnodered.org\" target=\"_new\">Node-RED\u003C\u002Fa> nodes to convert values to and from buffer\u002Farray. Supports Big\u002FLittle Endian, BCD, byte swapping and much more.\u003C\u002Fp>\n\u003Ch2 id=\"a-picture-is-worth-a-thousand-words\">\u003Ca class=\"header-anchor\" href=\"#a-picture-is-worth-a-thousand-words\">A picture is worth a thousand words\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"convert-array-of-integers-into-individual-topicpayload-messages---ideal-for-sending-to-mqtt\">\u003Ca class=\"header-anchor\" href=\"#convert-array-of-integers-into-individual-topicpayload-messages---ideal-for-sending-to-mqtt\">Convert array of integers into individual topic\u002Fpayload messages - ideal for sending to MQTT\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample1.png\" alt=\"example1\" \u002F>\u003C\u002Fp>\n\u003Ch3 id=\"convert-a-buffer-into-keyvalue-items---ideal-for-sending-to-dashboard-or-database\">\u003Ca class=\"header-anchor\" href=\"#convert-a-buffer-into-keyvalue-items---ideal-for-sending-to-dashboard-or-database\">Convert a buffer into key\u002Fvalue items - ideal for sending to dashboard or database\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample3.png\" alt=\"example3\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample3b.png\" alt=\"example3b\" \u002F>\u003C\u002Fp>\n\u003Ch3 id=\"fan-out\">\u003Ca class=\"header-anchor\" href=\"#fan-out\">Fan out\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Ffanned.png\" alt=\"example3\" \u002F>\u003C\u002Fp>\n\u003Ch3 id=\"scaling-final-values\">\u003Ca class=\"header-anchor\" href=\"#scaling-final-values\">Scaling final values\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fscaling.png\" alt=\"example3\" \u002F>\u003C\u002Fp>\n\u003Ch2 id=\"buffer-maker---summary-of-functionality-new-in-v30\">\u003Ca class=\"header-anchor\" href=\"#buffer-maker---summary-of-functionality-new-in-v30\">buffer-maker - Summary of functionality \u003Cstrong>(New in V3.0)\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Set-up a specification and convert multiple values into a buffer from...\n\u003Cul>\n\u003Cli>int, int8, byte, uint, uint8,\u003C\u002Fli>\n\u003Cli>int16, int16le, int16be, uint16, uint16le, uint16be,\u003C\u002Fli>\n\u003Cli>int32, int32le, int32be, uint32, uint32le, uint32be,\u003C\u002Fli>\n\u003Cli>bigint64, bigint64be, bigint64le, biguint64, biguint64be, biguint64le,\u003C\u002Fli>\n\u003Cli>float, floatle, floatbe, double, doublele, doublebe,\u003C\u002Fli>\n\u003Cli>8bit, 16bit, 16bitle, 16bitbe, bool,\u003C\u002Fli>\n\u003Cli>bcd, bcdle, bcdbe,\u003C\u002Fli>\n\u003Cli>string, hex, ascii, utf8, utf16le, ucs2, latin1, binary, buffer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Specification is either configured by the built in UI or can be set by a msg\u002Fflow\u002Fglobal\u003C\u002Fli>\n\u003Cli>Input data for each item to include in the final buffer can come from just about anywhere, making it very flexible...\n\u003Cul>\n\u003Cli>a constant (e.g. a number, a string, a boolean, a JSON array)\u003C\u002Fli>\n\u003Cli>a \u003Ccode>msg\u003C\u002Fcode> property (e.g from \u003Ccode>msg.payload.myInteger\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>a \u003Ccode>flow\u003C\u002Fcode> property (e.g from \u003Ccode>flow.myInteger\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>a \u003Ccode>global\u003C\u002Fcode> property (e.g from \u003Ccode>global.myInteger\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>The final built buffer can be byte swapped one or more times. 16, 32 or 64 bit swaps are possible. The byte swaps are performed the data conversions like LE or BE functions (sometimes it is necessary to do multiple swaps)\u003C\u002Fli>\n\u003Cli>The final buffer can be output to any \u003Ccode>msg\u003C\u002Fcode> property (defaults to \u003Ccode>msg.payload\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Built in help\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"buffer-parser---summary-of-functionality\">\u003Ca class=\"header-anchor\" href=\"#buffer-parser---summary-of-functionality\">buffer-parser - Summary of functionality\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\n\u003Cp>Set-up a specification and convert multiple parts of an array or buffer to...\u003C\u002Fp>\n\u003Cul>\n\u003Cli>int, int8, byte, uint, uint8,\u003C\u002Fli>\n\u003Cli>int16, int16le, int16be, uint16, uint16le, uint16be,\u003C\u002Fli>\n\u003Cli>int32, int32le, int32be, uint32, uint32le, uint32be,\u003C\u002Fli>\n\u003Cli>bigint64, bigint64be, bigint64le, biguint64, biguint64be, biguint64le,\u003C\u002Fli>\n\u003Cli>float, floatle, floatbe, double, doublele, doublebe,\u003C\u002Fli>\n\u003Cli>8bit, 16bit, 16bitle, 16bitbe, bool,\u003C\u002Fli>\n\u003Cli>bcd, bcdle, bcdbe,\u003C\u002Fli>\n\u003Cli>string, hex, ascii, utf8, utf16le, ucs2, latin1, binary, buffer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Specification is either configured by the built in UI or can be set by a msg\u002Fflow\u002Fglobal property - permitting fully dynamic setup (e.g. via a dashboard)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>The specification format permits random access (e.g. no need for any skips when accessing only first and last elements)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>You can specify the same offset many times to convert the same piece of data several times\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>The data can be byte swapped one or more times.  16, 32 or 64 bit swaps are possible. The byte swaps are done prior to any data conversions like LE or BE functions (sometimes it is necessary to do multiple swaps)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>The output can be sent in any \u003Ccode>msg\u003C\u002Fcode> property.  e.g. you can send results out in \u003Ccode>msg.my.nested.property\u003C\u002Fcode>.  This has the advantage of leaving the original payload in tact.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Input data can come from any msg property (not limited to \u003Ccode>msg.payload\u003C\u002Fcode>)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Input data can be a 16bit array (common plc data format) simplifying working with PLC type data arrays\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Input data can be a hex string e.g. \u003Ccode>1FE2D7FFBE\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Output results can be multiple messages as \u003Ccode>topic\u003C\u002Fcode> and \u003Ccode>payload\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>ideal for taking PLC data and sending it directly to MQTT\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Output results can be multiple messages fanned out so that each item in the specification is sent out of its own output \u003Cstrong>(New in V3.1)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Output results can be a single msg style output\u003C\u002Fp>\n\u003Cul>\n\u003Cli>ideal for converting multiple different data elements into one object to pass on to perhaps a template node for preparing a SQL or HTML statement using {{mustache}} formatting\u003C\u002Fli>\n\u003Cli>additionally, output results can be 1 of 4 styles...\n\u003Cul>\n\u003Cli>\"value\" : the parsed values are sent in an array\u003C\u002Fli>\n\u003Cli>\"keyvalue\" : the parsed values are sent in an object as key\u002Fvalue pairs. Use a fat arrow \u003Ccode>=&gt;\u003C\u002Fcode> in the name to create object.properties e.g. \u003Ccode>motor1=&gt;power\u003C\u002Fcode> will end up in \u003Ccode>msg.payload.motor1.power\u003C\u002Fcode>.'\u003C\u002Fli>\n\u003Cli>\"object\" : the parsed values are sent as named objects with the value set \u003Ccode>.value\u003C\u002Fcode> and other contextual properties included (like the item specification).  Use a fat arrow \u003Ccode>=&gt;\u003C\u002Fcode> in the name to create object.properties e.g. \u003Ccode>motor1=&gt;power\u003C\u002Fcode> will end up in \u003Ccode>msg.payload.motor1.power\u003C\u002Fcode>.'\u003C\u002Fli>\n\u003Cli>\"array\" : the parsed values are sent as objects in an array, with each object containing a \u003Ccode>.value\u003C\u002Fcode> property and other contextual properties included (like the item specification)\u003C\u002Fli>\n\u003Cli>\"buffer\" : this mode simply returns a buffer (no item processing)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Final values can be masked (e.g. a MASK of \u003Ccode>0x7FFF\u003C\u002Fcode> could be used to remove the MSB or \u003Ccode>0b1000000000000001\u003C\u002Fcode> to keep only MSB and LSB)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Binary and Octal masks only available in \u003Cstrong>V3.1\u003C\u002Fstrong> onwards\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Final values can be have a Scale value or a simple Scale Equation  \u003Cstrong>(New in V3.1)\u003C\u002Fstrong> applied...\u003C\u002Fp>\n\u003Cul>\n\u003Cli>e.g. Entering a Scale value of \u003Ccode>0.01\u003C\u002Fcode> would turn \u003Ccode>9710\u003C\u002Fcode> into \u003Ccode>97.1\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>e.g. Entering a Scale value of \u003Ccode>10\u003C\u002Fcode> would turn \u003Ccode>4.2\u003C\u002Fcode> into \u003Ccode>42\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>e.g. Entering a Scale Equation of \u003Ccode>&gt;&gt; 4\u003C\u002Fcode> would bit shift the value \u003Ccode>0x0070\u003C\u002Fcode> to \u003Ccode>0x0007\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>e.g. Entering a Scale Equation of \u003Ccode>+ 42\u003C\u002Fcode> would add an offset of 42 to the final value \u003Cstrong>(New in V3.1)\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Supported Scaling Equations are...\n\u003Cul>\n\u003Cli>\u003Ccode>&lt;&lt;\u003C\u002Fcode> e.g. \u003Ccode>&lt;&lt;2\u003C\u002Fcode> would left shift the parsed value 2 places\u003C\u002Fli>\n\u003Cli>\u003Ccode>&gt;&gt;\u003C\u002Fcode> e.g. \u003Ccode>&gt;&gt;2\u003C\u002Fcode> would right shift the parsed value 2 places\u003C\u002Fli>\n\u003Cli>\u003Ccode>&gt;&gt;&gt;\u003C\u002Fcode> e.g. \u003Ccode>&gt;&gt;&gt;2\u003C\u002Fcode> would zero-fill right shift the parsed value 2 places (returns a 32bit unsigned value)\u003C\u002Fli>\n\u003Cli>\u003Ccode>+\u003C\u002Fcode> e.g. \u003Ccode>+10\u003C\u002Fcode> would add 10 to the parsed value\u003C\u002Fli>\n\u003Cli>\u003Ccode>-\u003C\u002Fcode> e.g. \u003Ccode>-10\u003C\u002Fcode> would deduct 10 from the parsed value\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002F\u003C\u002Fcode> e.g. \u003Ccode>\u002F10\u003C\u002Fcode> would divide the parsed value by 10\u003C\u002Fli>\n\u003Cli>\u003Ccode>*\u003C\u002Fcode> e.g. \u003Ccode>*10\u003C\u002Fcode> would multiply the parsed value by 10\u003C\u002Fli>\n\u003Cli>\u003Ccode>**\u003C\u002Fcode> e.g. \u003Ccode>**2\u003C\u002Fcode> would raise the parsed value to the power of 2\u003C\u002Fli>\n\u003Cli>\u003Ccode>^\u003C\u002Fcode> e.g. \u003Ccode>^0xf0\u003C\u002Fcode> would XOR the parsed value with 0xf0\u003C\u002Fli>\n\u003Cli>\u003Ccode>==\u003C\u002Fcode> e.g. \u003Ccode>==10\u003C\u002Fcode> would result in \u003Ccode>true\u003C\u002Fcode> if the parsed value was equal to 10\u003C\u002Fli>\n\u003Cli>\u003Ccode>!=\u003C\u002Fcode> e.g. \u003Ccode>!=10\u003C\u002Fcode> would result in \u003Ccode>false\u003C\u002Fcode> if the parsed value was equal to 10\u003C\u002Fli>\n\u003Cli>\u003Ccode>!!\u003C\u002Fcode> e.g. \u003Ccode>!!\u003C\u002Fcode> would result in \u003Ccode>true\u003C\u002Fcode> if the parsed value was \u003Ccode>1\u003C\u002Fcode> (same as \u003Ccode>!!1 == true\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>&gt;\u003C\u002Fcode> e.g. \u003Ccode>&gt;10\u003C\u002Fcode> would result in \u003Ccode>true\u003C\u002Fcode> if the parsed value was greater than 10\u003C\u002Fli>\n\u003Cli>\u003Ccode>&lt;\u003C\u002Fcode> e.g. \u003Ccode>&lt;10\u003C\u002Fcode> would result in \u003Ccode>true\u003C\u002Fcode> if the parsed value was less than 10\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>NOTE: the scale\u002Fequation is applied AFTER the mask\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Final values can be have a scale applied (e.g. a scale of \u003Ccode>0.01\u003C\u002Fcode> would turn \u003Ccode>9710\u003C\u002Fcode> into \u003Ccode>97.1\u003C\u002Fcode> or a scale of 10 would turn \u003Ccode>50\u003C\u002Fcode> into \u003Ccode>500\u003C\u002Fcode>)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NOTE: the scale is applied AFTER the mask\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Built in help\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fhelp.png\" alt=\"help\" \u002F>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"examples\">\u003Ca class=\"header-anchor\" href=\"#examples\">Examples\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"example-1---array-of-data-to-mqtt-multiple-topics-payloads\">\u003Ca class=\"header-anchor\" href=\"#example-1---array-of-data-to-mqtt-multiple-topics-payloads\">Example 1 - array of data to MQTT (multiple topics \u002F payloads)\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Screen shot - the flow\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample1a.png\" alt=\"example1a\" \u002F>\u003C\u002Fp>\n\u003Cp>Screen shot - the output\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample1b.png\" alt=\"example1b\" \u002F>\u003C\u002Fp>\n\u003Cp>Flow...\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[{\"id\":\"1194a28a.49d0ad\",\"type\":\"buffer-parser\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"{\\\"options\\\":{\\\"byteSwap\\\":[\\\"swap16\\\"],\\\"resultType\\\":\\\"value\\\",\\\"singleResult\\\":false,\\\"msgProperty\\\":\\\"payload\\\"},\\\"items\\\":[{\\\"name\\\":\\\"plc1\u002Fproduction\u002Falphabet\\\",\\\"type\\\":\\\"string\\\",\\\"offset\\\":0,\\\"length\\\":26},{\\\"name\\\":\\\"plc1\u002Fproduction\u002Fstatus\u002Fcount\\\",\\\"type\\\":\\\"int\\\",\\\"offset\\\":25},{\\\"name\\\":\\\"plc1\u002Fproduction\u002Fstatus\u002Fsequence\\\",\\\"type\\\":\\\"bcd\\\",\\\"offset\\\":4},{\\\"name\\\":\\\"plc1\u002Fmachine\u002Fstatus\u002Frunner\u002Ftemperature\\\",\\\"type\\\":\\\"int16le\\\",\\\"offset\\\":26},{\\\"name\\\":\\\"plc1\u002Fmachine\u002Fstatus\u002Frunner\u002Fspeed\\\",\\\"type\\\":\\\"int16be\\\",\\\"offset\\\":26},{\\\"name\\\":\\\"plc1\u002Fmachine\u002Fstatus\u002Frunning\\\",\\\"type\\\":\\\"bool\\\",\\\"offset\\\":0,\\\"offsetbit\\\":0},{\\\"name\\\":\\\"plc1\u002Fmachine\u002Fstatus\u002Fwarning\\\",\\\"type\\\":\\\"bool\\\",\\\"offset\\\":0,\\\"offsetbit\\\":1},{\\\"name\\\":\\\"plc1\u002Fmachine\u002Fstatus\u002Ffault\\\",\\\"type\\\":\\\"bool\\\",\\\"offset\\\":0,\\\"offsetbit\\\":2}]}\",\"specificationType\":\"json\",\"x\":1110,\"y\":480,\"wires\":[[\"858b1ecf.77b58\"]]},{\"id\":\"858b1ecf.77b58\",\"type\":\"debug\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"payload\",\"targetType\":\"msg\",\"x\":1350,\"y\":480,\"wires\":[]},{\"id\":\"c22cd2e8.52649\",\"type\":\"inject\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"Fake PLC data 16bit Array\",\"topic\":\"\",\"payload\":\"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":890,\"y\":480,\"wires\":[[\"1194a28a.49d0ad\"]]},{\"id\":\"970db39d.106a6\",\"type\":\"comment\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"take a array of 16bit values, byte reverse, split out several values and transmit individual messages with topic + payload\",\"info\":\"\",\"x\":1160,\"y\":440,\"wires\":[]}]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"example-2---array-of-data-to-an-named-objects\">\u003Ca class=\"header-anchor\" href=\"#example-2---array-of-data-to-an-named-objects\">Example 2 - array of data to an named objects\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Screen shot - the flow\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample2a.png\" alt=\"example2a\" \u002F>\u003C\u002Fp>\n\u003Cp>Screen shot - the output\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser\u002Fmaster\u002F\u002Fimages\u002Fexample2b.png\" alt=\"example2b\" \u002F>\u003C\u002Fp>\n\u003Cp>Flow...\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[{\"id\":\"1523dd03.6332f3\",\"type\":\"buffer-parser\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"\",\"data\":\"payload\",\"dataType\":\"msg\",\"specification\":\"{\\\"options\\\":{\\\"byteSwap\\\":[\\\"swap16\\\"],\\\"resultType\\\":\\\"object\\\",\\\"singleResult\\\":true,\\\"msgProperty\\\":\\\"data\\\"},\\\"items\\\":[{\\\"name\\\":\\\"alphabet\\\",\\\"type\\\":\\\"string\\\",\\\"offset\\\":0,\\\"length\\\":26},{\\\"name\\\":\\\"single byte pos 4\\\",\\\"type\\\":\\\"int\\\",\\\"offset\\\":4},{\\\"name\\\":\\\"bcd equiv\\\",\\\"type\\\":\\\"bcd\\\",\\\"offset\\\":4,\\\"length\\\":5},{\\\"name\\\":\\\"Array[6] of int16le\\\",\\\"type\\\":\\\"int16le\\\",\\\"offset\\\":26,\\\"length\\\":6},{\\\"name\\\":\\\"Array[6] of int16be\\\",\\\"type\\\":\\\"int16be\\\",\\\"offset\\\":26,\\\"length\\\":6},{\\\"name\\\":\\\"32 bools\\\",\\\"type\\\":\\\"bool\\\",\\\"offset\\\":0,\\\"length\\\":32},{\\\"name\\\":\\\"Array[4] of 16bits\\\",\\\"type\\\":\\\"16bit\\\",\\\"offset\\\":0,\\\"length\\\":4}]}\",\"specificationType\":\"json\",\"x\":1110,\"y\":560,\"wires\":[[\"a3051c67.b82ad\"]]},{\"id\":\"a3051c67.b82ad\",\"type\":\"debug\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"data\",\"targetType\":\"msg\",\"x\":1340,\"y\":560,\"wires\":[]},{\"id\":\"9b72f1f5.1aacc\",\"type\":\"inject\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"Fake PLC data 16bit Array\",\"topic\":\"\",\"payload\":\"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]\",\"payloadType\":\"json\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"x\":890,\"y\":560,\"wires\":[[\"1523dd03.6332f3\"]]},{\"id\":\"a9a2dd4c.118f9\",\"type\":\"comment\",\"z\":\"c70ba4a4.e7fb58\",\"name\":\"take a array of 16bit values, byte reverse, split out several values and transmit one message with named objects in msg.data\",\"info\":\"\",\"x\":1180,\"y\":520,\"wires\":[]}]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"install\">\u003Ca class=\"header-anchor\" href=\"#install\">Install\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"pallet-manager\">\u003Ca class=\"header-anchor\" href=\"#pallet-manager\">Pallet Manager...\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The simplest method is to install via the pallet manager in node red. Simply search for \u003Cstrong>node-red-contrib-buffer-parser\u003C\u002Fstrong> then click install\u003C\u002Fp>\n\u003Ch3 id=\"terminal\">\u003Ca class=\"header-anchor\" href=\"#terminal\">Terminal...\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Run the following command in the root directory of your Node-RED install  (usually \u003Ccode>~\u002F.node-red\u003C\u002Fcode> or \u003Ccode>%userprofile%\\.node-red\u003C\u002Fcode>)\u003C\u002Fp>\n\u003Cpre>\u003Ccode>npm install node-red-contrib-buffer-parser\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Or, install direct from github\u003C\u002Fp>\n\u003Cpre>\u003Ccode>npm install steve-mcl\u002Fnode-red-contrib-buffer-parser\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Or clone to a local folder and install using NPM\u003C\u002Fp>\n\u003Cpre>\u003Ccode>git clone https:\u002F\u002Fgithub.com\u002FSteve-Mcl\u002Fnode-red-contrib-buffer-parser.git\nnpm install c:\u002Fsource\u002Fnode-red-contrib-buffer-parser\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"dependencies\">\u003Ca class=\"header-anchor\" href=\"#dependencies\">Dependencies\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>none :smile:\u003C\u002Fp>\n",1784738654062]