tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: 続きです (通信について)
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。