Skip to content

Commit

Permalink
Merge remote-tracking branch 'openbci/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrey1994 committed Oct 20, 2019
2 parents b8c4850 + b5fdac8 commit d07f01b
Show file tree
Hide file tree
Showing 35 changed files with 3,435 additions and 270 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ script:
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/novaxr_udp.py valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/build/test_get_data --board-id 3 --ip-address 127.0.0.1 --ip-protocol 1 ;
fi
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/novaxr_tcp.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --board-id 3 --ip-address 127.0.0.1 --ip-protocol 2
# tests for wifi shield, fails on macos due to an issue in emulator
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/wifi_shield_emulator.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 4 --ip-address 127.0.0.1 --ip-protocol 2 --ip-port 17982 ;
Expand Down
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,6 @@ endif (UNIX)
# need to copy json file to bindings
add_custom_command (TARGET ${BOARD_CONTROLLER_NAME} POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/${BOARDS_JSON}" "${CMAKE_HOME_DIRECTORY}/python-package/brainflow/lib/${BOARDS_JSON}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/${BOARDS_JSON}" "${CMAKE_HOME_DIRECTORY}/matlab-package/lib/${BOARDS_JSON}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/${BOARDS_JSON}" "${CMAKE_HOME_DIRECTORY}/java-package/brainflow/src/main/resources/${BOARDS_JSON}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/${BOARDS_JSON}" "${CMAKE_HOME_DIRECTORY}/csharp-package/brainflow/brainflow/lib/${BOARDS_JSON}"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${CMAKE_HOME_DIRECTORY}/${BOARDS_JSON}" "${CMAKE_HOME_DIRECTORY}/python-package/brainflow/lib/${BOARDS_JSON}"
Expand Down
35 changes: 22 additions & 13 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ image:
- Visual Studio 2017

stack: python 3
skip_branch_with_pr: true

environment:
PY_DIR: C:\Python36-x64
Expand Down Expand Up @@ -30,11 +29,10 @@ install:
- mkdir %APPVEYOR_BUILD_FOLDER%\build32 && cd %APPVEYOR_BUILD_FOLDER%\build32 && cmake -G "Visual Studio 15 2017" -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_INSTALL_PREFIX=..\installed32\ .. && cmake --build . --target install --config Release > brainflow_build32_stdout.txt
- mkdir %APPVEYOR_BUILD_FOLDER%\build64 && cd %APPVEYOR_BUILD_FOLDER%\build64 && cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_SYSTEM_VERSION=8.1 -DCMAKE_INSTALL_PREFIX=..\installed64\ .. && cmake --build . --target install --config Release > brainflow_build64_stdout.txt
# build csharp (in order for copy ganglion mock into csharp test folder)
## nuget package for csharp
# nuget package for csharp
- nuget install Accord -OutputDirectory ../csharp-package/brainflow/packages && nuget install Accord.Math -OutputDirectory ../csharp-package/brainflow/packages
## 64
- cd %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow && msbuild brainflow.sln /p:Configuration=Release /p:Platform=x64 /p:OutDir=..\..\..\tests\csharp\build\Release
- cd %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\brainflow\lib && cp BoardController.dll ..\..\..\..\tests\csharp\build\Release\ && cp brainflow_boards.json ..\..\..\..\tests\csharp\build\Release\
# charp build Any CPU
- cd %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow && msbuild brainflow.sln /p:Configuration=Release /p:Platform="Any CPU"
# install emulator for cyton
- pip install %APPVEYOR_BUILD_FOLDER%\emulator\
- cd %APPVEYOR_BUILD_FOLDER% && %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\com0com\certmgr.exe /add %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\com0com\com0com.cer /s /r localMachine root
Expand All @@ -51,7 +49,6 @@ install:
- cp %APPVEYOR_BUILD_FOLDER%\GanglionBLEAPI\Mock\compiled\Release\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\python-package\brainflow\lib\GanglionLibNative64.dll
- cp %APPVEYOR_BUILD_FOLDER%\GanglionBLEAPI\Mock\compiled\Release\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\installed64\lib\GanglionLibNative64.dll
- cp %APPVEYOR_BUILD_FOLDER%\GanglionBLEAPI\Mock\compiled\Release\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\java-package\brainflow\src\main\resources\GanglionLibNative64.dll
- cp %APPVEYOR_BUILD_FOLDER%\GanglionBLEAPI\Mock\compiled\Release\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release\
# install python package
- pip install %APPVEYOR_BUILD_FOLDER%\python-package\
# build cpp
Expand All @@ -66,33 +63,36 @@ test_script:
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py python %APPVEYOR_BUILD_FOLDER%\tests\python\brainflow_multiboard_get_data.py --log --board-id 0 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\tests\cpp\build\Release\test_get_data.exe --board-id 0 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\tests\cpp\build32\Release\test_get_data.exe --board-id 0 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release\test.exe --board-id 0 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release\test.exe --board-id 0 --serial-port
# tests for ganglion
- python %APPVEYOR_BUILD_FOLDER%\tests\python\brainflow_get_data.py --log --board-id 1 --mac-address e6:73:73:18:09:b1
- echo "stub text to dont start command with special character" && %APPVEYOR_BUILD_FOLDER%\tests\cpp\build\Release\test_get_data.exe --board-id 1 --mac-address e6:73:73:18:09:b1
- cd %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release && test.exe --board-id 1 --mac-address e6:73:73:18:09:b1
- cd %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release && test.exe --board-id 1 --mac-address e6:73:73:18:09:b1
# tests for synthetic
- python %APPVEYOR_BUILD_FOLDER%\tests\python\brainflow_get_data.py --log --board-id -1
- echo "stub text to dont start command with special character" && %APPVEYOR_BUILD_FOLDER%\tests\cpp\build\Release\test_get_data.exe --board-id -1
- cd %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release && test.exe --board-id -1
- cd %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release && test.exe --board-id -1
# tests for cyton daisy
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py python %APPVEYOR_BUILD_FOLDER%\tests\python\brainflow_get_data.py --log --board-id 2 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\tests\cpp\build\Release\test_get_data.exe --board-id 2 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release\test.exe --board-id 2 --serial-port
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\cyton_windows.py %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release\test.exe --board-id 2 --serial-port
# tests for novaxr
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\novaxr_udp.py python %APPVEYOR_BUILD_FOLDER%\tests\python\brainflow_get_data.py --board-id 3 --ip-address 127.0.0.1 --ip-protocol 1
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\novaxr_udp.py %APPVEYOR_BUILD_FOLDER%\tests\cpp\build\Release\test_get_data.exe --board-id 3 --ip-address 127.0.0.1 --ip-protocol 1
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\novaxr_udp.py %APPVEYOR_BUILD_FOLDER%\tests\cpp\build32\Release\test_get_data.exe --board-id 3 --ip-address 127.0.0.1 --ip-protocol 1
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\novaxr_udp.py %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release\test.exe --board-id 3 --ip-address 127.0.0.1 --ip-protocol 1
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\novaxr_udp.py %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release\test.exe --board-id 3 --ip-address 127.0.0.1 --ip-protocol 1
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\novaxr_tcp.py %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release\test.exe --board-id 3 --ip-address 127.0.0.1 --ip-protocol 2
# tests for wifi shield based boards
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\wifi_shield_emulator.py python %APPVEYOR_BUILD_FOLDER%\tests\python\brainflow_get_data.py --board-id 4 --ip-address 127.0.0.1 --ip-protocol 2 --ip-port 17982
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\wifi_shield_emulator.py %APPVEYOR_BUILD_FOLDER%\tests\cpp\build\Release\test_get_data.exe --board-id 5 --ip-address 127.0.0.1 --ip-protocol 2 --ip-port 17982
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\wifi_shield_emulator.py %APPVEYOR_BUILD_FOLDER%\tests\csharp\build\Release\test.exe --board-id 6 --ip-address 127.0.0.1 --ip-protocol 2 --ip-port 17982
- python %APPVEYOR_BUILD_FOLDER%\emulator\brainflow_emulator\wifi_shield_emulator.py %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\test\bin\Release\test.exe --board-id 6 --ip-address 127.0.0.1 --ip-protocol 2 --ip-port 17982

# replace mocked libraries by real libs
after_test:
- cp %APPVEYOR_BUILD_FOLDER%\compiled\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\python-package\brainflow\lib\GanglionLibNative64.dll
- cp %APPVEYOR_BUILD_FOLDER%\compiled\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\java-package\brainflow\src\main\resources\GanglionLibNative64.dll
- cp %APPVEYOR_BUILD_FOLDER%\compiled\GanglionLibNative64.dll %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\brainflow\lib\GanglionLibNative64.dll
- cp %APPVEYOR_BUILD_FOLDER%\compiled\GanglionLibNative32.dll %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\brainflow\lib\GanglionLibNative32.dll

# deploy_script:
# - python -m pip install wheel > wheel_install.txt
Expand All @@ -104,6 +104,16 @@ after_test:
# - aws s3 cp %APPVEYOR_BUILD_FOLDER%\installed64\lib\ s3://brainflow-artifacts/%APPVEYOR_REPO_COMMIT%/lib64 --recursive
# # download files from travis using S3 create package and publish it
# - ps: >-
# cd $env:APPVEYOR_BUILD_FOLDER\csharp-package\brainflow\brainflow;
# If ($env:APPVEYOR_REPO_TAG -eq "true" -And $env:APPVEYOR_REPO_BRANCH -eq "master") {
# (gc .\brainflow.nuspec).replace('VERSION_PLACEHOLDER',$env:APPVEYOR_REPO_TAG_NAME) | Out-File -encoding ASCII brainflow.nuspec
# }
# Else {
# (gc .\brainflow.nuspec).replace('VERSION_PLACEHOLDER','1.0.0') | Out-File -encoding ASCII brainflow.nuspec
# }
# nuget pack brainflow.csproj -properties Configuration=Release -IncludeReferencedProjects;
# aws s3 cp %APPVEYOR_BUILD_FOLDER%\csharp-package\brainflow\brainflow s3://brainflow-artifacts/%APPVEYOR_REPO_COMMIT%/nuget --recursive;

# $lin = $false;
# $osx = $false;
# for ($i=0; $i -lt 30; $i++) {
Expand All @@ -126,7 +136,6 @@ after_test:
# mvn package > mvn_final_stdout.txt
# #upload .jars to aws
# aws s3 cp %APPVEYOR_BUILD_FOLDER%\java-package\brainflow\target\ s3://brainflow-artifacts/%APPVEYOR_REPO_COMMIT%/jars --recursive

# If ($env:APPVEYOR_REPO_TAG -eq "true" -And $env:APPVEYOR_REPO_BRANCH -eq "master") {
# Copy-Item "$env:APPVEYOR_BUILD_FOLDER\linux\*" -Destination "$env:APPVEYOR_BUILD_FOLDER\python-package\brainflow\lib" -Recurse
# Copy-Item "$env:APPVEYOR_BUILD_FOLDER\osx\*" -Destination "$env:APPVEYOR_BUILD_FOLDER\python-package\brainflow\lib" -Recurse
Expand Down
32 changes: 16 additions & 16 deletions brainflow_boards.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
"name": "Cyton",
"sampling_rate": 250,
"package_num_channel" : 0,
"timestamp_channel" : 12,
"num_rows" : 13,
"timestamp_channel" : 19,
"num_rows" : 20,
"eeg_channels" : [1, 2, 3, 4, 5, 6, 7, 8],
"emg_channels" : [1, 2, 3, 4, 5, 6, 7, 8],
"ecg_channels" : [1, 2, 3, 4, 5, 6, 7, 8],
Expand All @@ -30,7 +30,7 @@
"ppg_channels" : [],
"accel_channels" : [9, 10, 11],
"gyro_channels": [],
"other_channels": []
"other_channels": [12, 13, 14, 15, 16, 17, 18]
},
"1" : {
"name": "Ganglion",
Expand All @@ -52,8 +52,8 @@
"name": "CytonDaisy",
"sampling_rate": 125,
"package_num_channel" : 0,
"timestamp_channel" : 20,
"num_rows" : 21,
"timestamp_channel" : 27,
"num_rows" : 28,
"eeg_channels" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
"emg_channels" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
"ecg_channels" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
Expand All @@ -62,7 +62,7 @@
"ppg_channels" : [],
"accel_channels" : [17, 18, 19],
"gyro_channels": [],
"other_channels": []
"other_channels": [20, 21, 22, 23, 24, 25, 26]
},
"3" : {
"name": "NovaXR",
Expand All @@ -84,8 +84,8 @@
"name": "GanglionWifi",
"sampling_rate": 1600,
"package_num_channel" : 0,
"timestamp_channel" : 8,
"num_rows" : 9,
"timestamp_channel" : 15,
"num_rows" : 16,
"eeg_channels" : [1, 2, 3, 4],
"emg_channels" : [1, 2, 3, 4],
"ecg_channels" : [1, 2, 3, 4],
Expand All @@ -94,14 +94,14 @@
"ppg_channels" : [],
"accel_channels" : [5, 6, 7],
"gyro_channels": [],
"other_channels": []
"other_channels": [8, 9, 10, 11, 12, 13, 14]
},
"5" : {
"name": "CytonWifi",
"sampling_rate": 1000,
"package_num_channel" : 0,
"timestamp_channel" : 12,
"num_rows" : 13,
"timestamp_channel" : 19,
"num_rows" : 20,
"eeg_channels" : [1, 2, 3, 4, 5, 6, 7, 8],
"emg_channels" : [1, 2, 3, 4, 5, 6, 7, 8],
"ecg_channels" : [1, 2, 3, 4, 5, 6, 7, 8],
Expand All @@ -110,14 +110,14 @@
"ppg_channels" : [],
"accel_channels" : [8, 10, 11],
"gyro_channels": [],
"other_channels": []
"other_channels": [12, 13, 14, 15, 16, 17, 18]
},
"6" : {
"name": "CytonDaisyWifi",
"sampling_rate": 1000,
"package_num_channel" : 0,
"timestamp_channel" : 20,
"num_rows" : 21,
"timestamp_channel" : 27,
"num_rows" : 28,
"eeg_channels" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
"emg_channels" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
"ecg_channels" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
Expand All @@ -126,7 +126,7 @@
"ppg_channels" : [],
"accel_channels" : [17, 18, 19],
"gyro_channels": [],
"other_channels": []
"other_channels": [20, 21, 22, 23, 24, 25, 26, 27]
}
}
}
}
1 change: 0 additions & 1 deletion csharp-package/brainflow/brainflow/board_shim.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;

