OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

MSCommでoutputできない

  • すぐに回答を!
  • 質問No.151829
  • 閲覧数1208
  • ありがとう数6
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 75% (12/16)

VB6.0でMSCommを用いてシリアル(レーダとつながってる)にデータを送りたいんですがどうもうまく送れません.outputしてすぐoutbuffercountをチェックしてもcnt=0(cntは下記プログラム参照)のままでバッファにちゃんとデータが送れていないのでは?と悩んでいます.
なにが原因なんでしょうか?もしくは,他に送信バッファにデータが届いてるかどうかをチェックする方法などご存知でないでしょうか?よろしくおねがいします.



MSComm1.CommPort = 2
MSComm1.InputMode = 1
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True

MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0

Dim s(16) As Byte   ’←以下のデータを送りたいんですが・・
s(0) = &H2
s(1) = &H0
s(3) = &HA
s(4) = &H0
s(5) = &H20
s(6) = &H0
s(7) = &H53
s(8) = &H49
s(9) = &H43
s(10) = &H4B
s(11) = &H5F
s(12) = &H4C
s(13) = &H4D
s(14) = &H53
s(15) = &HBE
s(16) = &HC5

For j = 0 To 16
MSComm1.Output = s(j)
cnt = MSComm1.OutBufferCount
Next j

End Sub



あと,レーザーの説明書に
・レーザーに送信する2バイト間の時間間隔は6msを超えないように
・レーザーに送信する2バイト間の最小時間は55μs以上としてください
という記述があるんですが,これを満たしてないという可能性も疑ってます.
どうやれば,この時間のタイミングで送れるんでしょうか?

長くなってすいません,なにかヒントなどおねがいします.
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 26% (267/1014)

DTR が、下がってたりしてませんか?
ケーブルの結線図もありそうです。確認して下さい。

>・レーザーに送信する2バイト間の時間間隔は6msを超えないように
 だって、キャラクタ間まで注意書きつきですから・・

>どうやれば,この時間のタイミングで送れるんでしょうか?
 このボーレートで、このプログラムなら時間関係はOKと思います。

>チェックする方法などご存知でないでしょうか?

PCを2台使ったり、クロスケーブルでCOM1とCOM2を接続する手や、モデムとATコマンド/レスポンスをやりとりする方法があります。

私もはじめ、MSComm の自分勝手な動作には、参ったことがあります。
MSCommのプロパティページの内容、RTS/CTSの設定など、補足があれば、詳細に回答できるかも知れません。

とりあえず、OnCommイベントの中で、送信(した後)のイベント種類を確認してみて下さい。
また、
MSComm1.Output = chr$(s(j))
と文字列で送信した場合の結果もわかるとなおよいです。

>Output プロパティ
>送信バッファに文字列を書き込みます。
なので・・
お礼コメント
snuf

お礼率 75% (12/16)

どうもありがとうございます。2日ほど留守にするので、その後、ご指摘いただいた点について調べてみたいと思います。また、よろしくおねがいします。
投稿日時 - 2001-10-16 20:21:55
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル10

ベストアンサー率 17% (31/179)

回答ではないですが参考までに COMが2個あるのならCOM1とCOM2を クロスケーブルで繋いで片方でフリーのターミナル ソフトを動かせばデータが来てるかどうか判ります。 ...続きを読む
回答ではないですが参考までに

COMが2個あるのならCOM1とCOM2を
クロスケーブルで繋いで片方でフリーのターミナル
ソフトを動かせばデータが来てるかどうか判ります。
お礼コメント
snuf

お礼率 75% (12/16)

遅くなって申し訳ありません.アドバイスありがとうございました.
原因が判明しましたので締め切らせていただきます.
どうやら原因は使用していたPCカードが特注で,ボーレート設定を2150にしなければいけないということでした.
しかし,VBでどうやって2150bpsを設定するのかわからず困っています.
別の質問として「ボーレートを2150にしたい!」を投稿させてもらいました.
また,よろしくおねがいします.
投稿日時 - 2001-10-22 12:12:26


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