シリアルポートを介してコンピューターにデータを送信しています。したがって、データが上記のポートに到着したらロードされるVBNetプログラムをロードしたいと思います。つまり、プログラムはポートに到着するデータによってトリガーされます。
どうすればそれを実装できますか?
シリアルポートを介してコンピューターにデータを送信しています。したがって、データが上記のポートに到着したらロードされるVBNetプログラムをロードしたいと思います。つまり、プログラムはポートに到着するデータによってトリガーされます。
どうすればそれを実装できますか?
これを試して。3 バイトが受信されると仮定します。送信するバイト数に合わせて変更する必要があります。Mark が示唆するように、Process を使用してプログラムを開始します。または、シェルを使用することもできます。
Imports System.IO.Ports
Public Class COMControl
Private WithEvents comPort As SerialPort
Public Sub New(comPortNumber As Integer)
comPort = New SerialPort
With comPort
.BaudRate = 9600
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.DataBits = 8
.PortName = "COM" & comPortNumber.ToString
.ReceivedBytesThreshold = 3
.Open()
End With
End Sub
Private Sub comPort_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles comPort.DataReceived
If comPort.BytesToRead = 3 Then
Dim by(comPort.BytesToRead - 1) As Byte
'Read the bytes from the port...
comPort.Read(by, 0, comPort.BytesToRead)
'...into an array of bytes
Dim byList As New List(Of Byte)
byList.AddRange(by)
Dim inp As String = System.Text.Encoding.ASCII.GetString(by)
Select Case inp
Case "P01"
Process.Start("PO1.exe")
Case "P02"
Process.Start("PO2.exe")
End Select
End If
End Sub
End Class