关于的MSCOM的几个问题

谁为谁狂 2008-07-03 10:03:11
今天调试托力多的电子秤。先用超级终端连上去看到传送回来的是 一串 包含17个字符的字符串。分析发现从7到10这四个字符为秤上显示的重量数值。
先做个了个测试将从COM口取来的数据写入一个文本文件:
Private Sub Command1_Click()
i = 1
With MSC
.CommPort = 1
.Settings = "9600,N,8,1"
.InBufferSize = 40
.InputLen = 17
.RThreshold = 1
.InputMode = comInputModeText
.InBufferCount = 0
If Not .PortOpen Then
.PortOpen = True
End If
End With

Private Sub MSC_OnComm()
If MSC.CommEvent = comEvReceive Then
MSC.RThreshold = 0
WritePrivateProfileString "value", CStr(i), CStr(MSC.Input), App.Path & "\1.txt"
i = i + 1
MSC.RThreshold = 1
End If
End Sub



执行后,发现文本文件里的内容所有偶数行的值为“00”,奇数行的值和超级终端里的显示的一样。所以我就将取电子秤的过程这样写了:

Private Sub MSC_OnComm()
If MSC.CommEvent = comEvReceive Then
MSC.RThreshold = 0
Text1.Text = MSC.Input
If Len(Text1.Text) > 6 Then Text2.Text = Mid(Text1.Text, 7, 2) & "." & Mid(Text1.Text, 9, 2)
MSC.RThreshold = 1
End If
End Sub

现在是可以用了。就不知道有没有什么问题? 还有那个“.InBufferSize ”属性的值好像设置成多少对我的取值都没有影响,这是为什么?在网上收到一篇关于开发电子秤的例子(http://blog.cechinamag.com/ljs625/107762/message.aspx),是把接模式设置为二进制的。按照里面的方法我使终没有调试出来,所以请各位能指点一下,谢谢了。
...全文
82 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
谁为谁狂 2008-07-06
  • 打赏
  • 举报
回复
谢谢!!
zdingyun 2008-07-05
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
With MSC
.CommPort = 1
.Settings = "9600,N,8,1"
.InBufferSize = 40
.RThreshold = 17
.InputMode = comInputModeText
.InBufferCount = 0
If Not .PortOpen Then
.PortOpen = True
End If
End With
End Sub
Private Sub MSC_OnComm()
If MSC.CommEvent = comEvReceive Then
Text1.Text = MSC.Input
If Len(Text1.Text) = 17 Then
Text2.Text = Mid(Text1.Text, 7, 2) & "." & Mid(Text1.Text, 9, 2)
End If
End If
End Sub

1,453

社区成员

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

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