Skip to content

Commit

Permalink
Playback and Streaming boards match real devices 1-1 in terms of pres…
Browse files Browse the repository at this point in the history
…ets (#564)

* add multiple presets for playback and streaming boards

Signed-off-by: Andrey Parfenov <a1994ndrey@gmail.com>
  • Loading branch information
Andrey1994 committed Oct 21, 2022
1 parent ed7ec7b commit 9f19e73
Show file tree
Hide file tree
Showing 37 changed files with 1,126 additions and 746 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/run_unix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,10 @@ jobs:
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/brainflow_get_data.py --board-id -1
- name: Synthetic Python Multiple Buffers
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/multiple_buffers.py
- name: Synthetic Python Multiple Streamers
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/multiple_streamers.py
- name: Playback Python
run: sudo -H python3 $GITHUB_WORKSPACE/python_package/examples/tests/playback_test.py
- name: Synthetic Cpp
run: $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id -1
env:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/valgrind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ jobs:
LD_LIBRARY_PATH: $GITHUB_WORKSPACE/installed/lib
- name: Streaming Cpp
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/streaming_board_emulator.py valgrind --error-exitcode=1 --track-origins=yes --leak-check=full $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --master-board -1
- name: Streaming Cpp Two Presets
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/streaming_board_emulator.py valgrind --error-exitcode=1 --track-origins=yes --leak-check=full $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --master-board -1 --ip-address-aux 225.1.1.1 --ip-port-aux 6678
- name: Cyton Cpp Markers
run: sudo -H python3 $GITHUB_WORKSPACE/emulator/brainflow_emulator/cyton_linux.py valgrind --error-exitcode=1 --track-origins=yes --leak-check=full $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/markers --board-id 0 --serial-port
- name: Synthetic Cpp
Expand Down Expand Up @@ -155,3 +157,7 @@ jobs:
run: valgrind --error-exitcode=1 --track-origins=yes --leak-check=full $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/multiple_streamers
env:
LD_LIBRARY_PATH: $GITHUB_WORKSPACE/installed/lib
- name: Playback board
run: valgrind --error-exitcode=1 --track-origins=yes --leak-check=full $GITHUB_WORKSPACE/cpp_package/examples/get_data/build/brainflow_get_data --board-id -3 --master-board -1 --file streamer_default_1.csv --file-aux streamer_aux_2.csv
env:
LD_LIBRARY_PATH: $GITHUB_WORKSPACE/installed/lib
73 changes: 69 additions & 4 deletions cpp_package/examples/get_data/src/brainflow_get_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,32 @@ bool parse_args (int argc, char *argv[], struct BrainFlowInputParams *params, in
return false;
}
}
if (std::string (argv[i]) == std::string ("--ip-address-aux"))
{
if (i + 1 < argc)
{
i++;
params->ip_address_aux = std::string (argv[i]);
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
if (std::string (argv[i]) == std::string ("--ip-address-anc"))
{
if (i + 1 < argc)
{
i++;
params->ip_address_anc = std::string (argv[i]);
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
if (std::string (argv[i]) == std::string ("--ip-port"))
{
if (i + 1 < argc)
Expand All @@ -106,6 +132,32 @@ bool parse_args (int argc, char *argv[], struct BrainFlowInputParams *params, in
return false;
}
}
if (std::string (argv[i]) == std::string ("--ip-port-aux"))
{
if (i + 1 < argc)
{
i++;
params->ip_port_aux = std::stoi (std::string (argv[i]));
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
if (std::string (argv[i]) == std::string ("--ip-port-anc"))
{
if (i + 1 < argc)
{
i++;
params->ip_port_anc = std::stoi (std::string (argv[i]));
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
if (std::string (argv[i]) == std::string ("--serial-port"))
{
if (i + 1 < argc)
Expand Down Expand Up @@ -197,25 +249,38 @@ bool parse_args (int argc, char *argv[], struct BrainFlowInputParams *params, in
return false;
}
}
if (std::string (argv[i]) == std::string ("--master-board"))
if (std::string (argv[i]) == std::string ("--file-aux"))
{
if (i + 1 < argc)
{
i++;
params->master_board = std::stoi (std::string (argv[i]));
params->file_aux = std::string (argv[i]);
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
if (std::string (argv[i]) == std::string ("--file-anc"))
{
if (i + 1 < argc)
{
i++;
params->file_anc = std::string (argv[i]);
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
if (std::string (argv[i]) == std::string ("--preset"))
if (std::string (argv[i]) == std::string ("--master-board"))
{
if (i + 1 < argc)
{
i++;
params->preset = std::stoi (std::string (argv[i]));
params->master_board = std::stoi (std::string (argv[i]));
}
else
{
Expand Down
13 changes: 0 additions & 13 deletions cpp_package/examples/get_data/src/markers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,19 +213,6 @@ bool parse_args (int argc, char *argv[], struct BrainFlowInputParams *params, in
return false;
}
}
if (std::string (argv[i]) == std::string ("--preset"))
{
if (i + 1 < argc)
{
i++;
params->preset = std::stoi (std::string (argv[i]));
}
else
{
std::cerr << "missed argument" << std::endl;
return false;
}
}
}
if (!board_id_found)
{
Expand Down
7 changes: 6 additions & 1 deletion cpp_package/src/board_shim.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,19 @@ std::string params_to_string (struct BrainFlowInputParams params)
j["serial_port"] = params.serial_port;
j["ip_protocol"] = params.ip_protocol;
j["ip_port"] = params.ip_port;
j["ip_port_aux"] = params.ip_port_aux;
j["ip_port_anc"] = params.ip_port_anc;
j["ip_address"] = params.ip_address;
j["ip_address_aux"] = params.ip_address_aux;
j["ip_address_anc"] = params.ip_address_anc;
j["mac_address"] = params.mac_address;
j["other_info"] = params.other_info;
j["timeout"] = params.timeout;
j["serial_number"] = params.serial_number;
j["file"] = params.file;
j["file_aux"] = params.file_aux;
j["file_anc"] = params.file_anc;
j["master_board"] = params.master_board;
j["preset"] = params.preset;
std::string post_str = j.dump ();
return post_str;
}
Expand Down
40 changes: 35 additions & 5 deletions csharp_package/brainflow/brainflow/brainflow_input_params.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,31 @@ public class BrainFlowInputParams
[DataMember]
public string ip_address;
/// <summary>
/// IP address aux
/// </summary>
[DataMember]
public string ip_address_aux;
/// <summary>
/// IP address anc
/// </summary>
[DataMember]
public string ip_address_anc;
/// <summary>
/// PORT
/// </summary>
[DataMember]
public int ip_port;
/// <summary>
/// PORT
/// </summary>
[DataMember]
public int ip_port_aux;
/// <summary>
/// PORT
/// </summary>
[DataMember]
public int ip_port_anc;
/// <summary>
/// IP protocol, use IpProtocolTypes
/// </summary>
[DataMember]
Expand All @@ -59,28 +79,38 @@ public class BrainFlowInputParams
[DataMember]
public string file;
/// <summary>
/// Master board, use BoardIds enums
/// file
/// </summary>
[DataMember]
public int master_board;
public string file_aux;
/// <summary>
/// Preset, use BrainFlowPresets
/// file
/// </summary>
[DataMember]
public int preset;
public string file_anc;
/// <summary>
/// Master board, use BoardIds enums
/// </summary>
[DataMember]
public int master_board;

public BrainFlowInputParams ()
{
serial_port = "";
mac_address = "";
ip_address = "";
ip_address_aux = "";
ip_address_anc = "";
ip_port = 0;
ip_port_aux = 0;
ip_port_anc = 0;
ip_protocol = (int)IpProtocolTypes.NO_IP_PROTOCOL;
other_info = "";
timeout = 0;
serial_number = "";
file = "";
preset = (int)BrainFlowPresets.DEFAULT_PRESET;
file_aux = "";
file_anc = "";
master_board = (int)BoardIds.NO_BOARD;
}

Expand Down

0 comments on commit 9f19e73

Please sign in to comment.