• ベストアンサー

COMポートから送られてくる情報を表示するプログラム

Fookyの回答

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.2

OSによってかなり変わるんじゃないですかね。 こういう、デバイスの操作っていうのは。 しかし、結局どのOSでもやるべきことは、 1 COMポートのハンドルの取得 2 接続されている機器に合わせてCOMポートのパラメータ設定 3 読みだし/書き込み じゃないでしょうか。 とりあえず、UNIX系のOSではこんな感じ。 ただし、/dev/ttyS1の部分は、OSによって かなり変化します。 int fd; struct termios term; char c; /* COM1と接続されているファイル(/dev/ttyS1)のオープン */ fd = open("/dev/ttyS1",O_RDWR|O_EXCL); /* COM1の現在のパラメータを取得 */ tcgetattr(fd,&term); /* 通信速度を9600ボーに設定 */ cfsetispeed(&term, B9600); cfsetospeed(&term, B9600); /* 1文字8ビット、ストップビットを2に */ set(term.c_cflag, CS8|CSTOPB); /* さらに必要な設定をしていく */ ..... /* 設定したパラメータを実際にCOM1に適用 */ tcsetattr(fd,TCSANOW,&term); /* 1文字読み込み */ read(fd, &c, 1); /* 1文字書き出し */ write(fd, &c, 1);

関連するQ&A

  • COMポートが表示されない

    デバイスマネージャーでポート(COMとLPT)を開くと、「LPT1」は表示されるのですが、「COM1」や「COM2」といったCOMポートが表示されません。 因みに接続している機器(自作品)につけているLEDはRS-232Cに接続すると点灯するようです。 今の時点ではRS-232Cで制御できるはずの機器を制御できないので、制御できるよう正常に戻す方法と「デバイスマネージャー」にCOMを表示させる方法をどなたかお教えください。

  • COM1ポート IRQが変わる

    RS232Cを使ってPCと制御機器の通信プログラムを作成しています。 使用言語はVC++6.0です。 CreateFile関数でCOM1ポートをOpenして使用したいのですが オープン出来ずエラーになります。 コントロールパネルのデバイスマネージャから COM1ポートのIRQを見ると4となっています。 (通常そうだと思いますが。) そこで、一度、COM1ポートを無効してPC再起動 再起動後、COM1ポートを削除してハードウエアをスキャン。 その後、COM1ポートが出ますが、その時IRQは7になっています。 その状態ではCreateFile関数を使ったCOM1ポートのオープンは 出来ます。 しかし、再度、PCを再起動するとIRQが4に戻って ポートが開けない状態になります。 また、ポートを削除して・・・IRQを7にするとポートが開ける。 再起動する度に変更したIRQが4になり、上手く使いこなせません この現象について、アドバイスいただける方いましたら よろしくおねがいします。

  • COMポート

    winXPのHOMEeditionを使っていますが デバイスマネージャにCOMポートがありません。 正確に言うとPRIUSにはありません。 LIBRETTOにはあります。 何か表示されないのは設定があるのでしょうか? FomaのデータをバックアップしたいのでどうしてもCOMポートの情報が必要なので宜しくお願いします。

  • 仮想COMポートの仕組みについて

    仮想COMポートの仕組みについて調査しています。 具体的には、仮想COMポートの仕組みを理解し、実際に実装ができるように調査しています。仮想COMポートの仕組みについて教えていただけないでしょうか。 また、仮想COMポートをC言語で実装する場合、参考となる文献や、Webサイトなどあれば教えていただけないでしょうか。 よろしくお願いします。

  • COMポートが開けません。

    Windows XP、VB6.0の環境で、 ラベルプリンタでラベル発行するプログラムを 作っています。 その際、COMポートを開こうとすると 「実行時エラー 8015 通信状態を設定できません。  通信パラメータのいずれかが不正である  可能性があります。」 というエラーが表示されます。 同じプログラムで他のマシンでは 問題なくCOMポート開けます。 何が不正なのでしょうか? どうぞ宜しくお願いします。

  • COM0COMのポートを増設することは可能?

    現在自分のノートPCにCOM0COMをインストールして、 仮想COMポート COM11とCOM12を作成して、仮想リンクしています。 http://homepage2.nifty.com/nonnon/Link/Null-Modem-Win7.html 例えば、 さらにCOMポートを増やして、COM14,COM15というのを増やす方法はありますでしょうか? ご存じの方いらっしゃいましたらご教授お願い致します。

  • COMポートとLPTについて

    まったくのど素人です。 仕事である外部機器にパソコンをケーブルでつないでデータを送信や受信したりしなくちゃいけないのですが、説明書に機器のCOMポート番号とパソコンのCOMポート番号を合わせてくださいと書いてありました。 COMポート1,2とかって何? USBをさす場所の違い? ケーブルの種類? 又、LPTポートって何?

  • COMポートについて

    WINDOWS98での通信COMポートについて教えてください。 使用したいと考えているモバイルノートPCにはRS232C用のポート がついていません。そこで、USB接続の変換ケーブルを使用 することにしました。 (1)変換ケーブルを接続した状態で、PCを立ち上げ、プラグアンドプレイで  ドライバのインストールを行いました。 (2)USB接続の変換ケーブルはCOM4ポートに自動で割り当てられました。 ある理由(ソフトのテストのため)によりこの自動で割り当てられたCOM4ポートを強制的に COM1ポートにしたいと考えています。 そのようなことは可能でしょうか? ちなみに現在COM1ポートには何も割り当てられていない状態です。 宜しくお願い致します。

  • COM1というポートは何に使われているのか?

    初心者でどこで質問したらいいのか分かりませんが、XPを使っているので、ここで質問させて頂きます。 質問1.デバイスマネジョーを開けてみたらCOMポートというのが沢山並んでいましたが、そも、このポートは何に使うものなんですか? 質問2.Faxモデムをインストールしましたら、COM3にインストールされました。不具合をなくそうとCOM3にインストールされていたものを、盲蛇に怖じずで、デバイスマネジャーでCOM1に移しました。更なる不具合が起こったので、元のCOM3に戻しました。すると、それまであったCOM1の「使用中」という文字が消えてしまいました。これは放置しておいても問題ないのでしょうか? どうすれば「使用中」という文字が表示されるようになるのでしょうか? 宜しくお願い致します。

  • Windows95のDOS窓でcomポートを使う

    古いマシンでRS-232C(COMポート)を使うDOSプログラムを動かそうとしています。 ですが上手くいかないの色々調べてみましたら、どうやらCOMポートが使用でき無い様なのです。 modeコマンドで次のレスポンスでした。 ============================ C:\WINDOWS\mode COM1 不正なデバイス名です。 - COM1 ============================ Windowsソフト(Tera Term Pro)ではCOMポート使えてますので、ハードの不具合で無い様です。 どのようにしたらDOS窓からCOMポートが使えるようになるでしょうか? NEC mobioMX MB12CUDD1(Windows95) (リカバリディスクなどは紛失してしまったようです。)