Foxtable(狐表)用户栏目专家坐堂 → [求助]串口参数如果是变量设置参数如何写?


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

主题:[求助]串口参数如果是变量设置参数如何写?

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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
[求助]串口参数如果是变量设置参数如何写?  发帖心情 Post By:2019/11/15 10:36:00 [只看该作者]

Ports.Add("COM2")
With
Ports("COM2")
    .Close()
    .Parity = Parity.None
    .Handshake = Handshake.None
    .StopBits = StopBits.One
    .BaudRate =
9600
    .DataBits =
8
    .ReadBufferSize() = 4096
    .WriteBufferSize() =
2048
    .Open

End
With

里面的Parity Handshake  StopBits 如果是用变量设置,等号右面怎么写?

例如 Parity在窗口得到选项None,则.Parity = 右面怎么表示?谢谢


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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/15 10:48:00 [只看该作者]

dim c as string = "None"
Dim h As Handshake = [Enum].Parse(Gettype(Handshake), c, True)
.Handshake = h

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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2019/11/15 11:30:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20191115112858.png
图片点击可在新窗口打开查看

出现这样错误。是哪不对了?


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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/15 11:48:00 [只看该作者]

代码重复了,把后面错误的赋值去掉

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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2019/11/15 11:58:00 [只看该作者]

重复错误行已经删除了。错误仍然存在且提示同上!


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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/15 11:58:00 [只看该作者]

完整代码发上来

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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2019/11/15 11:59:00 [只看该作者]

Dim s As Row=Tables("串口属性").Current
If s Is Nothing Then
    MessageBox.Show("没有指定端口无法打开!")
    Return
End If

Ports.Add(s("PortName"))
Ports(s("PortName")).Close()

Dim dyzf2 As Encoding= [Enum].Parse(Gettype(Encoding),s("Encoding"),True)
Ports(s("PortName")).Encoding =dyzf2


Dim dyzf3 As Parity= [Enum].Parse(Gettype(Parity), s("Parity"), True)
Ports(s("PortName")).Parity =dyzf3

Dim dyzf1 As Handshake= [Enum].Parse(Gettype(Handshake), s("Handshake"), True)
Ports(s("PortName")).Handshake =dyzf1

Dim dyzf4 As StopBits= [Enum].Parse(Gettype(StopBits), s("StopBits"), True)
Ports(s("PortName")).StopBits =dyzf4

'Ports("COM2").Encoding = Encoding.Unicode

Ports(s("PortName")).BaudRate = cint(s("BaudRate"))
Ports(s("PortName")).DataBits = s("DataBits")
Ports(s("PortName")).ReadBufferSize() = s("ReadBufferSize")
Ports(s("PortName")).WriteBufferSize() = s("WriteBufferSize")
Ports(s("PortName")).Open

MessageBox.Show(s("PortName") & "设置完毕!")


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


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/15 13:41:00 [只看该作者]

Encoding类型不是枚举,不能这样用,只能这样

if s("Encoding") = “ASCII” then
  Ports(s("PortName")).Encoding = Encoding.ASCII
elseif s("Encoding") = “UTF8” then
  Ports(s("PortName")).Encoding = Encoding.UTF8
……

 回到顶部