シリアル通信で同期通信を行うようにするには?

解決


mom  2009-08-24 23:49:36  No: 101942

はじめまして。
いつも参考にさせていただいております。

VB6.0でMSCommを使用した単純なシリアル通信アプリを作成しています。
このプログラムに同期通信を行うように処理を追加しようと調べていますが、
具体的にどのような処理を追加したらよいのかがわかりません。

ソースは↓のサイトにて記載されているものを少し改造したものになります。(ポートオープンをボタンクリック後ではなくフォームロード時に行うようにしたぐらいです)
http://spectrum123.at.infoseek.co.jp/vb/vb_5/vb_5.htm

お忙しい中申し訳ありませんが、宜しくお願いします。


オショウ  2009-08-25 00:57:20  No: 101943

同期通信の意味ですが・・・

通常RS-232Cは非同期通信方式であり、同期通信ではありません。

で、この場合の同期通信とは、送受信の同期化と言う意味なのか
規格としての同期通信なのか、どちらでしょうか?

同期通信用のハードウェアも当然ありますので、明確にしないと
どうしたいのか解りません。

因みにハード的な同期通信の場合、MSComm32は使えません。

以上。


mom  2009-08-25 05:12:13  No: 101944

>オショウさん

RS-232Cの事について勉強不足で、申し訳ありませんでした。

同期通信については、
送受信の同期化についての処理を追加したいと思っています。


れお  2009-08-25 09:20:04  No: 101945

おしょうさん>japascriptのハンゲームは、何通信になるんですか?
リアルタイムですかね?


オショウ  2009-08-25 16:05:57  No: 101946

同期的な通信のコーディングでは・・・
MSComm32のOnCommルーチンを使わずに、

MSComm1.Output
MSComm1.Input

を使って、出力に対する応答を受信しながら
と言う方法になるかと思います。

この場合、厄介なのは、何バイト返信がある
か解らない場合やデリミタまでの全ての受信
データを取り込むと言うアルゴリズムを書く
のが少々厄介かと・・・

受信データ数は、MSComm1.InputLen で取れる
はずですので、まずは、簡単な送受信の機能
を書いてテストしてみることでしょう。

通信ポートの設定等はお解りなんでしょう?

MSComm32で検索すれば、まだそこそこヒット
するので、サンプルコードも入手できるかと
思いますが・・・

※  何故、まだVB6? VB.NETではないのですか?

以上。


オショウ  2009-08-25 16:13:41  No: 101947

れおさんへ
ハンゲームが何通信と聞かれても・・・
通信とは、AとBとの2者間で、決められたプロトコルに
従ってやりとりがあるものになります。またその通信の
物理的な方法に何等かのハードウェアを使用して行うの
が『通信』となります。

聞かれているハンゲームが、何通信か?
との問いでは、対象としているものは何になるのでしょ
うか?

『ネットワーク通信』と答えるのが普通のように思いま
すが、ゲームプログラミングでは、ゲームを行う為に何
等かのデバイスとのやり取り(入出力:通信)を行わな
いと実現できません。

ゲームプログラムからすれば・・・
デバイスとの通信は、いろいろ存在しますが・・・
さて、何を聞きたいのか解りません。

※  リアルタイム通信・・・
    抽象的ですが、外れているわけでもないですネ!

以上。


mom  2009-08-27 19:35:40  No: 101948

>オショウさん

返信が遅れて申し訳ありませんでした。
MSComm32で検索してよいサンプルコードを入手できたので、
これを元に頑張ってみます!
ありがとうございました!

ちなみにVB6なのは、.netにまだ慣れていないので
なんとなくVB6で作っているだけです。
個人的に、.netより6が好きなだけなんです(笑)


mom  2009-08-27 19:36:27  No: 101949

すいません、[解決]をつけておくの忘れました…


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加