F2機能ボタンのソースコード
プロンプト無しチャットモード(D)が最も使用しやすいモードですが、標準では日本語文字列に対応していないようです。しかし
、パソコン側のプログラムで日本語文字列に対応可能とすることができます。
Private Sub ButtonF2_1_Click(sender As System.Object, e As System.EventArgs) Handles ButtonF2_1.Click
Dim SendByte(256) As Byte
'Shift JISとして変換
SendByte = System.Text.Encoding.GetEncoding(932).GetBytes(txtData.Text)
Dim SendText As String = ""
Dim i As Integer
For i = 0 To SendByte.Length - 1
SendText = SendText & Hex(SendByte(i))
Next
B_F = True
SerialPort1.Write(SendText)
End Sub
Private Sub SerialPort2_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort2.DataReceived
Try
Dim ReceivedText As String = SerialPort2.ReadExisting()
If B_F Then
Dim str As String = ConvertStr(ReceivedText)
SetText2(str & vbCrLf)
B_F = False
Else
SetText2(ReceivedText)
End If
Catch ex As Exception
btnClose2_Click(Me, e)
End Try
End Sub
Function ConvertStr(InText As String) As String
Dim i, wk
ConvertStr = ""
For i = 1 To Len(InText) Step 2
wk = Val("&H" & Mid(InText, i, 2))
If wk > 127 Then
wk = Val("&H" & Mid(InText, i, 4))
i = i + 2
End If
ConvertStr = ConvertStr & Chr(wk)
Next
End Function
* Private Sub ButtonF2_1_Clickボタンでは、入力された日本語文字列をShift JISとして変換し、さらに16進数の文字列に変換して送信します。
*Private Sub SerialPort2_DataReceivedでは、受信した16進数の文字列を16進数に戻して、txtDataReceived2に表示します。
*このサンプルプログラムを応用すると文字列送信でバナリーデータの送信が可能となります。(若干の修正が必要となります。)