请选择 进入手机版 | 继续访问电脑版
热门问答
更多
12下一页
返回列表 发新帖

[BUG] x添加问题

[复制链接]
TuT..... 发表于 2022-8-5 16:21:13
var value = '\x55\x00\x09\x02' + '\\x' + year + '\\x' + month + '\\x' + day + '\\x' + time + '\\x' + minute + '\\x' + second
                        // console.log(value);
                        //发送信息
                        var socketManager = api.require('socketManager');
                        socketManager.write({
                            sid: sid,
                            data: value
                        }, function (ret, err) {
                            if (ret.status) {
                                alert(JSON.stringify(ret));
                            } else {
                                alert(JSON.stringify(err));
                            }
                        });
上面这段代码发出的是:55 00 09 02 5C 78 31 36 5C 78 30 38 5C 78 30 35 5C 78 30 63 5C 78 30 34 5C 78 30 34

socketManager.write({
                            sid: sid,
                            data: ‘\x55\x00\x09\x02\x16\x08\x05\x0c\x04\x04’
                        }, function (ret, err) {
                            if (ret.status) {
                                alert(JSON.stringify(ret));
                            } else {
                                alert(JSON.stringify(err));
                            }
                        });
下面这段代码发出的是:55 00 09 02 16 08 05 0C 04 04

下面代码发出的是正确的,但是数据只能写死
上面代码只能添加\\x如果只写\x的话会报错,请问有什么办法只添加\x吗
微信图片_20220808110422.jpg


11条回复

技术咨询-F 管理员 28882Y币
没看明白

上面这段代码发出的是:55 00 09 02 5C 78 31 36 5C 78 30 38 5C 78 30 35 5C 78 30 63 5C 78 30 34 5C 78 30 34

这格式是对的,那错在哪里了
TuT..... 马路杀手 230Y币
下面这段代码发出的是:55 00 09 02 16 08 05 0C 04 04
我要发的是这一段数据
上面那种加\x的方法好像会再一次转换进制然后发出的值就不一样了
但是log打印出来的都是\x55\x00\x09\x02\x16\x08\x05\x0c\x04\x04
技术咨询-F · 2022-8-5 17:27没看明白

上面这段代码发出的是:55 00 09 02 5C 78 31 36 5C 78 30 38 5C 78 30 35 5C 78 30 63 5C 78 30 34 5C 78 30 34
技术咨询-F 管理员 28882Y币
不加\x
直接发 数据呢

这个参数,true false 都试试
base64:
  • 类型:布尔
  • 默认值:false
  • 描述:标识 data 是否是经过 JS 层 base64 处理后的数据,如果是,模块中会将其 decode 后再发送


TuT..... · 2022-8-5 17:31下面这段代码发出的是:55 00 09 02 16 08 05 0C 04 04
我要发的是这一段数据
上面那种加\x的方法好像会再一次转换进制然后发出的值就不一样了


TuT..... 马路杀手 230Y币
这个编码也是不行,我说清楚一点吧

就是我从手机发给设备  55 00 09 02 16 08 05 0C 04 04  这一段已经转好16进制的数据
然后发到设备时设备是16进制显示的,所以会再转换一次,然后数据就错了

用\x的话可以解决这个再次转换,但是内容要 ‘\x55\x00\x09\x02\x16\x08\x05\x0c\x04\x04’ 这样定义。

'\x55\x00\x09\x02' + '\\x' + year + '\\x' + month + '\\x' + day + '\\x' + time + '\\x' + minute + '\\x' + second  我用这个的话,前面这个 '\x55\x00\x09\x02' 不会转换, 后面\\x的就会转换数据

我想问有什么办法可以加\x然后让他不转换,或者还是有别的方法解决
技术咨询-F · 2022-8-5 18:30不加\x
直接发 数据呢

技术咨询-F 管理员 28882Y币
'\' + 'x' + year +
TuT..... · 2022-8-8 09:24这个编码也是不行,我说清楚一点吧

就是我从手机发给设备  55 00 09 02 16 08 05 0C 04 04  这一段已经转好16进制的数据
TuT..... 马路杀手 230Y币
单加一个\会变红报错,\\不会...但是\\还是一样
模块技术支持-L 官方版主 1262Y币
socketManager 目前只支持传输字符串,单斜杆可能会被转义,如果想发送二进制或者一些特殊字符建议base64 一下,接受的时候在base64解码一下
TuT..... · 2022-8-8 09:59单加一个\会变红报错,\\不会...但是\\还是一样
TuT..... 马路杀手 230Y币
我发了个图片你可以看一下吗,接收的是要16进制的
模块技术支持-L · 2022-8-8 11:01socketManager 目前只支持传输字符串,单斜杆可能会被转义,如果想发送二进制或者一些特殊字符建议base64 一下,接受的时候在base64解码一下
TuT..... 马路杀手 230Y币
我发了个图片你可以看一下吗,好像更清楚一点
12下一页
您需要登录后才可以回帖 登录

本版积分规则