-
Notifications
You must be signed in to change notification settings - Fork 0
added Brainflow SpO2 example #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
@coderabbitai Perform a code review |
🧩 Analysis chainI'll examine the PR changes to provide a comprehensive code review. 🏁 Script executed:
Length of output: 545 🏁 Script executed:
Length of output: 4420 🏁 Script executed:
Length of output: 5987 🏁 Script executed:
Length of output: 2977 @jaketheduque I've completed a comprehensive code review of the PR. Here are my findings: ✅ Positive Changes
|
WalkthroughREADME_py.md reorganized: table-of-contents anchors normalized; environment setup renamed and moved to EmotiBit_Plugins/py_envs with env name Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🔭 Outside diff range comments (2)
README_py.md (2)
19-21
: Typo: “bings” → “bindings”User-facing docs; fix the misspelling.
Apply this diff:
-- We use pybind11 to create bindings for existing c++ code to a dynamic python library. These bings get added to a bindings_<srcFileName>.cpp. +- We use pybind11 to create bindings for existing C++ code to a dynamic Python library. These bindings get added to a `bindings_<srcFileName>.cpp`.
32-36
: Clarify extension naming across platformsAvoid Windows-only terminology; this trips up macOS/Linux users.
Apply this diff:
-- The pybind11 python library (installed in the virtual environment) performs the mapping from c++ file to a `.pyd` file. +- The pybind11 package (installed in the virtual environment) maps C++ to a Python extension module (`.pyd` on Windows, `.so` on macOS/Linux). @@ - - Build the files created in the previous step to create the `.pyd` file + - Build the files created in the previous step to create the extension module (`.pyd` on Windows, `.so` on macOS/Linux)
🧹 Nitpick comments (6)
README_py.md (6)
6-8
: Minor TOC wording consistency: add “a” before “Python virtual environment”Reads more naturally and matches common phrasing.
Apply this diff:
- - [Setting up Python virtual environment](#setting-up-python-virtual-environment) + - [Setting up a Python virtual environment](#setting-up-python-virtual-environment) - - [Adapting this to your C++ code](#adapting-this-to-your-c-code) + - [Adapting this to your C++ code](#adapting-this-to-your-c-code)
39-39
: Match heading and TOC phrasing; prefer sentence caseKeeps terminology consistent and reads more naturally.
Apply this diff:
-### Setting up Python Virtual Environment +### Setting up a Python virtual environment
41-49
: Make venv creation/activation unambiguous across platforms and prep for CMake integration
- Many macOS/Linux setups use python3.
- Providing the pybind11 CMake dir upfront avoids hardcoding paths later.
Apply this diff:
-- `cd` to `EmotiBit_Plugins/py_envs` +- `cd` to `EmotiBit_Plugins/py_envs` -- Run the following command `python -m venv plugins` +- Run: `python -m venv plugins` (or `python3 -m venv plugins` on macOS/Linux) - This creates a new folder called `plugins` containing the virtual Python environment - Activate the new environment: - Windows (cmd): `.\plugins\Scripts\activate.bat` - Windows (PowerShell): `.\plugins\Scripts\Activate.ps1` - macOS/Linux (bash/zsh): `source plugins/bin/activate` -- Run the following command to install pybind11. `pip install pybind11==2.13.5` +- Install pybind11: `pip install pybind11==2.13.5` + - Optional: verify pybind11’s CMake location for use with CMake: + - `python -m pybind11 --cmakedir` (or `python3 -m pybind11 --cmakedir`) + - You can pass this to CMake as: `-Dpybind11_DIR="<output of --cmakedir>"`
64-66
: Modern CMake invocation looks good; add a portable hint for pybind11 discoveryThis helps avoid absolute paths on all OSes when CMake can’t auto-find pybind11.
Apply this diff:
cmake -B build +# If CMake can't find pybind11, pass its CMake dir from the active venv: +# cmake -B build -Dpybind11_DIR="$(python -m pybind11 --cmakedir)" cmake --build build --config Release
78-79
: Same suggestion here: optional pybind11_DIR hintKeeps both examples consistent and cross-platform.
Apply this diff:
cmake -B build +# If CMake can't find pybind11, pass its CMake dir from the active venv: +# cmake -B build -Dpybind11_DIR="$(python -m pybind11 --cmakedir)" cmake --build build --config Release
81-81
: Use forward slashes in paths or provide OS-specific variantsBackslashes are Windows-only; forward slashes work across platforms in Python paths.
Apply this diff:
-- Run the Python example script `pyExample_emotibitPacket\example.py` +- Run the Python example script `pyExample_emotibitPacket/example.py`
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README_py.md
(2 hunks)
🧰 Additional context used
🪛 LanguageTool
README_py.md
[grammar] ~5-~5: There might be a mistake here.
Context: ... Contents - Why? - How it works - Requirements - [Settin...
(QB_NEW_EN)
[grammar] ~6-~6: There might be a mistake here.
Context: ...it works](#how-it-works) - Requirements - [Setting up Python virtual environment](#...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...quirements](#requirements) - [Setting up Python virtual environment](#setting-up...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...- Setting up Python virtual environment - [Adapting this to your C++ code](#adaptin...
(QB_NEW_EN)
[grammar] ~8-~8: There might be a mistake here.
Context: ...nment) - Adapting this to your C++ code - Examples - [Rounder](#Roun...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...dapting-this-to-your-c-code) - Examples - Rounder - [EmotiBitPacket](...
(QB_NEW_EN)
[grammar] ~10-~10: There might be a mistake here.
Context: ...de) - Examples - Rounder - EmotiBitPacket - [Br...
(QB_NEW_EN)
[grammar] ~11-~11: There might be a mistake here.
Context: ... Rounder - EmotiBitPacket - [Brainflow SpO2 Algorithm](#brainflow-spo...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ....pyd` file ## Requirements ### Setting up Python Virtual Environment - Open a new...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ...## Setting up Python Virtual Environment - Open a new command prompt window - cd
...
(QB_NEW_EN)
[grammar] ~44-~44: There might be a mistake here.
Context: ...ironment - Activate the new environment: - Windows (cmd): `.\plugins\Scripts\activa...
(QB_NEW_EN)
[grammar] ~51-~51: There might be a mistake here.
Context: ...table/basics.html) for more information. - Create a new CMakeLists.txt file that ...
(QB_NEW_EN)
[grammar] ~52-~52: There might be a mistake here.
Context: ... - Create a new CMakeLists.txt file that - creates a lib from your source files -...
(QB_NEW_EN)
[grammar] ~53-~53: There might be a mistake here.
Context: ... - creates a lib from your source files - creates the pyd file from the src librar...
(QB_NEW_EN)
[grammar] ~59-~59: There might be a mistake here.
Context: ...sts.txtshould look like. ## Examples ### Rounder - cd to
pyExample_alg01` - run...
(QB_NEW_EN)
[grammar] ~60-~60: There might be a mistake here.
Context: ...uld look like. ## Examples ### Rounder - cd to pyExample_alg01
- run the follow...
(QB_NEW_EN)
[grammar] ~61-~61: There might be a mistake here.
Context: ...ike. ## Examples ### Rounder - cd to pyExample_alg01
- run the following commands ```bash cmake...
(QB_NEW_EN)
🪛 markdownlint-cli2 (0.17.2)
README_py.md
9-9: Link fragments should be valid
Expected: #examples; Actual: #Examples
(MD051, link-fragments)
10-10: Link fragments should be valid
Expected: #rounder; Actual: #Rounder
(MD051, link-fragments)
11-11: Link fragments should be valid
Expected: #emotibitpacket; Actual: #EmotiBitPacket
(MD051, link-fragments)
🔇 Additional comments (3)
README_py.md (3)
4-4
: TOC anchor normalization looks goodThe updated link to the lowercase anchor (#why) matches GitHub’s anchor generation.
12-12
: New TOC entry for Brainflow SpO2 Algorithm is correctAnchor and casing align with the new section.
83-84
: Good: Brainflow SpO2 Algorithm example defers to the single source of truthConsider pinning to a tag or commit in docs for reproducibility, if the external repo changes frequently.
Would you like me to update the link to a specific tag/commit recommended by that repo to ensure stable instructions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (2)
README_py.md (2)
4-12
: TOC anchor fragments fixed — resolves MD051Lowercased link fragments now match GitHub-generated anchors. Links jump correctly.
50-57
: Clarify cross‑platform build guidance and pybind11 discovery; fix wordingTightens language, removes Windows bias, and shows a portable way to point CMake at pybind11 from the active venv.
Apply:
## Adapting this to your C++ code -- Add pybind11 bindings to a file `bindings_<srcName>.cpp`. Refer the [pybind11 documentation](https://pybind11.readthedocs.io/en/stable/basics.html) for more information. -- Create a new CMakeLists.txt file that - - Builds a library from your source files - - Builds the Python module (`.pyd` or `.so`) file from that library -- Run the `cmake` commands from the examples below to create a build the project. +- Add pybind11 bindings to a file `bindings_<srcName>.cpp`. Refer to the [pybind11 documentation](https://pybind11.readthedocs.io/en/stable/basics.html) for more information. +- Create a new `CMakeLists.txt` that: + - builds a library from your source files, and + - builds the Python extension module from that library (producing `.pyd` on Windows or `.so` on macOS/Linux). +- Prefer `find_package(pybind11 CONFIG REQUIRED)` and avoid hardcoded paths. If CMake can’t locate pybind11 from the active venv, pass its location when configuring: + - `-Dpybind11_DIR="$(python -m pybind11 --cmakedir)"` +- Run the `cmake` commands from the examples below to configure and build the project. -Refer to the examples below to see what `bindings.cpp` and `CMakeLists.txt` should look like. +Refer to the examples below to see what `bindings_*.cpp` and `CMakeLists.txt` should look like.
🧹 Nitpick comments (4)
README_py.md (4)
64-65
: Make example config robust to pybind11 discovery issuesPassing pybind11_DIR from the active venv helps avoid hardcoded paths and missing-package confusion.
Apply:
-cmake -B build +cmake -S . -B build -Dpybind11_DIR="$(python -m pybind11 --cmakedir)" cmake --build build --config ReleaseNote:
--config Release
is needed for multi-config generators (e.g., Visual Studio); on single-config generators it can be omitted.
78-79
: Mirror the cmake robustness change here as wellKeep the examples consistent and portable.
Apply:
-cmake -B build +cmake -S . -B build -Dpybind11_DIR="$(python -m pybind11 --cmakedir)" cmake --build build --config Release
83-86
: Use the exact cloned folder name to avoid confusionWhen cloning, the default directory is
EmotiBit_Brainflow_SpO2_Algorithm
; using the exact name is clearer and avoids copy/paste mistakes.Apply:
-- `cd` into the `EmotiBit Brainflow SpO2 Algorithm` folder and checkout the following commit: `7bc9dc3b02f361c37e9e917477abefe9f5468a68` +- `cd EmotiBit_Brainflow_SpO2_Algorithm` and checkout the following commit: `7bc9dc3b02f361c37e9e917477abefe9f5468a68`Optionally link the README explicitly:
-- Follow the instructions under `pybind/README.md` to finish building the algorithm +- Follow the instructions under `pybind/README.md` in that repository to finish building the algorithmPlease confirm the commit SHA is the intended one for validation.
19-21
: Typo: “bings” → “bindings”Minor doc polish.
Apply:
-- We use pybind11 to create bindings for existing c++ code to a dynamic python library. These bings get added to a bindings_<srcFileName>.cpp. +- We use pybind11 to create bindings for existing C++ code to a dynamic Python library. These bindings get added to a `bindings_<srcFileName>.cpp`.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
README_py.md
(2 hunks)
🧰 Additional context used
🪛 LanguageTool
README_py.md
[grammar] ~5-~5: There might be a mistake here.
Context: ... Contents - Why? - How it works - Requirements - [Settin...
(QB_NEW_EN)
[grammar] ~6-~6: There might be a mistake here.
Context: ...it works](#how-it-works) - Requirements - [Setting up Python virtual environment](#...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...quirements](#requirements) - [Setting up Python virtual environment](#setting-up...
(QB_NEW_EN)
[grammar] ~7-~7: There might be a mistake here.
Context: ...- Setting up Python virtual environment - [Adapting this to your C++ code](#adaptin...
(QB_NEW_EN)
[grammar] ~8-~8: There might be a mistake here.
Context: ...nment) - Adapting this to your C++ code - Examples - [Rounder](#roun...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...dapting-this-to-your-c-code) - Examples - Rounder - [EmotiBitPacket](...
(QB_NEW_EN)
[grammar] ~10-~10: There might be a mistake here.
Context: ...de) - Examples - Rounder - EmotiBitPacket - [Br...
(QB_NEW_EN)
[grammar] ~11-~11: There might be a mistake here.
Context: ... Rounder - EmotiBitPacket - [Brainflow SpO2 Algorithm](#brainflow-spo...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ....pyd` file ## Requirements ### Setting up Python Virtual Environment - Open a new...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ...## Setting up Python Virtual Environment - Open a new command prompt window - cd
...
(QB_NEW_EN)
[grammar] ~44-~44: There might be a mistake here.
Context: ...ironment - Activate the new environment: - Windows (cmd): `.\emotibit_plugins\Scrip...
(QB_NEW_EN)
[grammar] ~51-~51: There might be a mistake here.
Context: ...table/basics.html) for more information. - Create a new CMakeLists.txt file that ...
(QB_NEW_EN)
[grammar] ~59-~59: There might be a mistake here.
Context: ...sts.txtshould look like. ## Examples ### Rounder - cd to
pyExample_alg01` - run...
(QB_NEW_EN)
[grammar] ~60-~60: There might be a mistake here.
Context: ...uld look like. ## Examples ### Rounder - cd to pyExample_alg01
- run the follow...
(QB_NEW_EN)
[grammar] ~61-~61: There might be a mistake here.
Context: ...ike. ## Examples ### Rounder - cd to pyExample_alg01
- run the following commands ```bash cmake...
(QB_NEW_EN)
[grammar] ~83-~83: There might be a mistake here.
Context: ...ample.py` ### Brainflow SpO2 Algorithm - Clone the EmotiBit Brainflow SpO2 Algori...
(QB_NEW_EN)
[grammar] ~85-~85: There might be a mistake here.
Context: ...lder and checkout the following commit: 7bc9dc3b02f361c37e9e917477abefe9f5468a68
- Follow the instructions under `pybind/RE...
(QB_NEW_EN)
### Setting up Python Virtual Environment | ||
- Open a new command prompt window | ||
- `cd` to the EmotiBit_Plugins repository | ||
- Run the following command `python -m venv .\py_envs\<env-name>` | ||
- replace `<env-name>` with the environment name | ||
- Activate the new environment by running the command `.\py_envs\<env-name>\Scripts\activate.bat` | ||
- You will see the prompt in the terminal change. It now shows the python environment in parenthesis. | ||
- Run the following command to install bypind11. `pip install pybind11==2.13.5` | ||
- `cd` to `EmotiBit_Plugins/py_envs` | ||
- Run the following command `python -m venv emotibit_plugins` | ||
- This creates a new folder called `plugins` containing the virtual Python environment | ||
- Activate the new environment: | ||
- Windows (cmd): `.\emotibit_plugins\Scripts\activate.bat` | ||
- Windows (PowerShell): `.\emotibit_plugins\Scripts\Activate.ps1` | ||
- macOS/Linux (bash/zsh): `source emotibit_plugins/bin/activate` | ||
- Run the following command to install pybind11. `pip install pybind11==2.13.5` | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Fix venv name mismatch and strengthen cross‑platform install notes
- Line 43 says the venv folder will be named “plugins” but the command creates “emotibit_plugins”. This will confuse users.
- Prefer “python -m pip …” to ensure the venv’s pip is used.
- Add a macOS/Linux variant for the venv creation command.
Apply:
- - Run the following command `python -m venv emotibit_plugins`
- - - This creates a new folder called `plugins` containing the virtual Python environment
+ - Run the following command `python -m venv emotibit_plugins`
+ - On macOS/Linux you may need: `python3 -m venv emotibit_plugins`
+ - This creates a new folder called `emotibit_plugins` containing the virtual Python environment
@@
-- Run the following command to install pybind11. `pip install pybind11==2.13.5`
+- Run the following command to install pybind11. `python -m pip install pybind11==2.13.5`
Follow-up: please standardize this venv name (“emotibit_plugins”) across CMake and the rest of the repo to avoid breakage when locating pybind11.
I can scan the repo and draft diffs to align the venv name everywhere if helpful.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
### Setting up Python Virtual Environment | |
- Open a new command prompt window | |
- `cd` to the EmotiBit_Plugins repository | |
- Run the following command `python -m venv .\py_envs\<env-name>` | |
- replace `<env-name>` with the environment name | |
- Activate the new environment by running the command `.\py_envs\<env-name>\Scripts\activate.bat` | |
- You will see the prompt in the terminal change. It now shows the python environment in parenthesis. | |
- Run the following command to install bypind11. `pip install pybind11==2.13.5` | |
- `cd` to `EmotiBit_Plugins/py_envs` | |
- Run the following command `python -m venv emotibit_plugins` | |
- This creates a new folder called `plugins` containing the virtual Python environment | |
- Activate the new environment: | |
- Windows (cmd): `.\emotibit_plugins\Scripts\activate.bat` | |
- Windows (PowerShell): `.\emotibit_plugins\Scripts\Activate.ps1` | |
- macOS/Linux (bash/zsh): `source emotibit_plugins/bin/activate` | |
- Run the following command to install pybind11. `pip install pybind11==2.13.5` | |
### Setting up Python Virtual Environment | |
- Open a new command prompt window | |
- `cd` to `EmotiBit_Plugins/py_envs` | |
- Run the following command `python -m venv emotibit_plugins` | |
- On macOS/Linux you may need: `python3 -m venv emotibit_plugins` | |
- This creates a new folder called `emotibit_plugins` containing the virtual Python environment | |
- Activate the new environment: | |
- Windows (cmd): `.\emotibit_plugins\Scripts\activate.bat` | |
- Windows (PowerShell): `.\emotibit_plugins\Scripts\Activate.ps1` | |
- macOS/Linux (bash/zsh): `source emotibit_plugins/bin/activate` | |
- Run the following command to install pybind11. `python -m pip install pybind11==2.13.5` |
🧰 Tools
🪛 LanguageTool
[grammar] ~39-~39: There might be a mistake here.
Context: ....pyd` file ## Requirements ### Setting up Python Virtual Environment - Open a new...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ...## Setting up Python Virtual Environment - Open a new command prompt window - cd
...
(QB_NEW_EN)
[grammar] ~44-~44: There might be a mistake here.
Context: ...ironment - Activate the new environment: - Windows (cmd): `.\emotibit_plugins\Scrip...
(QB_NEW_EN)
🤖 Prompt for AI Agents
In README_py.md around lines 39 to 49, the venv creation notes are inconsistent
and not cross-platform: the text incorrectly claims the venv folder will be
named "plugins" while the command creates "emotibit_plugins"; the pip install
should use the venv's pip via "python -m pip"; and there is no macOS/Linux
variant for the venv creation command. Update the paragraph to consistently use
"emotibit_plugins" as the venv name, change the install command to use "python
-m pip install pybind11==2.13.5", add a macOS/Linux venv creation example (e.g.,
python3 -m venv emotibit_plugins), and add a short note to standardize this venv
name across CMake and the repo (or link to a follow-up task to align
references).
### EmotiBitPacket | ||
#### Building the example | ||
- To make this example work, you will need to copy/clone the `EmotiBit_XPlat_Utils` repository into the `src` folder. | ||
- cd to the `src` folder. | ||
- clone using `git clone https://github.com/EmotiBit/EmotiBit_XPlat_Utils`. Checkout the following commit `393b611ee0d0c1f1cec70e243fd5b643c2e25250` | ||
- cd to `pyExample_emotibitPacket` and run the following commands |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix directory name casing: “pyExample_EmotiBitPacket”
The current path uses a lowercase/typo’d name and will fail on case-sensitive filesystems.
Apply:
-- cd to `pyExample_emotibitPacket` and run the following commands
+- cd to `pyExample_EmotiBitPacket` and run the following commands
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
### EmotiBitPacket | |
#### Building the example | |
- To make this example work, you will need to copy/clone the `EmotiBit_XPlat_Utils` repository into the `src` folder. | |
- cd to the `src` folder. | |
- clone using `git clone https://github.com/EmotiBit/EmotiBit_XPlat_Utils`. Checkout the following commit `393b611ee0d0c1f1cec70e243fd5b643c2e25250` | |
- cd to `pyExample_emotibitPacket` and run the following commands | |
### EmotiBitPacket | |
- To make this example work, you will need to copy/clone the `EmotiBit_XPlat_Utils` repository into the `src` folder. | |
- cd to the `src` folder. | |
- clone using `git clone https://github.com/EmotiBit/EmotiBit_XPlat_Utils`. Checkout the following commit `393b611ee0d0c1f1cec70e243fd5b643c2e25250` | |
- cd to `pyExample_EmotiBitPacket` and run the following commands |
🤖 Prompt for AI Agents
In README_py.md around lines 72 to 76, the example uses the incorrect lowercased
directory name "pyExample_emotibitPacket" which will break on case-sensitive
filesystems; update the README to use the correct casing
"pyExample_EmotiBitPacket" wherever that path is referenced (e.g., "cd to
`pyExample_EmotiBitPacket`") and scan the file for any other occurrences of the
incorrect casing and fix them to match the actual directory name.
Description
The Brainflow SpO2 algorithm has been added as an example alongside Rounder and EmotiBit Packet. This example is referenced by Validation Methods as a starting point for how to configure C++ algorithms to be compiled into a Python module.
The example itself points to the
pybind
directory of the EmotiBit Brainflow SpO2 Algorithm repo.Notes for Reviewer
mkdir
andcd
intobuild
directoryTesting
Testing is performed in the EmotiBit Brainflow SpO2 Algorithm repo
Checklist to allow merge
master
ofxEmotiBitVersion.h
DIGITAL_WRITE_DEBUG
= false (if set true while testing)Screenshots:
Summary by CodeRabbit