⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.vb

📁 Rs232 Rs232 Rs232 Rs232
💻 VB
字号:
Option Explicit On 
Option Strict On

'==========================================================================================
'
'		OpenNETCF.Samples.SerialVB
'		Copyright (c) 2003, OpenNETCF.org
'
'		This library is free software; you can redistribute it and/or modify it under 
'		the terms of the OpenNETCF.org Shared Source License.
'
'		This library is distributed in the hope that it will be useful, but 
'		WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
'		FITNESS FOR A PARTICULAR PURPOSE. See the OpenNETCF.org Shared Source License 
'		for more details.
'
'		You should have received a copy of the OpenNETCF.org Shared Source License 
'		along with this library; if not, email licensing@opennetcf.org to request a copy.
'
'		If you wish to contact the OpenNETCF Advisory Board to discuss licensing, please 
'		email licensing@opennetcf.org.
'
'		For general enquiries, email enquiries@opennetcf.org or visit our website at:
'		http:'www.opennetcf.org
'
'==========================================================================================

Imports OpenNETCF
Imports System.Text

Public Class Form1
    Inherits System.Windows.Forms.Form
    Friend WithEvents txtTerm As System.Windows.Forms.TextBox
    Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu
    Friend WithEvents MainMenu2 As System.Windows.Forms.MainMenu
    Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem4 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem5 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem6 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem7 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem8 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem9 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem10 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem11 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem12 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem13 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem16 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem14 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem15 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem
    Friend WithEvents MenuItem17 As System.Windows.Forms.MenuItem

    Public WithEvents SerialPort As New IO.Serial.Port("COM4")

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        MyBase.Dispose(disposing)
    End Sub

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Private Sub InitializeComponent()
        Me.txtTerm = New System.Windows.Forms.TextBox
        Me.MainMenu1 = New System.Windows.Forms.MainMenu
        Me.MenuItem17 = New System.Windows.Forms.MenuItem
        Me.MainMenu2 = New System.Windows.Forms.MainMenu
        Me.MenuItem1 = New System.Windows.Forms.MenuItem
        Me.MenuItem3 = New System.Windows.Forms.MenuItem
        Me.MenuItem4 = New System.Windows.Forms.MenuItem
        Me.MenuItem5 = New System.Windows.Forms.MenuItem
        Me.MenuItem6 = New System.Windows.Forms.MenuItem
        Me.MenuItem7 = New System.Windows.Forms.MenuItem
        Me.MenuItem8 = New System.Windows.Forms.MenuItem
        Me.MenuItem9 = New System.Windows.Forms.MenuItem
        Me.MenuItem10 = New System.Windows.Forms.MenuItem
        Me.MenuItem11 = New System.Windows.Forms.MenuItem
        Me.MenuItem12 = New System.Windows.Forms.MenuItem
        Me.MenuItem13 = New System.Windows.Forms.MenuItem
        Me.MenuItem16 = New System.Windows.Forms.MenuItem
        Me.MenuItem14 = New System.Windows.Forms.MenuItem
        Me.MenuItem15 = New System.Windows.Forms.MenuItem
        Me.MenuItem2 = New System.Windows.Forms.MenuItem
        '
        'txtTerm
        '
        Me.txtTerm.Multiline = True
        Me.txtTerm.ScrollBars = System.Windows.Forms.ScrollBars.Both
        Me.txtTerm.Size = New System.Drawing.Size(240, 163)
        Me.txtTerm.Text = ""
        '
        'MainMenu1
        '
        Me.MainMenu1.MenuItems.Add(Me.MenuItem17)
        '
        'MenuItem17
        '
        Me.MenuItem17.Text = ""
        '
        'MainMenu2
        '
        Me.MainMenu2.MenuItems.Add(Me.MenuItem1)
        Me.MainMenu2.MenuItems.Add(Me.MenuItem2)
        '
        'MenuItem1
        '
        Me.MenuItem1.MenuItems.Add(Me.MenuItem3)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem4)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem5)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem6)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem7)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem8)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem9)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem10)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem11)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem12)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem13)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem16)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem14)
        Me.MenuItem1.MenuItems.Add(Me.MenuItem15)
        Me.MenuItem1.Text = "Port"
        '
        'MenuItem3
        '
        Me.MenuItem3.Text = "Com1:"
        '
        'MenuItem4
        '
        Me.MenuItem4.Text = "Com2:"
        '
        'MenuItem5
        '
        Me.MenuItem5.Text = "Com3:"
        '
        'MenuItem6
        '
        Me.MenuItem6.Text = "Com4:"
        '
        'MenuItem7
        '
        Me.MenuItem7.Text = "Com5:"
        '
        'MenuItem8
        '
        Me.MenuItem8.Text = "Com6:"
        '
        'MenuItem9
        '
        Me.MenuItem9.Text = "Com7:"
        '
        'MenuItem10
        '
        Me.MenuItem10.Text = "Com8:"
        '
        'MenuItem11
        '
        Me.MenuItem11.Text = "-"
        '
        'MenuItem12
        '
        Me.MenuItem12.Text = "300 bps"
        '
        'MenuItem13
        '
        Me.MenuItem13.Text = "1200 bps"
        '
        'MenuItem16
        '
        Me.MenuItem16.Text = "4800 bps"
        '
        'MenuItem14
        '
        Me.MenuItem14.Text = "9600 bps"
        '
        'MenuItem15
        '
        Me.MenuItem15.Text = "115200 bps"
        '
        'MenuItem2
        '
        Me.MenuItem2.Text = "Open Port"
        '
        'Form1
        '
        Me.Controls.Add(Me.txtTerm)
        Me.MaximizeBox = False
        Me.Menu = Me.MainMenu2
        Me.MinimizeBox = False
        Me.Text = "Form1"

    End Sub

