zgj9911
发表于 2023-5-11 20:12:28
Qos为2的时候发送数据会卡住
唐兀
发表于 2023-6-22 19:17:11
十六进制文本到整数(),这个方法在哪里的,没找到
hq881128
发表于 2023-8-1 14:51:16
<火山程序 类型 = "通常" 版本 = 1 />
调试输出 (2222)
如果 (取字节集长度 (已接收数据) - 2 == 十六进制文本到整数 (取文本中间 (接收数据, 2, 2))) //数据太长到这里会不真,没处理了
{
收到消息 (UTF8到文本 (取字节集中间 (已接收数据, 4, 十六进制文本到整数 (字节集到十六进制文本 (取字节集中间 (已接收数据, 2, 2))))), UTF8到文本 (取字节集右边 (已接收数据, 取字节集长度 (已接收数据) - 4 - 十六进制文本到整数 (字节集到十六进制文本 (取字节集中间 (已接收数据, 2, 2))))))
}
hq881128
发表于 2023-8-1 14:52:56
这个是我发送的文本:
{
"ModbusID": "6c000000f0de",
"Type": "Temp",
"data": [
{
"Way": [
0
],
"Status": [
1
],
"Mode": [
1
],
"Fan": [
3
],
"SetTem": [
24
],
"CurTem": [
25
]
}
]
}
2023-08-01 14:01:21:940
Topic: client:report/1QoS: 0
{
"ModbusID": "6c000000f0de",
"Type": "Temp",
"data": [
{
"Way": [
0
],
"Status": [
1
],
"Mode": [
1
],
"Fan": [
3
],
"SetTem": [
24
]
"CurTem" :[
25
]
}
]
}
zgj9911
发表于 2023-9-9 12:52:02
数据包大于1400字节时会收到多个包,好像得组包,可惜我不会,希望楼主能更新一下
hq881128
发表于 2023-10-30 13:58:11
本帖最后由 hq881128 于 2023-10-30 14:05 编辑
zgj9911 发表于 2023-9-9 12:52
数据包大于1400字节时会收到多个包,好像得组包,可惜我不会,希望楼主能更新一下 ...
在他其基础增加了两个方法,解码和编码,之前接收超过长度就会卡死。
现在最多能处理16383个字节的数据了,需要更多的对着协议可自己改。
另外这东西还是有很多问题不能在项目上用,测试用应该没问题,我用来做了小工具能用。
zgj9911
发表于 2023-10-30 19:04:28
谢谢楼主:噜阿噜
leing
发表于 2024-1-20 14:46:32
本帖最后由 leing 于 2024-1-20 15:04 编辑
zgj9911 发表于 2023-9-9 12:52
数据包大于1400字节时会收到多个包,好像得组包,可惜我不会,希望楼主能更新一下 ...
已修复数据量大于127则数据卡住。
关于Qos为1或2卡住也是因为数据量超出了127,导致无法发送
现已修复数据量达到最大值(268435455)
https://bbs.voldp.com/data/attachment/forum/202310/30/653f44fc20b70.png
感谢@hq881128 提出解决方案
MQTT Client For Voldev: MQTT Client For Voldev (gitee.com)