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のプロパティでポート番号の指定がされている。