VB6.0与USB连续通讯的有关问题,中
VB6.0与USB连续通讯的问题,求助中
现已经调通了VB与USB数据的收发,点击一个按纽能通过USB线来获取下位机返回的数据。但现在有个业务需求是:在下位机有数据的时候,就往VB软件发送,已知道USB设备是下位没能力直接向上位机发送数据,而需上位机不断发送指令下读USB设备的数据,形成一种查询的方式来模拟VB软件与USB设备的实时通讯。
据以上分析,故使一定时器,间隔1S(因数据速度要求不高)由VB软件下发指令去读取USB设备数据。以下是定时器块程序:
故障现象:程序死机,未能达到预期效果。
不知道是不是我上面的分析有错误,还是程序有BUG,麻烦有过经验的友友支招。(不够分了,只能发在非技术类中,谅解。)
------解决方案--------------------
难度太高了
------解决方案--------------------
怎么说?能不能简单解释呀?
------解决方案--------------------
还有的函数呢?……VBtoUSB函数?
可以先使用按键或者其他方式一组组读取打通命令,看看死机不?使用usb通信是直接使用的别个的dll还是什么,有没有获取不到数据跳出的设置,如果下位机有问题或者线连接不上可能死在函数里
------解决方案--------------------
弄好了,是下位机程序问题,还是以定时器的方式实现:以PC软件查询的方式来实现VB与USB的实时通讯。
现已经调通了VB与USB数据的收发,点击一个按纽能通过USB线来获取下位机返回的数据。但现在有个业务需求是:在下位机有数据的时候,就往VB软件发送,已知道USB设备是下位没能力直接向上位机发送数据,而需上位机不断发送指令下读USB设备的数据,形成一种查询的方式来模拟VB软件与USB设备的实时通讯。
据以上分析,故使一定时器,间隔1S(因数据速度要求不高)由VB软件下发指令去读取USB设备数据。以下是定时器块程序:
Private Sub tmrData_Timer()
Dim i As Integer
If FindTheHid = True Then
tmrData.Enabled = False '关闭定时
SendBuffer(0) = 0 '缓冲区的第一个字节数 Report ID
SendBuffer(1) = &HB6
SendBuffer(2) = HosID
SendBuffer(3) = DepID
Call VBtoUSB '开始发送
For i = 0 To 50
Debug.Print ReadBuffer(i)
Next i
If ReadBuffer(1) = 183 Then '如果返回数据,做以下操作
'For i = 0 To 11
' ComTemp(i) = ReadBuffer(i + 2)
'Next i
'Call WriteTemp
'接收完成,数据已存入缓冲区,可上报请求等待接收数据,并放入DBBuffer缓冲区
'Call SendTemp
End If
tmrData.Enabled = True '重新打开定时器
End If
End Sub
故障现象:程序死机,未能达到预期效果。
不知道是不是我上面的分析有错误,还是程序有BUG,麻烦有过经验的友友支招。(不够分了,只能发在非技术类中,谅解。)
------解决方案--------------------
难度太高了
------解决方案--------------------
怎么说?能不能简单解释呀?
------解决方案--------------------
还有的函数呢?……VBtoUSB函数?
可以先使用按键或者其他方式一组组读取打通命令,看看死机不?使用usb通信是直接使用的别个的dll还是什么,有没有获取不到数据跳出的设置,如果下位机有问题或者线连接不上可能死在函数里
------解决方案--------------------
弄好了,是下位机程序问题,还是以定时器的方式实现:以PC软件查询的方式来实现VB与USB的实时通讯。