I am trying to connect the headset to Matlab but this error came up. I'm using Matlab R2015b on Windows 10 64bit OS. Can anyone help?
Error using loadlibraryThere was an error loading the library "C:\Users\user\Documents\MATLAB\Thinkgear.dll"C:\Users\user\Documents\MATLAB\Thinkgear.dll is not a valid Win32 application.Error in readRAWnew (line 26)loadlibrary('Thinkgear.dll');Caused by: Error using loaddefinedlibrary C:\Users\user\Documents\MATLAB\Thinkgear.dll is not a valid Win32 application.
The code that I used:
function readRAW%run this function to connect and plot raw EEG data
%make sure to change portnum1 to the appropriate COM port
clear allclose alldata = zeros(1,256); %preallocate buffer
portnum1 = 6; %COM Port #
comPortName1 = sprintf('\\\\.\\COM%d', portnum1);% Baud rate for use with TG_Connect() and TG_SetBaudrate().
TG_BAUD_57600 = 57600;% Data format for use with TG_Connect() and TG_SetDataFormat().
TG_STREAM_PACKETS = 0;% Data type that can be requested from TG_GetValue().
TG_DATA_RAW = 4;%load thinkgear dll
loadlibrary('Thinkgear.dll');fprintf('Thinkgear.dll loaded\n');%get dll version
dllVersion = calllib('Thinkgear', 'TG_GetDriverVersion');fprintf('ThinkGear DLL version: %d\n', dllVersion );
Get a connection ID handle to ThinkGear
connectionId1 = calllib('Thinkgear', 'TG_GetNewConnectionId');if ( connectionId1 < 0 ) error( sprintf( 'ERROR: TG_GetNewConnectionId() returned %d.\n', connectionId1 ) );end;% Set/open stream (raw bytes) log file for connection
errCode = calllib('Thinkgear', 'TG_SetStreamLog', connectionId1, 'streamLog.txt' );if( errCode < 0 ) error( sprintf( 'ERROR: TG_SetStreamLog() returned %d.\n', errCode ) );end;% Set/open data (ThinkGear values) log file for connection
errCode = calllib('Thinkgear', 'TG_SetDataLog', connectionId1, 'dataLog.txt' );if( errCode < 0 ) error( sprintf( 'ERROR: TG_SetDataLog() returned %d.\n', errCode ) );end;% Attempt to connect the connection ID handle to serial port "COM3"
errCode = calllib('Thinkgear', 'TG_Connect', connectionId1,comPortName1,TG_BAUD_57600,TG_STREAM_PACKETS );if ( errCode < 0 ) error( sprintf( 'ERROR: TG_Connect() returned %d.\n', errCode ) );endfprintf( 'Connected. Reading Packets...\n' );%record data
j = 0;i = 0;while (i < 10240) %loop for 20 seconds
if (calllib('Thinkgear','TG_ReadPackets',connectionId1,1) == 1) %if a packet was read...
if (calllib('Thinkgear','TG_GetValueStatus',connectionId1,TG_DATA_RAW) ~= 0) %if RAW has been updated
j = j + 1; i = i + 1; data(j) = calllib('Thinkgear','TG_GetValue',connectionId1,TG_DATA_RAW); end end if (j == 256) plotRAW(data); %plot the data, update every .5 seconds (256 points)
j = 0; endend%disconnect
calllib('Thinkgear', 'TG_FreeConnection', connectionId1 );
Best Answer