Foxtable(狐表)用户栏目专家坐堂 → 关于串口


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

主题:关于串口

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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
关于串口  发帖心情 Post By:2010/6/29 8:40:00 [只看该作者]

串口已经被别的软件打开的情况下,运行狐表程序(也要用到同一个串口),提示错误如下:


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看
怎样做到当运行项目时,检测到串口已经被打开,提示自己的信息,例如:messagebox.show("串口已经被打开!"),而不是狐表自己出现的错误提示?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/29 8:57:00 [只看该作者]

可以试试:

 

If ports("COM1").IsOpen Then

 

End If

 

如果不行,就没有办法。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/29 9:05:00 [只看该作者]

上面应该是不行的,可以这样:

 

Try

    '源代码

Catch ex As Exception

    MessageBox.show("错误信息")

End Try


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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
  发帖心情 Post By:2010/6/29 9:07:00 [只看该作者]

我试过了,不行。打开狐表两次也出现同样的提示,不太专业。图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/29 9:15:00 [只看该作者]

看三楼

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


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/6/29 9:40:00 [只看该作者]

dim mycom1 = new IoCom.CommPort()
if mycom1.opened then
  mycom1.Close()
  mycom1.open()
else
  mycom1.open()
end if

 

楼主暂时可以用外部引用来判断。试试是否可行?


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:iocom.rar


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


加好友 发短信
等级:小狐 帖子:334 积分:2722 威望:0 精华:0 注册:2010/5/20 13:07:00
  发帖心情 Post By:2010/6/30 21:07:00 [只看该作者]

上例中,如果串口已经被别的程序打开,就提示信息,然后退出Foxtable。在AfterOpenProject事件中,代码如下:

Try
    Ports.Add("COM4")
    With Ports("COM4")
        .Close()
        .Parity = Parity.None
        .Handshake = Handshake.None
        .StopBits = StopBits.One
        .BaudRate = 9600
        .DataBits = 8
        .ReadBufferSize() = 4096
        .WriteBufferSize() = 2048
        .Open
    End With
    Catch ex As Exception
    Dim Result As DialogResult
    Result =MessageBox.show("通讯端口已经被使用,停止加载程序!","提示",MessageBoxButtons.OK)
    If Result = DialogResult.OK Then
        Syscmd.Project.Exit()
    End if
End Try

可是报错


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

是什么原因呢?


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/30 21:41:00 [只看该作者]

End try之后还有代码吧?退出命令之后应该加上Return,避免执行End Try之后的代码

 

 If Result = DialogResult.OK Then
        Syscmd.Project.Exit()

        Return
End if

 


 回到顶部