【问题标题】:Emotiv Epoc Data AcquisitionEmotiv Epoc 数据采集
【发布时间】:2014-02-12 22:01:51
【问题描述】:

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

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

这是我的问题:

  • 是否可以通过某种方式为每个通道获取 1 个样本?

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

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

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

  • 我读到您建议在调用 EE_DataUpdateHandle() 之前使用 Sl eep() 来填充缓冲区,您是否认为可以只在我的计时器函数中计数 1/128 秒,以便每次检索 1 个样本渠道?我真的不知道该怎么做……大约 7.8 毫秒后,缓冲区中每个通道应该有 1 个样本,对吧?如果我每 8 毫秒调用一次 EE_DataGet 函数,因为我的定时器函数只是每 1 毫秒调用一次,会发生什么情况?

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

干杯, 多米尼克

【问题讨论】:

    标签: c++ visual-studio emokit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为,除非 emotiv 改变他们的编程模型,否则不可能一次从一个频道中获取 1 个样本。

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

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

      【讨论】:

        猜你喜欢
        • 2020-08-29
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 2015-02-20
        • 2012-07-15
        • 2019-05-03
        • 2012-02-12
        • 1970-01-01
        相关资源
        最近更新 更多