Biblioteca SDK

De MediaWiki do Campus São José
Revisão de 14h37min de 18 de dezembro de 2017 por Natalia.m02 (discussão | contribs) (Criou página com '==Intrudução ao Emotiv SDK e EmoEngine== O SDK Emotiv é exposto como uma interface ANSI C que é declarada em 11 arquivos de cabeçalho (Iedk.h, IEmoStateDLL.h, IedkErrorCode....')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Intrudução ao Emotiv SDK e EmoEngine

O SDK Emotiv é exposto como uma interface ANSI C que é declarada em 11 arquivos de cabeçalho (Iedk.h, IEmoStateDLL.h, IedkErrorCode.h, FacialExpressionDetection.h, MentalCommandDetection.h, EdfData.h, EmotivCloudClient.h, EmotivLicense.h, IEegData.h, IEmoStatePerformanceMetric.h, IEmotivProfile.h). Aplicativos que usam a API Emotiv simplesmente incluem Iedk.h e link com arquivos de biblioteca dependentes da plataforma. O Emotiv EmoEngine refere-se à abstração lógica da funcionalidade que o Emotiv fornece na biblioteca de tempo de execução. O EmoEngine se comunica com o fone de ouvido Emotiv, recebe dados EEG e giroscópio pré-processados, administra configurações específicas do usuário ou específicas da aplicação, executa pós-processamento e traduz os resultados de detecção Emotiv em uma estrutura fácil de usar chamada EmoState. As funções da API Emotiv que modificam ou recuperam as configurações do EmoEngine são prefixadas com o IEE_.

Integrando o SDK do Emotiv com um aplicativo

Um EmoState é uma estrutura de dados que contém o estado atual das detecções de Emotiv, que, por sua vez, refletem o estado facial, emocional e cognitivo do usuário. Dados emoState são recuperados pelas funções da API Emotiv que são prefixadas com IS_. EmoStates e outras estruturas de dados da API Emotiv são geralmente referenciados através de alças opacas (por exemplo, EmoStateHandle e EmoEngineEventHandle). Essas estruturas de dados e seus identificadores são alocados e liberados usando as funções apropriadas da API Emotiv (iEE_EmoEngineEventCreate () e IEE_EmoEngineEventFree ()). Durante a inicialização e antes de chamar as funções da API Emotiv, seu aplicativo deve estabelecer uma conexão com o EmoEngine, ligando para IEE_EngineConnect () ou IEE_EngineRemoteConnect (). Use IEE_EngineConnect () quando desejar se comunicar diretamente com um fone de ouvido Emotiv. Use IEE_EngineRemoteConnect () se desejar conectar seu aplicativo ao EmoComposer ou ao Painel de controle Emotiv. O EmoEngine se comunica com o seu aplicativo publicando eventos que podem ser recuperados chamando o IEE_EngineGetNextEvent (). Para uma resposta de tempo quase em tempo real, a maioria das aplicações deve pesquisar por novos EmoStates pelo menos 10-15 vezes por segundo. Isso geralmente é feito no loop de eventos principais de um aplicativo ou, no caso da maioria dos videogames, quando outros dispositivos de entrada são consultados periodicamente. Antes do término do seu pedido, a conexão com o EmoEngine deve ser explicitamente fechada ligando para IEE_EngineDisconnect ().

Existem três categorias principais de eventos do EmoEngine que sua aplicação deve lidar:

1. Eventos relacionados ao hardware: Eventos que se comunicam quando os usuários conectam ou desconectam dispositivos de entrada Emotiv ao computador (por exemplo, IEE_UserAdded, IEE_UserRemoved).

2. Novos eventos EmoState: Eventos que comunicam mudanças no estado FacialExpression e MentalCommands do usuário. Você pode recuperar o EmoState atualizado chamando o IEE_EmoEngineEventGetEmoState (). (por exemplo, IEE_EmoStateUpdated).

3. Eventos específicos do pacote: Eventos relacionados ao treinamento e configuração dos conjuntos de detecção FacialExpress e MentalCommands (por exemplo, IEE_MentalCommandEvent_t).

A maioria das funções da API são declaradas para retornar um valor do tipo int. O valor de retorno deve ser verificado para verificar o funcionamento correto da chamada de função API. A maioria das funções da API Emotiv retornam EDK_OK se tiverem êxito. Os códigos de erro são definidos no IedkErrorCode.h.

Cenários de desenvolvimento suportados por IEE_EngineRemoteConnect

A API IEE_EngineRemoteConnect () deve ser usada no lugar de IEE_EngineConnect () nas seguintes circunstâncias:

  • O aplicativo está sendo desenvolvido com o Emotiv SDK Lite. Esta versão do SDK não se comunica com um fone de ouvido Emotiv, então todas as chamadas de funções da API Emotiv comunicam com EmoComposer - o emulador EmoEngine. O EmoComposer escuta na porta 1726, então um aplicativo que deseja se conectar a uma instância de emulador executando no mesmo computador deve chamar IEE_EngineRemoteConnect ("127.0.0.1", 1726).
  • O desenvolvedor deseja testar o comportamento de sua aplicação de forma determinística selecionando manualmente quais resultados de detecção Emotiv enviam para o aplicativo. Nesse caso, o desenvolvedor deve se conectar ao EmoComposer como descrito anteriormente.
  • O desenvolvedor deseja acelerar o processo de desenvolvimento iniciando sua integração de aplicativos com o fone de ouvido EmoEngine e Emotiv sem ter que construir toda a interface do usuário e a lógica da aplicação necessária para suportar a sintonização de detecção, treinamento, gerenciamento de perfil e feedback de qualidade de contato do fone de ouvido. Nesse caso, o Painel de controle Emotiv pode atuar como um proxy para o EmoEngine ou EmoComposer, integrado nos fones de ouvido. O Painel de controle escuta na porta 3008 para que um aplicativo que deseja se conectar ao Painel de controle deve chamar IEE_EngineRemoteConnect ("127.0.0.1", 3008).

Dispositivos suportados

Você pode usar a API IEE_HardwareGetVersion () para verificar a versão atual do fone de ouvido e dongle (se aplicável) para um determinado usuário.

Referência

Emotiv Documentation