#include "errorinfo_page.h" #include "ui_errorinfo_page.h" #include ErrorInfo_Page::ErrorInfo_Page(QWidget *parent, Work_Thread *wt) : custom_dialog(parent), ui(new Ui::ErrorInfo_Page) { ui->setupUi(this); workThread = wt; set_btn_beep(ui->pushButton_Exit,SIGNAL(pressed())); set_btn_beep(ui->pushButton_pre,SIGNAL(pressed())); set_btn_beep(ui->pushButton_next,SIGNAL(pressed())); connect(ui->pushButton_Exit,SIGNAL(released()),this,SLOT(buttonReleasedAction())); connect(ui->pushButton_pre,SIGNAL(released()),this,SLOT(buttonReleasedAction())); connect(ui->pushButton_next,SIGNAL(released()),this,SLOT(buttonReleasedAction())); timer_500ms = new QTimer(this); connect(timer_500ms,SIGNAL(timeout()),this,SLOT(update_slot())); allErrList<start(500); this->exec(); } void ErrorInfo_Page::closeErrorinfoPage() { timer_500ms->stop(); this->close(); } void ErrorInfo_Page::SystemTime(void) { QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间 QString str = time.toString("yyyy-MM-dd hh:mm:ss"); //设置显示格式 ui->label_Time->setText(str); } void ErrorInfo_Page::checkIcon() { /* if(workThread->iconState.usbState) ui->label_USB->setPixmap(QPixmap(":new/prefix1/usb.png")); else ui->label_USB->setPixmap(QPixmap("")); */ } void ErrorInfo_Page::dspValue() { QString title = tr("故障信息--"); if(workThread->packParam.pack_type == PACK_TYPE_Halo){ title += tr("哈啰"); } else{ title += tr("其它"); } ui->label_Title->setText(title); QString str; str.sprintf("%d-0x%X-0x%X",workThread->packData.bms_error_state,workThread->packData.error[0],workThread->packData.error[1]); ui->label_errorcode->setText(str); quint32 errorCode = workThread->packData.error[1]; errorCode = (errorCode<<16) + workThread->packData.error[0]; errorCount = 0; currentErrList.clear(); for(quint8 n=0;n<29;n++){ if(errorCode & ((quint32)1< 0){ pageSum += 1; } if(pageSum<1){ pageSum = 1; } pageIndex = 0; QTableWidgetItem *item; for(int i=0;i<8;i++) { item = new QTableWidgetItem(""); item->setTextAlignment(0x0084); ui->tableWidget->setItem(i,0,item); } setTable(); updateValue(); } void ErrorInfo_Page::setTable() { ui->label_pagecnt->setText(QString::number(pageIndex+1) + "/" +QString::number(pageSum));//+tr(" 页")); if(pageSum < 2){ ui->pushButton_pre->setEnabled(false); ui->pushButton_next->setEnabled(false); } else{ if(pageIndex == 0){ ui->pushButton_pre->setEnabled(false); ui->pushButton_next->setEnabled(true); } else if(pageIndex+1 == pageSum){ ui->pushButton_pre->setEnabled(true); ui->pushButton_next->setEnabled(false); } } } void ErrorInfo_Page::updateValue() { quint16 errorindexstart = pageIndex*8; quint16 errorindex = 0; QTableWidgetItem *item; for(quint8 n=0;n<8;n++){ errorindex = errorindexstart+n; if(errorindex < errorCount){ item = ui->tableWidget->item(n, 0); item->setText(currentErrList.at(errorindex)); } else{ item = ui->tableWidget->item(n, 0); item->setText(""); } } } void ErrorInfo_Page::update_slot() { SystemTime(); checkIcon(); //updateValue(); if(1 == workThread->remoteState.to_workpage){ closeErrorinfoPage(); } } void ErrorInfo_Page::buttonReleasedAction() { QPushButton *pb = dynamic_cast(sender()); if(ui->pushButton_Exit == pb) { closeErrorinfoPage(); } else if(ui->pushButton_pre == pb) { if(pageIndex > 0){ pageIndex--; } setTable(); updateValue(); } else if(ui->pushButton_next == pb) { if(pageIndex+1 < pageSum){ pageIndex++; } setTable(); updateValue(); } }