[Solved] Acquisition server with Emotiv headset on Linux

Obtaining data from various hardware devices
DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

Here is the file :p
Attachments
build_log3.txt
(168.09 KiB) Downloaded 273 times

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Acquisition server with Emotiv headset on Linux

Post by gserrier »

Ok try this

Code: Select all

# ---------------------------------
# Finds Emotiv SDK
# Adds library to target
# Adds include path
# ---------------------------------

# edkErrorCode.h EmoStateDLL.h
   #FIND_PATH(PATH_EmotivAPI edk.h  PATHS "/home/simeon/EmotivResearch_2.0.0.20"  "/home/simeon/EmotivResearch_2.0.0.20/doc/examples_Qt/example5" ${OV_CUSTOM_DEPENDENCIES_PATH})
   FILE(GLOB PATH_Candidates
      "C:/Program Files/Emotiv Development Kit*"
      "/home/simeon/EmotivResearch_2.0.0.20*"
   )
   FOREACH(Candidate_folder ${PATH_Candidates})
      # MESSAGE(STATUS "Found path ${PATH_Candidate}")
      LIST(APPEND PATH_Candidates ${Candidate_folder}/doc/examples_Qt/example5)
   ENDFOREACH(Candidate_folder ${PATH_Candidates})
   MESSAGE(STATUS "Emotiv paths found ${PATH_Candidates}")
   
   FIND_PATH(PATH_EmotivAPI edk.h  PATHS ${PATH_Candidates} ${OV_CUSTOM_DEPENDENCIES_PATH})
   IF(PATH_EmotivAPI)
      MESSAGE(STATUS "  Found Emotiv API...")
      INCLUDE_DIRECTORIES(${PATH_EmotivAPI})
      FIND_LIBRARY(LIB_EmotivAPI edk PATHS "${PATH_EmotivAPI}/../../lib")
      IF(LIB_EmotivAPI)
         MESSAGE(STATUS "    [  OK  ] lib ${LIB_EmotivAPI}")
         TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_EmotivAPI} )
         # To delay load EDK.dll and redistribute binary
         #TARGET_LINK_LIBRARIES(${PROJECT_NAME} Delayimp.lib )
         #SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DELAYLOAD:edk.dll")
      ELSE(LIB_EmotivAPI)
         MESSAGE(STATUS "    [FAILED] lib Emotiv edk.lib")
      ENDIF(LIB_EmotivAPI)

      # Copying of DLL files is not needed anymore because of delay load library
     
      ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyEmotivAPI)
   ELSE(PATH_EmotivAPI)
      MESSAGE(STATUS "  FAILED to find Emotiv API")
   ENDIF(PATH_EmotivAPI)


DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

This time the compilation aborted.
Attachments
build_log4.txt
(36.94 KiB) Downloaded 262 times

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Acquisition server with Emotiv headset on Linux

Post by gserrier »

That's a progression :)
Try remove

Code: Select all

#include <windows>
from files
/home/simeon/Logiciels/openvibe-1.0.0/applications/platform/acquisition-server/src/drivers/emotiv-epoc/ovasCDriverEmotivEPOC.h
/home/simeon/Logiciels/openvibe-1.0.0/applications/platform/acquisition-server/src/drivers/emotiv-epoc/ovasCConfigurationEmotivEPOC.h

DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

Arf, another abort ! We will get there :p
Attachments
build_log5.txt
(37.2 KiB) Downloaded 272 times

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Acquisition server with Emotiv headset on Linux

Post by gserrier »

All compilation error are related to error handling.
We can try to remove them to see. It's not clean but if it's work, should be enough for now :)

in file /home/simeon/Logiciels/openvibe-1.0.0/applications/platform/acquisition-server/src/drivers/emotiv-epoc/ovasCDriverEmotivEPOC.cpp

Remove the block

Code: Select all

	if(_putenv_s("PATH",m_sCommandForPathModification) != 0)
	{
		m_rDriverContext.getLogManager() << LogLevel_Error << "[INIT] Emotiv Driver: Failed to modify the environment PATH with the Emotiv SDK path.\n";
		return false;
	}
and replace the block

