Skip to content

Commit 44451d7

Browse files
authored
ANT Neuro SDK functions (#764)
* add get_info config_board command for ant neuro devices --------- Co-authored-by: Benjamin Dieudonné <benjamin.dieudonne@kuleuven.be>
1 parent 389e3af commit 44451d7

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

python_package/examples/tests/eego_impedances_and_eeg.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import time
2+
import json
23

34
from brainflow.board_shim import BoardShim, BrainFlowInputParams, BoardIds
45

@@ -7,6 +8,11 @@
78
board = BoardShim(BoardIds.ANT_NEURO_EE_411_BOARD, params) # 8 channel amplifier
89
board.prepare_session()
910

11+
# Get amplifier info
12+
info = json.loads(board.config_board('get_info'))
13+
for key, value in info.items():
14+
print(f" - {key}: {value}")
15+
1016
# Get impedance data
1117
board.config_board('impedance_mode:1')
1218
board.start_stream()

src/board_controller/ant_neuro/ant_neuro.cpp

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "eemagine/sdk/wrapper.h"
2222

2323
using namespace eemagine::sdk;
24+
using json = nlohmann::json;
2425

2526

2627
AntNeuroBoard::AntNeuroBoard (int board_id, struct BrainFlowInputParams params)
@@ -346,6 +347,7 @@ int AntNeuroBoard::config_board (std::string config, std::string &response)
346347
std::string rv_prefix = "reference_range:";
347348
std::string bv_prefix = "bipolar_range:";
348349
std::string mode_prefix = "impedance_mode:";
350+
std::string get_info = "get_info";
349351

350352
if (config.find (prefix) != std::string::npos)
351353
{
@@ -471,8 +473,22 @@ int AntNeuroBoard::config_board (std::string config, std::string &response)
471473
return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
472474
}
473475
}
474-
475-
safe_logger (spdlog::level::err, "format is '{}value'", prefix.c_str ());
476+
else if (config == get_info) // return stringified JSON with info from ANT board
477+
{
478+
json j;
479+
j["type"] = amp->getType ();
480+
j["firmware_version"] = amp->getFirmwareVersion ();
481+
j["serial_number"] = amp->getSerialNumber ();
482+
j["sampling_rates"] = amp->getSamplingRatesAvailable ();
483+
j["reference_ranges"] = amp->getReferenceRangesAvailable ();
484+
j["bipolar_ranges"] = amp->getBipolarRangesAvailable ();
485+
amplifier::power_state ps = amp->getPowerState ();
486+
j["power_state"] = {{"is_powered", ps.is_powered}, {"is_charging", ps.is_charging},
487+
{"charging_level", ps.charging_level}};
488+
response = j.dump ();
489+
return (int)BrainFlowExitCodes::STATUS_OK;
490+
}
491+
safe_logger (spdlog::level::err, "format is '{}value' or 'get_info'", prefix.c_str ());
476492
return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
477493
}
478494

0 commit comments

Comments
 (0)