A/D変換プログラムのクラス設計について教えてください

このQ&Aのポイント
  • A/D変換プログラムのクラス設計について教えていただければと。
  • A/D変換を行い結果を表示するプログラムを作ろうと思っています。
  • クラス設計は、どのような形がベターなのでしょうか?
回答を見る
  • ベストアンサー

A/D変換プログラムのクラス設計について

クラス設計について教えていただければと。 A/D変換を行い結果を表示するプログラムを作ろうと思っています。 環境は、.Net(VB or C#)を想定しています。 通常、A/D変換を行うボードは、1枚について8チャンネル、もしくは16チャンネルのデータを一括で収集できます。 入力するアナログ電圧は、ボード単位で決まっています。(例えば0~5V) A/D変換後の8チャンネルそれぞれには、名称やスケール変換するためのいくつかの情報を保持しなければなりません。 このような場合、クラス設計は、どのような形がベターなのでしょうか? チャンネルを構成するメンバ(チャンネル名称、スケール変換係数)だけのクラスを作り、これをA/D変換ボードクラスの中に配列で取り込んでしまう形がよいのか、それともA/D変換ボードクラスの中にチャンネル情報の構造体配列を作って収めてしまうのが良いのか、イマイチ良くわからないのです。 そんなやり方ではなく、違う考え方があれば、それについても教えていただければと思います。

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

  • ベストアンサー
回答No.1

処理内容や必要要件などにもよると思います。 チャンネルのクラスを作ったとして、そのチャンネルのクラスにメソッドを持たせる必要はないのでしたら構造体で十分でしょうし、チャンネルごとに行う処理が複雑なら、クラスにしてメソッドを持たせた方がコーディングがスッキリすると思います。 ある部分、好みに問題であるような気がしなくもないです。

tinrei
質問者

お礼

回答ありがとうございます。 今回は、チャンネルごとの処理が複雑ではないので、構造体でいってみようと思います。

関連するQ&A

  • H8/3664FのA/D変換について

    H8/3664Fを使ってA/D変換した信号を配列に一時的に格納し,その後その信号を処理する プログラムを作成したのですが,A/D変換を行ってくれません。 いろいろ試した結果,配列を定義するとA/D変換を行ってくれないようです。 どなたかこの現象の原因と対策方法についてご存じないでしょうか。

  • A/D変換ボードについて

    A/D変換の速度が 500[ns] の変換ボードはあるのでしょうか。

  • 設計図の距離を測るもの

    形が三角で長いもので1/100、1/200、1/300、1/400、1/500、1/600の縮尺の設計図の距離を測れるスケールの名称をわかる方いませんか?

  • アナログ-デジタル変換(A/D変換)ボード

    現在、フォトダイオードからの漏れ電流を利用した計測装置の開発を計画しています。その計測装置の開発に際しまして、差動増幅器からのアナログ信号をデジタル変換するボード(A/D変換ボード)が必要となります。Windows用のボードはたくさん見つけることができましたが(例えば http://www.interface.co.jp/catalog/prdc.asp?name=PCI-3171A )、mac用のA/D変換ボードを見つけることができておりません。 私が現在使っている開発環境はMac Pro (osX 10.5.2)、開発言語はMATLAB2008aなのですが、もしこの環境で用いることのできますA/D変換ボードがございましたら、教えていただけますでしょうか(MATLABは必須ではありません。C言語などでも大丈夫です)。ボードでなくても、USB接続形式の物でもかまいません。 もしご存知でしたら教えていただけましたら嬉しいです。よろしくお願い致します。

    • ベストアンサー
    • Mac
  • C++のクラス設計について

    Webや書籍をあたってみたのですが、なかなか解決しないので こちらで相談させいただこうと思い立ちました。 C++で書かれたプログラムを解析しているのですが、 ドキュメントは外部仕様書のみであとはソースコードだけ、という状態です。 コメントもほとんど書かれていないコードについて、リバースエンジニアリングを する必要があり、手始めにクラス図を作成してみました。 すると、複数のクラスでメンバ変数が重複しているのです。 クラスAに、クラスB・C・Dの変数の一部が宣言されていて、 クラスAとクラスBの間で重複している変数はすべてどちらのクラスもprotectedのstatic、 クラスAとクラスC・Dの間で重複している変数はクラスAではprotectedのstatic、 C・Dではprivateです。 クラスBとC・Dは継承関係にありますが、メンバ変数の重複はありません。 クラスAと他クラスは継承関係がなく、メンバ変数が多数重複しています。 クラスAの変数は20個ほどありますが、9割以上がB・C・Dで宣言されている変数と 重複している状態で、かつstaticのprotectedです。 Cはわかるのですが、C++はほとんど書いたことがありません。 アンチパターンなどもあたってみたのですが、上記のような設計についての記述は 見つけられませんでした。こういったクラス間での変数重複は「あり」なのでしょうか? これで情報が足りているかわかりませんが、何卒よろしくお願い致します。

  • A/D変換回路

    図Aは0~4の五段階の解像度を持ったA/D変換回路である。出力S0,S1,S2が、000~100となるように、白い四角の中の回路を設計せよ。 ここで図中の三角形は+側の電圧が-側より高い時に1を出力 する比較器である。 という問題です。 5-3エンコーダの回路図を描けばよいのでしょうか??? ご教示お願い致します。

  • MATLAB/simulinkでのD/A変換の仕方

    現在MATLABで制御の勉強をしている大学生です。 今、デジタル制御について勉強しているのですが、MATLAB/simulinkを使いながら進めています。 MATLAB/simulinkでのD/A変換のやり方がわからなくて質問いたしました。 通常のアナログ制御の場合、 入力 → コントローラー → プラント → 出力 で多分、設計されると思うのですが、 デジタル制御の場合、 入力 → A/D変換器 → コントローラー → D/A変換器 → プラント → 出力 という流れになると聞きました。 A/D変換器はゼロ次ホールドを行うブロックがsimulinkにあったのでそれを使えばいいと思うのですが、D/A変換器を行ってくれるブロックが見当たりません。 探し方が悪いのでしょうか。。。 もしご存知であればD/A変換に相当するブロックを教えてください。 無ければ、s-functionか何かでのD/A変換のやり方を教えて頂けると助かります。 よろしくお願いします。

  • H8のA/D変換について

    先日、バッテリーチェッカの質問をした者です。 < 僕は電気部に所属しており「自立型相撲ロボット」を設計・製作しています。さて、その相撲ロボットには”SANYO製のNi-cd(ニッカド)バッテリー”(1セルあたり1.2V)を使い、自作で24Vのバッテリーを搭載させています。(8Vを1パックにし3セット) そして、CPUはH8/3048Fを採用しています。そこで、このCPUのA/D変換器を用いてバッテリーチェッカを製作できないかと考えました。(棒状のレベル表示LEDで大まかな電圧を表示させたい)C言語を使用して、ロボット自体は作動しています。自分自身もC言語の基本的な文法事項は理解していますが、A/D変換については全くの初心者です。バッテリーチェッカについて調べてみたのですが、PICでも製作できそうなことは分かったのですが詳細までは分かりませんでした。どなたか、A/D変換の基本的なところだけでもいいので回答をよろしくお願いします。 > ニッカドバッテリーのチェッカーは不可能だということは分かりました。 しかしながら、初心者なりにA/D変換に興味を持ったので勉強してみようと、いろいろなサイトを見てみたのですが、どうもピンときません。 それは、C言語での解説サイトが少ないこと(見つからない)と感じているのですが・・・ A/D変換を学ぶ・解説してあるサイトや良い書籍などあったら教えてください。ソフトウェアはもちろんですができたらハードウェアのことについてもいいサイトや書籍ないですか?

  • A/D変換ボードについてです

    信号をPCに取り込むA/D変換ボードを探しております。PCに信号を取り込んでMATLABとLabVIEWで解析するつもりです。どちらのソフトでも使えて、USB対応のものでいいものはないでしょうか。 取り込む信号は生体の心電波形です。PCに信号を取り込んでノイズをフィルタリングしてから解析したいと思っております。

  • ADC0808でA/D変換器を製作

    ADC0808でA/D変換器を作り、それをH8マイコンボードに繋げ制御するのですが、ADC0808のSTRAT,ALE,EOCに何を入力(出力)すればいいか全く分かりません。また制御する際のプログラムも教えていただけると有り難いです。それではよろしくお願いします!

専門家に質問してみよう