タイトル | : Re^3: 続きです (通信について) |
記事No | : 12047 |
投稿日 | : 2008/04/19(Sat) 02:35 |
投稿者 | : Starfish |
> K.J.K.さん、nobuさんありがとうございます! > さっそく試してみます! > おそくなってすみませんでした。。。 > > nobuさんかぜお大事にしてください。 > よくなったらまた見てください!!
K.J.K.さんが指摘されているように、バイナリデータを扱うには Byte型の変数を使う必要があります。
VVさんのように文字列で処理をすると、Chr関数でAnsiからUnicodeに 変換されます。また、コミュニケーションコントロールで出力するときに、 UnicodeからAnsiに変換されます。テキストデータであれば、この2回の変換で 元のデータに戻りますが、バイナリデータは元のデータに戻らないので 正しいデータが出力されません。
参考までに、マニュアルを参考に直してみました。
' 周波数変更 Private Sub Command1_Click() Dim bytData() As Byte
MSComm1.InputMode = comInputModeBinary MSComm1.CommPort = 1 MSComm1.Settings = "1200,N,8,1" MSComm1.PortOpen = True ReDim bytData(10) As Byte bytData(0) = &HFE bytData(1) = &HFE bytData(2) = &H60 bytData(3) = &HE0 bytData(4) = &H5 bytData(5) = &H1 bytData(6) = &H46 bytData(7) = &H0 bytData(8) = &H0 bytData(9) = &H0 bytData(10) = &HFD MSComm1.Output = bytData MSComm1.PortOpen = False End Sub
' FMモード Private Sub Command1_Click() Dim bytData() As Byte
MSComm1.InputMode = comInputModeBinary MSComm1.CommPort = 1 MSComm1.Settings = "1200,N,8,1" MSComm1.PortOpen = True ReDim bytData(6) As Byte bytData(0) = &HFE bytData(1) = &HFE bytData(2) = &H60 bytData(3) = &HE0 bytData(4) = &H6 bytData(5) = &H4 bytData(6) = &HFD MSComm1.Output = bytData MSComm1.PortOpen = False End Sub
|