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 関数を呼び出すとどうなりますか?
わかりました、私の問題を解決する方法をいくつか提案していただければ幸いです。
乾杯、 ドミニク