• 締切済み

IrDA通信データの収録方法

こんにちは、いつもお世話になっています。 仕事でIrDA通信で受信したデータをリアルタイムで収録するという、私にとってはかなり上級の仕事をおおせつかってしまいました。 ある計測機器から得る信号をIrDAポートからPCに取り込み、少なくとも送信側(計測機器)の転送周波数で記録したいのです。こういった収録用のソフト(ターミナル?)はたとえばC++なんかでも作成できるのでしょうか?計測機器のメーカーに問い合わせたところ、「ターミナルがあれば記録は可能」といっていました。 計測機器にはIrDAの送信ポートがついています。手持ちのPCも赤外線受信ポートがついていて、計測機器を認識しています。やや古いのが心配です。OSは98で、現実問題としてこれ以上アップグレードするのは不可能と思われます。また、手元にある使えそうなソフトとしては、LABVIEWとBOLAND C++があります。このようなプログラミングor制御ソフトで収録ターミナルを作成することができるでしょうか?ご経験がおありであれば、ぜひアドバイスいただければと思います。仕事でMATLABを使っていてこれは結構使えるほうだと思いますが、C++などプログラミングはかなりの初心者です。LABVIEWはその中間あたりです。こんな私にもこの仕事はやり遂げることができるでしょうか?アドバイスよろしくお願いします。

noname#105027
noname#105027

みんなの回答

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.2

>それが115kHzとかで可能ということですか 通信ですから、115Khzという単位の概念がよくわかりません。 紹介したサイトに書いてある115kというのはシリアルの転送レートですから 115kbpsになります。 パソコンとシリアル接続した時の転送速度です。 計測器が125Hzでスキャンされ、すべてのデーターを吐き出したとき 1データーの長さが例えば10桁のアスキーに変換されるわけです。 タイミング的には8msに一回です。 時間的にはかなりキワキワだと思います。 過去の実績ではテスト的に14msに一回はやった事があります。 稼動実績では60msに一回を延々ログするシステムはあります。 (Pentium500Mhz機) 経験的にはシリアル転送だと秒間20回(50ms)が限度だと思います。 IrDA直接なら最高4Mでます 過去USB(11M)を利用した通信では秒間200回(5ms)は可能でしたけど 通信のオーバーヘッドも含めて考えた場合、実績が無いので「出来ます」と回答できません。 処理が可能として積算データは単純に掛け算です。 1回の転送データー量をまず調査して 例えば1転送に10文字送るなら、125Hzなら秒間1250文字(約1KB)になるわけです。 1800秒なら概ね1.8MBになりますよね。 毎回データーをHDDに書き込んでいたら、書き込みのオーバーヘッドが出るから 3MB程度配列を確保して、メモリー上にデーターを展開して 計測が終了してから、全部HDDに書き込んだほうが早いです。 出来るだけメモリーを搭載して 仮想メモリー無しにしてしまう方法もしています。 125Hz程度のスキャンで、計測器がアナログデータを出しているなら アナログ入力でログしたら間に合います、 この辺のアナログ入力カード使ったほうが楽ですよ http://www.interface.co.jp/catalog/selection/adda/adda_csi.asp?btn=1&category=%&isolate=%25&channel=%&input_output_type=%&control=%25&resolving_power=%&sync=%25&comtype=%25&explanation=%25

noname#105027
質問者

お礼

再度ご回答いただき、本当にありがとうございます! だんだんわかってきました。詳しくご説明いただきありがとうございました。 >計測器がアナログデータを出しているなら 実は計測器にはアナログの出力ポートがないのです。アナログ出力がついていれば、手元にkeyenceのA/D変換機があるので結構簡単にできそうなのですが…(泣) やっぱり、赤外線の受信ポートを購入して付属の記録ターミナルを使うのがよさそうですね・・・。 もしもプログラミングで作れる方法をご存知でしたら、私の後学のためにもまたアドバイスをお願いいたします。 丁寧なアドバイスとHPをご紹介いただきありがとうございました。勉強になりました!

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.1

たとえば http://www.cfcompany.co.jp/product/Actisys/ir220.htm 使えば、RS232Cで入ってくるので、簡易的ならハイパーターミナルでもログが取れますよ。 こんな方法はだめですか??

noname#105027
質問者

お礼

