Foxtable(狐表)用户栏目专家坐堂 → 如何判定没有串口


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

主题:如何判定没有串口

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


加好友 发短信
等级:小狐 帖子:362 积分:4236 威望:0 精华:0 注册:2017/2/7 7:41:00
如何判定没有串口  发帖心情 Post By:2020/4/3 21:17:00 [只看该作者]

For Each sp As String In Ports.PortNames
    Output.Show(sp)
Next

以上语句可以输出所有串口名称,但是如果电脑中没有任何串口,sp 就是空的。使用串口前,首先要排除这种情况,
请问有什么语句能判断 第一个"sp" 是空的。
试过  sp  Is Nothing   或  sp = “” 都不行

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


加好友 发短信
等级:小狐 帖子:362 积分:4236 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2020/4/4 11:23:00 [只看该作者]

换一个思路,当串口为空时,这里的“sp”不知道是何种类型变量?


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


加好友 发短信
等级:小狐 帖子:362 积分:4236 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2020/4/4 22:00:00 [只看该作者]

For Each sp As String In Ports.PortNames
    MessageBox.Show(sp)
Next

If sp = Nothing Then
    MessageBox.Show("没有串口")
End If

用上述语句,第二段也会出错:
---------------------------
编译错误:未声明名称“sp”。
错误代码:If sp = Nothing Then
---------------------------
确定   



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


加好友 发短信
等级:小狐 帖子:362 积分:4236 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2020/4/4 22:25:00 [只看该作者]

For Each sp As String In Ports.PortNames
    MessageBox.Show(sp)
    If sp = Nothing Then
        MessageBox.Show("没有串口")
    Else
        MessageBox.Show("有串口")
    End If
Next

测试计算机没有COM 时, 以上代码没有任何输,说明当没有串口时,这个循环没有执行,
这样不知道用什么办法可以检查出没有串口



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


加好友 发短信
等级:九尾狐 帖子:2177 积分:13784 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/4/4 22:33:00 [只看该作者]

Dim c1 As String
Dim cms() As String =  {"COM1","COM2","COM3","COM4"}
For Each c As String In cms
    Ports.Add(c)
    For Each sp As String In Ports.PortNames
        If sp =c Then
            c1  =c
            Exit For
        End If
    Next
    If c1 > "" Then Exit For
Next
If c1 > ""
    With Ports(c1)
        .Close()
        .Parity = Parity.None
        .Handshake = Handshake.None
        .StopBits = StopBits.One
        .BaudRate = 2400
        .DataBits = 8
        .ReadBufferSize() = 2048
        .WriteBufferSize() = 2048
        .Open
    End With
else
messagebox.show("没有串口")
End If

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


加好友 发短信
等级:小狐 帖子:362 积分:4236 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2020/4/4 22:50:00 [只看该作者]

谢谢楼上,上面代码能检查出有没有串口,代码正确

 回到顶部