AD・DAコンバータのサンプルプログラム(VisualC++)の改良

[戻る]
寒太郎 [E-Mail] 2003/09/07(日) 22:58:46
初めまして.
VisualC++初心者の寒太郎といいます.
環境はWindous2000です.
研究で気体の流量の測定を制御するためにAD・DAコンバータを二台購入したのですが
VisualC++で作成されたサンプルプログラムを自分の使いやすいように,また必要なとこ
ろだけに改良したいのですが,初心者なものでどうすればいいか分かりません.
説明書にはC,C++で作成する場合の宣言も書いてありました.
ドライバ関数リファレンスが書いてあるので,Cで作成した方が初心者にはいいでしょう
か?Cもそんなに詳しくはないので一応書いてみたのですが上手くいきません.

始めにやろうとしていることは,指定IDのデバイスのオープンです.
サンプルプログラムでは以下のようになっています.

//***デバイスのオープン***
void CVcsampleDIg::OnDevopen()
{
     // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
     if( Adapio_Device_Open (m_IdNum.GetCurSel ()) == 0 )
     {
         Button_Enable();//各機能ボタンを有効にする
     }
     else
     {
         AfxMessageBox("オープンできませんでした");//オープンに失敗した場合
     }
}

となっています.
引数idは0から15です.私の実験では一つのコンバータにつき一つのIDでいいので
idが0のとき戻り値が0:成功となるようにしたいのですが,どうすればいいでしょうか?
またコンバータが二台あるので一台ずつにおいてプログラムを作った方がいいのでしょう
か?(使うパソコンは一台です)
このあとには,デバイスのクローズ,サンプリング時間,測定開始,測定,測定値の表示
などのプログラムも作らないといけません.やはりCで書き換えた方が早いでしょうか?
どうぞ御教授お願い致しま

επιστημη [HomePage] 2003/09/08(月) 09:43:40
> 説明書にはC,C++で作成する場合の宣言も書いてありました.

ならば説明書に従えばいいのだと思いますが、それでもダメということでしょうか?

> ドライバ関数リファレンスが書いてあるので,
> Cで作成した方が初心者にはいいでしょうか?

質問の意図が掴めません。
リファレンスが書いてなければC++を選ぶということでしょうか?

> 引数idは0から15です.私の実験では一つのコンバータにつき一つのIDでいいので
> idが0のとき戻り値が0:成功となるようにしたいのですが,どうすればいいでしょうか?

'idが0のとき戻り値が0:成功となるように'すればいい、としか答えられません。

> やはりCで書き換えた方が早いでしょうか?

実行速度が、でしょうか? プログラム作成が、でしょうか?

寒太郎 [E-Mail] 2003/09/08(月) 10:16:15
返答有り難うございます.
サンプルプログラムがVisualC++で作成されているので,それに改良の手を
加えた方がプログラムの作成が早く出来ると思ったのですが,
VisualC++の初心者なためどう手を加えていいか分からなかったので
ここで伺おうと思いました.
Cは少し経験があるので作ってみたのですが上手くいきません.
宜しければ何処がおかしいか教えて頂ければ幸いです.

/*デバイスのオープン*/
#include <stdio.h>

short_stdcall Adapio_Device_Open(short id);     /*宣言*/

int main (void)
{
    short id;
    printf("指定IDを入力してください:");
    scanf ("%d",&id);
    if( Adapio_Device_Open ( id = 0 ) == 0 )
    {
        printf("各機能ボタンを有効にします\n");
    }
    else
    {
        printf("オープンできませんでした\n");
    }
}

です.どうぞ宜しくお願い致します.

επιστημη [HomePage] 2003/09/08(月) 10:20:00
'上手くいきません' を説明してください。
なにがどのように上手くいかないのですか?

PATIO 2003/09/08(月) 10:39:33
横槍ですが、
ハード側にIDw設定する方法があると思うのですが、
それは把握しているでしょうか?
ハードウエアのIDは、0で設定してありますか?
ハードウエアのデフォルトID(工場設定値)は0なんでしょうか?
ハードウエアとPCの接続は大丈夫なんでしょうか?

あと、思うにIDはハードを識別する手段だと思うので
基本的にハードウエアにつき一つで、少なくとも一台のPCの中では
ユニークでないと駄目だと思います。
コンバータの接続方法とか細かいところが全くわかりませんけれど。

接続が正しいとか、PCがきちんと認識しているかとか、
プログラム以外の要因があると思います。
その部分が間違いないという確認はきちんと出来ていますか?

寒太郎 [E-Mail] 2003/09/08(月) 10:40:46
上手くいかないというのは,入力してもこのプログラムを
受け入れてもらえないということです.
なにか構成上誤りがあるのでしょうか.

PATIO 2003/09/08(月) 10:40:24
パンチミスしてました。

ハード側にIDw設定する方法があると思うのですが、

          ↓

ハード側にIDを設定する方法があると思うのですが、

επιστημη [HomePage] 2003/09/08(月) 10:47:01
> 上手くいかないというのは,入力してもこのプログラムを
> 受け入れてもらえないということです.

'受け入れてもらう'とは如何なる意味ですか?
コンパイルエラー? リンクエラー? 実行時エラー?

# '自分語'は控え、誰もが理解できる表現を。

寒太郎 [E-Mail] 2003/09/08(月) 11:02:07
返答有り難うございます.
私の方がまだ理解しきれていない為,質問に答えられるだけの知識を
持ち合わせてないようです.
大変ご迷惑をお掛け致しました.
もう一度しっかり勉強し直してきます.
お手間をとらせすみませんでした.
出直してきます.
有り難うございました.

寒太郎 [E-Mail] 2003/09/08(月) 11:11:44
[[解決]]
有り難うございました.

古いスレッドには追加発言できません。