MCPcopy Create free account
hub / github.com/brainflow-dev/brainflow / add_streamer

Method add_streamer

src/board_controller/board.cpp:248–328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246}
247
248int Board::add_streamer (const char *streamer_params, int preset)
249{
250 std::string preset_str = preset_to_string (preset);
251 if (board_descr.find (preset_str) == board_descr.end ())
252 {
253 safe_logger (spdlog::level::err, "invalid preset");
254 return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
255 }
256 int num_rows = (int)board_descr[preset_str]["num_rows"];
257 std::string streamer_type = "";
258 std::string streamer_dest = "";
259 std::string streamer_mods = "";
260 int res = parse_streamer_params (streamer_params, streamer_type, streamer_dest, streamer_mods);
261 if (res != (int)BrainFlowExitCodes::STATUS_OK)
262 {
263 return res;
264 }
265 Streamer *streamer = NULL;
266
267 if (streamer_type == "file")
268 {
269 safe_logger (spdlog::level::trace, "File Streamer, file: {}, mods: {}",
270 streamer_dest.c_str (), streamer_mods.c_str ());
271 streamer = new FileStreamer (streamer_dest.c_str (), streamer_mods.c_str (), num_rows);
272 }
273 if (streamer_type == "streaming_board")
274 {
275 int port = 0;
276 try
277 {
278 port = std::stoi (streamer_mods);
279 }
280 catch (const std::exception &e)
281 {
282 safe_logger (spdlog::level::err, e.what ());
283 return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
284 }
285 safe_logger (spdlog::level::trace, "MultiCast Streamer, ip addr: {}, port: {}",
286 streamer_dest.c_str (), streamer_mods.c_str ());
287 streamer = new MultiCastStreamer (streamer_dest.c_str (), port, num_rows);
288 }
289 if (streamer_type == "plotjuggler_udp")
290 {
291 int port = 0;
292 try
293 {
294 port = std::stoi (streamer_mods);
295 }
296 catch (const std::exception &e)
297 {
298 safe_logger (spdlog::level::err, e.what ());
299 return (int)BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
300 }
301 safe_logger (spdlog::level::trace, "PlotJuggler UDP Streamer, ip addr: {}, port: {}",
302 streamer_dest.c_str (), streamer_mods.c_str ());
303 streamer =
304 new PlotJugglerUDPStreamer (streamer_dest.c_str (), port, board_descr[preset_str]);
305 }

Callers

nothing calls this directly

Calls 4

whatMethod · 0.80
init_streamerMethod · 0.45
lockMethod · 0.45
unlockMethod · 0.45

Tested by

no test coverage detected