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

Method read_data

src/board_controller/openbci/ganglion_native.cpp:511–611  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

509}
510
511void GanglionNative::read_data (
512 simpleble_uuid_t service, simpleble_uuid_t characteristic, const uint8_t *data, size_t size)
513{
514 if (size < 2)
515 {
516 safe_logger (spdlog::level::warn, "unexpected number of bytes received: {}", size);
517 return;
518 }
519
520 int num_rows = board_descr["default"]["num_rows"];
521 double *package = new double[num_rows];
522
523 for (int i = 0; i < num_rows; i++)
524 {
525 package[i] = 0.0;
526 }
527
528 if (data[0] <= 200 && size == 20)
529 {
530 if (firmware == 3)
531 {
532 decompress_firmware_3 (data, package);
533 }
534 else if (firmware == 2)
535 {
536 decompress_firmware_2 (data, package);
537 }
538 delete[] package;
539 }
540 else if ((data[0] > 200) && (data[0] < 206))
541 {
542 // ASCII string with value and 'Z' in the end
543 int val = 0;
544 int i = 0;
545 for (i = 1; i < 6; i++)
546 {
547 if (data[i] == 'Z')
548 {
549 break;
550 }
551 }
552 std::string ascii_value ((const char *)(data + 1), i - 1);
553
554 try
555 {
556 val = std::stoi (ascii_value);
557 }
558 catch (...)
559 {
560 safe_logger (
561 spdlog::level::err, "failed to parse impedance data: {}", ascii_value.c_str ());
562 delete[] package;
563 return;
564 }
565
566 switch (data[0] % 10)
567 {
568 case 1:

Callers 1

Calls 1

get_timestampFunction · 0.85

Tested by

no test coverage detected