Code: Select all

	__try
	{
		m_tEEEventHandle = EE_EmoEngineEventCreate();
		m_ui32EDK_LastErrorCode = EE_EngineConnect();
	}
	__except(EXCEPTION_EXECUTE_HANDLER)
	{
		m_rDriverContext.getLogManager() << LogLevel_Error << "[INIT] Emotiv Driver: First call to 'edk.dll' failed.\n"
			<< "\tTo use this driver you must have the Emotiv SDK Research Edition (or above) installed on your computer.\n"
			<< "\tAt first use please provide in the driver properties the path to your Emotiv SDK (root directory)\n"
			<< "\te.g. \"C:\\Program Files (x86)\\Emotiv Research Edition SDK_v1.0.0.4-PREMIUM\"\n"
			<< "\tThis path will be saved for further use automatically.\n";

		return false;
	}
by

Code: Select all

m_tEEEventHandle = EE_EmoEngineEventCreate();
m_ui32EDK_LastErrorCode = EE_EngineConnect();

DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

Another error :p It stops at 98%, almost !
Attachments
build_log6.txt
(47.25 KiB) Downloaded 269 times

jtlindgren
Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: Acquisition server with Emotiv headset on Linux

Post by jtlindgren »

Hi,

just to chime in: Emotiv Epoc on Linux is not 'officially' supported by OpenViBE (no Linux icon in the Emotiv entry of 'supported hardware' web page).
Getting it to work may require some effort, but it can be feasible. Maybe you are already close! Afaik the core dev team
does not have access to the Emotiv Linux SDK, making it difficult from our side to support Epoc on Linux.

This old post may also be of interest,

viewtopic.php?f=5&t=4277

Btw, I made a personal log entry a few years back that the required mods look relatively simple, but I didn't attempt actual integration for example because we cannot test it without the SDK.


Cheers,
Jussi

DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

Ok, I hope we'll be able to success!
Unfortunately, the github link in your cited post is broken :/

jtlindgren
Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: Acquisition server with Emotiv headset on Linux

Post by jtlindgren »

Google finds the following,

https://github.com/tbronchain/openemo


Jussi

DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

Oh sorry, shame on me! However Google is my friend :p

I will try a second installation, in parallel of the first. To continue that of Guillaume after.

Thanks!
Last edited by DarkPatate on Mon Apr 13, 2015 10:11 am, edited 1 time in total.

DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

I have an error when I want to build the dependencies with the patch

Code: Select all

Setting target folder to [/home/simeon/openvibe/scripts/software]...
Setting environment configuration script to [/home/simeon/openvibe/scripts/software/environment-configuration-script]...

Creating target tree structure...

Checking native dependencies...
  You are currently running Ubuntu

  It is possible to install native packages in order to avoid some potential
  errors / save time. Such installation requires root access. If you want
  to continue with native packages, answer 'yes' (recommanded)

  Do you want to install native packages (y) ? automatically selected yes
  Installing native packages on background...
error: error in native package installation
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
Aucune version du paquet libogre-dev n'est disponible, mais il existe dans la base
de données. Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète
ou qu'il n'est disponible que sur une autre source

E: Le paquet « libogre-dev » n'a pas de version susceptible d'être installée
Do you know what can I do?

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Acquisition server with Emotiv headset on Linux

Post by gserrier »

Hi,

This is a known issue. Debian made some changes in package name and that leads to that kind of error.
But it has been fix in version 1.0.

Which version are you trying to use?

PS: basically this patch are what we were trying to do.

DarkPatate
Posts: 47
Joined: Tue Apr 07, 2015 11:31 am

Re: Acquisition server with Emotiv headset on Linux

Post by DarkPatate »

I followed the Github (and Readme file) instructions in using the command:

Code: Select all

4- Checkout openvibe sources (let's assumer that you are downloading them in your home folder)
	-> cd && svn checkout svn://scm.gforge.inria.fr/svn/openvibe/trunk openvibe

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Acquisition server with Emotiv headset on Linux

Post by gserrier »

Okay,
Definitely not the right version :).

Use that command to checkout openvibe.
git clone https://gforge.inria.fr/git/openvibe/openvibe.git

in your home directory

Guillaume

Post Reply