如何实现按一次按钮采集一次数

黄昏鹿场 2019-05-07 03:19:05
新人,用vb编了一个类似串口助手的程序,连接的仪器是连续传输的,想要加一个按钮,不按按钮时不显示数,按下一次按钮采集一次数,就是实时数据,该怎么做
...全文
298 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄昏鹿场 2019-05-08
  • 打赏
  • 举报
回复
引用 4 楼 X-i-n 的回复:
问个问题怎么跟挤牙膏一样,你一共有几台设备?有几种协议?感觉现在你连怎么接入设备获取数据都没搞定啊。
传输模式无非两种,主动推送和被动应答。
你在顶楼的描述就是主动推送模式,这种模式下只要正常接收存储就行,需要的时候把存储的数据显示出来。
被动应答式的处理流程:按钮 -> 取数 -> 显示。

我这样问是因为我百度的时候大概就是这样搜索的,就是想实现实时传数,我也是刚刚接触这个,不好意思,不太懂,可能描述不太清除。就是我现在程序可以接受数据,但是仪器是连续输出类型,一连接就一直传数,但现在是想按一下,采集当前最新的一个数。因为设备的传输协议就是每帧传输开始的标志字节不知道,所有想问问有没有别的方法可以实现
黄昏鹿场 2019-05-08
  • 打赏
  • 举报
回复
引用 6 楼 X-i-n 的回复:
引用
就是我现在程序可以接受数据,但是仪器是连续输出类型,一连接就一直传数

现在你的程序已经可以接收数据了。流程改为接收了以后不显示,然后点按钮的时候,把接收到的数据显示出来,哪一步没有办法做到?

我按照你的方法,想了一个思路,就是点击采集时打开串口,当数据传输10位时,显示出来,然后关闭串口。但是使用过程中有时最后没有关闭掉串口,能看一下时怎么回事吗?谢谢

Private Sub Command1_Click()
On Error GoTo ErrDeal
MSComm1.PortOpen = True
Timer1.Enabled = True
ErrDeal:
If Err.Number = 8002 Then
MsgBox "串口不存在!", vbOKOnly Or vbInformation, "提示"
ElseIf Err.Number = 8005 Then
MsgBox "串口已打开!", vbOKOnly Or vbInformation, "提示"
End If
End Sub


Private Sub Timer1_Timer()
If MSComm1.InBufferCount = 10 Then
Text1.Text = Text1.Text & MSComm1.Input & vbTab & Format$(Now, "c") & vbCrLf
MSComm1.PortOpen = False
End If
End Sub

黄昏鹿场 2019-05-08
  • 打赏
  • 举报
回复
引用 6 楼 X-i-n 的回复:
引用
就是我现在程序可以接受数据,但是仪器是连续输出类型,一连接就一直传数

现在你的程序已经可以接收数据了。流程改为接收了以后不显示,然后点按钮的时候,把接收到的数据显示出来,哪一步没有办法做到?

还是我没明白您的具体意思?
黄昏鹿场 2019-05-08
  • 打赏
  • 举报
回复
引用 6 楼 X-i-n 的回复:
引用
就是我现在程序可以接受数据,但是仪器是连续输出类型,一连接就一直传数

现在你的程序已经可以接收数据了。流程改为接收了以后不显示,然后点按钮的时候,把接收到的数据显示出来,哪一步没有办法做到?

可是你这样做就会把缓冲区所有接收到的数全部显示出来啊,仪器是一直在传数的,我只要显示我点击按钮时,仪器传输过来的那一个数
X-i-n 2019-05-08
  • 打赏
  • 举报
回复
引用
就是我现在程序可以接受数据,但是仪器是连续输出类型,一连接就一直传数
现在你的程序已经可以接收数据了。流程改为接收了以后不显示,然后点按钮的时候,把接收到的数据显示出来,哪一步没有办法做到?
X-i-n 2019-05-07
  • 打赏
  • 举报
回复
问个问题怎么跟挤牙膏一样,你一共有几台设备?有几种协议?感觉现在你连怎么接入设备获取数据都没搞定啊。 传输模式无非两种,主动推送和被动应答。 你在顶楼的描述就是主动推送模式,这种模式下只要正常接收存储就行,需要的时候把存储的数据显示出来。 被动应答式的处理流程:按钮 -> 取数 -> 显示。
脆皮大雪糕 2019-05-07
  • 打赏
  • 举报
回复
那就是先搞定取数,然后按一下去触发一下取数的逻辑过程
黄昏鹿场 2019-05-07
  • 打赏
  • 举报
回复
引用 1 楼 X-i-n 的回复:
后台不断采集,并存到变量里。按按钮的时候把数据显示出来。

按一次显示最新采集的数,只显示最新的一个。你这样好像不行吧
我查了一下好像要用到不同连接仪器的传输协议
感觉有点复杂,所以想问问有没有其他方法可行
X-i-n 2019-05-07
  • 打赏
  • 举报
回复
后台不断采集,并存到变量里。按按钮的时候把数据显示出来。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