『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 2533|回复: 16

[教程系列] 串口屏收nodered发送的数据,求助?

[复制链接]

20

主题

122

帖子

790

积分

高级会员

Rank: 4

积分
790
金钱
668
HASS币
0
发表于 2023-7-30 22:30:12 | 显示全部楼层 |阅读模式
本帖最后由 taida 于 2023-7-30 22:33 编辑

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

流程

流程

直接发的文本

直接发的文本

需要这种才可以

需要这种才可以
回复

使用道具 举报

20

主题

122

帖子

790

积分

高级会员

Rank: 4

积分
790
金钱
668
HASS币
0
 楼主| 发表于 2023-7-30 22:41:41 | 显示全部楼层
想把文本转hex,然后相加,找了一堆资料,不知道怎么转,如果转了,payload能发出去也不清楚,确实没辙啦,各位帮帮忙
回复

使用道具 举报

1

主题

85

帖子

586

积分

高级会员

陈二狗

Rank: 4

积分
586
金钱
501
HASS币
0
发表于 2023-7-30 23:02:31 | 显示全部楼层
中间加个函数
msg.payload = msg.payload +"FFFFFF" 
return msg;
二狗如何解决玄学bug:
————————————————
1:重烧一次程序      2:插紧电线      3:吹一下灰尘
4:玩一会手机         5:放弃
回复

使用道具 举报

1

主题

85

帖子

586

积分

高级会员

陈二狗

Rank: 4

积分
586
金钱
501
HASS币
0
发表于 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"
            ]
        ]
    }
]
二狗如何解决玄学bug:
————————————————
1:重烧一次程序      2:插紧电线      3:吹一下灰尘
4:玩一会手机         5:放弃
回复

使用道具 举报

20

主题

122

帖子

790

积分

高级会员

Rank: 4

积分
790
金钱
668
HASS币
0
 楼主| 发表于 2023-7-30 23:09:23 | 显示全部楼层
谢谢waer大佬,我试试!谢谢
回复

使用道具 举报

20

主题

122

帖子

790

积分

高级会员

Rank: 4

积分
790
金钱
668
HASS币
0
 楼主| 发表于 2023-7-30 23:21:11 | 显示全部楼层
字符串相加,FFFFFF变成一个值了,不是那种停止符,不行呢Wear,也许我操作不对?

函数

函数

结果

结果
回复

使用道具 举报

1

主题

85

帖子

586

积分

高级会员

陈二狗

Rank: 4

积分
586
金钱
501
HASS币
0
发表于 2023-7-31 00:10:15 | 显示全部楼层
你这个应该是要把参数转换成16进制的HEX  我没使用过 大概的代码应该是
var buffer = Buffer.from(msg.payload, 'hex')

把S:b0.BCO=10000 转换成HEX字符串后 再增加FFFFFF 然后发送出去
二狗如何解决玄学bug:
————————————————
1:重烧一次程序      2:插紧电线      3:吹一下灰尘
4:玩一会手机         5:放弃
回复

使用道具 举报

20

主题

483

帖子

3152

积分

论坛元老

Rank: 8Rank: 8

积分
3152
金钱
2669
HASS币
8
发表于 2023-7-31 09:35:21 | 显示全部楼层
假设文本已经保存在msg.payload里面,要在末尾添加3个0xFF,下面的代码应该可以
msg.payload = msg.payload + (String.fromCharCode(0xff)).repeat(3);
回复

使用道具 举报

20

主题

122

帖子

790

积分

高级会员

Rank: 4

积分
790
金钱
668
HASS币
0
 楼主| 发表于 2023-7-31 10:17:31 | 显示全部楼层
var buffer = Buffer.from(msg.payload, 'hex'),这行代码只转第payload中的第一个字符,还有其他办法吗,我把FFFFFF转成hex了,也拼接了,

函数

函数

串口收到数据

串口收到数据

debug调试数据

debug调试数据
回复

使用道具 举报

20

主题

122

帖子

790

积分

高级会员

Rank: 4

积分
790
金钱
668
HASS币
0
 楼主| 发表于 2023-7-31 10:59:10 | 显示全部楼层
微信截图_20230731105633.png 终于搞定了,谢谢Waer和cjnt007,用Buffer 做的,先将字符转成Buffer,然后将文本(FFFFFF),也转成Buffer,连接可以实现,谢谢各位!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 12:20 , Processed in 0.341532 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表