激凹みから立ち直る方法

'Button1を押したらポートオープン
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'シリアルポートを設定。
SerialPort1.PortName = SerialPortComboBox.Text
SerialPort1.BaudRate = SerialBpsComboBox.Text
Select Case SerialParityComboBox.Text
Form3.SerialPort1.Parity = IO.Ports.Parity.None

'データ長
SerialPort1.DataBits = SerialDataBitsComboBox.Text

'RTSラインを有効にする
SerialPort1.RtsEnable = True

'送信タイムアウト
SerialPort1.WriteTimeout = 3000

Try
'ポートをオープン
SerialPort1.Open()

'いざ送信
'SerialPort1.Write(Chr(&HC))

'ケーブルが外れた場合などのタイムアウトエラーなら、
Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "シリアル通信エラー")
SerialPort1.Close()
Exit Sub

End Try

'送信バッファが空になるまで待って、
While SerialPort1.BytesToWrite > 0
My.Application.DoEvents()
End While

''''''''''''文字送信

'シリアルポート送信データをSJISに指定
SerialPort1.Encoding = System.Text.Encoding.GetEncoding(932)

Dim Settei As String

'送信文字代入
Settei = "A.1=" & vbCrLf

'いざ送信
SerialPort1.Write(Settei)

'送信バッファが空になるまで待って、
While SerialPort1.BytesToWrite > 0
My.Application.DoEvents()
End While

End Sub

'文字受信
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

Dim strDataReceived As String
Dim add As New AddDataDelegate(AddressOf AddData)
Try
strDataReceived = SerialPort1.ReadLine
Catch ex As Exception
strDataReceived = ex.Message
End Try
TextBox1.Invoke(add, strDataReceived)

End Sub

/////////
文字を送信した後に相手から帰ってきます。
送信した後の受信の部分ですが、これで正しいか教えて頂きたいです。

A 回答 (1件)

一見、良さそうに見えます。



例外をスローする様に、故意に不具合状態を作って思い通りのパスを通っているかを確認する必要がありそうです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!