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;
}
Exemple #5
0
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;
}
Exemple #7
0
void Copter::report_radio()
{
    cliSerial->printf("Radio\n");
    print_divider();
    // radio
    print_radio_values();
    print_blanks(2);
}
Exemple #8
0
void Copter::report_ins()
{
    cliSerial->printf("INS\n");
    print_divider();

    print_gyro_offsets();
    print_accel_offsets_and_scaling();
    print_blanks(2);
}
Exemple #9
0
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;
    }
}
Exemple #10
0
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);
}
Exemple #11
0
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);
}
Exemple #12
0
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;
}
Exemple #14
0
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);
}
Exemple #15
0
// 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);
}
Exemple #16
0
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);
}
Exemple #17
0
// 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);
}
Exemple #18
0
void Copter::report_version()
{
    cliSerial->printf("FW Ver: %d\n",(int)(g.k_format_version));
    print_divider();
    print_blanks(2);
}
Exemple #19
0
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());
}
Exemple #21
0
void Copter::report_version()
{
    hal.console->printf("FW Ver: %d\n",(int)(g.k_format_version));
    print_divider();
    print_blanks(2);
}