using Accord.Math;


Expand Down
25 changes: 25 additions & 0 deletions csharp-package/brainflow/brainflow/brainflow.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>VERSION_PLACEHOLDER</version>
<title>$title$</title>
<authors>Andrey1994</authors>
<owners>Andrey1994</owners>
<licenseUrl>https://github.com/Andrey1994/brainflow/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/Andrey1994/brainflow</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>C# binding to BrainFlow</description>
<releaseNotes>Check BrainFlow docs for details about this release</releaseNotes>
<copyright>Copyright (c) 2018 Andrey Parfenov</copyright>
<tags>BrainFlow EEG EMG BCI OpenBCI</tags>
<dependencies>
<dependency id="Accord" version="3.8.0" />
<dependency id="Accord.Math" version="3.8.0" />
</dependencies>
</metadata>
<files>
<file src="lib\**" target="lib" />
<file src="brainflow.targets" target="build" />
</files>
</package>
10 changes: 10 additions & 0 deletions csharp-package/brainflow/brainflow/brainflow.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyMyPackageFiles" AfterTargets="AfterBuild">
<ItemGroup>
<MyPackageFiles Include="$(MSBuildThisFileDirectory)..\lib\*.*"/>
</ItemGroup>
<Copy SourceFiles="@(MyPackageFiles)" DestinationFolder="$(OutputPath)" >
</Copy>
</Target>
</Project>
8 changes: 3 additions & 5 deletions docs/BrainFlowEmulator.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
.. _brainflow_emulator_link:

