171 lines
5.2 KiB
VB.net
171 lines
5.2 KiB
VB.net
Imports System.ComponentModel
|
|
Imports System.IO
|
|
|
|
Public Class FrmSerialportSetting
|
|
Public FCsConfig As FrmCSeriesConfig
|
|
Sub New(pathme As FrmCSeriesConfig)
|
|
|
|
' 此调用是设计器所必需的。
|
|
InitializeComponent()
|
|
FCsConfig = pathme
|
|
' 在 InitializeComponent() 调用之后添加任何初始化。
|
|
|
|
End Sub
|
|
|
|
#Region "多语种信息"
|
|
|
|
''' <summary>
|
|
''' 初始化界面控件文本
|
|
''' </summary>
|
|
Private Sub MultiLanguageInfo()
|
|
''LblIP.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.LocalIP)
|
|
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialportSettings)
|
|
LblSerialPortName.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialPortName)
|
|
LblSerialPortBaud.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Baud)
|
|
Button19.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.OpenTheSerialPort)
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "初始化"
|
|
|
|
|
|
''' <summary>
|
|
''' 串口波特率
|
|
''' </summary>
|
|
Private _baudItme() As String = {"4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "256000", "512000", "600000", "750000"}
|
|
|
|
|
|
''' <summary>
|
|
''' 窗体加载事件
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
Private Sub FrmSerialportSetting_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
MultiLanguageInfo()
|
|
GetSerialPort()
|
|
InitSerialPortBaud()
|
|
End Sub
|
|
|
|
|
|
|
|
''' <summary>
|
|
''' 获取可用串口
|
|
''' </summary>
|
|
Private Sub GetSerialPort()
|
|
Dim portNames As String() = Ports.SerialPort.GetPortNames '获得可用串口
|
|
Array.Sort(portNames)
|
|
ComboBox8.Items.Clear()
|
|
ComboBox8.Items.AddRange(portNames)
|
|
End Sub
|
|
|
|
''' <summary> port次数 </summary>
|
|
Private _portCount As Integer = 0
|
|
|
|
''' <summary>
|
|
''' 初始化串口波特率
|
|
''' </summary>
|
|
Private Sub InitSerialPortBaud()
|
|
_portCount += 1
|
|
ComboBox9.Items.Clear()
|
|
ComboBox9.Items.AddRange(_baudItme)
|
|
|
|
If _portCount > 1 Then Return
|
|
If ComboBox9.Items.Count > 1 Then ComboBox9.SelectedIndex = 1
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' 串口点击按键
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
|
|
If String.IsNullOrWhiteSpace(ComboBox8.Text) Then
|
|
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SelectAValidSerialPortFirst)}!")
|
|
Exit Sub
|
|
End If
|
|
If String.IsNullOrWhiteSpace(ComboBox9.Text) Then
|
|
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SelectTheValidBaudRateFirst)}!")
|
|
Exit Sub
|
|
End If
|
|
|
|
SerialPortCommSwitch(ComboBox8.Text, ComboBox9.Text)
|
|
End Sub
|
|
|
|
|
|
''' <summary>
|
|
''' 串口通讯开关
|
|
''' </summary>
|
|
''' <param name="portName"></param>
|
|
''' <param name="portBaud"></param>
|
|
Private Sub SerialPortCommSwitch(portName As String, portBaud As String)
|
|
If FCsConfig.SerialPort.IsOpen Then
|
|
FCsConfig.SerialPort.Close()
|
|
CloseSerialPort()
|
|
Else
|
|
ConfigSerialPort(portName, portBaud)
|
|
Try
|
|
FCsConfig.SerialPort.Open()
|
|
_isSerialPort = True
|
|
OpenSerialPort()
|
|
Catch ex As Exception
|
|
Console.WriteLine($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialPortOpenTheFailedReason)}:{ex.Message}" & vbCrLf, Color.Red)
|
|
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialPortOpenTheFailedReason)}:{ex.Message}")
|
|
FCsConfig.SerialPort.Close()
|
|
_isSerialPort = False
|
|
CloseSerialPort()
|
|
End Try
|
|
End If
|
|
End Sub
|
|
|
|
|
|
''' <summary>
|
|
''' 关闭串口
|
|
''' </summary>
|
|
Private Sub CloseSerialPort()
|
|
ComboBox8.Enabled = True
|
|
ComboBox9.Enabled = True
|
|
Button19.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.OpenTheSerialPort)}"
|
|
Button19.ForeColor = Color.Green
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' 打开串口
|
|
''' </summary>
|
|
Private Sub OpenSerialPort()
|
|
ComboBox8.Enabled = False
|
|
ComboBox9.Enabled = False
|
|
Button19.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.CloseTheSerialPort)}"
|
|
Button19.ForeColor = Color.Red
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' 配置串口
|
|
''' </summary>
|
|
''' <param name="portName">串口名</param>
|
|
''' <param name="portBaud">串口波特率</param>
|
|
Public Sub ConfigSerialPort(portName As String, portBaud As String)
|
|
With FCsConfig.SerialPort
|
|
.PortName = portName '串口名
|
|
.BaudRate = CInt(portBaud) '波特率
|
|
.DataBits = 8 '数据位
|
|
.StopBits = Ports.StopBits.One '停止位
|
|
.Parity = Ports.Parity.None '偶校验
|
|
.RtsEnable = True
|
|
.ReceivedBytesThreshold = 1
|
|
End With
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
End Class |