以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  ble 发送时分包,接收时怎么组包  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107821)

--  作者:fubblyc
--  发布时间:2017/10/10 22:21:00
--  ble 发送时分包,接收时怎么组包
老师,我又来请教您啦!
我用ble蓝牙扫码枪扫非国标的条形码,
有 17位数  11770030078029048
这时扫码枪就不会像扫13位直接一包数据过来,而是分成了两个包。

此主题相关图片如下:微信截图_20171010222134.png
按此在新窗口浏览图片
如下图:

此主题相关图片如下:微信图片_20171010223059.jpg
按此在新窗口浏览图片

690107..这个是13位,所以是正常显示
117700.. 这个是17位,他分成了两行了

分包的原理是这样:

OP定义如下:

NORMAL_PACKET       0X37

END_PACKET             0X38

一个长条码可能会分成多帧进行传输,一次最多传输250个字节的条码内容。

如果发送的不是最后一个包,OP填入NORMAL_PACKET

如果发送的是最后一个包,OP填入END_PACKET


那现在是要将两个包的值合在一起,不要分成两行。

不知道怎么做。。。


我本来是通过前两个字判断是不是最后一个包,不是的话 存储起来,然后值为两个相加

但是他是每个包一路到底,没办法两个相加


[此贴子已经被作者于2017/10/10 22:30:33编辑过]

--  作者:有点蓝
--  发布时间:2017/10/10 22:41:00
--  
没有用过,想象不出具体是怎么样的过程。

接收框是input?改为textarea试试
--  作者:有点甜
--  发布时间:2017/10/11 9:51:00
--  

根据37、38判断是否为最后一个包,如果是,就把前面的组合起来;

 

举例说明,你需要合成的字符是什么?最终合成什么?


--  作者:fubblyc
--  发布时间:2017/10/12 14:40:00
--  
恩恩,老师,可以了。
我做了两个隐藏的框,分别接受 37 38 的包,然后再组合起来!

谢谢蓝老师,甜老师!!