#include "ECU.h" #include "ui_ECU.h" ECU::ECU(QWidget *parent) : ToolsWidget(parent), ui(new Ui::ECU) { ui->setupUi(this); QFile file(":/qss/ECU.qss"); file.open(QFile::ReadOnly); QTextStream filetext(&file); QString stylesheet = filetext.readAll(); this->setStyleSheet(stylesheet); file.close(); setWindowTitle(tr("ECU")); //eadc setColor(ui->labHeatMode,inital); setColor(ui->labHeatStatus,inital); setColor(ui->labPsi,inital); setColor(ui->labPs,inital); setColor(ui->labQci,inital); setColor(ui->labQc,inital); setColor(ui->labHp,inital); setColor(ui->labHpr,inital); setColor(ui->labTs,inital); setColor(ui->labTt,inital); setColor(ui->labMi,inital); setColor(ui->labVi,inital); setColor(ui->labVt,inital); setColor(ui->labAdr,inital); setColor(ui->labAoai1,inital); setColor(ui->labAoai2,inital); setColor(ui->labAoat1,inital); setColor(ui->labAoat2,inital); setColor(ui->labAosi1,inital); setColor(ui->labAosi2,inital); setColor(ui->labAost1,inital); setColor(ui->labAost2,inital); setColor(ui->labCoffpressK0,inital); setColor(ui->labCoffpressK1,inital); setColor(ui->labCoffpressK2,inital); setColor(ui->labCoffpressK3,inital); setColor(ui->labCoffAngleK0,inital); setColor(ui->labCoffAngleK1,inital); setColor(ui->labCoffAngleK2,inital); setColor(ui->labCoffAngleK3,inital); //故障字 setColor(ui->psFault,state::inital); setColor(ui->qcFau,state::inital); setColor(ui->tsFau,state::inital); setColor(ui->aoa1Fau,state::inital); setColor(ui->aoa2Fau,state::inital); setColor(ui->aos1Fau,state::inital); setColor(ui->aos2Fau,state::inital); setColor(ui->heatFau,state::inital); setColor(ui->exStorageFau,state::inital); setColor(ui->aoaDiffFau,state::inital); setColor(ui->aosDiffFau,state::inital); setColor(ui->qcZeroFau,state::inital); setColor(ui->overTempFau,state::inital); setColor(ui->systemFau,state::inital); //数据有效性 setColor(ui->psi,state::inital); setColor(ui->ps,state::inital); setColor(ui->qci,state::inital); setColor(ui->qc,state::inital); setColor(ui->hp,state::inital); setColor(ui->hpr,state::inital); setColor(ui->ts,state::inital); setColor(ui->tt,state::inital); setColor(ui->mi,state::inital); setColor(ui->vi,state::inital); setColor(ui->vt,state::inital); setColor(ui->adr,state::inital); setColor(ui->aoai1,state::inital); setColor(ui->aoai2,state::inital); setColor(ui->aoat1,state::inital); setColor(ui->aoat2,state::inital); setColor(ui->aosi1,state::inital); setColor(ui->aosi2,state::inital); setColor(ui->aost1,state::inital); setColor(ui->aost2,state::inital); //ecu setColor(ui->label_rpm_c,inital); setColor(ui->labRMP,inital); setColor(ui->label_rpm_t,inital); setColor(ui->labT1,inital); setColor(ui->labT5,inital); setColor(ui->labP2,inital); setColor(ui->labServoCurrent,inital); //setColor(ui->labOilLow,inital); //setColor(ui->labP2High,inital); setColor(ui->label_oilPressure,inital); setColor(ui->labStates,inital); //sspc setColor(ui->labBusVoltage,inital); setColor(ui->labBatteryVoltage,inital); setColor(ui->labBatteryCurrent,inital); setColor(ui->labMainVoltage,inital); setColor(ui->labMainCurrent,inital); setColor(ui->labCurrentCh1,inital); setColor(ui->labCurrentCh2,inital); setColor(ui->labCurrentCh3,inital); setColor(ui->labCurrentCh4,inital); setColor(ui->labCurrentCh5,inital); setColor(ui->labCurrentCh6,inital); setColor(ui->labCurrentCh7,inital); setColor(ui->labCurrentCh8,inital); setColor(ui->labCurrentCh9,inital); setColor(ui->labCurrentCh10,inital); setColor(ui->labCurrentCh11,inital); setColor(ui->labCurrentCh12,inital); setColor(ui->labCurrentCh13,inital); //BAT setColor(ui->label_BAT_CH1,inital); setColor(ui->label_BAT_CH2,inital); setColor(ui->label_BAT_CH3,inital); setColor(ui->label_BAT_CH4,inital); setColor(ui->label_BAT_CH5,inital); setColor(ui->label_BAT_CH6,inital); setColor(ui->label_BAT_CH7,inital); setColor(ui->label_BAT_CH8,inital); setColor(ui->label_BAT_CH9,inital); setColor(ui->label_BAT_CH10,inital); } ECU::~ECU() { delete ui; } void ECU::recieveData(const int &id, const QByteArray &data) { //return; if(id == 1) { Parse *parse = new Parse; connect(this,&ECU::parseData, parse,&Parse::parseData); connect(parse,&Parse::EADC_Info, this,&ECU::EADC_Info); connect(parse,&Parse::ECU_Info, this,&ECU::ECU_Info); connect(parse,&Parse::SSPC_Info, this,&ECU::SSPC_Info); QThreadPool::globalInstance()->start(parse); emit parseData(id,data); } } void ECU::EADC_Info(Parse::_eadc info) { ui->labHeatMode->setText(info.heatmode); ui->labHeatStatus->setText(info.heatstatus); if((info.psi < 15000.0) || (info.psi > 110000.0)) setColor(ui->labPsi, state::failure); else setColor(ui->labPsi, state::success); ui->labPsi->setText(QString::number(info.psi, 'f', 0) ); if((info.ps < 15000.0) || (info.ps > 110000.0)) setColor(ui->labPs, state::failure); else setColor(ui->labPs, state::success); ui->labPs->setText(QString::number(info.ps, 'f', 0) ); if((info.qci < 0.0) || (info.qci > 104000.0)) setColor(ui->labQci, state::failure); else setColor(ui->labQci, state::success); ui->labQci->setText(QString::number(info.qci, 'f', 0) ); if((info.qc < 0.0) || (info.qc > 104000.0)) setColor(ui->labQc, state::failure); else setColor(ui->labQc, state::success); ui->labQc->setText(QString::number(info.qc, 'f', 0) ); if((info.hp < -600.0) || (info.hp > 13000.0)) setColor(ui->labHp, state::failure); else setColor(ui->labHp, state::success); ui->labHp->setText(QString::number(info.hp, 'f', 1) ); if((info.hpr < -300.0) || (info.hpr > 300.0)) setColor(ui->labHpr, state::failure); else setColor(ui->labHpr, state::success); ui->labHpr->setText(QString::number(info.hpr, 'f', 1) ); if((info.ts < -60.0) || (info.ts > 80.0)) setColor(ui->labTs, state::failure); else setColor(ui->labTs, state::success); ui->labTs->setText(QString::number(info.ts, 'f', 1) ); if((info.tt < -60.0) || (info.tt > 350.0)) setColor(ui->labTt, state::failure); else setColor(ui->labTt, state::success); ui->labTt->setText(QString::number(info.tt, 'f', 1) ); if(info.mi > 1.965) setColor(ui->labMi, state::failure); else setColor(ui->labMi, state::success); ui->labMi->setText(QString::number(info.mi, 'f', 3) ); if(info.vi > 1280.0) setColor(ui->labVi, state::failure); else setColor(ui->labVi, state::success); ui->labVi->setText(QString::number(info.vi, 'f', 1) ); if(info.vt > 2660.0) setColor(ui->labVt, state::failure); else setColor(ui->labVt, state::success); ui->labVt->setText(QString::number(info.vt, 'f', 1) ); if((info.adr < 0.182) || info.adr > 1.451) setColor(ui->labAdr, state::failure); else setColor(ui->labAdr, state::success); ui->labAdr->setText(QString::number(info.adr, 'f', 4) ); ui->labAoai1->setText(QString::number(info.aoai1, 'f', 1) ); ui->labAoai2->setText(QString::number(info.aoai2, 'f', 1) ); ui->labAoat1->setText(QString::number(info.aoat1, 'f', 1) ); ui->labAoat2->setText(QString::number(info.aoat2, 'f', 1) ); ui->labAosi1->setText(QString::number(info.aosi1, 'f', 1) ); ui->labAosi2->setText(QString::number(info.aosi2, 'f', 1) ); ui->labAost1->setText(QString::number(info.aost1, 'f', 1) ); ui->labAost2->setText(QString::number(info.aost2, 'f', 1) ); ui->labCoffpressK0->setText(QString::number(info.coffpress_k0, 'f', 1) ); ui->labCoffpressK1->setText(QString::number(info.coffpress_k1, 'f', 1) ); ui->labCoffpressK2->setText(QString::number(info.coffpress_k2, 'f', 1) ); ui->labCoffpressK3->setText(QString::number(info.coffpress_k3, 'f', 1) ); ui->labCoffAngleK0->setText(QString::number(info.coffangle_k0, 'f', 1) ); ui->labCoffAngleK1->setText(QString::number(info.coffangle_k1, 'f', 1) ); ui->labCoffAngleK2->setText(QString::number(info.coffangle_k2, 'f', 1) ); ui->labCoffAngleK3->setText(QString::number(info.coffangle_k3, 'f', 1) ); //故障字 setColor(ui->psFault,info.faultword.ps ? state::failure : state::success); setColor(ui->qcFau,info.faultword.qc ? state::failure : state::success); setColor(ui->tsFau,info.faultword.ts ? state::failure : state::success); setColor(ui->aoa1Fau,info.faultword.aoa1 ? state::failure : state::success); setColor(ui->aoa2Fau,info.faultword.aoa2 ? state::failure : state::success); setColor(ui->aos1Fau,info.faultword.aos1 ? state::failure : state::success); setColor(ui->aos2Fau,info.faultword.aos2 ? state::failure : state::success); setColor(ui->heatFau,info.faultword.heat ? state::failure : state::success); setColor(ui->exStorageFau,info.faultword.ex_storage ? state::failure : state::success); setColor(ui->aoaDiffFau,info.faultword.aoa_diff ? state::failure : state::success); setColor(ui->aosDiffFau,info.faultword.aos_diff ? state::failure : state::success); setColor(ui->qcZeroFau,info.faultword.qc_zero ? state::failure : state::success); setColor(ui->overTempFau,info.faultword.overtemp ? state::failure : state::success); setColor(ui->systemFau,info.faultword.system ? state::failure : state::success); //数据有效性 setColor(ui->psi,info.datavalid.psi ? state::failure : state::success); setColor(ui->ps,info.datavalid.ps ? state::failure : state::success); setColor(ui->qci,info.datavalid.qci ? state::failure : state::success); setColor(ui->qc,info.datavalid.qc ? state::failure : state::success); setColor(ui->hp,info.datavalid.hp ? state::failure : state::success); setColor(ui->hpr,info.datavalid.hpr ? state::failure : state::success); setColor(ui->ts,info.datavalid.ts ? state::failure : state::success); setColor(ui->tt,info.datavalid.tt ? state::failure : state::success); setColor(ui->mi,info.datavalid.mi ? state::failure : state::success); setColor(ui->vi,info.datavalid.mi ? state::failure : state::success); setColor(ui->vt,info.datavalid.vt ? state::failure : state::success); setColor(ui->adr,info.datavalid.adr ? state::failure : state::success); setColor(ui->aoai1,info.datavalid.aoai1 ? state::failure : state::success); setColor(ui->aoai2,info.datavalid.aoai2 ? state::failure : state::success); setColor(ui->aoat1,info.datavalid.aoat1 ? state::failure : state::success); setColor(ui->aoat2,info.datavalid.aoat2 ? state::failure : state::success); setColor(ui->aosi1,info.datavalid.aosi1 ? state::failure : state::success); setColor(ui->aosi2,info.datavalid.aosi2 ? state::failure : state::success); setColor(ui->aost1,info.datavalid.aost1 ? state::failure : state::success); setColor(ui->aost2,info.datavalid.aost2 ? state::failure : state::success); } void ECU::ECU_Info(Parse::_ecu info) { ui->label_rpm_c->setText(QString::number(info.rpm_c, 'f', 0) ); if(info.rpm_c < 20000) { setColor(ui->label_rpm_c,state::failure); } else if(info.rpm_c < 21000) { setColor(ui->label_rpm_c,state::warning); } else { setColor(ui->label_rpm_c,state::success); } ui->labRMP->setText(QString::number(info.rpm, 'f', 0) ); if(info.rpm < 20000) { setColor(ui->labRMP,state::failure); } else if(info.rpm < 21000) { setColor(ui->labRMP,state::warning); } else { setColor(ui->labRMP,state::success); } ui->label_rpm_t->setText(QString::number(info.rpm_t, 'f', 0) ); if(info.rpm_t < 20000) { setColor(ui->label_rpm_t,state::failure); } else if(info.rpm_t < 21000) { setColor(ui->label_rpm_t,state::warning); } else { setColor(ui->label_rpm_t,state::success); } ui->labT1->setText(QString::number(info.t1, 'f', 0) ); //qDebug() << "t1" << info.t1; if(info.p2 > 0.6) setColor(ui->labP2, state::failure); else setColor(ui->labP2, state::success); ui->labP2->setText(QString::number(info.p2, 'f', 2) ); ui->labServoCurrent->setText(QString::number(info.servo_current, 'f', 0) ); //ui->labOilLow->setText(info.oil_low); //ui->label_oilPressure->setText(info.p2_high); ui->labStates->setText(info.states); } void ECU::setECUTemp(qreal temp,qreal pressure) { if(temp > 850) { setColor(ui->labT5, state::failure); } else if(temp > 830) { setColor(ui->labT5, state::warning); } else { setColor(ui->labT5, state::success); } ui->labT5->setText(QString::number(temp, 'f', 0) ); if(pressure < 150) { setColor(ui->label_oilPressure, state::failure); } else if(pressure > 280) { setColor(ui->label_oilPressure, state::warning); } else { setColor(ui->label_oilPressure, state::success); } ui->label_oilPressure->setText(QString::number(pressure, 'f',0) ); } void ECU::SSPC_Info(Parse::_sspc info) { ui->labBusVoltage->setText(QString::number(info.bus_voltage, 'f', 1) ); ui->labBatteryVoltage->setText(QString::number(info.battery_voltage, 'f', 1) ); ui->labBatteryCurrent->setText(QString::number(info.battery_current, 'f', 1) ); if(info.battery_current >= 50.0) { setColor(ui->labBatteryCurrent,failure); } else { setColor(ui->labBatteryCurrent,inital); } ui->labMainVoltage->setText(QString::number(info.main_voltage, 'f', 1) ); ui->labMainCurrent->setText(QString::number(info.main_current, 'f', 1) ); if(info.main_current >= 50.0) { setColor(ui->labMainCurrent,failure); } else { setColor(ui->labMainCurrent,inital); } ui->labCurrentCh1->setText(QString::number(info.current_ch1, 'f', 1) ); if(info.current_ch1 >= 32.0) { setColor(ui->labCurrentCh1,failure); } else { setColor(ui->labCurrentCh1,inital); } ui->labCurrentCh2->setText(QString::number(info.current_ch2, 'f', 1) ); if(info.current_ch2 >= 22.0) { setColor(ui->labCurrentCh2,failure); } else { setColor(ui->labCurrentCh2,inital); } ui->labCurrentCh3->setText(QString::number(info.current_ch3, 'f', 1) ); if(info.current_ch3 >= 10.0) { setColor(ui->labCurrentCh3,failure); } else { setColor(ui->labCurrentCh3,inital); } ui->labCurrentCh4->setText(QString::number(info.current_ch4, 'f', 1) ); if(info.current_ch4 >= 10.0) { setColor(ui->labCurrentCh4,failure); } else { setColor(ui->labCurrentCh4,inital); } ui->labCurrentCh5->setText(QString::number(info.current_ch5, 'f', 1) ); if(info.current_ch5 >= 2.0) { setColor(ui->labCurrentCh5,failure); } else { setColor(ui->labCurrentCh5,inital); } ui->labCurrentCh6->setText(QString::number(info.current_ch6, 'f', 1) ); if(info.current_ch6 >= 2.0) { setColor(ui->labCurrentCh6,failure); } else { setColor(ui->labCurrentCh6,inital); } ui->labCurrentCh7->setText(QString::number(info.current_ch7, 'f', 1) ); if(info.current_ch7 >= 2.0) { setColor(ui->labCurrentCh7,failure); } else { setColor(ui->labCurrentCh7,inital); } ui->labCurrentCh8->setText(QString::number(info.current_ch8, 'f', 1) ); if(info.current_ch8 >= 1.0) { setColor(ui->labCurrentCh8,failure); } else { setColor(ui->labCurrentCh8,inital); } ui->labCurrentCh9->setText(QString::number(info.current_ch9, 'f', 1) ); if(info.current_ch9 >= 1.0) { setColor(ui->labCurrentCh9,failure); } else { setColor(ui->labCurrentCh9,inital); } ui->labCurrentCh10->setText(QString::number(info.current_ch10, 'f', 1) ); if(info.current_ch10 >= 10.0) { setColor(ui->labCurrentCh10,failure); } else { setColor(ui->labCurrentCh10,inital); } ui->labCurrentCh11->setText(QString::number(info.current_ch11, 'f', 1) ); if(info.current_ch11 >= 6.0) { setColor(ui->labCurrentCh11,failure); } else { setColor(ui->labCurrentCh11,inital); } ui->labCurrentCh12->setText(QString::number(info.current_ch12, 'f', 1) ); if(info.current_ch12 >= 5.0) { setColor(ui->labCurrentCh12,failure); } else { setColor(ui->labCurrentCh12,inital); } ui->labCurrentCh13->setText(QString::number(info.current_ch13, 'f', 1) ); if(info.current_ch13 >= 1.0) { setColor(ui->labCurrentCh13,failure); } else { setColor(ui->labCurrentCh13,inital); } } void ECU::setBat(quint16 value[10]) { ui->label_BAT_CH1->setText(QString::number(value[0],'f',0)); ui->label_BAT_CH2->setText(QString::number(value[1],'f',0)); ui->label_BAT_CH3->setText(QString::number(value[2],'f',0)); ui->label_BAT_CH4->setText(QString::number(value[3],'f',0)); ui->label_BAT_CH5->setText(QString::number(value[4],'f',0)); ui->label_BAT_CH6->setText(QString::number(value[5],'f',0)); ui->label_BAT_CH7->setText(QString::number(value[6],'f',0)); ui->label_BAT_CH8->setText(QString::number(value[7],'f',0)); ui->label_BAT_CH9->setText(QString::number(value[8],'f',0)); ui->label_BAT_CH10->setText(QString::number(value[9],'f',0)); }