2012-04-14 6 views
2

私はEmotivサポートチームとコミュニティから質問に答えようとしましたが、誰も答えなかったので、Emotiv APIを使用している人がいるかもしれないと思っていました。Emotiv Epocデータ取得

生データ収集プロセスがどのように機能するかを把握するのに苦労しています。 EmotivヘッドセットでEEG生データ収集に関するすべての話題を読んだが、役に立たなかった。

ここに私の質問は以下のとおりです。

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

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

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

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

  • は、私はあなたが()あなたはそれだけで取得するために、私のタイマー機能1/128secondsにカウントすることができると思いますEE_DataUpdateHandleを呼び出す前に満たされたバッファを得るためにのS1 EEP()を使用することをお勧めすることを読んでチャネルごとに1つのサンプル?私は本当にこれを行う方法がわかりません...約7.8ミリ秒後に、1つのチャンネルあたり1つのサンプルがバッファに入っているはずですか?私のタイマ機能がちょうど1msごとに呼び出されるので、私は8msごとにEE_DataGet関数を呼び出すとどうなりますか?

[OK]を、私はあなたの問題を解決するためのいくつかの提案を思い付くことを願っています!

乾杯、 ドミニク

答えて

1

OpenVibeはオープ​​ンソースであり、あなたがチェックアウトすることができEmotivドライバが付属しています。

0

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

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

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