以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]串口参数如果是变量设置参数如何写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143155)

--  作者:新福星
--  发布时间: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 = 右面怎么表示?谢谢


--  作者:有点蓝
--  发布时间:2019/11/15 10:48:00
--  
dim c as string = "None"
Dim h As Handshake = [Enum].Parse(Gettype(Handshake), c, True)
.Handshake = h

--  作者:新福星
--  发布时间:2019/11/15 11:30:00
--  


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

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


--  作者:有点蓝
--  发布时间:2019/11/15 11:48:00
--  
代码重复了,把后面错误的赋值去掉
--  作者:新福星
--  发布时间:2019/11/15 11:58:00
--  

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


--  作者:有点蓝
--  发布时间:2019/11/15 11:58:00
--  
完整代码发上来
--  作者:新福星
--  发布时间: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") & "设置完毕!")


--  作者:有点蓝
--  发布时间: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
……