@@ -349,14 +349,7 @@ int AntNeuroBoard::config_board (std::string config, std::string &response)
349349 std::string rv_prefix = " reference_range:" ;
350350 std::string bv_prefix = " bipolar_range:" ;
351351 std::string mode_prefix = " impedance_mode:" ;
352-
353- std::string get_type = " get_type" ;
354- std::string get_firmware_version = " get_firmware_version" ;
355- std::string get_serial_number = " get_serial_number" ;
356- std::string get_sampling_rates_available = " get_sampling_rates_available" ;
357- std::string get_reference_ranges_available = " get_reference_ranges_available" ;
358- std::string get_bipolar_ranges_available = " get_bipolar_ranges_available" ;
359- std::string get_power_state = " get_power_state" ;
352+ std::string get_info = " get_info" ;
360353
361354 if (config.find (prefix) != std::string::npos)
362355 {
@@ -482,75 +475,73 @@ int AntNeuroBoard::config_board (std::string config, std::string &response)
482475 return (int )BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
483476 }
484477 }
485- // get info from ANT SDK
486- else if (config == get_type)
487- {
488- response = amp->getType ();
489- return (int )BrainFlowExitCodes::STATUS_OK;
490- }
491- else if (config == get_firmware_version)
492- {
493- int version = amp->getFirmwareVersion ();
494- response = std::to_string (version);
495- return (int )BrainFlowExitCodes::STATUS_OK;
496- }
497- else if (config == get_serial_number)
498- {
499- response = amp->getSerialNumber ();
500- return (int )BrainFlowExitCodes::STATUS_OK;
501- }
502- else if (config == get_sampling_rates_available)
478+ else if (config == get_info) // return stringified JSON with info from ANT board
503479 {
480+ std::ostringstream oss;
481+ oss << " {" ;
482+
483+ // getType
484+ oss << " \" type\" :\" " << amp->getType () << " \" ," ;
485+
486+ // getFirmwareVersion
487+ oss << " \" firmware_version\" :" << amp->getFirmwareVersion () << " ," ;
488+
489+ // getSerialNumber
490+ oss << " \" serial_number\" :\" " << amp->getSerialNumber () << " \" ," ;
491+
492+ // getSamplingRatesAvailable
504493 std::vector<int > sampling_rates = amp->getSamplingRatesAvailable ();
505- std::ostringstream result ;
506- if (! sampling_rates.empty ())
494+ oss << " \" sampling_rates \" :[ " ;
495+ for ( int i = 0 ; i < sampling_rates.size (); ++i )
507496 {
508- std::copy (sampling_rates.begin (), sampling_rates.end () - 1 ,
509- std::ostream_iterator<int > (result, " ," ));
510- result << sampling_rates.back (); // no trailing comma
497+ oss << sampling_rates[i];
498+ if (i != sampling_rates.size () - 1 )
499+ {
500+ oss << " ," ;
501+ }
511502 }
512- response = result.str ();
513- return (int )BrainFlowExitCodes::STATUS_OK;
514- }
515- else if (config == get_reference_ranges_available)
516- {
503+ oss << " ]," ;
504+
505+ // getReferenceRangesAvailable
517506 std::vector<double > reference_ranges = amp->getReferenceRangesAvailable ();
518- std::ostringstream result ;
519- if (! reference_ranges.empty ())
507+ oss << " \" reference_ranges \" :[ " ;
508+ for ( int i = 0 ; i < reference_ranges.size (); ++i )
520509 {
521- std::copy (reference_ranges.begin (), reference_ranges.end () - 1 ,
522- std::ostream_iterator<double > (result, " ," ));
523- result << reference_ranges.back (); // no trailing comma
510+ oss << reference_ranges[i];
511+ if (i != reference_ranges.size () - 1 )
512+ {
513+ oss << " ," ;
514+ }
524515 }
525- response = result.str ();
526- return (int )BrainFlowExitCodes::STATUS_OK;
527- }
528- else if (config == get_bipolar_ranges_available)
529- {
516+ oss << " ]," ;
517+
518+ // getBipolarRangesAvailable
530519 std::vector<double > bipolar_ranges = amp->getBipolarRangesAvailable ();
531- std::ostringstream result ;
532- if (! bipolar_ranges.empty ())
520+ oss << " \" bipolar_ranges \" :[ " ;
521+ for ( int i = 0 ; i < bipolar_ranges.size (); ++i )
533522 {
534- std::copy (bipolar_ranges.begin (), bipolar_ranges.end () - 1 ,
535- std::ostream_iterator<double > (result, " ," ));
536- result << bipolar_ranges.back (); // no trailing comma
523+ oss << bipolar_ranges[i];
524+ if (i != bipolar_ranges.size () - 1 )
525+ {
526+ oss << " ," ;
527+ }
537528 }
538- response = result.str ();
539- return (int )BrainFlowExitCodes::STATUS_OK;
540- }
541- else if (config == get_power_state)
542- {
529+ oss << " ]," ;
530+
531+ // getPowerState
543532 amplifier::power_state power_state = amp->getPowerState ();
544- std::ostringstream oss;
545- oss << " is_powered: " << power_state.is_powered
546- << " , is_charging: " << power_state.is_charging
547- << " , charging_level: " << power_state.charging_level ;
548- response = oss.str ();
533+ oss << " \" power_state\" :{" ;
534+ oss << " \" is_powered\" :" << power_state.is_powered << " ," ;
535+ oss << " \" is_charging\" :" << power_state.is_charging << " ," ;
536+ oss << " \" charging_level\" :" << power_state.charging_level ;
537+ oss << " }" ;
538+
539+ oss << " }" ;
549540
541+ response = oss.str ();
550542 return (int )BrainFlowExitCodes::STATUS_OK;
551543 }
552-
553- safe_logger (spdlog::level::err, " format is '{}value'" , prefix.c_str ());
544+ safe_logger (spdlog::level::err, " format is '{}value' or 'get_info'" , prefix.c_str ());
554545 return (int )BrainFlowExitCodes::INVALID_ARGUMENTS_ERROR;
555546}
556547
0 commit comments