DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB6のMSCommを使用して「0xE0」が送信できません。

環境/言語:[VB6]
分類:[VB6以前]

【解決したい問題】
VBのコンポーネントMSCommを使用してRS422通信をしたいと思っています。
その通信処理でチェックサムが1byteあるのですが、その1byteの結果が224〜255だとチェックサムの値が0として送信されてしまいます。何か回避することはできないのでしょうか?(224〜255の範囲外だと正常に送信できます。)お手数ですがご存知でしたらご教授ください。

【解決するために何をしたか】
下記ロジックで動かしています。BCCの箇所は224と固定にしてみましたが、COMポートを確認しても224(0xE0)ではなく0(0x00)が送信されてしまいます。223(0xEF)の場合にはきちんと送信されます。
  MSComm1.CommPort = 9
MSComm1.Settings = 9600,n,8,1
MSComm1.Handshaking = comNone
MSComm1.RTSEnable = True
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
SendData = Text1.Text
MSComm1.Output = Chr$(&H2) & SendData & Chr$(224) & Chr$(&H3)
今回の場合にかかわらず、データは文字列ではなくバイト配列で扱ったほうがよいです。

http://support.microsoft.com/kb/411403/ja
■No25248に返信(まどかさんの記事)
> 今回の場合にかかわらず、データは文字列ではなくバイト配列で扱ったほうがよいです。
>
> http://support.microsoft.com/kb/411403/ja
>

バイト配列で扱ったら上手くいきました!
ありがとうございます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板