Visual basic シリアルポートのサンプル

■SerialPortのサンプル。
Visual StudioのツールボックスにSerialPortがあったので、少し試してみる。前のBluetoothで見た内容も少し絡むところ。

ツールボックスのSerialPortを追加するとFormの外で追加される(SerialPort1)。これを使って、書き込みと呼び出しのサンプルを試した。


サンプルコードが下のもの。Visual Studioのデバッグで実行した後、「Connect_Send」ボタンを押して、下の Sub Button1_Click が実行される。呼び出し部分(Sub Read)は別スレッドで実行して待機。com_.WriteLine(a) で文字列を書き込み、com_.ReadLine() でそれを呼び出してコンソールに表示させる。

Imports System.Threading
Public Class Form1

    Dim com_ As IO.Ports.SerialPort = Nothing
    Dim readThread_ As Thread = Nothing

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        com_ = SerialPort1
        com_.Open()

        Console.WriteLine("Port Name: " + com_.PortName)
        Console.WriteLine("Is Open?: " + com_.IsOpen.ToString)
        readThread_ = New Thread(New ThreadStart(AddressOf Read))
        readThread_.Start()
        Dim a As String = "1234"

        Try
        com_.WriteLine(a)
        Catch ex As Exception
            Console.WriteLine("write_error" + ex.StackTrace)
        End Try
        readThread_.Join()
    End Sub

    Public Sub Read()
        While True
            Try
                Dim str As String = com_.ReadLine()
                Console.WriteLine(str)
                Exit While
            Catch ex As TimeoutException
                Console.WriteLine("error" + ex.StackTrace)
            End Try
        End While
    End Sub
End Class

COMポートを設定した後の実行結果が下のもの。書き込んだ1234がコンソールに表示されている。


やっていることは難しい話でないけど、COMポートの設定がよく分からなかった。Tera Termで受信設定しても出てこないし、そもそもCOMポートを追加する方法もBluetoothのところぐらいしか知らなかった。


シミュレータできるソフトウェアをインストールして試したらできた。デバイスマネージャーではシミュレータのCOM1が表示されている。


ちなみに、SerialPort1のプロパティでポート番号の指定がされている。