トップ回答者
シリアルポートでバイナリデータを1バイトだけ送る方法を教えて下さい

質問
回答
-
スタートビットやパリティを付けたくない、という意図かと思っていたのですが、Option Strict Off にしているためですね。
SerialPort.Write メソッドには、String 1つを取るメソッド、Byte[], int, int の3つの引き数を取るメソッド、Char[], int, int の3つの引き数を取るメソッドの3つのオーバーロードがあります。ここで「SerialPort1.Write(a)」と引き数を1つだけ指定したために Byte 型の変数 a の内容が '1' という String 型に変換されてしまった、と。もし、Option Strict On にしていたら、「SerialPort1.Write(a)」がコンパイル段階で「一致するオーバーロードがない」というエラーになって、指定の仕方が不味いとわかったでしょう。
というか、説明書を読みましょう。そうしたら、1週間以上も解決しないままなんてことはなかったと思いますよ。
Jitta@わんくま同盟
- 回答としてマーク AzuleanMVP, Moderator 2012年10月11日 14:11
すべての返信
-
スタートビットやパリティを付けたくない、という意図かと思っていたのですが、Option Strict Off にしているためですね。
SerialPort.Write メソッドには、String 1つを取るメソッド、Byte[], int, int の3つの引き数を取るメソッド、Char[], int, int の3つの引き数を取るメソッドの3つのオーバーロードがあります。ここで「SerialPort1.Write(a)」と引き数を1つだけ指定したために Byte 型の変数 a の内容が '1' という String 型に変換されてしまった、と。もし、Option Strict On にしていたら、「SerialPort1.Write(a)」がコンパイル段階で「一致するオーバーロードがない」というエラーになって、指定の仕方が不味いとわかったでしょう。
というか、説明書を読みましょう。そうしたら、1週間以上も解決しないままなんてことはなかったと思いますよ。
Jitta@わんくま同盟
- 回答としてマーク AzuleanMVP, Moderator 2012年10月11日 14:11
-
解決されているようでしたので、こちらで勝手ながら参考になると思われる投稿に回答としてマークをさせていただきました。
解決された際は、役に立った投稿に対して回答としてマークを設定していただければ、解決済みと言うことがほかの方にもわかりやすくなりますし、同じ問題に困ったほかの方にも役に立った投稿というのがわかりやすくなりますので、ぜひ設定していただければと思います。- 編集済み AzuleanMVP, Moderator 2012年10月11日 14:15