帖子
帖子
用户
博客
课程
显示全部楼层
123
帖子
2
勋章
3282
Y币

[BUG] socketManager 发送信息错误

[复制链接]
发表于 2022-8-4 17:40:53
使用write 发送信息给设备发送后status 返回的是 1 ,设备没有执行这个消息
文档上说的成功是返回true,返回的1 是什么意思?

380
帖子
4
勋章
6
Y币
1 也代表true
123
帖子
2
勋章
3282
Y币
那为什么我发给设备设备却收不到呢,用调试助手发一模一样的数据设备就可以收到
380
帖子
4
勋章
6
Y币
检查传的参数对不对

或者换其他模块试试。如果都不行,可能你传的参数有问题,或者网络有问题。
TuT..... · 2022-8-5 09:17那为什么我发给设备设备却收不到呢,用调试助手发一模一样的数据设备就可以收到

123
帖子
2
勋章
3282
Y币
参数对的,好像是因为不是16进制才不行
技术咨询-F · 2022-8-5 10:10检查传的参数对不对

或者换其他模块试试。如果都不行,可能你传的参数有问题,或者网络有问题。
123
帖子
2
勋章
3282
Y币
好像是因为data是字符串类型,有办法转成16进制发送吗
技术咨询-F · 2022-8-5 10:10检查传的参数对不对

或者换其他模块试试。如果都不行,可能你传的参数有问题,或者网络有问题。
380
帖子
4
勋章
6
Y币
https://developer.yonyou.com/for ... read&tid=204560

看这个方法行不行
TuT..... · 2022-8-5 11:00好像是因为data是字符串类型,有办法转成16进制发送吗
123
帖子
2
勋章
3282
Y币
可以了谢谢
技术咨询-F · 2022-8-5 11:06https://developer.yonyou.com/forum.php?mod=viewthread&tid=204560

看这个方法行不行
123
帖子
2
勋章
3282
Y币
还有别的方法可以让字符串前面加\x吗,这个方法只能写死数据,要往变量前加\x的话数据就会错误
技术咨询-F · 2022-8-5 11:06https://developer.yonyou.com/forum.php?mod=viewthread&tid=204560

看这个方法行不行
3
帖子
0
勋章
298
Y币
本帖最后由 四海为家2017 于 2022-8-17 10:36 编辑

加\x只是16进制数据的一种显示形式,是为了人的可读性
可以把要发送的16进制指令转换成字符串,传在data字段上发出去就行了
使用apply批量执行,比在for循环中一位一位执行String.fromCharCode()性能好
每128位拆分一次执行,避免触发浏览器调用栈限制
  1. //待发送数据
  2. const buffer = new Uint8ClampedArray(16);
  3. //待发送字符串
  4. let binaryString = "";
  5. for (let i = 0; i < buffer.length; i += 128) {
  6.     binaryString += String.fromCharCode.apply(null, buffer.slice(i, i + 128));
  7. }
复制代码
TuT..... · 2022-8-5 14:34还有别的方法可以让字符串前面加\x吗,这个方法只能写死数据,要往变量前加\x的话数据就会错误

您需要登录后才可以回帖 登录

本版积分规则