taida 发表于 2023-7-30 22:30:12

串口屏收nodered发送的数据,求助?

本帖最后由 taida 于 2023-7-30 22:33 编辑

找了一张串口屏,看论坛大佬的帖子,采用 串口屏+8266,进行操控和反馈,(用的tcpserver)nodered进行串口输入,输出,现在遇到一个问题,向这张屏发送串口命令,需要在hex文件尾上加三个FF,屏才能识别,nodered中payload 需要字符和三个FF加起来发给串口,屏幕才能生效,各位大佬,有办法解决吗?

taida 发表于 2023-7-30 22:41:41

想把文本转hex,然后相加,找了一堆资料,不知道怎么转,如果转了,payload能发出去也不清楚,确实没辙啦,各位帮帮忙

Waer 发表于 2023-7-30 23:02:31

中间加个函数
msg.payload = msg.payload +"FFFFFF"
return msg;

Waer 发表于 2023-7-30 23:03:42

[
    {
      "id": "bc7f85cc82713bed",
      "type": "tab",
      "label": "流程 2",
      "disabled": false,
      "info": "",
      "env": []
    },
    {
      "id": "43b82491eb19fc5a",
      "type": "inject",
      "z": "bc7f85cc82713bed",
      "name": "",
      "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
      ],
      "repeat": "",
      "crontab": "",
      "once": false,
      "onceDelay": 0.1,
      "topic": "",
      "payload": "1234",
      "payloadType": "num",
      "x": 470,
      "y": 360,
      "wires": [
            [
                "5dedf802bfc1d293"
            ]
      ]
    },
    {
      "id": "8771cd2730dd7fbb",
      "type": "debug",
      "z": "bc7f85cc82713bed",
      "name": "debug 5",
      "active": true,
      "tosidebar": true,
      "console": false,
      "tostatus": false,
      "complete": "true",
      "targetType": "full",
      "statusVal": "",
      "statusType": "auto",
      "x": 840,
      "y": 360,
      "wires": []
    },
    {
      "id": "5dedf802bfc1d293",
      "type": "function",
      "z": "bc7f85cc82713bed",
      "name": "",
      "func": "msg.payload = msg.payload +\"FFFFFF\" \nreturn msg;",
      "outputs": 1,
      "noerr": 0,
      "initialize": "",
      "finalize": "",
      "libs": [],
      "x": 650,
      "y": 360,
      "wires": [
            [
                "8771cd2730dd7fbb"
            ]
      ]
    }
]

taida 发表于 2023-7-30 23:09:23

谢谢waer大佬,我试试!谢谢

taida 发表于 2023-7-30 23:21:11

字符串相加,FFFFFF变成一个值了,不是那种停止符,不行呢Wear,也许我操作不对?

Waer 发表于 2023-7-31 00:10:15

你这个应该是要把参数转换成16进制的HEX我没使用过 大概的代码应该是
var buffer = Buffer.from(msg.payload, 'hex')

把S:b0.BCO=10000 转换成HEX字符串后 再增加FFFFFF 然后发送出去

cjnt007 发表于 2023-7-31 09:35:21

假设文本已经保存在msg.payload里面,要在末尾添加3个0xFF,下面的代码应该可以
msg.payload = msg.payload + (String.fromCharCode(0xff)).repeat(3);

taida 发表于 2023-7-31 10:17:31

var buffer = Buffer.from(msg.payload, 'hex'),这行代码只转第payload中的第一个字符,还有其他办法吗,我把FFFFFF转成hex了,也拼接了,

taida 发表于 2023-7-31 10:59:10

终于搞定了,谢谢Waer和cjnt007,用Buffer 做的,先将字符转成Buffer,然后将文本(FFFFFF),也转成Buffer,连接可以实现,谢谢各位!
页: [1] 2
查看完整版本: 串口屏收nodered发送的数据,求助?