I've downloaded Thierry's fix attempt (acquisition-server-emotivtest) and run it with Willux's fix (replacing UserID with 4096 in the config file).
This way, the "Timed out after 5000ms error" did not occur any more. However, the execution of the test acquisition server stops with another error:
[ INF ] Created kernel loader, trying to load kernel module
[ INF ] Kernel module loaded, trying to get kernel descriptor
[ INF ] Got kernel descriptor, trying to create kernel
[ INF ] Adding kernel configuration file [C:/Users/Administrator/Desktop/acquisition-server-emotivtest/acquisition-server-emotivtest//share/openvibe/kernel/openvibe.conf]
[ INF ] Logging to 'C:/Users/Administrator/AppData/Roaming/OpenVIBE/log/openvibe-acquisition-server.log'
[ INF ] Adding plugins from [C:/Users/Administrator/Desktop/acquisition-server-emotivtest/acquisition-server-emotivtest//bin/openvibe-plugins-*-stream-codecs*.dll]
[ INF ] Added 19 plugin object descriptor(s) from [C:/Users/Administrator/Desktop/acquisition-server-emotivtest/acquisition-server-emotivtest//bin/openvibe-plugins-sdk-stream-codecs.dll]
WSAStartup() is OK, Winsock lib loaded!
[WARNING] Registery key Software\VB and VBA Program Settings\Brain Quick - System 98\EEG_Settings is not initialized
[ INF ] Loading plugin: ExternalStimulations (deprecated)
[ INF ] Loading plugin: TCP Tagging
[ INF ] Loading plugin: LSL Output
[ INF ] Connecting to device [Emotiv EPOC]...
[ INF ] Connection succeeded !
----- Log message started at: Sun May 13 12:20:55 2018 -----
12:20:55.062 D DataAcqThread | Get index channel couter EEG 1
12:20:55.064 D DataAcqThread post ADDED NewInputStream with available device: 0
12:20:55.064 D MarkerControlDetection::init() : marker channel is not available
12:20:55.064 I NTExpressivDetectionManager : Loading classifier...
12:20:55.065 I CognitivDetectionManagerG2 : Loading classifier...
12:20:55.065 E CognitivDetectionManagerG2 : Error in loading classifier!
12:20:55.065 I CognitivDetectionManagerG2 : Building classifier...
12:20:55.065 I CognitivDetectionManagerG2 : Searching cached classifier...
12:20:55.065 I CognitivDetectionManagerG2 : Target classifier not found in cache.
12:20:55.065 I CognitivDetectionManagerG2 : Loading existing training data...
12:20:55.065 D CognitivGaussianDatabase::loadClassesData() : loadClassesData
12:20:55.065 I CognitivDetectionManagerG2 : Existing training data loaded.
12:20:55.065 I CognitivDetectionManagerG2 : Error in training: type 1 has no training data, aborting training...
12:20:55.065 I CognitivDetectionManagerG2 : Classifier cannot be built.
12:20:55.066 I Real detections initialized
[ INF ] Starting the acquisition...
[ INF ] Now acquiring...
[ ERROR ] [LOOP] Emotiv Driver: An error occurred while updating the DataHandle. EDK Error Code [8211]
[WARNING] Something bad happened in the loop callback, stopping the acquisition
[ ERROR ] [WARNING] Something bad happened in the loop callback, stopping the acquisition
[ INF ] Stopping the acquisition.
[ INF ] Stats after 0.251953 seconds of 128hz sampling,
[ INF ] Received : 32 samples
[ INF ] Expected : 33 samples
[ INF ] Returned : 33 samples (after drift correction)
[ INF ] Added : 1 samples (0.030303%)
[ INF ] Removed : 0 samples (0%)
[ INF ] Estimated drift (tolerance = 2ms),
[WARNING] Slow peak : -1.05469 samples (8.23975ms late, 411.987% of tol.)
[ INF ] Fast peak : 0 samples (0ms early, 0% of tol.)
[ INF ] Last estim : -0.148438 samples (-1.15967ms, -57.9834% of tol.), after corr.
[ INF ] Remaining : 0 samples (0ms, 0% of tol.), after corr.
[ INF ] Disconnecting.
I've checked the code of the ovasCDriverEmotivEPOC.cpp and it seems that the lines giving the error are the following:
Code: Select all
uint32 l_ui32nSamplesTaken=0;
m_ui32EDK_LastErrorCode = IEE_DataUpdateHandle(m_ui32UserID, m_tDataHandle);
if(m_ui32EDK_LastErrorCode != EDK_OK)
{
m_rDriverContext.getLogManager() << LogLevel_Error << "[LOOP] Emotiv Driver: An error occurred while updating the DataHandle. EDK Error Code [" << m_ui32EDK_LastErrorCode << "]\n";
return false;
}
Another problem is that even though I managed to compile openvibe 1.3.0, 2.0.0 and 2.1.0 from sources on Win10 and during the build process the feedback Found Emotiv API, Found edk.lib appeared, the dropdown list from the acquisition server does not contain the Emotiv driver. Therefore, I can only work with acquisition server test, which I cannot really debug, because the .zip file does not contain ovasCDriverEmotivEPOC.cpp. Any ideas how to work around this as well?
Best regards,
D Ancau