Programming Howto:Create a custom Signal Processing Module

From BCI2000 Wiki
Revision as of 10:02, 16 August 2018 by Mellinger (talk | contribs) (→‎Next step)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


To this howto's overview page.

Create module files from templates

Execute the NewBCI2000Module binary from the BCI2000 build directory.

New module 1.png

Enter "VeryNiceSignalProcessing" when prompted for the new module's name.

New module 2.png

You will get a list of files that have been created for you ...

New module 3.png

... which you may verify using a Windows explorer window. Note that a filter source file has been created automatically, with its name derived from the module's name.

New module 4.png

Create a module project using CMake

Double-click the configure script from the BCI2000 build directory to open the CMake GUI.

New module 5.png

In the CMake GUI, click "Generate" to re-create project files.

New module 6.png

A project called "VeryNiceSignalProcessing" will have been added at the end.

New module 7.png

Edit the module's code in the IDE

Switch to VisualStudio, and click "Reload" when prompted what to do.

Deploy module 3.png

Locate the "VeryNiceSignalProcessing" project in the list of projects.

New module 9.png

Define a default location for the new filter in its RegisterFilter() statement, and deactivate the #error statement above that.

New module 10.png

Define the actual location for the new filter in the PipeDefinition source file, and deactivate the #error statement below that.

New module 11.png

Build the new module

Right-click the project, and choose "Build" from the context menu.

New module 12.png

A "VeryNiceSignalProcessing" executable will have been created in the BCI2000 "prog" directory.

New module 13.png

Next step

As a next step, learn how to attach the debugger to a BCI2000 module.

See also

Programming Howto:Building and Customizing BCI2000

Programming Tutorial:Implementing a Data Acquisition Module

Programming Tutorial:Implementing a Signal Processing Filter