| 338 | } |
| 339 | |
| 340 | void BrainBit::read_thread () |
| 341 | { |
| 342 | /* |
| 343 | * Format for output from BrainFlow is: |
| 344 | * package[0] - package counter |
| 345 | * package [1-4] - eeg t3, t4, o1, o2 |
| 346 | * package[5-8] - resistance t3, t4, o1, o2. Place it to other_channels |
| 347 | * package[9] - battery |
| 348 | */ |
| 349 | int num_rows = board_descr["default"]["num_rows"]; |
| 350 | double *package = new double[num_rows]; |
| 351 | for (int i = 0; i < num_rows; i++) |
| 352 | { |
| 353 | package[i] = 0.0; |
| 354 | } |
| 355 | |
| 356 | while (keep_alive) |
| 357 | { |
| 358 | size_t length_t3 = 0; |
| 359 | size_t length_t4 = 0; |
| 360 | size_t length_o1 = 0; |
| 361 | size_t length_o2 = 0; |
| 362 | |
| 363 | do |
| 364 | { |
| 365 | AnyChannel_get_total_length ((AnyChannel *)signal_t3, &length_t3); |
| 366 | AnyChannel_get_total_length ((AnyChannel *)signal_t4, &length_t4); |
| 367 | AnyChannel_get_total_length ((AnyChannel *)signal_o1, &length_o1); |
| 368 | AnyChannel_get_total_length ((AnyChannel *)signal_o2, &length_o2); |
| 369 | } while ((keep_alive) && |
| 370 | ((length_o2 < (counter + 1) || length_o1 < (counter + 1) || length_t3 < (counter + 1) || |
| 371 | length_t4 < (counter + 1)))); |
| 372 | |
| 373 | // check that inner loop ended not because of stop_stream invocation |
| 374 | if (!keep_alive) |
| 375 | { |
| 376 | break; |
| 377 | } |
| 378 | |
| 379 | // get timestamp as soon as loop ends |
| 380 | double timestamp = get_timestamp (); |
| 381 | double t3_data; |
| 382 | double t4_data; |
| 383 | double o1_data; |
| 384 | double o2_data; |
| 385 | |
| 386 | size_t stub = 0; |
| 387 | int sdk_ec = SDK_NO_ERROR; |
| 388 | sdk_ec = |
| 389 | DoubleChannel_read_data ((DoubleChannel *)signal_t3, counter, 1, &t3_data, 1, &stub); |
| 390 | if (sdk_ec != SDK_NO_ERROR) |
| 391 | { |
| 392 | continue; |
| 393 | } |
| 394 | sdk_ec = |
| 395 | DoubleChannel_read_data ((DoubleChannel *)signal_t4, counter, 1, &t4_data, 1, &stub); |
| 396 | if (sdk_ec != SDK_NO_ERROR) |
| 397 | { |
no test coverage detected