C言語からの移植でハマっています。

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
初心者13号

C言語からの移植でハマっています。

#1 投稿記事 by 初心者13号 »

RS232C通信のプログラムを書いています。
やりたいことはRS232Cで頻繁に受信するなかかなら、目的のデータを受信したら0.01秒で早く、(普段はあまりCPUに負荷をかけずに)処理したい。LF(&ha)受信でイベント処理をします。

実践コードモジュール [AB4]RS232C通信プログラム(ソース) kadushi様のコードではタイマーによるイベント受信になってしまうので使えませんでした。

理想的な解説したページを見つけました。
http://www.med.osaka-u.ac.jp/pub/anes/w ... ition.html

AB4に移植してみましたが、クラス処理の箇所で迷宮に入り、訳がわからなくなってしまいました。
色々試したりしたのですが、どうしても出来ませんでした。

本当にずうずうしいお願いなのですが、どなたか教えていただけませんか?
C言語も、クラスもよくわからいので、極力オリジナルに近い様に書きました。
AB5で書けば、簡略化できたと思いますが、頻繁にハングし使えませんでした。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#2 投稿記事 by イグトランス »

TSerialThreadクラスというものを使っていますが,これはBorland C++ Builder固有のものなので,ABでは使えないというわけです。やるとしたら,スレッドを作るという点でCreateThread関数が相当するものになりますが,TSerialThreadがどのような機能を持っているのかによって代替が難しいこともあると思います。
ゲスト

#3 投稿記事 by ゲスト »

Threadオブジェクトですね。VCLを除いて見てみましたが解読は挫折しました。
しかしCreateThreadとセフォマでなんとかなりそうな感じです。
NoWest
記事: 264
登録日時: 2005年5月31日(火) 10:52
お住まい: 高知
連絡する:

#4 投稿記事 by NoWest »

ざっとプログラムを見た感じ、

単純にシリアル(COM)通信の非同期処理をサブスレッドを使って処理するだけのようですから
わざわざTThreadクラスからTSerialThreadを派生して何たらというものは必要ないはずです。


とりあえずはRS232C通信の非同期処理をプログラムを作成し
そいつをCreateThread関数で作成したスレッド内に置けばよいかと思います。

と、いうことで、その辺の解説しているサイトを探したんですが、あんまりないですね。
初心者13号さんが見つけたサイトが一番まともだと思います。
返信する