Emotiv Epoc数据采集

时间:2012-04-14 16:25:26

标签: c++ visual-studio emokit

我试图从Emotiv支持团队和社区获得我的问题的答案,但没有人回答,所以我想也许你们中的一些人正在使用Emotiv API。

我很难弄清楚原始数据采集过程是如何工作的。我阅读了有关使用Emotiv耳机获取EEG原始数据的所有主题,但他们没有帮助。

这是我的问题:

  • 以某种方式可以为每个频道获取1个样本吗?

在我的应用程序中,有一个定时器功能,每1ms调用一次。如果缓冲区每个通道包含1个样本,我想调用另一个函数。

  • 函数EE_DataUpdateHandle()在调用时是否转储我检索到的所有样本?

如果Buffer包含每个Channel 1个Sample但EE_DataGetNumberOfSample()函数永远不返回1个样本,则轮询EE_DataGetNumberOfSample()函数以调用另一个函数。这是因为如果调用它,EE_DataUpdateHandle()会转储所有其他样本吗?我想如果调用了EE_DataUpdatedHandle()函数,它指向新数据吧? - >这是否意味着以前收集的所有数据都不再可访问? 当准备好检索每个通道1个样本时,是否存在仅返回EDK_OK的函数。 所以我可以轮询我的计时器函数中的每个ms,如果它返回EDK_OK,我调用EE_DataGet,它返回每个通道1个样本。

  • 我读过你建议使用Sl eep()以便在调用EE_DataUpdateHandle()之前填充缓冲区吗?你认为可以在我的计时器函数中计算1/128秒,以便检索每个样本1个渠道?我真的不知道怎么做...在大约7.8 ms之后,缓冲区中每个通道应该有1个样本吗?如果我每隔8ms调用一次EE_DataGet函数会发生什么事,因为我的计时器函数每隔1ms被调用一次?

好的,我希望你能提出一些如何解决我的问题的建议!

干杯, 多米尼克

2 个答案:

答案 0 :(得分:1)

OpenVibe是开源的,附带Emotiv驱动程序,您可以查看。

答案 1 :(得分:0)

我认为除非情绪改变他们的编程模型,否则不可能同时从频道获得1个样本。

当前的情感API库似乎从耳机获取数据并将其保存到数据缓冲区,而客户端应用程序只能使用EE_DataGet从缓冲区轮询数据。

可能缓冲区不会被情感库仅填充一个数据条目。如果不是这样,您可以尝试尽快进行轮询(比数据采集更快),看看是否只能使用EE_DataGet获取1个样本(然后调用EE_DataUpdateHandle来清理新样本的缓冲区)。