|
■No89696 (かずま さん) に返信 > SerialPortクラスのwriteメソッドにて > 下記のコードで送信をしているのですが、&H6が6と受信側に認識される。
プロジェクトのプロパティの「コンパイル」タブで、 Option Strict を On に設定して開発されることをお奨めします。
コードに誤りがあるとエラーが表示されますので、 今回のような問題を事前に見つけやすくなります。
> dim ACK As Byte = &H6 > SerialPort.Write(ACK)
Byte 型の引数 1 つを受け取るオーバーロードは存在しません。
Write メソッドの引数定義は
・Write( str As String ) ・Write( buffer As Byte(), offset As Integer, count As Integer ) ・Write( buffer As Char(), offset As Integer, count As Integer )
の 3 種類です。
今回の場合、Option Strict が Off だったので、暗黙の型変換によって SerialPort1.Write( CStr(ACK) ) 相当すなわち SerialPort1.Write( "6" ) の意味で実行されてしまったのでしょう。
バイナリデータで出力したい場合には、「Byte の配列」を用いてみてください。 たとえば、 Dim ACK As Byte = &H6 Dim buffer As Byte() = { ACK } SerialPort1.Write( buffer, 0, 1) にしてみるということです。
|