# TCP/IP HEX Negative with node-red-contrib-buffer-parser

**URL:** https://discourse.nodered.org/t/tcp-ip-hex-negative-with-node-red-contrib-buffer-parser/73768
**Category:** General
**Tags:** function-node
**Created:** [16 January 2023 17:06 UTC](https://discourse.nodered.org/t/tcp-ip-hex-negative-with-node-red-contrib-buffer-parser/73768 "2023-01-16T17:06:33Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Guudiin](https://avatars.discourse-cdn.com/v4/letter/g/3e96dc/32.png) [@Guudiin](https://discourse.nodered.org/u/Guudiin)
#### Post date: [16 January 2023 17:06 UTC](https://discourse.nodered.org/t/tcp-ip-hex-negative-with-node-red-contrib-buffer-parser/73768/1 "2023-01-16T17:06:33Z")

</div>

The image makes it easier to show my problem.  
When motors reach negative values, I am not able to read correctly.  
I need it to be shown with negative values, like this -10.2.  
I'm using node-red-contrib-buffer-parser.  
Is there any way to get these values ​​in negative?  
obs: Positive values ​​are with correct readings.

 ![Node](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/2/c25d4eeaf1531984428d1fe05acde3d26b308db2.png)

```auto
[{"id":"98c4d4346cbba315","type":"tab","label":"Flow 2","disabled":false,"info":"","env":[]},{"id":"b924138725949b87","type":"tcp in","z":"98c4d4346cbba315","name":"Dados Recebidos pela SKC","server":"client","host":"192.168.108.42","port":"5300","datamode":"stream","datatype":"buffer","newline":"","topic":"Status","trim":false,"base64":false,"tls":"","x":240,"y":200,"wires":[["4e6932a9669ce7a5"]]},{"id":"a4ac8421b0565106","type":"ui_text","z":"98c4d4346cbba315","group":"f2eb440f9653bb8c","order":1,"width":0,"height":0,"name":"","label":"Atuador 1","format":"{{msg.n0}} º","layout":"row-spread","className":"","x":860,"y":140,"wires":[]},{"id":"4e6932a9669ce7a5","type":"buffer-parser","z":"98c4d4346cbba315","name":"Angulos","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"uint16be","name":"Atuador1","offset":4,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador2","offset":6,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador3","offset":8,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador4","offset":10,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador5","offset":12,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador6","offset":14,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador7","offset":16,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador8","offset":18,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador9","offset":20,"length":1,"offsetbit":0,"scale":"1","mask":""},{"type":"uint16be","name":"Atuador10","offset":22,"length":1,"offsetbit":0,"scale":"1","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"value","resultTypeType":"return","multipleResult":false,"fanOutMultipleResult":true,"setTopic":true,"outputs":1,"x":480,"y":200,"wires":[["bf3e8044c3ed9270"]]},{"id":"bf3e8044c3ed9270","type":"function","z":"98c4d4346cbba315","name":"function 14","func":"let lista = [];\nlet resposta = [];\n\nfor (var i = 0; i < 11; i++) {\n lista[i] = msg.payload[i];\n resposta[i] = lista[i] / 100;\n}\n\nmsg.n0 = resposta[0];\nmsg.n1 = resposta[1];\nmsg.n2 = resposta[2];\nmsg.n3 = resposta[3];\nmsg.n4 = resposta[4];\nmsg.n5 = resposta[5];\nmsg.n6 = resposta[6];\nmsg.n7 = resposta[7];\nmsg.n8 = resposta[8];\nmsg.n9 = resposta[9];\nreturn [msg, msg, msg, msg, msg, msg, msg, msg, msg, msg]\n","outputs":10,"noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":200,"wires":[["a4ac8421b0565106"],["d551d6e2e74f0c50"],[],[],[],[],[],[],[],[]]},{"id":"d551d6e2e74f0c50","type":"ui_text","z":"98c4d4346cbba315","group":"f2eb440f9653bb8c","order":2,"width":0,"height":0,"name":"","label":"Atuador 2","format":"{{msg.n1}} º","layout":"row-spread","className":"","x":860,"y":180,"wires":[]},{"id":"f2eb440f9653bb8c","type":"ui_group","name":"Atuadores","tab":"ceba900fb09301d5","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"ceba900fb09301d5","type":"ui_tab","name":"Atuadores","icon":"dashboard","disabled":false,"hidden":false}]

```

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [16 January 2023 18:51 UTC](https://discourse.nodered.org/t/tcp-ip-hex-negative-with-node-red-contrib-buffer-parser/73768/2 "2023-01-16T18:51:46Z")

</div>

> [@Guudiin](#):
>
> Is there any way to get these values ​​in negative?

Yes, use `int16` instead of `uint16`.

INT16 is "16 bit Integer" (e.g. -32768 ~ 32767)  
UINT16 is "Unsigned 16 bit Integer" (e.g. 0 ~ 65535)

Buffer Parser Setup...

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/2/12d8dd3f4a0ac52c3cdd34d4ed007307e20ac1b5.png)

Other stuff:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/a/3a22b773c04651163d1754462b2649202360cd5a.png)

New flow:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/3/c312b6c0f1637cac3975be0ff3b64d416a15b7c0.png)

