Foxtable(狐表)用户栏目专家坐堂 → [求助]串口通信断电


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

主题:[求助]串口通信断电

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


加好友 发短信
等级:三尾狐 帖子:612 积分:3468 威望:0 精华:0 注册:2011/5/21 18:05:00
[求助]串口通信断电  发帖心情 Post By:2019/6/9 16:25:00 [只看该作者]

TimerTick

窗口计时器代码

If Ports.PortNames.Count > 0 Then
    If vars("com") > "" Then
        If Ports.Contains(vars("com")) = False Then
            Ports.Add(vars("com"))
            With Ports(vars("com"))
                .Close()
                .Parity = Parity.None
                .Handshake = Handshake.None
                .StopBits = StopBits.One
                .BaudRate = 19200
                .DataBits = 8
                .ReadBufferSize() = 4096
                .WriteBufferSize() = 2048
                .Open()
            End With
        Else
            If Ports(vars("com")).IsOpen = False Then
                Ports(vars("com")).Open()
            End If
        End If
    Else
        vars("com") = Ports.PortNames(Ports.PortNames.Count-1)
        If Ports.Contains(vars("com")) = False Then
            Ports.Add(vars("com"))
            With Ports(vars("com"))
                .Close()
                .Parity = Parity.None
                .Handshake = Handshake.None
                .StopBits = StopBits.One
                .BaudRate = 19200
                .DataBits = 8
                .ReadBufferSize() = 4096
                .WriteBufferSize() = 2048
                .Open()
            End With
        Else
            If Ports(vars("com")).IsOpen = False Then
                Ports(vars("com")).Open()
            End If
        End If
    End If
Else
    msgbox("没有发现本机com端口,请确认是否已经连接并且完成驱动安装!",64,"温馨提示")
    e.form.Close()
    Return
End If

问题:
串口设备的断电再加电以后不会工作,需要如何处理?串口设备断电以后Ports(vars("com")).IsOpen应该是什么状态?如何判断串口设备是否已经断电?

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


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

1、写代码判断和弹出值看一下,不就知道了?

 

2、断电后再加电,就是相当于你拔出再插入。你要确保com的端口号正确;你要确保close掉端口,然后重新open。

 

 


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


加好友 发短信
等级:三尾狐 帖子:612 积分:3468 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2019/6/10 8:07:00 [只看该作者]

1、写代码判断和弹出值看一下,不就知道了?


能说一下具体要求如何让判断吗?


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


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

断电以后msgbox判断,如

 

msgbox(ports("COM1").IsOpen)

 

try
    ports("COM3").open
catch ex As exception
    msgbox(123)
End try


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


加好友 发短信
等级:三尾狐 帖子:612 积分:3468 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2019/6/10 9:45:00 [只看该作者]

现在的问题是只要串口连接成功后msgbox(Ports(vars("com")).IsOpen)一直是true,即使断电了也是true,也就是通过Ports(vars("com")).IsOpen无法检测该串口是否断电了

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


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

那你断电后测试

 

try
    ports("COM3").open
catch ex As exception
    msgbox(123)
End try


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


加好友 发短信
等级:三尾狐 帖子:612 积分:3468 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2019/6/10 9:53:00 [只看该作者]

try
    Ports(vars("com")).open
catch ex As exception
    msgbox(123)
End try

执行上述操作没有弹窗

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


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

那你发送信息,接收信息,是否正常?

 

http://www.foxtable.com/webhelp/scr/1977.htm

 


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


加好友 发短信
等级:三尾狐 帖子:612 积分:3468 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2019/6/10 11:38:00 [只看该作者]

Dim s As String 
s = Ports(vars("com")).ReadExisting()
msgbox(s)  s为空


Dim s As String = "foxtable"
Ports(vars("com")).WriteLine(s)
没有任何反应



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


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

 

那就没办法处理了。如果你发送某个命令过去,会返回一个数值,这样才能变通处理。也就是,如果发数据过去,没有数值返回,就是没连上了。

 

 


 回到顶部
总数 12 1 2 下一页