Exemple #1
0
int main(int argc, char** argv){
    
    xc::configure xmlwriter("root");
    xmlwriter.field<xc::C>("first").attr<xc::C>("first_attribute") = 1;
    xmlwriter.field<xc::C>("second").attr<xc::C>("first_attribute") = "xml_configure";
    xmlwriter.field<xc::C>("third").attr<xc::C>("first_attribute") = "true";
    xmlwriter.field<xc::C>("fouth").attr<xc::C>("first_attribute") = false;
    xmlwriter.field<xc::C>("fifth").attr<xc::C>("first_attribute") = 34.65;
    xmlwriter.field<xc::C>("sixth").attr<xc::C>("first_attribute") = 34.234f;
    xmlwriter.field<xc::C>("seventh").attr<xc::C>("first_attribute") = 75u;
    xmlwriter.save("D:/1.xml");

    xc::configure xmlreader;
    xmlreader.read("D:/1.xml");

    return 0;
}
Exemple #2
0
bool Serialization::writeMcconfXml(const mc_configuration &mcconf, QWidget *parent)
{
    QString filename = QFileDialog::getSaveFileName(parent,
                                            tr("Save Configuration"), ".",
                                            tr("Xml files (*.xml)"));

    if (!filename.toLower().endsWith(".xml")) {
        filename.append(".xml");
    }

    QFile file(filename);
    if (!file.open(QIODevice::WriteOnly)) {
        return false;
    }

    QXmlStreamWriter xmlwriter(&file);
    xmlwriter.setAutoFormatting(true);
    xmlwriter.writeStartDocument();

    xmlwriter.writeStartElement("MCConfiguration");
    xmlwriter.writeTextElement("pwm_mode", QString::number(mcconf.pwm_mode));
    xmlwriter.writeTextElement("comm_mode", QString::number(mcconf.comm_mode));
    xmlwriter.writeTextElement("motor_type", QString::number(mcconf.motor_type));
    xmlwriter.writeTextElement("sensor_mode", QString::number(mcconf.sensor_mode));
    xmlwriter.writeTextElement("l_current_max", QString::number(mcconf.l_current_max));
    xmlwriter.writeTextElement("l_current_min", QString::number(mcconf.l_current_min));
    xmlwriter.writeTextElement("l_in_current_max", QString::number(mcconf.l_in_current_max));
    xmlwriter.writeTextElement("l_in_current_min", QString::number(mcconf.l_in_current_min));
    xmlwriter.writeTextElement("l_abs_current_max", QString::number(mcconf.l_abs_current_max));
    xmlwriter.writeTextElement("l_min_erpm", QString::number(mcconf.l_min_erpm));
    xmlwriter.writeTextElement("l_max_erpm", QString::number(mcconf.l_max_erpm));
    xmlwriter.writeTextElement("l_max_erpm_fbrake", QString::number(mcconf.l_max_erpm_fbrake));
    xmlwriter.writeTextElement("l_max_erpm_fbrake_cc", QString::number(mcconf.l_max_erpm_fbrake_cc));
    xmlwriter.writeTextElement("l_min_vin", QString::number(mcconf.l_min_vin));
    xmlwriter.writeTextElement("l_max_vin", QString::number(mcconf.l_max_vin));
    xmlwriter.writeTextElement("l_battery_cut_start", QString::number(mcconf.l_battery_cut_start));
    xmlwriter.writeTextElement("l_battery_cut_end", QString::number(mcconf.l_battery_cut_end));
    xmlwriter.writeTextElement("l_slow_abs_current", QString::number(mcconf.l_slow_abs_current));
    xmlwriter.writeTextElement("l_rpm_lim_neg_torque", QString::number(mcconf.l_rpm_lim_neg_torque));
    xmlwriter.writeTextElement("l_temp_fet_start", QString::number(mcconf.l_temp_fet_start));
    xmlwriter.writeTextElement("l_temp_fet_end", QString::number(mcconf.l_temp_fet_end));
    xmlwriter.writeTextElement("l_temp_motor_start", QString::number(mcconf.l_temp_motor_start));
    xmlwriter.writeTextElement("l_temp_motor_end", QString::number(mcconf.l_temp_motor_end));
    xmlwriter.writeTextElement("l_min_duty", QString::number(mcconf.l_min_duty));
    xmlwriter.writeTextElement("l_max_duty", QString::number(mcconf.l_max_duty));
    xmlwriter.writeTextElement("sl_min_erpm", QString::number(mcconf.sl_min_erpm));
    xmlwriter.writeTextElement("sl_min_erpm_cycle_int_limit", QString::number(mcconf.sl_min_erpm_cycle_int_limit));
    xmlwriter.writeTextElement("sl_max_fullbreak_current_dir_change", QString::number(mcconf.sl_max_fullbreak_current_dir_change));
    xmlwriter.writeTextElement("sl_cycle_int_limit", QString::number(mcconf.sl_cycle_int_limit));
    xmlwriter.writeTextElement("sl_cycle_int_limit_high_fac", QString::number(mcconf.sl_phase_advance_at_br));
    xmlwriter.writeTextElement("sl_cycle_int_rpm_br", QString::number(mcconf.sl_cycle_int_rpm_br));
    xmlwriter.writeTextElement("sl_bemf_coupling_k", QString::number(mcconf.sl_bemf_coupling_k));
    xmlwriter.writeTextElement("hall_table_0", QString::number(mcconf.hall_table[0]));
    xmlwriter.writeTextElement("hall_table_1", QString::number(mcconf.hall_table[1]));
    xmlwriter.writeTextElement("hall_table_2", QString::number(mcconf.hall_table[2]));
    xmlwriter.writeTextElement("hall_table_3", QString::number(mcconf.hall_table[3]));
    xmlwriter.writeTextElement("hall_table_4", QString::number(mcconf.hall_table[4]));
    xmlwriter.writeTextElement("hall_table_5", QString::number(mcconf.hall_table[5]));
    xmlwriter.writeTextElement("hall_table_6", QString::number(mcconf.hall_table[6]));
    xmlwriter.writeTextElement("hall_table_7", QString::number(mcconf.hall_table[7]));
    xmlwriter.writeTextElement("hall_sl_erpm", QString::number(mcconf.hall_sl_erpm));
    xmlwriter.writeTextElement("s_pid_kp", QString::number(mcconf.s_pid_kp));
    xmlwriter.writeTextElement("s_pid_ki", QString::number(mcconf.s_pid_ki));
    xmlwriter.writeTextElement("s_pid_kd", QString::number(mcconf.s_pid_kd));
    xmlwriter.writeTextElement("s_pid_min_rpm", QString::number(mcconf.s_pid_min_erpm));
    xmlwriter.writeTextElement("p_pid_kp", QString::number(mcconf.p_pid_kp));
    xmlwriter.writeTextElement("p_pid_ki", QString::number(mcconf.p_pid_ki));
    xmlwriter.writeTextElement("p_pid_kd", QString::number(mcconf.p_pid_kd));
    xmlwriter.writeTextElement("cc_startup_boost_duty", QString::number(mcconf.cc_startup_boost_duty));
    xmlwriter.writeTextElement("cc_min_current", QString::number(mcconf.cc_min_current));
    xmlwriter.writeTextElement("cc_gain", QString::number(mcconf.cc_gain));
    xmlwriter.writeTextElement("cc_ramp_step_max", QString::number(mcconf.cc_ramp_step_max));
    xmlwriter.writeTextElement("m_fault_stop_time_ms", QString::number(mcconf.m_fault_stop_time_ms));
    xmlwriter.writeTextElement("m_duty_ramp_step", QString::number(mcconf.m_duty_ramp_step));
    xmlwriter.writeTextElement("m_duty_ramp_step_rpm_lim", QString::number(mcconf.m_duty_ramp_step_rpm_lim));
    xmlwriter.writeTextElement("m_current_backoff_gain", QString::number(mcconf.m_current_backoff_gain));
    xmlwriter.writeTextElement("meta_description", mcconf.meta_description);

    xmlwriter.writeEndElement();
    xmlwriter.writeEndDocument();
    file.close();

    return true;
}