|
11 | 11 | #include <unistd.h> |
12 | 12 | #endif |
13 | 13 |
|
14 | | -#include <sstream> |
15 | | - |
16 | 14 | #include <algorithm> |
17 | 15 | #include <chrono> |
18 | 16 |
|
|
23 | 21 | #include "eemagine/sdk/wrapper.h" |
24 | 22 |
|
25 | 23 | using namespace eemagine::sdk; |
| 24 | +using json = nlohmann::json; |
26 | 25 |
|
27 | 26 |
|
28 | 27 | AntNeuroBoard::AntNeuroBoard (int board_id, struct BrainFlowInputParams params) |
@@ -476,68 +475,20 @@ int AntNeuroBoard::config_board (std::string config, std::string &response) |
476 | 475 | } |
477 | 476 | else if (config == get_info) // return stringified JSON with info from ANT board |
478 | 477 | { |
479 | | - std::ostringstream oss; |
480 | | - oss << "{"; |
481 | | - |
482 | | - // getType |
483 | | - oss << "\"type\":\"" << amp->getType () << "\","; |
484 | | - |
485 | | - // getFirmwareVersion |
486 | | - oss << "\"firmware_version\":" << amp->getFirmwareVersion () << ","; |
487 | | - |
488 | | - // getSerialNumber |
489 | | - oss << "\"serial_number\":\"" << amp->getSerialNumber () << "\","; |
490 | | - |
491 | | - // getSamplingRatesAvailable |
492 | | - std::vector<int> sampling_rates = amp->getSamplingRatesAvailable (); |
493 | | - oss << "\"sampling_rates\":["; |
494 | | - for (size_t i = 0; i < sampling_rates.size (); ++i) |
495 | | - { |
496 | | - oss << sampling_rates[i]; |
497 | | - if (i != sampling_rates.size () - 1) |
498 | | - { |
499 | | - oss << ","; |
500 | | - } |
501 | | - } |
502 | | - oss << "],"; |
503 | | - |
504 | | - // getReferenceRangesAvailable |
505 | | - std::vector<double> reference_ranges = amp->getReferenceRangesAvailable (); |
506 | | - oss << "\"reference_ranges\":["; |
507 | | - for (size_t i = 0; i < reference_ranges.size (); ++i) |
508 | | - { |
509 | | - oss << reference_ranges[i]; |
510 | | - if (i != reference_ranges.size () - 1) |
511 | | - { |
512 | | - oss << ","; |
513 | | - } |
514 | | - } |
515 | | - oss << "],"; |
516 | | - |
517 | | - // getBipolarRangesAvailable |
518 | | - std::vector<double> bipolar_ranges = amp->getBipolarRangesAvailable (); |
519 | | - oss << "\"bipolar_ranges\":["; |
520 | | - for (size_t i = 0; i < bipolar_ranges.size (); ++i) |
521 | | - { |
522 | | - oss << bipolar_ranges[i]; |
523 | | - if (i != bipolar_ranges.size () - 1) |
524 | | - { |
525 | | - oss << ","; |
526 | | - } |
527 | | - } |
528 | | - oss << "],"; |
529 | | - |
530 | | - // getPowerState |
531 | | - amplifier::power_state power_state = amp->getPowerState (); |
532 | | - oss << "\"power_state\":{"; |
533 | | - oss << "\"is_powered\":" << power_state.is_powered << ","; |
534 | | - oss << "\"is_charging\":" << power_state.is_charging << ","; |
535 | | - oss << "\"charging_level\":" << power_state.charging_level; |
536 | | - oss << "}"; |
537 | | - |
538 | | - oss << "}"; |
539 | | - |
540 | | - response = oss.str (); |
| 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"] = { |
| 487 | + {"is_powered", ps.is_powered}, |
| 488 | + {"is_charging", ps.is_charging}, |
| 489 | + {"charging_level", ps.charging_level} |
| 490 | + }; |
| 491 | + response = j.dump (); |
541 | 492 | return (int)BrainFlowExitCodes::STATUS_OK; |
542 | 493 | } |
543 | 494 | safe_logger (spdlog::level::err, "format is '{}value' or 'get_info'", prefix.c_str ()); |
|
0 commit comments