#include "INS.h" #include "ui_INS.h" INS::INS(QWidget *parent) : ToolsWidget(parent), ui(new Ui::INS) { ui->setupUi(this); QFile file(":/qss/INS.qss"); file.open(QFile::ReadOnly); QTextStream filetext(&file); QString stylesheet = filetext.readAll(); this->setStyleSheet(stylesheet); file.close(); setWindowTitle(tr("INS")); //INS setColor(ui->labRollRate, inital); setColor(ui->labYawRate, inital); setColor(ui->labPitchRate, inital); setColor(ui->labYaw, inital); setColor(ui->labPitch, inital); setColor(ui->labRoll, inital); setColor(ui->labAx, inital); setColor(ui->labAy, inital); setColor(ui->labAz, inital); //NAV setColor(ui->labLongitude, inital); setColor(ui->labLatitude, inital); setColor(ui->labAltitude, inital); setColor(ui->labWorktime, inital); setColor(ui->labVe, inital); setColor(ui->labVn, inital); setColor(ui->labVu, inital); setColor(ui->labGs, inital); setColor(ui->labHeading, inital); setColor(ui->labAe, inital); setColor(ui->labAn, inital); setColor(ui->labAu, inital); setColor(ui->labSatelliteLongitude, inital); setColor(ui->labSatelliteLatitude, inital); setColor(ui->labSatelliteAltitude, inital); setColor(ui->labSatelliteVe, inital); setColor(ui->labSatelliteVn, inital); setColor(ui->labSatelliteVu, inital); setColor(ui->labDate, inital); setColor(ui->labTime, inital); //工作状态字1 setColor(ui->chkNavStatus, inital); setColor(ui->chkInsStatus, inital); setColor(ui->chkHeadingSrc, inital); setColor(ui->chkSatellite, inital); //工作状态字2 setColor(ui->chkIns, inital); setColor(ui->chkAltitudeState, inital); setColor(ui->chkExRTK, inital); setColor(ui->chkExSatellite, inital); setColor(ui->chkRTK, inital); setColor(ui->chkSate, inital); setColor(ui->chkHeadingState, inital); setColor(ui->chkComm, inital); //工作状态字3 setColor(ui->chkDas, inital); setColor(ui->chkInstall, inital); setColor(ui->chkAltitudeInfo, inital); //=============sbg=============== //imu setColor(ui->label_imu_timestamp, inital); setColor(ui->label_imu_ax, inital); setColor(ui->label_imu_ay, inital); setColor(ui->label_imu_az, inital); setColor(ui->label_imu_gx, inital); setColor(ui->label_imu_gy, inital); setColor(ui->label_imu_gz, inital); setColor(ui->label_imu_temp, inital); setColor(ui->label_imu_velx, inital); setColor(ui->label_imu_vely, inital); setColor(ui->label_imu_velz, inital); setColor(ui->label_imu_anglex, inital); setColor(ui->label_imu_angley, inital); setColor(ui->label_imu_anglez, inital); setColor(ui->checkBox_imu_com_ok, inital); setColor(ui->checkBox_imu_status, inital); setColor(ui->checkBox_imu_ax_bit, inital); setColor(ui->checkBox_imu_ay_bit, inital); setColor(ui->checkBox_imu_az_bit, inital); setColor(ui->checkBox_imu_gx_bit, inital); setColor(ui->checkBox_imu_gy_bit, inital); setColor(ui->checkBox_imu_gz_bit, inital); setColor(ui->checkBox_imu_a_inrange, inital); setColor(ui->checkBox_imu_g_inrange, inital); //euler setColor(ui->label_euler_timestamp, inital); setColor(ui->label_euler_roll, inital); setColor(ui->label_euler_pitch, inital); setColor(ui->label_euler_yaw, inital); setColor(ui->label_euler_acc_roll, inital); setColor(ui->label_euler_acc_pitch, inital); setColor(ui->label_euler_acc_yaw, inital); setColor(ui->label_euler_solutionMode, inital); setColor(ui->checkBox_euler_attitude, inital); setColor(ui->checkBox_euler_heading, inital); setColor(ui->checkBox_euler_velocity, inital); setColor(ui->checkBox_euler_position, inital); setColor(ui->checkBox_euler_vertref, inital); setColor(ui->checkBox_euler_magref, inital); setColor(ui->checkBox_euler_gps1_vel, inital); setColor(ui->checkBox_euler_gps1_pos, inital); setColor(ui->checkBox_euler_gps1_hdt, inital); setColor(ui->checkBox_euler_align, inital); setColor(ui->checkBox_euler_gps2_vel, inital); setColor(ui->checkBox_euler_gps2_pos, inital); setColor(ui->checkBox_euler_gps2_hdt, inital); setColor(ui->checkBox_euler_odo, inital); setColor(ui->checkBox_euler_bt, inital); setColor(ui->checkBox_euler_wt, inital); setColor(ui->checkBox_euler_usel, inital); setColor(ui->checkBox_euler_airdata, inital); setColor(ui->checkBox_euler_zupt, inital); setColor(ui->checkBox_euler_depth, inital); //vel setColor(ui->label_vel_timestamp, inital); setColor(ui->label_vel_tow, inital); setColor(ui->label_vel_vn, inital); setColor(ui->label_vel_ve, inital); setColor(ui->label_vel_vd, inital); setColor(ui->label_vel_acc_vn, inital); setColor(ui->label_vel_acc_ve, inital); setColor(ui->label_vel_acc_vd, inital); setColor(ui->label_vel_course, inital); setColor(ui->label_vel_acc_course, inital); setColor(ui->label_vel_status, inital); setColor(ui->label_vel_type, inital); //pos setColor(ui->label_pos_timestamp, inital); setColor(ui->label_pos_tow, inital); setColor(ui->label_pos_lat, inital); setColor(ui->label_pos_lng, inital); setColor(ui->label_pos_alt, inital); setColor(ui->label_pos_undelation, inital); setColor(ui->label_pos_acc_lat, inital); setColor(ui->label_pos_acc_lng, inital); setColor(ui->label_pos_acc_alt, inital); setColor(ui->label_pos_svn, inital); setColor(ui->label_pos_base_id, inital); setColor(ui->label_pos_diff_age, inital); setColor(ui->checkBox_pos_status, inital); setColor(ui->checkBox_pos_type, inital); setColor(ui->checkBox_pos_GPS_L1, inital); setColor(ui->checkBox_pos_GPS_L2, inital); setColor(ui->checkBox_pos_GPS_L5, inital); setColor(ui->checkBox_pos_GLO_L1, inital); setColor(ui->checkBox_pos_GLO_L2, inital); setColor(ui->checkBox_pos_GLO_L3, inital); setColor(ui->checkBox_pos_GAL_E1, inital); setColor(ui->checkBox_pos_GAL_E5A, inital); setColor(ui->checkBox_pos_GAL_E5ALT, inital); setColor(ui->checkBox_pos_GAL_E5B, inital); setColor(ui->checkBox_pos_GAL_E6, inital); setColor(ui->checkBox_pos_BDS_B1, inital); setColor(ui->checkBox_pos_BDS_B2, inital); setColor(ui->checkBox_pos_BDS_B3, inital); } INS::~INS() { delete ui; } void INS::recieveData(const int &id, const QByteArray &data) { //qDebug() << "data" << data; //return; if(id == 0) { Parse *parse = new Parse; connect(this,&INS::parseData, parse,&Parse::parseData); connect(parse,&Parse::INS_Info, this,&INS::INS_Info); connect(parse,&Parse::NAV_Info, this,&INS::NAV_Info); //sbg imu connect(parse,&Parse::imu_info, this,&INS::imu); //sbg euler connect(parse,&Parse::euler_info, this,&INS::euler); QThreadPool::globalInstance()->start(parse); emit parseData(id,data); } else if(id == 1) { Parse *parse = new Parse; connect(this,&INS::parseData, parse,&Parse::parseData); //sbg vel connect(parse,&Parse::vel_info, this,&INS::vel); //sbg pos connect(parse,&Parse::pos_info, this,&INS::pos); QThreadPool::globalInstance()->start(parse); emit parseData(id,data); } } void INS::INS_Info(Parse::_ins info) { ui->labYaw->setText(QString::number(info.yaw, 'f', 2) ); ui->labPitch->setText(QString::number(info.pitch, 'f', 2) ); ui->labRoll->setText(QString::number(info.roll, 'f', 2) ); ui->labRollRate->setText(QString::number(info.roll_rate, 'f', 2) ); ui->labYawRate->setText(QString::number(info.yaw_rate, 'f', 2) ); ui->labPitchRate->setText(QString::number(info.pitch_rate, 'f', 2) ); ui->labAx->setText(QString::number(info.ax, 'f', 2) ); ui->labAy->setText(QString::number(info.ay, 'f', 2) ); ui->labAz->setText(QString::number(info.az, 'f', 2) ); } void INS::NAV_Info(Parse::_nav info) { ui->labLongitude->setText(QString::number(info.longitude, 'f', 8) ); ui->labLatitude->setText(QString::number(info.latitude, 'f', 8) ); ui->labAltitude->setText(QString::number(info.altitude, 'f', 1) ); ui->labWorktime->setText(QString("%1").arg(info.worktime) ); ui->labVe->setText(QString::number(info.Ve, 'f', 2) ); ui->labVn->setText(QString::number(info.Vn, 'f', 2) ); ui->labVu->setText(QString::number(info.Vu, 'f', 2) ); ui->labGs->setText(QString::number(info.Gs, 'f', 2) ); ui->labHeading->setText(QString::number(info.heading, 'f', 2) ); ui->labAe->setText(QString::number(info.Ae, 'f', 2) ); ui->labAn->setText(QString::number(info.An, 'f', 2) ); ui->labAu->setText(QString::number(info.Au, 'f', 2) ); ui->labSatelliteLongitude->setText(QString::number(info.satellite_longitude, 'f', 8) ); ui->labSatelliteLatitude->setText(QString::number(info.satellite_latitude, 'f', 8) ); ui->labSatelliteAltitude->setText(QString::number(info.satellite_altitude, 'f', 1) ); ui->labSatelliteVe->setText(QString::number(info.satellite_Ve, 'f', 2) ); ui->labSatelliteVn->setText(QString::number(info.satellite_Vn, 'f', 2) ); ui->labSatelliteVu->setText(QString::number(info.satellite_Vu, 'f', 2) ); ui->labDate->setText(QString("%1.%2.%3").arg(info.year, 4).arg(info.month, 2).arg(info.day, 2)); ui->labTime->setText(QString("%1:%2:%3").arg(info.hour, 2).arg(info.minute, 2).arg(info.second, 2)); //工作状态字1 ui->chkNavStatus->setText("导航状态:" + info.state1.navStatus); ui->chkInsStatus->setText("组合状态:" + info.state1.insStatus); ui->chkHeadingSrc->setText("航向信号源:" + info.state1.headingSrc); ui->chkSatellite->setText("卫星信号源:" + info.state1.Satellite); //工作状态字2 setColor(ui->chkIns, (info.state2.ins)?(state::success):(state::failure)); setColor(ui->chkAltitudeState, (info.state2.altitude)?(state::success):(state::failure)); setColor(ui->chkExRTK, (info.state2.exRTK)?(state::success):(state::failure)); setColor(ui->chkExSatellite, (info.state2.exSatellite)?(state::success):(state::failure)); setColor(ui->chkRTK, (info.state2.RTK)?(state::success):(state::failure)); setColor(ui->chkSate, (info.state2.satellite)?(state::success):(state::failure)); setColor(ui->chkHeadingState, (info.state2.heading)?(state::success):(state::failure)); setColor(ui->chkComm, (info.state2.communication)?(state::success):(state::failure)); //工作状态字3 setColor(ui->chkDas, (info.state3.das)?(state::success):(state::failure)); setColor(ui->chkInstall, (info.state3.install)?(state::success):(state::failure)); ui->chkAltitudeInfo->setText("高度阻尼信号:" + info.state3.altitudeInfo); if(info.state3.altitudeInfo == tr("无")) { setColor(ui->chkAltitudeInfo,state::failure); } else if(info.state3.altitudeInfo == tr("卫星")) { setColor(ui->chkAltitudeInfo,state::success); } else if(info.state3.altitudeInfo == tr("气压")) { setColor(ui->chkAltitudeInfo,state::warning); } } void INS::imu(Parse::_imu info) { ui->label_imu_timestamp->setText(QString::number(info.time_stamp)); ui->label_imu_ax->setText(QString::number(info.accel_x, 'f', 2)); ui->label_imu_ay->setText(QString::number(info.accel_y, 'f', 2)); ui->label_imu_az->setText(QString::number(info.accel_z, 'f', 2)); ui->label_imu_gx->setText(QString::number(info.gyro_x, 'f', 2)); ui->label_imu_gy->setText(QString::number(info.gyro_y, 'f', 2)); ui->label_imu_gz->setText(QString::number(info.gyro_z, 'f', 2)); ui->label_imu_temp->setText(QString::number(info.temp, 'f', 2)); ui->label_imu_velx->setText(QString::number(info.delta_vel_x, 'f', 2)); ui->label_imu_vely->setText(QString::number(info.delta_vel_y, 'f', 2)); ui->label_imu_velz->setText(QString::number(info.delta_vel_z, 'f', 2)); ui->label_imu_anglex->setText(QString::number(info.delta_angle_x, 'f', 2)); ui->label_imu_angley->setText(QString::number(info.delta_angle_y, 'f', 2)); ui->label_imu_anglez->setText(QString::number(info.delta_angle_z, 'f', 2)); setColor(ui->checkBox_imu_com_ok, (info.status.com_ok)?(success):(failure)); setColor(ui->checkBox_imu_status, (info.status.status_bit)?(success):(failure)); setColor(ui->checkBox_imu_ax_bit, (info.status.accel_x_bit)?(success):(failure)); setColor(ui->checkBox_imu_ay_bit, (info.status.accel_y_bit)?(success):(failure)); setColor(ui->checkBox_imu_az_bit, (info.status.accel_z_bit)?(success):(failure)); setColor(ui->checkBox_imu_gx_bit, (info.status.gyro_x_bit)?(success):(failure)); setColor(ui->checkBox_imu_gy_bit, (info.status.gyro_y_bit)?(success):(failure)); setColor(ui->checkBox_imu_gz_bit, (info.status.gyro_z_bit)?(success):(failure)); setColor(ui->checkBox_imu_a_inrange, (info.status.accel_in_range)?(success):(failure)); setColor(ui->checkBox_imu_g_inrange, (info.status.gyro_in_range)?(success):(failure)); } void INS::euler(Parse::_euler info) { ui->label_euler_timestamp->setText(QString::number(info.time_stamp)); ui->label_euler_roll->setText(QString::number(info.roll, 'f', 2)); ui->label_euler_pitch->setText(QString::number(info.pitch, 'f', 2)); ui->label_euler_yaw->setText(QString::number(info.yaw, 'f', 2)); ui->label_euler_acc_roll->setText(QString::number(info.roll_acc, 'f', 2)); ui->label_euler_acc_pitch->setText(QString::number(info.pitch_acc, 'f', 2)); ui->label_euler_acc_yaw->setText(QString::number(info.yaw_acc, 'f', 2)); ui->label_euler_solutionMode->setText(info.solution.solutionMode); setColor(ui->checkBox_euler_attitude, (info.solution.attitude_valid)?(success):(failure)); setColor(ui->checkBox_euler_heading, (info.solution.heading_valid)?(success):(failure)); setColor(ui->checkBox_euler_velocity, (info.solution.velocity_valid)?(success):(failure)); setColor(ui->checkBox_euler_position, (info.solution.position_valid)?(success):(failure)); setColor(ui->checkBox_euler_vertref, (info.solution.vert_ref_used)?(success):(failure)); setColor(ui->checkBox_euler_magref, (info.solution.mag_ref_used)?(success):(failure)); setColor(ui->checkBox_euler_gps1_vel, (info.solution.gps1_vel_used)?(success):(failure)); setColor(ui->checkBox_euler_gps1_pos, (info.solution.gps1_pos_used)?(success):(failure)); setColor(ui->checkBox_euler_gps1_hdt, (info.solution.gps1_hdt_used)?(success):(failure)); setColor(ui->checkBox_euler_align, (info.solution.align_valid)?(success):(failure)); setColor(ui->checkBox_euler_gps2_vel, (info.solution.gps2_vel_used)?(success):(failure)); setColor(ui->checkBox_euler_gps2_pos, (info.solution.gps2_pos_used)?(success):(failure)); setColor(ui->checkBox_euler_gps2_hdt, (info.solution.gps2_hdt_used)?(success):(failure)); setColor(ui->checkBox_euler_odo, (info.solution.odo_used)?(success):(failure)); setColor(ui->checkBox_euler_bt, (info.solution.dvl_bt_used)?(success):(failure)); setColor(ui->checkBox_euler_wt, (info.solution.dvl_wt_used)?(success):(failure)); setColor(ui->checkBox_euler_usel, (info.solution.usel_used)?(success):(failure)); setColor(ui->checkBox_euler_airdata, (info.solution.air_data_used)?(success):(failure)); setColor(ui->checkBox_euler_zupt, (info.solution.zupt_used)?(success):(failure)); setColor(ui->checkBox_euler_depth, (info.solution.depth_used)?(success):(failure)); } void INS::vel(Parse::_vel info) { ui->label_vel_timestamp->setText(QString::number(info.time_stamp)); ui->label_vel_tow->setText(QString::number(info.tow)); ui->label_vel_vn->setText(QString::number(info.vel_n, 'f', 2)); ui->label_vel_ve->setText(QString::number(info.vel_e, 'f', 2)); ui->label_vel_vd->setText(QString::number(info.vel_d, 'f', 2)); ui->label_vel_acc_vn->setText(QString::number(info.vel_acc_n, 'f', 2)); ui->label_vel_acc_ve->setText(QString::number(info.vel_acc_e, 'f', 2)); ui->label_vel_acc_vd->setText(QString::number(info.vel_acc_d, 'f', 2)); ui->label_vel_course->setText(QString::number(info.course, 'f', 2)); ui->label_vel_acc_course->setText(QString::number(info.course_acc, 'f', 2)); ui->label_vel_status->setText(info.status.vel_status); ui->label_vel_type->setText(info.status.vel_type); if(info.status.vel_status == 0) { setColor(ui->label_vel_status, failure); } else { setColor(ui->label_vel_status, success); } //setColor(ui->checkBox_vel_status, inital); //setColor(ui->checkBox_vel_type, inital); } void INS::pos(Parse::_pos info) { ui->label_pos_timestamp->setText(QString::number(info.time_stamp)); ui->label_pos_tow->setText(QString::number(info.tow)); ui->label_pos_lat->setText(QString::number(info.lat, 'f', 8)); ui->label_pos_lng->setText(QString::number(info.lng, 'f', 8)); ui->label_pos_alt->setText(QString::number(info.alt, 'f', 2)); ui->label_pos_undelation->setText(QString::number(info.undulation, 'f', 2)); ui->label_pos_acc_lat->setText(QString::number(info.pos_acc_lat, 'f', 1)); ui->label_pos_acc_lng->setText(QString::number(info.pos_acc_lng, 'f', 1)); ui->label_pos_acc_alt->setText(QString::number(info.pos_acc_alt, 'f', 1)); ui->label_pos_svn->setText(QString::number(info.num_sv_used)); ui->label_pos_base_id->setText(QString::number(info.base_station_id)); ui->label_pos_diff_age->setText(QString::number(info.diff_age)); ui->checkBox_pos_status->setText(info.status.pos_status); ui->checkBox_pos_type->setText(info.status.pos_type); //setColor(ui->checkBox_pos_status, (info.solution_status.attitude_valid)?(success):(failure)); //setColor(ui->checkBox_pos_type, (info.solution_status.attitude_valid)?(success):(failure)); setColor(ui->checkBox_pos_GPS_L1, (info.status.gps_l1_used)?(success):(failure)); setColor(ui->checkBox_pos_GPS_L2, (info.status.gps_l2_used)?(success):(failure)); setColor(ui->checkBox_pos_GPS_L5, (info.status.gps_l5_used)?(success):(failure)); setColor(ui->checkBox_pos_GLO_L1, (info.status.glo_l1_used)?(success):(failure)); setColor(ui->checkBox_pos_GLO_L2, (info.status.glo_l2_used)?(success):(failure)); setColor(ui->checkBox_pos_GLO_L3, (info.status.glo_l3_used)?(success):(failure)); setColor(ui->checkBox_pos_GAL_E1, (info.status.gal_e1_used)?(success):(failure)); setColor(ui->checkBox_pos_GAL_E5A, (info.status.gal_e5a_used)?(success):(failure)); setColor(ui->checkBox_pos_GAL_E5ALT, (info.status.gal_e5alt_used)?(success):(failure)); setColor(ui->checkBox_pos_GAL_E5B, (info.status.gal_e5b_used)?(success):(failure)); setColor(ui->checkBox_pos_GAL_E6, (info.status.gal_e6_used)?(success):(failure)); setColor(ui->checkBox_pos_BDS_B1, (info.status.bds_b1_used)?(success):(failure)); setColor(ui->checkBox_pos_BDS_B2, (info.status.bds_b2_used)?(success):(failure)); setColor(ui->checkBox_pos_BDS_B3, (info.status.bds_b3_used)?(success):(failure)); if(info.status.status_value == 0) { setColor(ui->checkBox_pos_status, success); } else { setColor(ui->checkBox_pos_status, failure); } if(info.status.status_value >= 2) { setColor(ui->checkBox_pos_type, success); } else { setColor(ui->checkBox_pos_type, failure); } }