#End Region

    Private ScreenBuff As New StringBuilder(4096)

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With SerialPort
            .PortName = "COM4:"
            MenuItem6.Checked = True
            .RThreshold = 1
            .Settings.BaudRate = IO.Serial.BaudRates.CBR_115200
            MenuItem15.Checked = True
            .Settings.ByteSize = 8
            .Settings.Parity = IO.Serial.Parity.none
            .Settings.StopBits = IO.Serial.StopBits.one
            .InputLen = 0
        End With
        txtTerm.Focus()
    End Sub

    Private Sub txtTerm_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTerm.KeyPress
        With SerialPort
            If .IsOpen = True Then
                Dim OutputData(0) As Byte
                OutputData(0) = CByte(Asc(e.KeyChar))
                .Output = OutputData
            Else
                MsgBox("Port Not Open")
            End If
            e.Handled = True
        End With
    End Sub

    Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
        With SerialPort
            If MenuItem2.Text = "Open Port" Then
                    Try
                        .Open()
                    Catch ex As Exception

                End Try
                If .IsOpen Then
                    MenuItem2.Text = "Close Port"
                Else
                    MsgBox("Port open failed", MsgBoxStyle.Exclamation)
                End If
            Else
                    .Close()
                    MenuItem2.Text = "Open Port"
                End If
        End With
    End Sub

    Private Function OpenPort(ByVal Port As String) As Boolean
        With SerialPort
            Dim IsOpen As Boolean = .IsOpen
            Dim PortName As String = .PortName
            .PortName = Port
                Try
                    .Open()
                    Return True
                Catch ex As Exception
                    .PortName = PortName
                    If IsOpen Then .Open()
            End Try
            If IsOpen = False And .IsOpen = True Then .Close()
        End With
    End Function

    Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
        If OpenPort("COM1:") = True Then
            ClearPortChecks()
            MenuItem3.Checked = True
        End If
    End Sub

    Private Sub MenuItem4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
        If OpenPort("COM2:") = True Then
            ClearPortChecks()
            MenuItem4.Checked = True
        End If
    End Sub

    Private Sub MenuItem5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem5.Click
        If OpenPort("COM3:") = True Then
            ClearPortChecks()
            MenuItem5.Checked = True
        End If
    End Sub

    Private Sub MenuItem6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem6.Click
        If OpenPort("COM4:") = True Then
            ClearPortChecks()
            MenuItem6.Checked = True
        End If
    End Sub

    Private Sub MenuItem7_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem7.Click
        If OpenPort("COM5:") = True Then
            ClearPortChecks()
            MenuItem7.Checked = True
        End If
    End Sub

    Private Sub MenuItem8_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem8.Click
        If OpenPort("COM6:") = True Then
            ClearPortChecks()
            MenuItem8.Checked = True
        End If
    End Sub

    Private Sub MenuItem9_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem9.Click
        If OpenPort("COM7:") = True Then
            ClearPortChecks()
            MenuItem9.Checked = True
        End If
    End Sub

    Private Sub MenuItem10_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem10.Click
        If OpenPort("COM8:") = True Then
            ClearPortChecks()
            MenuItem10.Checked = True
        End If
    End Sub

    Private Sub ClearPortChecks()
        MenuItem3.Checked = False
        MenuItem4.Checked = False
        MenuItem5.Checked = False
        MenuItem6.Checked = False
        MenuItem7.Checked = False
        MenuItem8.Checked = False
        MenuItem9.Checked = False
        MenuItem10.Checked = False
    End Sub

    Private Sub ClearBitRateChecks()
        MenuItem12.Checked = False
        MenuItem13.Checked = False
        MenuItem14.Checked = False
        MenuItem15.Checked = False
        MenuItem16.Checked = False
    End Sub

    Private Sub MenuItem12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem12.Click
        SerialPort.Settings.BaudRate = IO.Serial.BaudRates.CBR_300
        ClearBitRateChecks()
        MenuItem12.Checked = True
    End Sub

    Private Sub MenuItem13_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem13.Click
        SerialPort.Settings.BaudRate = IO.Serial.BaudRates.CBR_1200
        ClearBitRateChecks()
        MenuItem13.Checked = True
    End Sub

    Private Sub MenuItem14_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem14.Click
        SerialPort.Settings.BaudRate = IO.Serial.BaudRates.CBR_9600
        ClearBitRateChecks()
        MenuItem14.Checked = True
    End Sub

    Private Sub MenuItem15_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem15.Click
        SerialPort.Settings.BaudRate = IO.Serial.BaudRates.CBR_115200
        ClearBitRateChecks()
        MenuItem15.Checked = True
    End Sub

    Private Sub SerialPort_DataReceived() Handles SerialPort.DataReceived
        Dim Buffer(SerialPort.InBufferCount - 1) As Byte
        Buffer = SerialPort.Input
        'This is FAR from the best way to manage this data.  It is "quick and dirty."
        If Buffer.Length > 0 Then
            ScreenBuff.Append(Encoding.ASCII.GetString(Buffer, 0, Buffer.Length))
            Me.Invoke(New EventHandler(AddressOf DisplayData))
        End If
    End Sub

    Private Sub DisplayData(ByVal sender As Object, ByVal e As EventArgs)
        'This marshalls receive data from the thread context to the Windows Form STAThread context
        With txtTerm
            .Text = ScreenBuff.ToString
            .SelectionStart = .Text.Length
        End With
    End Sub

    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        If SerialPort.IsOpen Then SerialPort.Close()
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -