关于VB接收DPS数据的问题

我用VB做了一个上位机,用来接收DSP程序,原来做的是6路显示,现在被要求做成12路显示的,由于DSP以下发不了那么多数据,要分2次发完,请问大神我这应该怎么做?比如DS... 我用VB做了一个上位机,用来接收DSP程序,原来做 的是6路显示,现在被要求做成12路显示的,由于DSP以下发不了那么多数据,要分2次发完,请问大神我这应该怎么做?比如DSP发个标志位,比如1代表前6路,2代表后6路,那我怎么写程序使上位机可以分辨出来呢?我原来程序如下:
Dim inbuffer As Variant
Dim inbuf() As Byte

inbuffer = MSComm1.Input

inbuf() = inbuffer

DataVolt1 = inbuf(0)

DataVolt2 = inbuf(1)

DataVolt3 = inbuf(2)

DataVolt4 = inbuf(3)

DataVolt5 = inbuf(4)

DataVolt6 = inbuf(5)

DataVolt7 = inbuf(6)

DataVolt8 = inbuf(7)

DataVolt9 = inbuf(8)

DataVolt10 = inbuf(9)

DataVolt11 = inbuf(10)

DataVolt12 = inbuf(11)

voltagenum1 = DataVolt1 * 16 * 16 + DataVolt2
voltagenum2 = DataVolt3 * 16 * 16 + DataVolt4
voltagenum3 = DataVolt5 * 16 * 16 + DataVolt6
voltagenum4 = DataVolt7 * 16 * 16 + DataVolt8
voltagenum5 = DataVolt9 * 16 * 16 + DataVolt10
voltagenum6 = DataVolt11 * 16 * 16 + DataVolt12
请问我现在要改的话怎么改呢?请大神帮我写点程序指导下~因为是半路学的,好多都不懂~如果有什么好的办法也请指教下~谢谢了
展开
 我来答
mondecao
2012-10-19 · 超过25用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:52.2万
展开全部
简单做法(治标做法):在两次数据之间加入一个不会在正常数据序列中出现的字节串作为分割字节串,例如:AAAAAA&&BBBBBB,然后在VB中用split函数来把接收到的字节串用分割字节串(&&)分为两部分

复杂做法(当然也是治根的办法):DSP的发送函数重做,先设定一个数据分包协议,包括数据包头、数据体、校验码、数据包尾,然后上位机程序做好相应的数据包解析函数就可以了,这种方法比较一劳永逸,数据分包协议做好以后要扩展数据容量或者功能都比较方便
更多追问追答
追问
请问第一种方法用SPLIT函数怎么写程序呢?请问能不能给我写个示例让我看一下呢?谢谢了!
追答
Dim Arry
StrTmp = "AAAAAA&&BBBBBB"
Arry = Split(StrTmp, "&&")
'如果就两串看下面

strA=Arry(0)
strB=Arry(1)
'如果大于2个有效串看下面

For i = 0 To UBound(Arry)-1
strPart(i)=Arry(i)
Next i
百度网友ba88284
2012-10-19 · TA获得超过1521个赞
知道大有可为答主
回答量:1822
采纳率:73%
帮助的人:580万
展开全部
试着制作一个文件协议。用串口发送的时候,将数据的全1,标记为“下一个要传的是第二个数据”,全零标记为“下一个要传的是第一个数据”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式