Result:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/9/c9ae630615455395d89e8cbe006496f9fc1cf75e.png)

Demo Flow...

```auto
[{"id":"a4ac8421b0565106","type":"ui_text","z":"98c4d4346cbba315","group":"f2eb440f9653bb8c","order":1,"width":0,"height":0,"name":"","label":"Atuador 1","format":"{{msg.payload}} º","layout":"row-spread","className":"","x":760,"y":80,"wires":[]},{"id":"4e6932a9669ce7a5","type":"buffer-parser","z":"98c4d4346cbba315","name":"Angulos","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"int16be","name":"Atuador1","offset":4,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador2","offset":6,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador3","offset":8,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16le","name":"Atuador4","offset":10,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador5","offset":12,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador6","offset":14,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador7","offset":16,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador8","offset":18,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador9","offset":20,"length":1,"offsetbit":0,"scale":"/ 100","mask":""},{"type":"int16be","name":"Atuador10","offset":22,"length":1,"offsetbit":0,"scale":"/ 100","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"value","resultTypeType":"return","multipleResult":true,"fanOutMultipleResult":true,"setTopic":true,"outputs":10,"x":480,"y":200,"wires":[["a4ac8421b0565106","86fe5911aebbc403"],["d551d6e2e74f0c50","d72ff97ebde890d5"],[],[],[],[],[],[],[],[]]},{"id":"d551d6e2e74f0c50","type":"ui_text","z":"98c4d4346cbba315","group":"f2eb440f9653bb8c","order":2,"width":0,"height":0,"name":"","label":"Atuador 2","format":"{{msg.payload}} º","layout":"row-spread","className":"","x":760,"y":180,"wires":[]},{"id":"c92b4beae26e261e","type":"inject","z":"98c4d4346cbba315","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":240,"y":140,"wires":[["8a52afcdc1fdd752"]]},{"id":"8a52afcdc1fdd752","type":"buffer-maker","z":"98c4d4346cbba315","name":"Fake TCP Data","specification":"spec","specificationType":"ui","items":[{"name":"item1","type":"int16be","length":2,"dataType":"num","data":"0"},{"name":"item2","type":"int16be","length":1,"dataType":"num","data":"-1002"},{"name":"item3","type":"int16be","length":1,"dataType":"num","data":"-805"},{"name":"item4","type":"int16be","length":1,"dataType":"num","data":"505"},{"name":"item5","type":"int16be","length":1,"dataType":"num","data":"606"},{"name":"item6","type":"int16be","length":1,"dataType":"num","data":"707"},{"name":"item7","type":"int16be","length":10,"dataType":"num","data":"8.5"}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","x":300,"y":200,"wires":[["4e6932a9669ce7a5"]]},{"id":"86fe5911aebbc403","type":"debug","z":"98c4d4346cbba315","name":"debug 156","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":770,"y":120,"wires":[]},{"id":"d72ff97ebde890d5","type":"debug","z":"98c4d4346cbba315","name":"debug 157","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":770,"y":220,"wires":[]},{"id":"f2eb440f9653bb8c","type":"ui_group","name":"Atuadores","tab":"ceba900fb09301d5","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"ceba900fb09301d5","type":"ui_tab","name":"Atuadores","icon":"dashboard","disabled":false,"hidden":false}]

```

---

<div class="post-metadata">

### Author: ![Guudiin](https://avatars.discourse-cdn.com/v4/letter/g/3e96dc/32.png) [@Guudiin](https://discourse.nodered.org/u/Guudiin)
#### Post date: [17 January 2023 11:19 UTC](https://discourse.nodered.org/t/tcp-ip-hex-negative-with-node-red-contrib-buffer-parser/73768/3 "2023-01-17T11:19:33Z")

</div>

Thank you very much !!  
I followed your tip and it started to work correctly. Again thank you very much !!!

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)
#### Post date: [31 January 2023 11:19 UTC](https://discourse.nodered.org/t/tcp-ip-hex-negative-with-node-red-contrib-buffer-parser/73768/4 "2023-01-31T11:19:59Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
