把parse解析的数据存成csv文件

This commit is contained in:
2022-10-14 15:33:53 +08:00
parent 402e797f02
commit 53518f7871
4 changed files with 1239 additions and 6 deletions
+563 -4
View File
@@ -1,4 +1,4 @@
#include "Parse.h"
#include "Parse.h"
Parse::Parse(QObject *parent) : QObject(parent)
{
@@ -99,7 +99,7 @@ void Parse::run()
<< ins.az;
*/
saveInsDataToFile(ins); //把数据保存到文件
emit INS_Info(ins);
}
@@ -345,6 +345,7 @@ void Parse::run()
//qDebug() << "state" <<state1.byte << state2.byte << state3.byte;
saveNavDataToFile(nav);;
emit NAV_Info(nav);
}
@@ -483,7 +484,7 @@ void Parse::run()
group.status = data[data_count++];
saveGearDataToFile(group); //把数据保存到文件中
emit gear_Info(group);
}
@@ -524,6 +525,7 @@ void Parse::run()
group.left_brake = data[data_count++];
group.right_brake = data[data_count++];
saveActuatorDataToFile(group); //把数据保存到文件
emit actuator_info(group);
/*
@@ -573,6 +575,7 @@ void Parse::run()
group.temp = data[data_count++];
saveActuator1DataToFile(group); //把数据保存到文件
emit actuator1_info(group);
/*
@@ -622,6 +625,7 @@ void Parse::run()
group.temp = data[data_count++];
saveActuator2DataToFile(group); //把数据保存到文件
emit actuator2_info(group);
/*
@@ -763,7 +767,7 @@ void Parse::run()
group.delta_angle_z = src.F * 57.29;
saveImuDataToFile(group); //把数据保存到文件
emit imu_info(group);
}
@@ -896,6 +900,7 @@ void Parse::run()
group.solution.depth_used = status.depth_used;
saveEulerDataToFile(group); //把数据保存到文件中
emit euler_info(group);
}
@@ -910,6 +915,7 @@ void Parse::run()
group.left_brake = data[data_count++];
group.right_brake = data[data_count++];
saveActuatorDataToFile(group);
emit actuator_info_brake(group);
}
@@ -1128,6 +1134,7 @@ void Parse::run()
src.B[1] = data[data_count++];
eadc.coffangle_k3 = src.i[0] * 1.0/1024;//攻角侧滑角校准系数K3
saveEadcDataToFile(eadc); //把数据保存到文件中
emit EADC_Info(eadc);
}
@@ -1220,6 +1227,7 @@ void Parse::run()
}
*/
saveEcuDataToFile(group); //把数据保存到文件
emit ECU_Info(group);
}
@@ -1253,6 +1261,7 @@ void Parse::run()
sspc.current_ch12 = data[16] * 0.1;
sspc.current_ch13 = data[17] * 0.1;
saveSspcDataToFile(sspc); //把数据保存到文件中
emit SSPC_Info(sspc);
}
@@ -1293,6 +1302,7 @@ void Parse::run()
group.left_brake = data[data_count++];
group.right_brake = data[data_count++];
saveActuatorDataToFile(group); //把数据保存到文件中
emit actuator_info(group);
}
@@ -1333,6 +1343,7 @@ void Parse::run()
group.temp = data[data_count++];
saveActuator1DataToFile(group); //把数据保存到文件中
emit actuator1_info(group);
}
@@ -1373,6 +1384,7 @@ void Parse::run()
group.temp = data[data_count++];
saveActuator2DataToFile(group); //把数据保存到文件
emit actuator2_info(group);
}
@@ -1501,6 +1513,7 @@ void Parse::run()
group.course_acc = src.F;
saveVelDataToFile(group); // 把数据保存到文件中
emit vel_info(group);
}
@@ -1717,6 +1730,7 @@ void Parse::run()
src.B[1] = data[data_count++];
group.diff_age = src.I[0];
savePosDataToFile(group); //把数据保存到文件中
emit pos_info(group);
}
@@ -1797,6 +1811,7 @@ void Parse::run()
quint8 err6 = data[data_count++];
group.err6.oil_press = (err6 & 0x03) >> 0;
saveSspcDataToFile(group); //把数据保存到文件中
emit SSPC_Info_state(group);
}
@@ -1833,3 +1848,547 @@ void Parse::parseData(const int id, const QByteArray data)
qDebug() << "id" << id << ":" << str;
*/
}
void Parse::saveInsDataToFile(const _ins &ins)
{
QFile file(ins_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << ins.roll_rate << ",";
stream << ins.yaw_rate << ",";
stream << ins.pitch_rate << ",";
stream << ins.yaw << ",";
stream << ins.pitch << ",";
stream << ins.roll << ",";
stream << ins.ax << ",";
stream << ins.ay << ",";
stream << ins.az << "\n";
file.flush();
file.close();
}
}
void Parse::saveNavDataToFile(const _nav &nav)
{
QFile file(nav_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << nav.state1.navStatus << ",";
stream << nav.state1.insStatus << ",";
stream << nav.state1.headingSrc << ",";
stream << nav.state1.Satellite << ",";
stream << nav.longitude << ",";
stream << nav.latitude << ",";
stream << nav.altitude << ",";
stream << nav.worktime << ",";
stream << nav.Ve << ",";
stream << nav.Vn << ",";
stream << nav.Vu << ",";
stream << nav.Gs << ",";
stream << nav.heading << ",";
stream << nav.Ae << ",";
stream << nav.An << ",";
stream << nav.Au << ",";
stream << nav.satellite_longitude << ",";
stream << nav.satellite_latitude << ",";
stream << nav.satellite_altitude << ",";
stream << nav.satellite_Ve << ",";
stream << nav.satellite_Vn << ",";
stream << nav.satellite_Vu << ",";
stream << nav.state2.ins << ",";
stream << nav.state2.altitude << ",";
stream << nav.state2.exRTK << ",";
stream << nav.state2.exSatellite << ",";
stream << nav.state2.RTK << ",";
stream << nav.state2.satellite << ",";
stream << nav.state2.heading << ",";
stream << nav.state2.communication << ",";
stream << nav.state3.back7 << ",";
stream << nav.state3.das << ",";
stream << nav.state3.install << ",";
stream << nav.state3.back4 << ",";
stream << nav.state3.altitudeInfo << ",";
stream << nav.state3.back1 << ",";
stream << nav.state3.back0 << ",";
stream << nav.year << ",";
stream << nav.month << ",";
stream << nav.day << ",";
stream << nav.hour << ",";
stream << nav.minute << ",";
stream << nav.second << "\n";
file.flush();
file.close();
}
}
void Parse::saveGearDataToFile(const _gear &gear)
{
QFile file(gear_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
for(int i = 0; i < 24; ++i)
{
stream << gear.SW[i] << ",";
}
for(int i = 0; i < 3; ++i)
{
stream << gear.DI[i] << ",";
}
stream << gear.LeftWheel << ",";
stream << gear.RightWheel << ",";
stream << gear.rpm3 << ",";
stream << gear.rpm4 << ",";
stream << gear.fuel << ",";
stream << gear.LeftPressure << ",";
stream << gear.RightPressure << ",";
stream << gear.AirPressure << ",";
stream << gear.cpu_load << ",";
for(int i = 0; i < 24; ++i)
{
stream << gear.DO[0] << ",";
}
stream << gear.cmd << ",";
stream << gear.status << "\n";
file.flush();
file.close();
}
}
void Parse::saveActuatorDataToFile(const _actuator &actuator)
{
QFile file(actuator_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UFT-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << actuator.type << ",";
stream << actuator.id << ",";
stream << actuator.wheel << ",";
stream << actuator.left_trans << ",";
stream << actuator.right_trans << ",";
stream << actuator.status << ",";
stream << actuator.current << ",";
stream << actuator.temp << ",";
stream << actuator.left_brake << ",";
stream << actuator.right_brake << "\n";
file.flush();
file.close();
}
}
void Parse::saveActuator1DataToFile(const _actuator1 &actuator1)
{
QFile file(actuator1_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << actuator1.type << ",";
stream << actuator1.id << ",";
stream << actuator1.left_ail << ",";
stream << actuator1.right_ail << ",";
stream << actuator1.left_rud << ",";
stream << actuator1.right_rud << ",";
stream << actuator1.status << ",";
stream << actuator1.current << ",";
stream << actuator1.temp << "\n";
file.flush();
file.close();
}
}
void Parse::saveActuator2DataToFile(const _actuator2 &actuator2)
{
QFile file(actuator2_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << actuator2.type << ",";
stream << actuator2.id << ",";
stream << actuator2.left_ele << ",";
stream << actuator2.right_ele << ",";
stream << actuator2.left_brake << ",";
stream << actuator2.right_brake << ",";
stream << actuator2.status << ",";
stream << actuator2.current << ",";
stream << actuator2.temp << "\n";
file.flush();
file.close();
}
}
void Parse::saveImuDataToFile(const _imu &imu)
{
QFile file(imu_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << imu.time_stamp << ",";
stream << imu.status.com_ok << ",";
stream << imu.status.status_bit << ",";
stream << imu.status.accel_x_bit << ",";
stream << imu.status.accel_y_bit << ",";
stream << imu.status.accel_z_bit << ",";
stream << imu.status.gyro_x_bit << ",";
stream << imu.status.gyro_y_bit << ",";
stream << imu.status.gyro_z_bit << ",";
stream << imu.status.accel_in_range << ",";
stream << imu.status.gyro_in_range << ",";
stream << imu.accel_x << ",";
stream << imu.accel_y << ",";
stream << imu.accel_z << ",";
stream << imu.gyro_x << ",";
stream << imu.gyro_y << ",";
stream << imu.gyro_z << ",";
stream << imu.temp << ",";
stream << imu.delta_vel_x << ",";
stream << imu.delta_vel_y << ",";
stream << imu.delta_vel_z << ",";
stream << imu.delta_angle_x << ",";
stream << imu.delta_angle_y << ",";
stream << imu.delta_angle_z << "\n";
file.flush();
file.close();
}
}
void Parse::saveEulerDataToFile(const _euler &euler)
{
QFile file(euler_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << euler.time_stamp << ",";
stream << euler.roll << ",";
stream << euler.pitch << ",";
stream << euler.yaw << ",";
stream << euler.roll_acc << ",";
stream << euler.pitch_acc << ",";
stream << euler.yaw_acc << ",";
stream << euler.solution.solutionMode << ",";
stream << euler.solution.attitude_valid << ",";
stream << euler.solution.heading_valid << ",";
stream << euler.solution.velocity_valid << ",";
stream << euler.solution.position_valid << ",";
stream << euler.solution.vert_ref_used << ",";
stream << euler.solution.mag_ref_used << ",";
stream << euler.solution.gps1_vel_used << ",";
stream << euler.solution.gps1_pos_used << ",";
stream << euler.solution.gps1_hdt_used << ",";
stream << euler.solution.gps2_vel_used << ",";
stream << euler.solution.gps2_pos_used << ",";
stream << euler.solution.gps2_hdt_used << ",";
stream << euler.solution.odo_used << ",";
stream << euler.solution.dvl_bt_used << ",";
stream << euler.solution.dvl_wt_used << ",";
stream << euler.solution.usel_used << ",";
stream << euler.solution.air_data_used << ",";
stream << euler.solution.zupt_used << ",";
stream << euler.solution.align_valid << ",";
stream << euler.solution.depth_used << "\n";
file.flush();
file.close();
}
}
void Parse::saveEadcDataToFile(const _eadc &eadc)
{
QFile file(eadc_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << eadc.heatmode << ",";
stream << eadc.heatstatus << ",";
stream << eadc.heatmode_t << ",";
stream << eadc.heatstatus_t << ",";
stream << eadc.psi << ",";
stream << eadc.ps << ",";
stream << eadc.qci << ",";
stream << eadc.qc << ",";
stream << eadc.hp << ",";
stream << eadc.hpr << ",";
stream << eadc.ts << ",";
stream << eadc.tt << ",";
stream << eadc.mi << ",";
stream << eadc.vi << ",";
stream << eadc.vt << ",";
stream << eadc.adr << ",";
stream << eadc.aoai1 << ",";
stream << eadc.aoai2 << ",";
stream << eadc.aoat1 << ",";
stream << eadc.aoat2 << ",";
stream << eadc.aosi1 << ",";
stream << eadc.aosi2 << ",";
stream << eadc.faultword.ps << ",";
stream << eadc.faultword.qc << ",";
stream << eadc.faultword.ts << ",";
stream << eadc.faultword.aoa1 << ",";
stream << eadc.faultword.aoa2 << ",";
stream << eadc.faultword.aos1 << ",";
stream << eadc.faultword.aos2 << ",";
stream << eadc.faultword.heat << ",";
stream << eadc.faultword.ex_storage << ",";
stream <<eadc.faultword.aoa_diff << ",";
stream << eadc.faultword.aos_diff << ",";
stream << eadc.faultword.qc_zero << ",";
stream << eadc.faultword.back1 << ",";
stream << eadc.faultword.back2 << ",";
stream << eadc.faultword.overtemp << ",";
stream << eadc.faultword.system << ",";
stream << eadc.datavalid.psi << ",";
stream << eadc.datavalid.ps << ",";
stream << eadc.datavalid.qci << ",";
stream << eadc.datavalid.qc << ",";
stream << eadc.datavalid.hp << ",";
stream << eadc.datavalid.hpr << ",";
stream << eadc.datavalid.ts << ",";
stream << eadc.datavalid.tt << ",";
stream << eadc.datavalid.mi << ",";
stream << eadc.datavalid.vi << ",";
stream << eadc.datavalid.vt << ",";
stream << eadc.datavalid.adr << ",";
stream << eadc.datavalid.aoai1 << ",";
stream << eadc.datavalid.aoai2 << ",";
stream << eadc.datavalid.aoat1 << ",";
stream << eadc.datavalid.aoat2 << ",";
stream << eadc.datavalid.aosi1 << ",";
stream << eadc.datavalid.aosi2 << ",";
stream << eadc.datavalid.aost1 << ",";
stream << eadc.datavalid.aost2 << ",";
stream << eadc.coffpress_k0 << ",";
stream << eadc.coffpress_k1 << ",";
stream << eadc.coffpress_k2 << ",";
stream << eadc.coffpress_k3 << ",";
stream << eadc.coffangle_k0 << ",";
stream << eadc.coffangle_k1 << ",";
stream << eadc.coffangle_k2 << ",";
stream << eadc.coffangle_k3 << "\n";
file.flush();
file.close();
}
}
void Parse::saveEcuDataToFile(const _ecu &ecu)
{
QFile file(ecu_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << ecu.rpm_c << ",";
stream << ecu.rpm << ",";
stream << ecu.rpm_t << ",";
stream << ecu.t1 << ",";
steram << ecu.t5 << ",";
stream << ecu.p2 << ",";
stream << ecu.servo_current << ",";
stream << ecu.oil_low << ",";
stream << ecu.p2_high << ",";
stream << ecu.states << "\n";
file.flush();
file.close();
}
}
void Parse::saveSspcDataToFile(const _sspc &sspc)
{
QFile file(sspc_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << sspc.bus_voltage << ",";
stream << sspc.battery_voltage << ",";
stream << sspc.battery_current << ",";
stream << sspc.main_voltage << ",";
stream << sspc.main_current << ",";
stream << sspc.current_ch1 << ",";
stream << sspc.current_ch2 << ",";
stream << sspc.current_ch3 << ",";
stream << sspc.current_ch4 << ",";
stream << sspc.current_ch5 << ",";
stream << sspc.current_ch6 << ",";
stream << sspc.current_ch7 << ",";
stream << sspc.current_ch8 << ",";
stream << sspc.current_ch9 << ",";
stream << sspc.current_ch10 << ",";
stream << sspc.current_ch11 << ",";
stream << sspc.current_ch12 << ",";
stream << sspc.current_ch13 << ",";
stream << sspc.source << ",";
stream << sspc.state1.current_ch1 << ",";
stream << sspc.state1.current_ch2 << ",";
stream << sspc.state1.current_ch3 << ",";
stream << sspc.state1.current_ch4 << ",";
stream << sspc.state1.current_ch5 << ",";
stream << sspc.state1.current_ch6 << ",";
stream << sspc.state1.current_ch7 << ",";
stream << sspc.state1.current_ch8 << ",";
stream << sspc.state2.current_ch9 << ",";
stream << sspc.state2.current_ch10 << ",";
stream << sspc.state2.current_ch11 << ",";
stream << sspc.state2.current_ch12 << ",";
stream << sspc.state2.current_ch13 << ",";
stream << sspc.state2.current_ch14 << ",";
stream << sspc.state2.current_ch15 << ",";
stream << sspc.state2.current_ch16 << ",";
stream << sspc.check.CUP_STA << ",";
stream << sspc.check.current << ",";
stream << sspc.check.current_10A << ",";
stream << sspc.check.current_40A << ",";
stream << sspc.err1.ins_sbg << ",";
stream << sspc.err1.ins_320 << ",";
stream << sspc.err1.dlink_l << ",";
stream << sspc.err1.eadc << ",";
stream << sspc.err1.rec << ",";
stream << sspc.err1.landinggear << ",";
stream << sspc.err1.act1 << ",";
stream << sspc.err2.act2 << ",";
stream << sspc.err2.act3 << ",";
stream << sspc.err2 .computer << ",";
stream << sspc.err3.pump << ",";
stream << sspc.err3.ail << ",";
stream << sspc.err3.temp_56v << ",";
stream << sspc.err3.temp_28v << ",";
stream << sspc.err4.computer << ",";
stream << sspc.err4.ecu << ",";
stream << sspc.err4.eadc << ",";
stream << sspc.err4.temp << ",";
stream << sspc.err5.fuel << ",";
stream << sspc.err5.temp_56v2 << ",";
stream << sspc.err5.v_act << ",";
stream << sspc.err5.current56V << ",";
stream << sspc.err6.oil_press << "\n";
file.flush();
file.close();
}
}
void Parse::saveVelDataToFile(const _vel &vel)
{
QFile file(vel_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << vel.time_stamp << ",";
stream << vel.status.status_value << ",";
stream << vel.status.type_value << ",";
stream << vel.status.vel_status << ",";
stream << vel.status.vel_type << ",";
stream << vel.tow << ",";
stream << vel.vel_n << ",";
stream << vel.vel_e << ",";
stream << vel.vel_d << ",";
stream << vel.vel_acc_n << ",";
stream << vel.vel_acc_e << ",";
stream << vel.vel_acc_d << ",";
stream << vel.course << ",";
stream << vel.course_acc << "\n";
file.flush();
file.close();
}
}
void Parse::savePosDataToFile(const _pos &pos)
{
QFile file(pos_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << QDateTime::currentDateTime().toString("yyyyMMddHHmmss").toUtf8() << ",";
stream << pos.time_stamp << ",";
stream << pos.status.status_value << ",";
stream << pos.status.type_value << ",";
stream << pos.status.pos_status << ",";
stream << pos.status.pos_type << ",";
stream << pos.status.gps_l1_used << ",";
stream << pos.status.gps_l2_used << ",";
stream << pos.status.gps_l5_used << ",";
stream << pos.status.glo_l1_used << ",";
straem << pos.status.glo_l2_used << ",";
stream << pos.status.glo_l2_used << ",";
stream << pos.status.glo_l3_used << ",";
stream << pos.status.gal_e1_used << ",";
stream << pos.status.gal_e5a_used << ",";
stream << pos.status.gal_e5b_used << ",";
stream << pos.status.gal_e5alt_used << ",";
stream << pos.status.gal_e6_used << ",";
stream << pos.status.bds_b1_used << ",";
stream << pos.status.bds_b2_used << ",";
stream << pos.status.bds_b3_used << ",";
stream << pos.status.qzss_l1_used << ",";
stream << pos.status.qzss_l2_used << ",";
stream << pos.status.qzss_l3_used << ",";
stream << pos.tow << ",";
stream << pos.lat << ",";
stream << pos.lng << ",";
stream << pos.alt << ",";
stream << pos.undulation << ",";
stream << pos.pos_acc_lat << ",";
stream << pos.pos_acc_lng << ",";
stream << pos.pos_acc_alt << ",";
stream << pos.num_sv_used << ",";
stream << pos.base_station_id << ",";
stream << pos.diff_age << "\n";
file.flush();
file.close();
}
}
+81 -2
View File
@@ -1,4 +1,4 @@
#ifndef PARSE_H
#ifndef PARSE_H
#define PARSE_H
#include <QObject>
@@ -483,6 +483,20 @@ public:
quint16 diff_age;
}_pos;
//记录数据文件的文件名
QString ecu_file_name;
QString ins_file_name;
QString nav_file_name;
QString gear_file_name;
QString actuator_file_name;
QString actuator1_file_name;
QString actuator2_file_name;
QString imu_file_name;
QString euler_file_name;
QString eadc_file_name;
QString sspc_file_name;
QString vel_file_name;
QString pos_file_name;
explicit Parse(QObject *parent = nullptr);
~Parse();
@@ -520,7 +534,72 @@ signals:
void SSPC_Info_state(Parse::_sspc info);
private:
/**
* @brief 把ins解析的数据保存到文件
* @param ins 保存ins数据的结构体
*/
void saveInsDataToFile(Parse::_ins const &ins);
/**
* @brief 把nav解析的数据保存到文件
* @param nav 保存nav数据的结构器
*/
void saveNavDataToFile(Parse::_nav const &nav);
/**
* @brief 把gear解析的数据保存到文件
* @param gear 保存gear数据的结构体
*/
void saveGearDataToFile(Parse::_gear const &gear);
/**
* @brief 把actuator解析的数据保存到文件
* @param actuator 保存actuator数据的结构体
*/
void saveActuatorDataToFile(Parse::_actuator const &actuator);
/**
* @brief 把actuator1的数据保存到文件中
* @param actuator1 保存actuator1数据的结构体
*/
void saveActuator1DataToFile(Parse::_actuator1 const &actuator1);
/**
* @brief 把actuator2的数据保存到文件中
* @param actuator2 保存actuator2数据的结构体
*/
void saveActuator2DataToFile(Parse::_actuator2 const &actuator2);
/**
* @brief 把imu的数据保存到文件中
* @param imu imu数据的的结构体
*/
void saveImuDataToFile(Parse::_imu const &imu);
/**
* @brief 把euler的数据保存到文件中
* @param euler euler数据的结构体
*/
void saveEulerDataToFile(Parse::_euler const &euler);
/**
* @brief 把eadu的数据保存到文件中
* @param eadc 数据的结构体
*/
void saveEadcDataToFile(Parse::_eadc const &eadc);
/**
* @brief 把ecu的数据保存到文件中
* @param ecu 数据的结构体
*/
void saveEcuDataToFile(Parse::_ecu const &ecu);
/**
* @brief 把sspc的数据保存到文件中
* @param sspc 保存数据的结构体
*/
void saveSspcDataToFile(Parse::_sspc const &sspc);
/**
* @brief 把vel的数据保存到文件中
* @param vel 保存数据的结构体
*/
void saveVelDataToFile(Parse::_vel const &vel);
/**
* @brief 把pos的数据保存到文件中
* @param pos pos数据的结构体
*/
void savePosDataToFile(Parse::_pos const &pos);
private:
QByteArray raw;
+574
View File
@@ -1,5 +1,6 @@
#include "ToolsUI.h"
#include "ui_ToolsUI.h"
#include <QTextStream>
//消息通过广播和监听处理
@@ -81,6 +82,8 @@ ToolsUI::ToolsUI(QWidget *parent) :
}
}
createRecordDataFiles(); //创建保存数据的文件
//测试
/*
connect(&timer, &QTimer::timeout,
@@ -198,6 +201,19 @@ void ToolsUI::recieveDataSlot(const int &id, const QByteArray &data)
//qDebug() << "tools thread:" << QThread::currentThreadId();
Parse *parse = new Parse;
parse->ecu_file_name = ecu_file_name;
parse->ins_file_name = ins_file_name;
parse->nav_file_name = nav_file_name;
parse->gear_file_name = gear_file_name;
parse->actuator_file_name = actuator_file_name;
parse->actuator1_file_name = actuator1_file_name;
parse->actuator2_file_name = actuator2_file_name;
parse->imu_file_name = imu_file_name;
parse->euler_file_name = euler_file_name;
parse->eadc_file_name = eadc_file_name;
parse->sspc_file_name = sspc_file_name;
parse->vel_file_name = vel_file_name;
parse->pos_file_name = pos_file_name;
connect(this,&ToolsUI::parseData,
parse,&Parse::parseData);
@@ -368,3 +384,561 @@ void ToolsUI::on_pushButton_ShowExtern_clicked()
}
}
void ToolsUI::createRecordDataFiles()
{
QFile file;
//创建保存ins数据的文件
ins_file_name = QString("./log/other/ins_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss"));
file.setFileName(ins_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.clear();
data.append("time,");
data.append("roll_rate,");
data.append("yaw_rate,");
data.append("pitch_rate,");
data.append("yaw,");
data.append("pitch,");
data.append("roll,");
data.append("ax,");
data.append("ay,");
data.append("az\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存nav数据的文件
nav_file_name = QString("./log/other/nav_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(nav_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("navStatus,");
data.append("insStatus,");
data.append("headingSrc,");
data.append("Satellite,");
data.append("longitude,");
data.append("latitude,");
data.append("altitude,");
data.append("worktime,");
data.append("Ve,");
data.append("Vn,");
data.append("Vu,");
data.append("Gs,");
data.append("heading,");
data.append("Ae,");
data.append("An,");
data.append("Au,");
data.append("satellite_longitude,");
data.append("satellite_latitude,");
data.append("satellite_altitude,");
data.append("satellite_Ve,");
data.append("satellite_Vn,");
data.append("satellite_Vu,");
data.append("ins,");
data.append("altitude,");
data.append("exRTK,");
data.append("exSatellite,");
data.append("RTK,");
data.append("satellite,");
data.append("heading,");
data.append("communication,");
data.append("back7,");
data.append("das,");
data.append("install,");
data.append("back4,");
data.append("altitudeInfo,");
data.append("back1,");
data.append("back0,");
data.append("year,");
data.append("month,");
data.append("day,");
data.append("hour,");
data.append("minute,");
data.append("second\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存gear数据的文件
gear_file_name = QString("./log/other/gear_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(gear_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
for(int i = 0; i < 24; ++i)
{
data.append(QString("SW_%1,").arg(i).toLatin1().data() );
}
for(int i = 0; i < 3; ++i)
{
data.append(QString("DI_%1,").arg(i).toLatin1().data() );
}
data.append("LeftWheel,");
data.append("RightWheel,");
data.append("rpm3,");
data.append("rpm4,");
data.append("fuel,");
data.append("LeftPressure,");
data.append("RightPressure,");
data.append("AirPressure,");
data.append("cpu_load,");
for(int i = 0; i < 24; ++i)
{
data.append(QString("D0_%1,").arg(i).toLatin1().data() );
}
data.append("cmd,");
data.append("status\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存actuatorr数据的文件
actuator_file_name = QString("./log/other/actuator_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(actuator_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("type,");
data.append("id,");
data.append("wheel,");
data.append("left_trans,");
data.append("right_trans,");
data.append("status,");
data.append("current,");
data.append("temp,");
data.append("left_brake,");
data.append("right_brake\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存actuator1的数据
actuator1_file_name = QString("./log/other/actuator1_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(actuator1_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("type,");
data.append("id,");
data.append("left_ail,");
data.append("right_ail,");
data.append("left_rud,");
data.append("right_rud,");
data.append("status,");
data.append("current,");
data.append("temp\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存actuator2数据的文件
actuator2_file_name = QString("./log/other/actuator2_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(actuator2_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("type,");
data.append("id,");
data.append("left_ele,");
data.append("right_ele,");
data.append("left_brake,");
data.append("right_brake,");
data.append("status,");
data.append("current,");
data.append("temp\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存imu数据的文件
imu_file_name = QString("./log/other/imu_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(imu_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("time_stamp,");
data.append("com_ok,");
data.append("status_bit,");
data.append("accel_x_bit,");
data.append("accel_y_bit,");
data.append("accel_z_bit,");
data.append("gyro_x_bit,");
data.append("gyro_y_bit,");
data.append("gyro_z_bit,");
data.append("accel_in_range,");
data.append("gyro_in_range,");
data.append("accel_x,");
data.append("accel_y,");
data.append("accel_z,");
data.append("gyro_x,");
data.append("gyro_y,");
data.append("gyro_z,");
data.append("temp,");
data.append("delta_vel_x,");
data.append("delta_vel_y,");
data.append("delta_vel_z,");
data.append("delta_angle_x,");
data.append("delta_angle_y,");
data.append("delta_angle_z\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存euler数据的文件
euler_file_name = QString("./log/other/euler_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(euler_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("time_stamp,");
data.append("roll,");
data.append("pitch,");
data.append("yaw,");
data.append("roll_acc,");
data.append("pitch_acc,");
data.append("yaw_acc,");
data.append("solutionMode,");
data.append("attitude_valid,");
data.append("heading_valid,");
data.append("velocity_valid,");
data.append("position_valid,");
data.append("vert_ref_used,");
data.append("mag_ref_used,");
data.append("gps1_vel_used,");
data.append("gps1_pos_used,");
data.append("gps1_hdt_used,");
data.append("gps2_vel_used,");
data.append("gps2_pos_used,");
data.append("gps2_hdt_used,");
data.append("odo_used,");
data.append("dvl_bt_used,");
data.append("dvl_wt_used,");
data.append("usel_used,");
data.append("air_data_used,");
data.append("zupt_used,");
data.append("align_valid,");
data.append("depth_used\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存eadc数据的文件
eadc_file_name = QString("./log/other/eadc_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(eadc_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("heatmode,");
data.append("heatstatus,");
data.append("heatmode_t,");
data.append("heatstatus_t,");
data.append("psi,");
data.append("ps,");
data.append("qci,");
data.append("qc,");
data.append("hp,");
data.append("hpr,");
data.append("ts,");
data.append("tt,");
data.append("mi,");
data.append("vi,");
data.append("vt,");
data.append("adr,");
data.append("aoai1,");
data.append("aoai2,");
data.append("aoat1,");
data.append("aoat2,");
data.append("aosi1,");
data.append("aosi2,");
data.append("aost1,");
data.append("aost2,");
data.append("faultword_ps,");
data.append("faultword_qc,");
data.append("faultword_ts,");
data.append("faultword_aoa1,");
data.append("faultword_aoa2,");
data.append("faultword_aos1,");
data.append("faultword_aos2,");
data.append("faultword_heat,");
data.append("faultword_ex_storage,");
data.append("faultword_aoa_diff,");
data.append("faultword_aos_diff,");
data.append("faultword_qc_zero,");
data.append("faultword_back1,");
data.append("faultword_back2,");
data.append("faultword_overtemp,");
data.append("faultword_system,");
data.append("datavalid_psi,");
data.append("datavalid_ps,");
data.append("datavalid_qci,");
data.append("datavalid_qc,");
data.append("datavalid_hp,");
data.append("datavalid_hpr,");
data.append("datavalid_ts,");
data.append("datavalid_tt,");
data.append("datavalid_mi,");
data.append("datavalid_vi,");
data.append("datavalid_vt,");
data.append("datavalid_adr,");
data.append("datavalid_aoai1,");
data.append("datavalid_aoai2,");
data.append("datavalid_aoat1,");
data.append("datavalid_aoat2,");
data.append("datavalid_aosi1,");
data.append("datavalid_aosi2,");
data.append("datavalid_aost1,");
data.append("datavalid_aost2,");
data.append("coffpress_k0,");
data.append("coffpress_k1,");
data.append("coffpress_k,");
data.append("coffpress_k3,");
data.append("coffangle_k0,");
data.append("coffangle_k1,");
data.append("coffangle_k2,");
data.append("coffangle_k3\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存ecu数据的文件
ecu_file_name = QString("./log/other/ecu_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(ecu_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("rpm_c,");
data.append("rpm,");
data.append("rpm_t,");
data.append("t1,");
data.append("t5,");
data.append("p2,");
data.append("servo_current,");
data.append("oil_low,");
data.append("p2_high,");
data.append("states\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存sspc数据的文件
sspc_file_name = QString("./log/other/sspc_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(sspc_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("bus_voltage,");
data.append("battery_voltage,");
data.append("battery_current,");
data.append("main_voltage,");
data.append("main_current,");
data.append("current_ch1,");
data.append("current_ch2,");
data.append("current_ch3,");
data.append("current_ch4,");
data.append("current_ch5,");
data.append("current_ch6,");
data.append("current_ch7,");
data.append("current_ch8,");
data.append("current_ch9,");
data.append("current_ch10,");
data.append("current_ch11,");
data.append("current_ch12,");
data.append("current_ch13,");
data.append("source,");
data.append("state1_current_ch1,");
data.append("state1_current_ch2,");
data.append("state1_current_ch3,");
data.append("state1_current_ch4,");
data.append("state1_current_ch5,");
data.append("state1_current_ch6,");
data.append("state1_current_ch7,");
data.append("state1_current_ch8,");
data.append("state2_current_ch9,");
data.append("state2_current_ch10,");
data.append("state2_current_ch11,");
data.append("state2_current_ch12,");
data.append("state2_current_ch13,");
data.append("state2_current_ch14,");
data.append("state2_current_ch15,");
data.append("state2_current_ch16,");
data.append("check_CUP_STA,");
data.append("check_current,");
data.append("check_current_10A,");
data.append("check_current_40A,");
data.append("err1_ins_sbg,");
data.append("err1_ins_320,");
data.append("err1_dlink_l,");
data.append("err1_dlink_u,");
data.append("err1_eadc,");
data.append("err1_rec,");
data.append("err1_landinggear,");
data.append("err1_act1,");
data.append("err2_act2,");
data.append("err2_act3,");
data.append("err2_computer,");
data.append("err3_pump,");
data.append("err3_ail,");
data.append("err3_temp_56v,");
data.append("err3_temp_28v,");
data.append("err4_computer,");
data.append("err4_ecu,");
data.append("err4_eadc,");
data.append("err4_temp,");
data.append("err5_fuel,");
data.append("err5_temp_56v2,");
data.append("err5_v_act,");
data.append("err5_current56V,");
data.append("err6_oil_press\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存vel数据的文件
vel_file_name = QString("./log/other/vel_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(vel_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("time_stamp,");
data.append("status_status_value,");
data.append("status_type_value,");
data.append("status_vel_status,");
data.append("status_vel_type,");
data.append("tow,");
data.append("vel_n,");
data.append("vel_e,");
data.append("vel_d,");
data.append("vel_acc_n,");
data.append("vel_acc_e,");
data.append("vel_acc_d,");
data.append("course,");
data.append("course_acc\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
//创建保存pos数据的文件
pos_file_name = QString("./log/other/pos_%1.csv").arg(QDateTime::currentDateTime().toString("yyyyMMddHHmmss") );
file.setFileName(pos_file_name);
if(file.open(QIODevice::WriteOnly) )
{
QByteArray data;
data.append("time,");
data.append("time_stamp,");
data.append("status_status_value,");
data.append("status_type_value,");
data.append("status_pos_status,");
data.append("status_pos_type,");
data.append("status_gps_l1_used,");
data.append("status_gps_l2_used,");
data.append("status_gps_l5_used,");
data.append("status_glo_l1_used,");
data.append("status_glo_l2_used,");
data.append("status_glo_l3_used,");
data.append("status_gal_e1_used,");
data.append("status_gal_e5a_used,");
data.append("status_gal_e5b_used,");
data.append("status_gal_e5alt_used,");
data.append("status_gal_e6_used,");
data.append("status_bds_b1_used,");
data.append("status_bds_b2_used,");
data.append("status_bds_b3_used,");
data.append("status_qzss_l1_used,");
data.append("status_qzss_l2_used,");
data.append("status_qzss_l3_used,");
data.append("tow,");
data.append("lat,");
data.append("lng,");
data.append("alt,");
data.append("undulation,");
data.append("pos_acc_lat,");
data.append("pos_acc_lng,");
data.append("pos_acc_alt,");
data.append("num_sv_used,");
data.append("base_station_id,");
data.append("diff_age\n");
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << data;
file.flush(); //将数据刷新到文件中
file.close(); //关闭文件
}
}
+21
View File
@@ -109,6 +109,13 @@ signals:
void SSPC_Info_state(Parse::_sspc info);
private:
/**
* @brief 创建记录数据的文件
*/
void createRecordDataFiles();
private:
// QTimer timer;
Ui::ToolsUI *ui;
@@ -119,6 +126,20 @@ private:
QMap<int,QPushButton *> btnList;
QMap<int,ToolsWidget *> ToolsList;
//记录数据文件的文件名
QString ecu_file_name;
QString ins_file_name;
QString nav_file_name;
QString gear_file_name;
QString actuator_file_name;
QString actuator1_file_name;
QString actuator2_file_name;
QString imu_file_name;
QString euler_file_name;
QString eadc_file_name;
QString sspc_file_name;
QString vel_file_name;
QString pos_file_name;
};