2

Emotiv サポート チームとコミュニティから質問への回答を得ようとしましたが、誰も回答しませんでした。

生データの取得プロセスがどのように機能するかを理解するのに苦労しています。Emotiv ヘッドセットを使用した EEG 生データの取得に関するトピックをすべて読みましたが、役に立ちませんでした。

ここに私の質問があります:

  • チャンネルごとに 1 つのサンプルを取得することは何とか可能ですか?

私のアプリケーションには、正確に 1ms ごとに起動するタイマー関数があります。また、バッファにチャネルごとに 1 つのサンプルが含まれている場合は、別の関数を呼び出したいと思います。

  • 関数 EE_DataUpdateHandle() を呼び出すと、取得したすべてのサンプルがダンプされますか?

バッファにチャネルごとに 1 つのサンプルが含まれているが、EE_DataGetNumberOfSample() 関数が 1 つのサンプルを返さない場合、別の関数を呼び出すために EE_DataGetNumberOfSample() 関数をポーリングしました。これは、EE_DataUpdateHandle() が呼び出されると、他のすべてのサンプルをダンプするためですか? EE_DataUpdatedHandle() 関数が呼び出された場合、それは新しいデータを指していると思いましたか? --> それは、以前に収集されたすべてのデータにアクセスできなくなったことを意味しますか? チャンネルごとに 1 つのサンプルを取得する準備ができたときに EDK_OK を返すだけの関数はありませんか。そのため、タイマー関数ですべてのミリ秒をポーリングし、EDK_OK が返された場合は EE_DataGet を呼び出し、チャネルごとに 1 つのサンプルを返します。

  • EE_DataUpdateHandle() を呼び出す前にバッファをいっぱいにするために Sleep() を使用することをお勧めしていると読みましたが、チャネルごとに 1 つのサンプルを取得するために、私のタイマー関数で 1/128 秒をカウントするだけでよいと思いますか? これを行う方法が本当にわかりません...約7.8ミリ秒後、バッファにはチャネルごとに1つのサンプルが必要ですよね?タイマー関数は 1 ミリ秒ごとに呼び出されるので、8 ミリ秒ごとに EE_DataGet 関数を呼び出すとどうなりますか?

わかりました、私の問題を解決する方法をいくつか提案していただければ幸いです。

乾杯、 ドミニク

4

2 に答える 2

1

OpenVibeはオープン ソースであり、確認できる Emotiv ドライバーが付属しています。

于 2012-06-14T21:00:52.487 に答える
0

emotiv がプログラミング モデルを変更しない限り、チャネルから一度に 1 つのサンプルだけを取得することはできないと思います。

現在の emotiv API ライブラリは、ヘッドセットからデータを取得してデータ バッファーに保存しているようですが、クライアント アプリケーションは EE_DataGet を使用してバッファーからデータをポーリングすることしかできません。

おそらく、バッファは emotiv ライブラリによって 1 つのデータ エントリだけで満たされることはありません。そうでない場合は、可能な限り迅速に (データ取得よりも) ポーリングを実行して、EE_DataGet で 1 つのサンプルのみを取得できるかどうかを確認してください (その後、EE_DataUpdateHandle を呼び出して、新しいサンプルのバッファーをクリーンアップします)。

于 2012-07-20T12:04:23.493 に答える