template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_approx_norms() { int blanks = m_title_width + 1 - m_approx_norm_title.size(); m_out << m_approx_norm_title; print_blanks(blanks, m_out); for (unsigned i = 0; i < ncols(); i++) { string s = T_to_string(m_core_solver.m_column_norms[i]); int blanks = m_column_widths[i] - s.size(); print_blanks(blanks, m_out); m_out << s << " "; } m_out << std::endl; }
template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_exact_norms() { int blanks = m_title_width + 1 - static_cast<int>(m_exact_norm_title.size()); m_out << m_exact_norm_title; print_blanks(blanks, m_out); for (unsigned i = 0; i < ncols(); i++) { string s = get_exact_column_norm_string(i); int blanks = m_column_widths[i] - static_cast<int>(s.size()); print_blanks(blanks, m_out); m_out << s << " "; } m_out << std::endl; }
template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_row(unsigned i){ print_blanks(m_title_width + 1, m_out); auto row = m_A[i]; auto sign_row = m_signs[i]; auto rs = m_rs[i]; print_given_rows(row, sign_row, rs); }
template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_upps() { if (ncols() == 0) { return; } int blanks = m_title_width + 1 - m_upp_bounds_title.size(); m_out << m_upp_bounds_title; print_blanks(blanks, m_out); for (unsigned i = 0; i < ncols(); i++) { string s = get_upp_bound_string(i); int blanks = m_column_widths[i] - s.size(); print_blanks(blanks, m_out); m_out << s << " "; // the column interval } m_out << std::endl; }
void Copter::report_frame() { cliSerial->println("Frame"); print_divider(); cliSerial->println(get_frame_string()); print_blanks(2); }
template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_basis_heading() { int blanks = m_title_width + 1 - m_basis_heading_title.size(); m_out << m_basis_heading_title; print_blanks(blanks, m_out); if (ncols() == 0) { return; } auto bh = m_core_solver.m_basis_heading; for (unsigned i = 0; i < ncols(); i++) { string s = T_to_string(bh[i]); int blanks = m_column_widths[i] - s.size(); print_blanks(blanks, m_out); m_out << s << " "; // the column interval } m_out << std::endl; }
void Copter::report_radio() { cliSerial->printf("Radio\n"); print_divider(); // radio print_radio_values(); print_blanks(2); }
void Copter::report_ins() { cliSerial->printf("INS\n"); print_divider(); print_gyro_offsets(); print_accel_offsets_and_scaling(); print_blanks(2); }
void print_matrix_with_widths(std::vector<std::vector<std::string>> & A, std::vector<unsigned> & ws, std::ostream & out) { for (unsigned i = 0; i < A.size(); i++) { for (unsigned j = 0; j < A[i].size(); j++) { print_blanks(ws[j] - A[i][j].size(), out); out << A[i][j] << " "; } out << std::endl; } }
void Copter::report_flight_modes() { cliSerial->printf("Flight modes\n"); print_divider(); for(int16_t i = 0; i < 6; i++ ) { print_switch(i, (control_mode_t)flight_modes[i].get(), BIT_IS_SET(g.simple_modes, i)); } print_blanks(2); }
void Copter::report_flight_modes() { cliSerial->printf_P(PSTR("Flight modes\n")); print_divider(); for(int16_t i = 0; i < 6; i++ ) { print_switch(i, flight_modes[i], BIT_IS_SET(g.simple_modes, i)); } print_blanks(2); }
void Copter::report_optflow() { #if OPTFLOW == ENABLED cliSerial->printf("OptFlow\n"); print_divider(); print_enabled(optflow.enabled()); print_blanks(2); #endif // OPTFLOW == ENABLED }
template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_given_rows(vector<string> & row, vector<string> & signs, X rst) { for (unsigned col = 0; col < row.size(); col++) { unsigned width = m_column_widths[col]; string s = row[col]; int number_of_blanks = width - s.size(); lean_assert(number_of_blanks >= 0); print_blanks(number_of_blanks, m_out); m_out << s << ' '; if (col < row.size() - 1) { m_out << signs[col + 1] << ' '; } } m_out << '='; string rs = T_to_string(rst); int nb = m_rs_width - rs.size(); lean_assert(nb >= 0); print_blanks(nb + 1, m_out); m_out << rs << std::endl; }
void Copter::report_batt_monitor() { cliSerial->printf("\nBatt Mon:\n"); print_divider(); if (battery.num_instances() == 0) { print_enabled(false); } else if (!battery.has_current()) { cliSerial->printf("volts"); } else { cliSerial->printf("volts and cur"); } print_blanks(2); }
// report_compass - displays compass information. Also called by compassmot.pde void Copter::report_compass() { cliSerial->printf("Compass\n"); print_divider(); print_enabled(g.compass_enabled); // mag declination cliSerial->printf("Mag Dec: %4.4f\n", (double)degrees(compass.get_declination())); // mag offsets Vector3f offsets; for (uint8_t i=0; i<compass.get_count(); i++) { offsets = compass.get_offsets(i); // mag offsets cliSerial->printf("Mag%d off: %4.4f, %4.4f, %4.4f\n", (int)i, (double)offsets.x, (double)offsets.y, (double)offsets.z); } // motor compensation cliSerial->print("Motor Comp: "); if( compass.get_motor_compensation_type() == AP_COMPASS_MOT_COMP_DISABLED ) { cliSerial->print("Off\n"); }else{ if( compass.get_motor_compensation_type() == AP_COMPASS_MOT_COMP_THROTTLE ) { cliSerial->print("Throttle"); } if( compass.get_motor_compensation_type() == AP_COMPASS_MOT_COMP_CURRENT ) { cliSerial->print("Current"); } Vector3f motor_compensation; for (uint8_t i=0; i<compass.get_count(); i++) { motor_compensation = compass.get_motor_compensation(i); cliSerial->printf("\nComMot%d: %4.2f, %4.2f, %4.2f\n", (int)i, (double)motor_compensation.x, (double)motor_compensation.y, (double)motor_compensation.z); } } print_blanks(1); }
void Copter::report_frame() { cliSerial->printf("Frame\n"); print_divider(); #if FRAME_CONFIG == QUAD_FRAME cliSerial->printf("Quad frame\n"); #elif FRAME_CONFIG == TRI_FRAME cliSerial->printf("TRI frame\n"); #elif FRAME_CONFIG == HEXA_FRAME cliSerial->printf("Hexa frame\n"); #elif FRAME_CONFIG == Y6_FRAME cliSerial->printf("Y6 frame\n"); #elif FRAME_CONFIG == OCTA_FRAME cliSerial->printf("Octa frame\n"); #elif FRAME_CONFIG == HELI_FRAME cliSerial->printf("Heli frame\n"); #endif print_blanks(2); }
// Print the current configuration. // Called by the setup menu 'show' command. int8_t Copter::setup_show(uint8_t argc, const Menu::arg *argv) { AP_Param *param; ap_var_type type; //If a parameter name is given as an argument to show, print only that parameter if(argc>=2) { param=AP_Param::find(argv[1].str, &type); if(!param) { cliSerial->printf("Parameter not found: '%s'\n", argv[1].str); return 0; } AP_Param::show(param, argv[1].str, type, cliSerial); return 0; } // clear the area print_blanks(8); report_version(); report_radio(); report_frame(); report_batt_monitor(); report_flight_modes(); report_ins(); report_compass(); report_optflow(); AP_Param::show_all(cliSerial); return(0); }
void Copter::report_version() { cliSerial->printf("FW Ver: %d\n",(int)(g.k_format_version)); print_divider(); print_blanks(2); }
void Copter::report_version() { cliSerial->printf_P(PSTR("FW Ver: %d\n"),(int)g.k_format_version); print_divider(); print_blanks(2); }
template <typename T, typename X> void core_solver_pretty_printer<T, X>::print_cost() { int blanks = m_title_width + 1 - m_cost_title.size(); m_out << m_cost_title; print_blanks(blanks, m_out); print_given_rows(m_costs, m_cost_signs, m_core_solver.get_cost()); }
void Copter::report_version() { hal.console->printf("FW Ver: %d\n",(int)(g.k_format_version)); print_divider(); print_blanks(2); }