Brainflow Emulator
==================

Expand All @@ -10,7 +8,7 @@ Cyton

Cyton emulator simulate COM port using:

- [com0com](http://com0com.sourceforge.net/) for Windows
- `com0com <http://com0com.sourceforge.net/>`_ for Windows
- pty for Linux and MacOS

You should pass command line to test directly to cyton_linux.py or to cyton_windows.py, script will add port automatically to provided command line and will start an application
Expand All @@ -24,12 +22,12 @@ Install emulator package::
Run tests for Linux\MacOS and Windows (port argument will be added by Emulator!) ::

python brainflow_emulator/cyton_linux.py python ../python-package/examples/brainflow_get_data.py --log --board-id 0 --serial-port
python brainflow_emulator/cyton_windows.py python ..\python-package\examples\brainflow_get_data.py --log --board-id 0 --serial-port
python brainflow_emulator\cyton_windows.py python ..\python-package\examples\brainflow_get_data.py --log --board-id 0 --serial-port

Ganglion
----------

Interaction with Ganglion is implemented in another dynamic library, brainflow loads this library at runtime and calls methods from this library, there is a mock for this library, so you need to compile `mock <../GanglionBLEAPI/Mock>`_` and replace real library by it. Use Cmake to build mock
Interaction with Ganglion is implemented in another dynamic library, brainflow loads this library at runtime and calls methods from this library, there is a mock for this library, so you need to compile mock version and replace real library by it. Use Cmake to build mock


NovaXR
Expand Down
4 changes: 3 additions & 1 deletion docs/BuildBrainFlow.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Common requirements
----------------------

- Windows >= 8.1/Linux/MacOS
- On Windows we support x86 and x64 libraries for Python and C# for other languages - x64 only, for MacOS and Linux - only x64 for all languages
- On Windows we support x86/x64 libraries, for MacOS and Linux - only x64 bit libraries, if you need 32bit libraries for Linux you should compile them by yourself
- For Ganglion on Windows if you dont compile brainflow by yorself you may need to install `redist_x64 <https://aka.ms/vs/16/release/vc_redist.x64.exe>`_ or `redist_x86 <https://aka.ms/vs/16/release/vc_redist.x86.exe>`_ (but more likely you have it preinstalled) to use built-in Bluetooth API also you need Windows >= 10
- For Ganglion on Linux/MacOS you need to use dongle, for Windows dongle is not required if you have Bluetooth on your laptop

Expand Down Expand Up @@ -73,6 +73,8 @@ C#

For C# only Windows is currently supported

You can download latest release from `Nuget <https://www.nuget.org/packages/brainflow/>`_ or build it youself:

- Compile BrainFlow's core module
- open Visual Studio Solution
- install required nuget packages
Expand Down
4 changes: 2 additions & 2 deletions docs/CoreModuleAPI.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ BrainFlow Core API

Core module of BrainFlow includes two dynamic libraries, one of them reads data from a board and provides methods to query information about data format while another dynamic library performs signal processing. All bindings just call methods from these dynamic libraries, it simplifies adding new boards and maintenance.

All possible exit codes
-------------------------
All possible exit codes and supported boards
----------------------------------------------

.. literalinclude:: ../src/board_controller/inc/brainflow_constants.h
:language: cpp
Expand Down

0 comments on commit d07f01b

Please sign in to comment.