Foxtable(狐表)用户栏目专家坐堂 → 串口连续扫描报超时错误


  共有2285人关注过本帖树形打印复制链接

主题:串口连续扫描报超时错误

帅哥哟,离线,有人找我吗?
colink
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1872 威望:0 精华:0 注册:2015/6/22 11:24:00
串口连续扫描报超时错误  发帖心情 Post By:2018/1/24 10:45:00 [只看该作者]

串口连续扫描报超时错误,单次扫描并且隔几秒再扫没问题。请帮忙,代码如下:

监视器代码
Forms("数据扫描").Controls("bar").value =e.Port.ReadTo(Chr(10))
串口代码
Dim txt As String=e.Form.controls("com").value
If Ports.Contains(txt) = False Then
    Ports.Add(txt)
End If
If Ports(txt).Isopen=True Then
Ports(txt).Close()
End If
With Ports(txt)
    .Parity = Parity.None
    .Handshake = Handshake.None
    .StopBits = StopBits.One
    .BaudRate = 38400
    .DataBits = 8
    .ReadBufferSize() = 4096
    .WriteBufferSize() = 2048
    .Encoding = Encoding.ASCII
    .Open
End With
messagebox.show("打开成功")

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 10:47:00 [只看该作者]

你窗口控件【bar】那里,有没有写有什么代码?或者你窗口那里有没有写什么其它代码?

 回到顶部
帅哥哟,离线,有人找我吗?
colink
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1872 威望:0 精华:0 注册:2015/6/22 11:24:00
  发帖心情 Post By:2018/1/24 10:52:00 [只看该作者]

目前还没有


 回到顶部
帅哥哟,离线,有人找我吗?
colink
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1872 威望:0 精华:0 注册:2015/6/22 11:24:00
  发帖心情 Post By:2018/1/24 10:53:00 [只看该作者]

baR控件不会运行其他代码


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 12:25:00 [只看该作者]

如果改成这样呢?是否报错?

 

dim str = e.Port.ReadTo(Chr(10))


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 12:26:00 [只看该作者]

或者改成这样呢

 

dim str = e.port.ReadExisting


 回到顶部
帅哥哟,离线,有人找我吗?
colink
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1872 威望:0 精华:0 注册:2015/6/22 11:24:00
  发帖心情 Post By:2018/1/24 20:12:00 [只看该作者]

改为dim str = e.Port.ReadTo(Chr(10))一样报超时错
改为dim str = e.port.ReadExisting不报错,但读出来的数据位数不正确,16位的条码,有时是正确的,有时只有一部分

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/24 20:27:00 [只看该作者]

你试试这样处理

 

vars("str") = vars("str") & e.port.ReadExisting

 

然后在需要的地方,处理str字符串,如

 

Dim str As String = vars("str")
msgbox(str)
Dim i As Integer = str.IndexOf(chr(10))
If i >= 0 Then
    Dim s As String = str.SubString(0, i)
    msgbox(s)
    str = str.SubString(i+1)
    vars("str") = str
End If


 回到顶部