NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

NIDAQmxを用いてダブルバッファを行う関数、またはそれに代わるデータ取得を行える関数はありますか?

こんにちは。
お忙しいところ失礼いたします。
学習院大学平野研究室に所属しております下口と申します。
「NIDAQmx」に関してお聞きしたいことがございます。
C言語を用いて連続的なデータ取得を試みております。
以前使用していた「NIDAQ7.x」では、ダブルバッファを用いる関数を用いて
同様の実験を行っておりました。
しかし、現在使用している「NIDAQmx」の「C reference help」を参照したところ、
ダブルバッファを用いる関数について明記されていませんでした。
「NIDAQmx」を用いてダブルバッファを用いる関数があればお教えください。
また、ダブルバッファを用いずに連続的なデータ取得を行う方法があればお教えください。
(ダブルバッファを用いない方法については、
「C reference help」の表題「continuous acquisition and generation」内に
有限なバッファを用いてサイクル的に「データ取得→PCへの転送」を行うような表現が描かれていたのですが、
やはりそのような方法になるのでしょうか。)
また、NIDAQmxのCの関数に関してのPDF形式のファイルなどはございますでしょうか?
色々と質問をしてしまって大変恐縮ですが、よろしくお願いいたします。
0 件の賞賛
メッセージ1/5
6,290件の閲覧回数

小生は、DAQmx時代のものではないので、
あまりDAQmxに詳しくないのですが(DAQmxを使用したことがない)、
御案内します。

これは、DAQmxでしか動作しないデバイスを購入してしまったことを
発端としている問題ではないかと思います。

まず、連続的にアナログ入力をする場合は、省略して表現すれば
「データの格納を行なっているバッファメモリ」と
「データの転送をしているバッファメモリ」の2つを使用することを
ダブルバッファと言います。
以前のDAQ関数では、これらを明示的に記述しないとプログラミングができないというものでした。

しかしながら、この面倒な記述を省いてしまい、ソフトウェアの裏側で自動的に
「連続アナログ入力の記述が行なわれてしまう」という特徴を取り入れたものが
DAQmxです。
したがって、わざわざダブルバッファという事項を理解していなくても、
連続アナログ入力ができてしまうわけです。
そのためにダブルバッファという事柄はDAQmxには使用されないのです。

マニュアルが読みづらく、理解しにくいことは今に始まったことではないので、
望みの動作を実現するためには、添付した図のフローをおおまかに理解して、
下記にあるサンプルプログラムを実行してみることです。
\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Analog In\Measure
Voltage\Cont×××××
Contで始まるサンプルプログラムならば、連続動作するものになります。







シモグチ <x@no.email> wrote:
>こんにちは。<br>お忙しいところ失礼いたします。<br>学習院大学平野研究室に所属しております下口と申します。<br>「NIDAQmx」に関してお聞きしたいことがございます。<br>C言語を用いて連続的なデータ取得を試みております。<br>以前使用していた「NIDAQ7.x」では、ダブルバッファを用いる関数を用いて<br>同様の実験を行っておりました。<br>しかし、現在使用している「NIDAQmx」の「C
>reference help」を参照したところ、<br>ダブルバッファを用いる関数w)召砲弔い凸正�気譴討い泙擦鵑任靴拭・・錫鮠「NIDAQmx」を用いてダブルバッファを用いる関数があればお教えください。<br>また、ダブルバッファを用いずに連続的なデータ取得を行う方法があればお教えください。<br>(ダブルバッファを用いない方法については、<br>「C
>reference help」の表題「continuous acquisition and generation」内に<br>有限なバッファを用いてサイクル的に「データ取得→PCへの転送」を行うような表現が描かれていたのですが、<br>やはりそのような方法になるのでしょうか。)<br>
>また、NIDAQmxのCの関数に関してのPDF形式のファイルなどはございますでしょうか?<br>色々と質問をしてしまって大変恐縮ですが、よろしくお願いいたします。
0 件の賞賛
メッセージ2/5
6,288件の閲覧回数
こんにちは。
学習院大学の下口です。
先日は質問にご回答していただき、誠にありがとうございました。
ご返信が遅れてしまい、大変申し訳ございませんでした。
サンプルプログラムを実行した結果、連続的なデータ取得を行うことができました。
 
実は、新たな課題が生じてしまったのですが、もう一度ご質問してもよろしいでしょうか?
現在連続的なデータ取得を行う一方で、同時にバッファに格納されていくデータを
テキストファイル等に書き込んでいきたいのですが、
それを行うための有効な関数などはございますでしょうか?
 
重ね重ね質問をしてしまい大変ご迷惑かと存じますが、
何卒よろしくお願いいたします。
0 件の賞賛
メッセージ3/5
6,202件の閲覧回数

>テキストファイル等に書き込んでいきたいのですが、
>それを行うための有効な関数などはございますでしょうか?
残念ながら、そのような関数は、ないとおもいます。
普通にC言語のプログラミングでファイルにデータを保存する記述をすればいいのではないかと思いますよ。





シモグチ <x@no.email> wrote:
>こんにちは。
>学習院大学の下口です。
>先日は質問にご回答していただき、誠にありがとうございました。
>ご返信が遅れてしまい、大変申し訳ございませんでした。
>サンプルプログラムを実行した結果、連続的なデータ取得を行うことができました。
>&nbsp;
>実は、新たな課題が生じてしまったのですが、もう一度ご質問してもよろしいでしょうか?
>現在連続的なデータ取得を行う一方で、同時にバッファに格納されていくデータを
>テキストファイル等に書き込んでいきたいのですが、
>それを行うための有効な関数などはございますでしょうか?
>&nbsp;
>重ね重ね質問をしてしまい大変ご迷惑かと存じますが、
>何卒よろしくお願いいたします。

0 件の賞賛
メッセージ4/5
6,202件の閲覧回数
東北大学電気通信研究所 小澤様
 
ありがとうございます。
何とかがんばってみます。
これからも色々わからないことがあるかもしれませんが、
そのときはまたよろしくお願いいたします。
 
 
 
>テキストファイル等に書き込んでいきたいのですが、
>それを行うための有効な関数などはございますでしょうか?
残念ながら、そのような関数は、ないとおもいます。
普通にC言語のプログラミングでファイルにデータを保存する記述をすればいいのではないかと思いますよ。





シモグチ <x@no.email> wrote:
>こんにちは。
>学習院大学の下口です。
>先日は質問にご回答していただき、誠にありがとうございました。
>ご返信が遅れてしまい、大変申し訳ございませんでした。
>サンプルプログラムを実行した結果、連続的なデータ取得を行うことができました。
>&nbsp;
>実は、新たな課題が生じてしまったのですが、もう一度ご質問してもよろしいでしょうか?
>現在連続的なデータ取得を行う一方で、同時にバッファに格納されていくデータを
>テキストファイル等に書き込んでいきたいのですが、
>それを行うための有効な関数などはございますでしょうか?
>&nbsp;
>重ね重ね質問をしてしまい大変ご迷惑かと存じますが、
>何卒よろしくお願いいたします。

0 件の賞賛
メッセージ5/5
6,187件の閲覧回数