ご回答ありがとうございます!! 回答がつかないかも、と思っていたので、本当にありがたい限りです。 なるほど、こんな感じのを探しています。しかし実際すでに受信も送信もポートはあるので、手持ちのもので作れたらなー。。。などと結構無理なことを考えています。 ところで、お恥ずかしいのですが通信に関して全く基礎知識がないのでお時間の許す限りでよろしいので教えていただけないでしょうか。 ご紹介いただいたHPにある、「データシンクロ」とは、リアルタイム収録のことでしょうか?それが115kHzとかで可能ということですか?もしもそうだとすると、ハイスペック過ぎてPCの記録容量がついていかないような気がします。だいたい1kHzぐらいのサンプリングレートで十分なのですが・・・。送信側も125Hzぐらいなので。そのかわり1800秒とか連続記録したいのです。こんなわがままをかなえられる方法ありませんかね・・・(>_<。)なにかご経験やアイディアをお持ちでしたら、些細なことでもかまいませんので、是非、アドバイスをお待ちしています。

関連するQ&A

  • 赤外線通信 ケータイ⇒PC

    当方ブログをやっていまして、ちょくちょく撮った写真を素早く転送したいと思い、赤外線でPCに受信させようとしています。 USBの赤外線受信ポートを増設しようと、 調べたのですが、とても古い記事(古い周辺機器)ばかりが検出され、 現在のケータイがそれに対応しているかがわかりません。 昔よりあるIrda1.1などの規格のUSB赤外線受信ポートでも、 現在のケータイの赤外線を受信できるでしょうか? 使用しているOSはWIN XPです。 ケータイはAUのW43SAで赤外線送信機能はあります。 よろしくお願いします。

  • UDP通信について

    はじめまして。 UDPの通信について教えて下さい。 送信元ポートと宛先ポートについてです。 機器A-機器Bで通信をする場合です。 両方の機器で同じアプリ(ポート番号10000)が起動しているとします。 機器Aから機器Bのアプリに対してフレームを送信した時、 送信元ポートはランダムな値(仮:5000)で宛先ポートは10000になると思います。 機器Bでフレームを受信した後、応答フレームを送信する時には 送信元ポート10000、宛先ポート5000になると思います。 機器Aで起動しているアプリのポート番号は10000ですので機器Bからの応答フレームの宛先ポート5000とは一致しません。 この場合、どのようにソフトは判断しているのでしょうか? 組み込みで評価ボードに同じアプリを実装してお互いに通信させるのが 目的です。

  • ハイパーターミナルとMSCommとの通信の違い。

    今回USB→RS232Cの変換ケーブルを使いRS232Cを追加したのですが 起動した最初の段階でMSCommを使い通信をしようとすると 何故かコマンドの送信ができません。(受信は行える) (通常のポートを使用した際は正常に動作します。) しかし、ハイパーターミナルを使い通信をすると正常に送信ができます。 ちなみに、ハイパーターミナルで通信をした後はMSCommを使った送信でも 正常に行えます。 どなたかこのような現象の解決方法を教えてください。 又、VBからハイパーターミナルを使いコマンドを送信するやり方がわかる方が いらしたら教えていただけないでしょうか?

  • RS232 通信方法

    パソコン(以下 PC_a) ⇔RS232c⇔ パソコン(以下 PC_b) port:comm1 port:comm3 ハイパーターミナル           VB で通信をしたいと考えております PC_a と PC_b のポート番号に関してはデバイスマネージャにて確認 致しました  またPC_aで用いておりますハイパーターミナルの設定は  (1)ビット/秒  9600  (2)データビット  8 (3)パリティ   なし  (4)ストップビット 1  (5)フロー制御  ハードウェア にしております  次にPC_bでございますが ActiveComm(ツール)を用いて [RS232通信方法(2)(参照)]を実行しておりますが、  送信、受信共に出来ません。どうしでしょうか? 教えてください。よろしくお願い申し上げます

  • キーボードウェッジ機能付きのターミナルソフト

    RS232Cの通信I/Fを持った計測器とPCのUSB仮想COMポートで通信をするために、キーボードウェッジ機能を持ったターミナルソフトを探しています。 計測器はUSBハブ+USBシリアル変換ケーブルを介して複数同時接続しますが、一度に通信するのは特定の1台のみです。 割り当てたショートカットキーで特定の計測器(仮想COMポート)に予め登録したデータ送信要求コマンドを送出し、帰ってきた測定値をキーボードウェッジ機能でアクティブウインドウに出す、というものです。 キーボードウェッジ単体やターミナルソフト単体は見つかるのですが、両方を兼ね備えたソフトが見つけられません。有償でも良いので紹介いただけると助かります。 上記仕様そのままでなくとも、近いものがあればご紹介ください。

  • 送信先IPアドレス取得方法について

    こんにちは。 VC++.NET2003とWinsockを利用しネットワークプログラミングの勉強を行っています。 以下のようなクライアント・サーバー型のプログラムを作った際、 ・クライアント側でサーバー(送信先)のIPアドレスとポート番号を指定。 ・サーバー側でポート番号を指定。 というふうに、クライアント側で(サーバー)送信先のIPアドレスを指定しています。 例えば・・・ [送信端末-C-受信端末]というように、 送信端末と受信端末との間にC端末をおき、C端末において送信端末で指定した受信端末のIPアドレスを取得することは可能でしょうか? 取得方法があれば教えて頂けないでしょうか。 よろしくお願いします。

  • PICのシリアル通信のWIN_APIプログラムについて

    PICとPCとのシリアル通信の WIN_APIプログラムについてどなたかご存知の方は教えてください. 現状,API関数を用いて,シリアル通信をできるようにプログラムを作成したのですが,送信はできるのですが,受信データが"C0"をPICから送付しているのに,"FFFFFFFC0"と受信されてしまいます. 先の"FFFFFFF"をとるにはどうしたらいいでしょうか? 現状:受信プログラム // シリアルポートに対する書き込み(PICに送信命令) WriteFile(hCom, w_com_Buf,lstrlen(w_com_Buf), &n, 0 ); // シリアルポートに対する読み込み ReadFile(hCom, s_com_Buf,1, &n, 0 ); mikroC上のUSARTターミナルでは送受信は適正で, 上記のプログラマで 送信はPIC側で受信していることは7SEGを使って確認しています. しかし,PC側では, s_com_Buf[0]には,"C0"が入ったり,"FFFFFFC0"が入ったりします. PICは現状,多チャンネルAD変換をしているため, 送信に対する受信データのやり取りができなくて困っています. どなたか先生教えてください.

  • TeraTerm シリアル通信の垂れ流しデータ取得

    ターミナルソフト「TeraTerm」の「マクロ」を使用して、RS-232C 経由でシリアルポートに接続された端末機器(測定器)と通信するソフトウェアを開発中です。 「マクロプログラム」の中から「あるテキストデータ」を送信(sendln)すると、端末機器からは時々刻々の測定値データを1行ごとに連続して垂れ流しで返してくれる。 この垂れ流れてくるデータを取り込んで、ある種の判断処理プログラムを制作したいのだが、この手の言語に不慣れなこともあって、相談させてください。 一般的な場合、コマンド「recvln」を発行するとシステム変数「inputstr」に受診データが格納されるのだけど、今回のような垂れ流されるデータのの場合も同じようなことをするのだろうか? コンソールに時々刻々と垂れ流しデータが表示されているのだから、何か重複してしまう操作のように思えてならない。 もっとスマートな処理方法があるように思えてならない。 なるべくリアルタイムに近い処理をさせたいので、無駄な処理は省きたい。 ご教授やアドバイスをいただければ助かります。

  • シリアル通信ができません

    VBの5.0を使っています RS232Cケーブルで計測器の制御・情報取得を目指していますが上手くいきません このサイト(http://spectrum123.at.infoseek.co.jp/vb/vb_5/vb_5.htm) を参考にしています 現状では実行すると制御機器が「Remote Mode」を表示するので何らかの信号が出ていることは間違いないのですが 計測器の説明書にしたがってコマンドを送信してもリアクションがありません どうか、よろしくお願いします

  • ComPortキャプチャについて

    ComPortキャプチャ(試用版)でCOMポートの送受信データを見たいのですが、 「comポートは開かれています」な警告がでてデータを見れません。。 状況としては、計測機器にRS232Cケーブルをつなぎ、USB変換アダプタを つけてWindowsPCに接続しています。 VectorでRS232Cのテストツールをつかって、テストデータの送受信が できているので、接続などは問題ないです。 そこで、計測機器用の専用ソフトがどのようなデータを送受信しているのか をみたくて、さがしたところ「ComPortキャプチャ」がよさそうなので使いました。 計測機器につないで、使用中のデータを監視したいので、「comポートは開かれています」の 警告はもっともなんですが、その開かれたポートの監視というのを 出来るソフトはないのでしょうか? それともComPortキャプチャの操作方法がおかしいのでしょうか? なにかわらをもすがる思いです。知っていることがあれば教えてください。 よろしくお願いします。