# CereConn {#mainpage}#

This is a wrapper around CereLink and cbhwlib, to facilitate data transfer from
Blackrock NSP hardware in a setup that requires continuous flow.
This C++ library was written with tight Python interactions in mind.

## Installation ##

Assuming that CereLink has been installed to `/opt/CereLink/`, and that there is a conda environment running, set up the build environment with

    cmake -H. -B_builds/Release -DCMAKE_INSTALL_PREFIX="/opt/CereLink/" -Drun_tests=ON -DPYTHON="$CONDA_PREFIX/bin/python" -DCMAKE_BUILD_TYPE=Release

and build and install with

    cmake --build _builds/Release --target install

(or `cd` to `_builds/Release` and run `make` and `make install`).

There are unit tests that can be run with

    make test

Note that some tests may require an NSP or NPlayServer on the network, sending data,
and configured with included settings (e.g. `tests/CereConn/test_NSP_settings_01.ccf`).

In addition, there are Python tests, in `python/tests`.

## Usage ##

For use of cc::CereConn in C++ projects, look at `tests/CereConn/testCereConnRecord.cpp`.

For use of cere_conn.CereConn [cere_conn](@ref cere_conn) , the Python module, look at `python/tests`.

## Info ##

Author: Jonas B. Zimmermann

### Release History ###

- 0.3.2 15 Jul 2019: Added averaging over history (smoothing) for Spike Band Power
- 0.3.1.1 08 Apr 2019: Fix missing headers
- 0.3.1 07 Apr 2019: Added Common Average Referencing for continuous and SBP data. See [set_car_channels()](@ref cere_conn::CereConn::set_car_channels())
- 0.3.0 04 Apr 2019: Refactored continuous and SBP data. Breaking changes: 1-based channel IDs used throughout, SBP/SR estimation and continuous data have to be explicitly enabled. See documentation for [cere_conn](@ref cere_conn).
- 0.2.1 31 Mar 2019: Add filter accessors for spike band power estimation in Python. Add digital event processing. Improve documentation.
- 0.2.0 17 Dec 2018: Add spike band power estimation methods. See `python/tests/spike_band_power/test_01.py` for usage examples.
- 0.1.1 22 Nov 2018: Add various Python bindings to change spike rate estimation methods.
- 0.1.0 15 Nov 2018: Implement spike rate computation, an dPython access
- 0.0.4 06 Sep 2018: First public release.
