• ベストアンサー

外部装置を扱うプログラムについて

C言語は基本的な標準関数が使える程度の者です。 外部装置(オシロスコープなど)を制御するプログラム(C言語、UNIX)のソースを解読しなければならないことになりました。GPIBインターフェースを使って制御しているみたいなんですがさっぱりわかりません。 インターフェースを使ったプログラムをするために必要な知識とはどんなものなんでしょうか?また良い参考書があれば教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

対象のソースによりますが、まずデバイスドライバ類がある(使っている)か、どうかで大きく違います。 GPIB自体はこういう世界では一般的なものですから、デバイスドライバがあってそれを使えばよいという可能性も高いですし, その場合はGPIBの使い方が判って,その外部装置とのやりといのソフトウェアレベルのプロトコルの話になると思います。 ただ、解読となると装置自体のドキュメント類が何もないという状況だとかなり難しいかも知れませんね。 その元のプログラムの機能,オシロの機能をまずしっかり把握すべきでしょうか。 デバイスドライバレベルまで読まなければならないとなると、かなり難しいと思います。 ハードウェア制御に関するプログラムの知識(割り込み,ポート、ベクタ,特権モード等?), ハードウェアそのものに関する知識なども必要でしょう。 参考になるのは、デバイスドライバそのもののプログラミングでしょうかね。 で、なければOS等を使わないような環境での直接ハードウェアを制御しているようなものとか。 まあ、とりあえずGPIBを使っているまでわかっているなら、GPIBに関することを調べてみては。

その他の回答 (2)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

低レベルIOの制御は、そのGPIBインターフェースのデバイスドライバのソース。 このIOでやりとりするデータ列のフォーマットは、外部装置の仕様書。 と最低限、この2つの情報源は用意したほうがいいですね。 次にプログラムの内部動作ですが、プログラムは以下の3つの基本的動作の組み合わせで成り立っているはずですよ。 1.ポートの初期化 2.送信データ列の作成->ポートへの送信 3.ポートから受信->受信データ列の解析 この3つの動作、それぞれにあるポートへの操作。このポートへの操作を行う関数を見つけるのが最初の作業かな? これにはデバイスドライバのソースが役に立つはずです。

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

外部機器の制御はたぶんほとんどが文字によるコマンド制御になると思います。 勉強する基本は文字列の入出力・特定文字の切り出しと分割。 通信制御(今回はGPIB)になるかと思います。 このあたりがわかりやすいかと。 http://www.interface.co.jp/reference/

参考URL:
http://www.interface.co.jp/reference/

関連するQ&A

  • GPIBとPCIインターフェイスについて

    装置の周辺機器の制御のために装置間のインターフェイスを作成しなければなりません。 自作装置はPCI、市販装置はGPIBで制御するのですが、 PCIとGPIB自体よくわかっていません。 インターフェイス・PCI・GPIBについて、どのようなものか、またどのように考えて理解したらよいかなど、教えていただけないでしょうか? 素人なもので質問が至らないかもしれませんが、よろしくお願いいたします。

  • 画像の縮小が遅いです 外部プログラムを使うことはできますか?

    phpで画像の縮小をしています。 imagecopyresampled関数でやっているのですが ファイルサイズが大きいと時間がやたらかかってしまいます。 画像をFormよりアップロードし、その後縮小という作業をしているのですが、 画像の縮小だけ、C言語などのほかのプログラムにさせようかとおもっています。 C言語を1から書くのは大変なので、そのような既製品(フリーウェアで)あるとおもうのですが、なんというソフトで行えばいいかわかりません。 unix上で画像の縮小をするプログラム があればおしえてください。 おねがいします。

    • ベストアンサー
    • PHP
  • 外部プログラム呼び出し

    C++でsystem関数を使用して外部プログラムを呼び出す方法を教えていただけないでしょうか?

  • 電子制御式燃料噴射のプログラム変更

    バイクの電子制御式燃料噴射装置を変更するにはプログラム書き換えればよいのでしょうか?またプログラム言語はC言語で書かれているのですか? 次回バイクを買い換えるときに電子制御式燃料噴射装置も自分でいじれたらおもいろいなと思いまして。

  • UNIX系のシステムでカーソル選択のできるCUIプログラム

    UNIX系のシステムでカーソル選択のできるCUIプログラム UNIX系のOS一般で使えるCUIのプログラムの実装について知識が無いので質問します。 シェルスクリプト、C言語などで、数値計算する類のものは問題無く作れますが、 画面表示を行なって、それをカーソルで選択するようなインタフェースを持ったプログラムはどのように作れば良いのか知りたいと考えています。 例えば"A B C"とか表示して、選択しているものが白黒反転、 カーソル選択後エンターで選択して次の処理に移るようなものです。 ただ、出力して行くのはできるのですが、一つの画面を更新するような処理はどのように実装するのでしょうか。 シェルスクリプトが一番いいですが、JAVAなどでもとりあえず実現できれば構いませんのでサンプルになるようなプログラム、ページ、関数などあれば教えて下さい。

  • オシロスコープの外部制御について

    オシロスコープをPCで制御するのに、BMCでADボードにつないで、GP-IBインターフェイスでRS-232Cを使いたいと思います。 そこで岩崎通信機のSS-5712 と 菊水電子のMODEL5520がRS-232Cで制御できるかご存知の方いませんか? 企業のカタログ(HP)に載っていなくて・・・

  • JAVAで作成したプログラムは外部からの指示をどうやってうけとるのか?

    このたび、JAVAで、通信関連のプログラム(常駐)をつくることになりました。それで、このプロセスに対して外部からコマンド(終了の指示、何か処理をしなさい等)を発行したいのですが、そのインターフェースが判りません。 OSはSolaris又はLinuxを採用する予定です。C言語で作成した時は、メッセージキュー、シグナル等を使用していたのですが、100% pure JAVAの環境で、このような外部からコマンドを受け付ける仕組みは、作成できるのでしょうか。ご存じの方おりましたら、教えて下さい。

    • ベストアンサー
    • Java
  • inetd相当のプログラム

    TCPリクエストに対する処理を行なうプログラムをC言語(VC)で作成しています。 unix系OSでしたら、inetd, tcpserverを使用すれば標準入出力を行なうだけで、簡単にできます。 Windows上で動作するinetd, tcpserver相当のプログラムというのは ありますでしょうか? それがあるのならば、そちらを使いたいです。 もしくは、自力でinetdのようにポートを監視して、プログラムを起動し、 標準入出力に置き換えるようなプログラムを作成しなければならないわけですが、 その際に参考となるサイトなどがありましたら、教えてください。 #始めはC言語のカテゴリに投稿したのですが、回答がつかなかったので、 #こちらに質問させていただきます。

  • RS232CやGPIBはまだ当分現役?

    RS232CやGPIBって、PCで制御する装置システムを作る場合、まだまだ現役ですか?流石に廃れてきていますか? 生産現場というより研究の現場なのですが、RS232CやGPIBばかり使い続けていいものかどうか…。

  • C言語でプログラムを再起動

     UNIXで動くC言語のプログラムを作っています。  その際、プログラムを再起動させたい時があります。  しかし、C言語でプログラムを再起動させるってどうやればいいのかよくわかりません。  何かよいやり方を知っている方、教えてください。  よろしくお願いします。

専門家に質問してみよう