#include "data_page.h" #include "ui_data_page.h" #include "Dialogs/filecopydialog.h" #include "Common/mymessagebox.h" #include "Common/classxml.h" Data_Page::Data_Page(QWidget *parent,Work_Thread *thread) : customDialog(parent), ui(new Ui::Data_Page) { ui->setupUi(this); work_thread = thread; connect(work_thread,SIGNAL(SentInterface(int)),this,SLOT(UpdateInterface(int))); work_thread->localData.Interface = FACE_DATA; initUi(); updateROM(); initNameListButton(); updateNameListButton(); one_sub_window_exist = false; set_btn_beep(ui->pushButton_name0,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name1,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name2,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name3,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name4,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name5,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name6,SIGNAL(pressed())); set_btn_beep(ui->pushButton_name7,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check0,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check1,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check2,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check3,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check4,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check5,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check6,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check7,SIGNAL(pressed())); set_btn_beep(ui->pushButton_check8,SIGNAL(pressed())); set_btn_beep(ui->pushButton_BatteryList,SIGNAL(pressed())); set_btn_beep(ui->pushButton_DataList,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Rename,SIGNAL(pressed())); set_btn_beep(ui->pushButton_USB,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Delete,SIGNAL(pressed())); set_btn_beep(ui->pushButton_DataChart,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Last,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Next,SIGNAL(pressed())); set_btn_beep(ui->pushButton_Exit,SIGNAL(pressed())); set_btn_beep(ui->pushButton_CheckDischarge,SIGNAL(pressed())); set_btn_beep(ui->pushButton_CheckCharge,SIGNAL(pressed())); connect(ui->pushButton_name0,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name1,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name2,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name3,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name4,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name5,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name6,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_name7,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check0,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check1,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check2,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check3,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check4,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check5,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check6,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check7,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_check8,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_BatteryList,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_DataList,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Rename,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_USB,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Delete,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_CheckDischarge,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_CheckCharge,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_DataChart,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Last,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Next,SIGNAL(released()),this,SLOT(DataBtnSlot())); connect(ui->pushButton_Exit,SIGNAL(released()),this,SLOT(DataBtnSlot())); //更新时间和图标 IconTimeSlot(); getDataTimer = new QTimer(this); connect(getDataTimer,SIGNAL(timeout()),this,SLOT(IconTimeSlot())); getDataTimer->start(500); } Data_Page::~Data_Page() { work_thread->localData.Interface = FACE_HOME; delete ui; } void Data_Page::DataBtnSlot() { QPushButton *pb = dynamic_cast(sender()); if(ui->pushButton_Exit == pb) { closeCustom(false); } else if(ui->pushButton_Last == pb) { if(ui->pushButton_BatteryList->isEnabled()) { currentDataPageIndex--; updateDataListButton(battery_name); } else { currentBatteryPageIndex--; updateNameListButton(); } } else if(ui->pushButton_Next == pb) { if(ui->pushButton_BatteryList->isEnabled()) { currentDataPageIndex++; updateDataListButton(battery_name); } else { currentBatteryPageIndex++; updateNameListButton(); } } else if(listNameButton[0] == pb || listNameButton[1] == pb || listNameButton[2] == pb || listNameButton[3] == pb || listNameButton[4] == pb || listNameButton[5] == pb || listNameButton[6] == pb || listNameButton[7] == pb) { if(ui->pushButton_BatteryList->isEnabled()) { data_name = pb->text(); initDataInfo(); updateDataInfo(battery_name+"/"+data_name); WidgetListScroll(ui->widget_4,1); } else { battery_name = pb->text(); currentDataPageIndex = 1; initDataListButton(); updateDataListButton(battery_name); } } else if(listCheckButton[0] == pb || listCheckButton[1] == pb || listCheckButton[2] == pb || listCheckButton[3] == pb || listCheckButton[4] == pb || listCheckButton[5] == pb || listCheckButton[6] == pb || listCheckButton[7] == pb) { for(int i=0;i<8;i++) { if(listCheckButton[i] == pb) { checkFlag[i] = !checkFlag[i]; if(checkFlag[i]) pb->setIcon(QIcon(":new/prefix1/check.png")); else pb->setIcon(QIcon(":new/prefix1/uncheck.png")); } } checkUsbBtnState(); } else if(ui->pushButton_check8 == pb) { checkFlag[8] = !checkFlag[8]; for(int i=0;i<8;i++) { if(listCheckButton[i]->isEnabled()) { checkFlag[i] = checkFlag[8]; if(checkFlag[i]) listCheckButton[i]->setIcon(QIcon(":new/prefix1/check.png")); else listCheckButton[i]->setIcon(QIcon(":new/prefix1/uncheck.png")); } } if(checkFlag[8]) pb->setIcon(QIcon(":new/prefix1/check.png")); else pb->setIcon(QIcon(":new/prefix1/uncheck.png")); checkUsbBtnState(); } else if(ui->pushButton_BatteryList == pb) { initNameListButton(); updateNameListButton(); WidgetListScroll(ui->widget_4,0); } else if(ui->pushButton_DataList == pb) { initDataListButton(); updateDataListButton(battery_name); WidgetListScroll(ui->widget_4,0); } else if(ui->pushButton_Rename == pb) { QString name; ifCheckRenameBattery(name); if(true == one_sub_window_exist) { return; } work_thread->localData.Interface = FACE_RENAMEPAGE; rename_page = new ReName_Page(this,name,work_thread); one_sub_window_exist = true; rename_page->execCustom(); updateNameListButton(); one_sub_window_exist = false; work_thread->localData.Interface = FACE_DATA; } else if(ui->pushButton_USB == pb) { copy_action(); } else if(ui->pushButton_Delete == pb) { delete_action(); } else if(ui->pushButton_DataChart == pb) { QString name = battery_name+"/"+data_name; if(true == one_sub_window_exist) { return; } work_thread->localData.Interface = FACE_CHARPAGE; chart_page = new Chart_Page(this,name,work_thread); one_sub_window_exist = true; chart_page->execCustom(); one_sub_window_exist = false; work_thread->localData.Interface = FACE_DATA; } else if(ui->pushButton_CheckDischarge == pb) { checkDischarge = !checkDischarge; if(!checkDischarge && !checkCharge) checkCharge = !checkCharge; if(checkDischarge) { QIcon *icon = new QIcon(":new/prefix1/check.png"); ui->pushButton_CheckDischarge->setIcon(*icon); } else { QIcon *icon = new QIcon(":new/prefix1/uncheck.png"); ui->pushButton_CheckDischarge->setIcon(*icon); } if(checkCharge) { QIcon *icon = new QIcon(":new/prefix1/check.png"); ui->pushButton_CheckCharge->setIcon(*icon); } else { QIcon *icon = new QIcon(":new/prefix1/uncheck.png"); ui->pushButton_CheckCharge->setIcon(*icon); } updateDataListButton(battery_name); } else if(ui->pushButton_CheckCharge == pb) { checkCharge = !checkCharge; if(!checkDischarge && !checkCharge) checkDischarge = !checkDischarge; if(checkDischarge) { QIcon *icon = new QIcon(":new/prefix1/check.png"); ui->pushButton_CheckDischarge->setIcon(*icon); } else { QIcon *icon = new QIcon(":new/prefix1/uncheck.png"); ui->pushButton_CheckDischarge->setIcon(*icon); } if(checkCharge) { QIcon *icon = new QIcon(":new/prefix1/check.png"); ui->pushButton_CheckCharge->setIcon(*icon); } else { QIcon *icon = new QIcon(":new/prefix1/uncheck.png"); ui->pushButton_CheckCharge->setIcon(*icon); } updateDataListButton(battery_name); } } void Data_Page::IconTimeSlot() { QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间 QString str = time.toString("yyyy-MM-dd hh:mm:ss"); //设置显示格式 ui->label_Time->setText(str); if(work_thread->iconState.monomerState){ if(work_thread->get_mon_source()==MONO_TYPE_WIRED) { ui->label_MON->setStyleSheet("image: url(:/new/prefix1/1.png);"); } else { if(mon_use_type == 2) ui->label_MON->setStyleSheet("border-image: url(:/new/prefix1/lora_mon.png);"); else ui->label_MON->setStyleSheet("border-image: url(:/new/prefix1/mon.png);"); } } else ui->label_MON->setStyleSheet(""); if(work_thread->iconState.usbState) ui->label_USB->setPixmap(QPixmap(":new/prefix1/usb.png")); else ui->label_USB->setPixmap(QPixmap("")); if(work_thread->iconState.wifiState) ui->label_WIFI->setStyleSheet("border-image: url(:/new/prefix1/wificonnect.png);"); else ui->label_WIFI->setStyleSheet(""); updateROM(); } void Data_Page::initUi() { listNameButton[0] = ui->pushButton_name0; listNameButton[1] = ui->pushButton_name1; listNameButton[2] = ui->pushButton_name2; listNameButton[3] = ui->pushButton_name3; listNameButton[4] = ui->pushButton_name4; listNameButton[5] = ui->pushButton_name5; listNameButton[6] = ui->pushButton_name6; listNameButton[7] = ui->pushButton_name7; listCheckButton[0] = ui->pushButton_check0; listCheckButton[1] = ui->pushButton_check1; listCheckButton[2] = ui->pushButton_check2; listCheckButton[3] = ui->pushButton_check3; listCheckButton[4] = ui->pushButton_check4; listCheckButton[5] = ui->pushButton_check5; listCheckButton[6] = ui->pushButton_check6; listCheckButton[7] = ui->pushButton_check7; checkDischarge = true; checkCharge = true; chartMonomerID = 1; //图表界面当前单体ID } void Data_Page::initNameListButton() { currentBatteryPageIndex = 1; //当前页数索引 ui->pushButton_BatteryList->setEnabled(false); ui->pushButton_DataList->setEnabled(false); ui->pushButton_CheckDischarge->setVisible(false); ui->pushButton_CheckCharge->setVisible(false); ui->pushButton_check8->setVisible(true); ui->pushButton_Rename->setVisible(true); ui->label_PageNum->setVisible(true); ui->pushButton_Last->setVisible(true); ui->pushButton_Next->setVisible(true); ui->widget_5->setVisible(true); } void Data_Page::updateNameListButton() { nameList = fileManage.getDirs(false); //不含默认电池组 nameNum = nameList.count(); if(nameNum%BatteryNumEachPage == 0) pageNum = nameNum/BatteryNumEachPage; else pageNum = (nameNum/BatteryNumEachPage)+1; if(pageNum<1) pageNum = 1; if(currentBatteryPageIndex > pageNum) currentBatteryPageIndex = pageNum; ui->label_PageNum->setText(QString::number(currentBatteryPageIndex) +" / "+QString::number(pageNum)+tr(" 页")); if(currentBatteryPageIndex>1) ui->pushButton_Last->setEnabled(true); else ui->pushButton_Last->setEnabled(false); if(nameNum>BatteryNumEachPage*currentBatteryPageIndex) ui->pushButton_Next->setEnabled(true); else ui->pushButton_Next->setEnabled(false); if(nameNum>BatteryNumEachPage*currentBatteryPageIndex) nameNumOnCurrentPage = BatteryNumEachPage; else nameNumOnCurrentPage = nameNum-BatteryNumEachPage*(currentBatteryPageIndex-1); listNameButton[0]->setText(Default_Battery); listCheckButton[0]->setIcon(QIcon(":new/prefix1/uncheck.png")); listNameButton[0]->setEnabled(true); listCheckButton[0]->setEnabled(true); checkFlag[0] = false; checkFlag[8] = false; ui->pushButton_check8->setIcon(QIcon(":new/prefix1/uncheck.png")); for(int i=1;isetEnabled(false); listNameButton[i]->setText(""); listCheckButton[i]->setEnabled(false); listCheckButton[i]->setIcon(QIcon("")); checkFlag[i] = false; } for(int i=1;isetEnabled(true); listNameButton[i]->setText(nameList.at((i-1)+BatteryNumEachPage*(currentBatteryPageIndex-1))); listCheckButton[i]->setEnabled(true); listCheckButton[i]->setIcon(QIcon(":new/prefix1/uncheck.png")); } ui->widget_5->setVisible(true); ui->pushButton_Rename->setEnabled(false); ui->pushButton_USB->setEnabled(false); ui->pushButton_Delete->setEnabled(false); nameNumOnCurrentPage ++; } void Data_Page::initDataListButton() { ui->pushButton_BatteryList->setEnabled(true); ui->pushButton_DataList->setEnabled(false); ui->pushButton_CheckDischarge->setVisible(true); ui->pushButton_CheckCharge->setVisible(true); ui->pushButton_check8->setVisible(true); ui->pushButton_Rename->setVisible(false); ui->label_PageNum->setVisible(true); ui->pushButton_Last->setVisible(true); ui->pushButton_Next->setVisible(true); ui->widget_5->setVisible(true); } void Data_Page::updateDataListButton(QString batteryDir) { nameList = checkData(checkDischarge,checkCharge,fileManage.getFiles(batteryDir+"/",".FBO")); nameNum = nameList.count(); if(nameNum%DataNumEachPage == 0) pageNum = nameNum/DataNumEachPage; else pageNum = (nameNum/DataNumEachPage)+1; if(pageNum<1) pageNum = 1; if(currentDataPageIndex > pageNum) currentDataPageIndex = pageNum; ui->label_PageNum->setText(QString::number(currentDataPageIndex) +" / "+QString::number(pageNum)+tr(" 页")); if(currentDataPageIndex>1) ui->pushButton_Last->setEnabled(true); else ui->pushButton_Last->setEnabled(false); if(nameNum>DataNumEachPage*currentDataPageIndex) ui->pushButton_Next->setEnabled(true); else ui->pushButton_Next->setEnabled(false); if(nameNum>DataNumEachPage*currentDataPageIndex) dataNumOnCurrentPage = DataNumEachPage; else dataNumOnCurrentPage = nameNum-DataNumEachPage*(currentDataPageIndex-1); for(int i=0;isetEnabled(false); listNameButton[i]->setText(""); listCheckButton[i]->setEnabled(false); listCheckButton[i]->setIcon(QIcon("")); checkFlag[i] = false; } checkFlag[8] = false; ui->pushButton_check8->setIcon(QIcon(":new/prefix1/uncheck.png")); for(int i=0;isetEnabled(true); listNameButton[i]->setText(nameList.at(i+DataNumEachPage*(currentDataPageIndex-1))); listCheckButton[i]->setEnabled(true); listCheckButton[i]->setIcon(QIcon(":new/prefix1/uncheck.png")); } ui->pushButton_Rename->setEnabled(false); ui->pushButton_USB->setEnabled(false); ui->pushButton_Delete->setEnabled(false); } void Data_Page::initDataInfo() { ui->pushButton_BatteryList->setEnabled(true); ui->pushButton_DataList->setEnabled(true); ui->pushButton_CheckDischarge->setVisible(false); ui->pushButton_CheckCharge->setVisible(false); ui->pushButton_check8->setVisible(false); ui->pushButton_Rename->setVisible(false); ui->label_PageNum->setVisible(false); ui->pushButton_Last->setVisible(false); ui->pushButton_Next->setVisible(false); ui->widget_5->setVisible(false); } void Data_Page::updateDataInfo(QString fileName) { if(ClassXML::AnalysisDataFBO(dataDir+fileName,test_info)) { if(test_info.fbo_data_head_start.DataType == 0xFD){ ui->label_data_type->setText(tr("放电数据")); switch(test_info.fbo_data_head_stop.StopType) { case WPMANUALPSTOP: ui->label_data_stopreason->setText(tr("手动停止")); break; case WPTIMESTOP: ui->label_data_stopreason->setText(tr("放电时间到")); break; case WPCAPSTOP: ui->label_data_stopreason->setText(tr("放电容量到")); break; case WPMVLLSTOP: ui->label_data_stopreason->setText(tr("单体下限到")); break; case WPSVLLSTOP: ui->label_data_stopreason->setText(tr("组端下限到")); break; case WPPOWERBREAKSTOP: ui->label_data_stopreason->setText(tr("在线电压低")); break; case WPFLASHUPSTOP: ui->label_data_stopreason->setText(tr("内存不足")); break; case WPTEMPHIGHSTOP: ui->label_data_stopreason->setText(tr("温度异常高")); break; case WPDISCHARGING: ui->label_data_stopreason->setText(tr("正在放电")); break; case WPMANUALPAUSE: ui->label_data_stopreason->setText(tr("手动暂停")); break; case WPAUTOPAUSE: ui->label_data_stopreason->setText(tr("暂停放电")); break; case WPCONNECTERROR: ui->label_data_stopreason->setText(tr("线缆连接异常或者内部通信异常")); break; case WPCURRENTERROR: ui->label_data_stopreason->setText(tr("电流检测错误")); break; case ERRORSTOP: ui->label_data_stopreason->setText(tr("紧急停止")); break; case WPFANERROR: ui->label_data_stopreason->setText(tr("风扇异常")); break; default: ui->label_data_stopreason->setText(tr("未知")); break; } } else if(test_info.fbo_data_head_start.DataType == 0xFC){ ui->label_data_type->setText(tr("充电数据")); switch(test_info.fbo_data_head_stop.StopType) { case CPStopCharging: ui->label_data_stopreason->setText(tr("手动停止")); break; case CPPauseCharging: ui->label_data_stopreason->setText(tr("暂停充电")); break; case CPSmallCharging: ui->label_data_stopreason->setText(tr("正在充电")); break; case CPLargeCharging: ui->label_data_stopreason->setText(tr("直充充电")); break; case CPNullCharging: ui->label_data_stopreason->setText(tr("正在充电监测")); break; case CPERRORSTOP: ui->label_data_stopreason->setText(tr("紧急停止")); break; case CPPOWERBREAKSTOP: ui->label_data_stopreason->setText(tr("在线电压低")); break; case CPCURRENTERROR: ui->label_data_stopreason->setText(tr("电流检测错误")); break; case CPTEMPHIGHSTOP: ui->label_data_stopreason->setText(tr("温度异常高")); break; case CPCONNECTERROR: ui->label_data_stopreason->setText(tr("线缆连接异常或者内部通信异常")); break; case CPFANERROR: ui->label_data_stopreason->setText(tr("风扇异常")); break; case CPPauseNullCharging: ui->label_data_stopreason->setText(tr("暂停充电监测")); break; default: ui->label_data_stopreason->setText(tr("未知")); break; } } else ui->label_data_type->setText(tr("未知数据")); ui->label_data_cap->setText(QString::number(test_info.fbo_data_head_start.STDCap)+" AH"); ui->label_data_cur->setText(QString::number((float)test_info.fbo_data_head_start.TestCur/10,'f',1)+" A"); QString startTime = QString("%1-%2-%3 %4:%5") .arg(test_info.fbo_data_head_start.TestStartTime.year+2000,4,10,QChar('0')) .arg(test_info.fbo_data_head_start.TestStartTime.month,2,10,QChar('0')) .arg(test_info.fbo_data_head_start.TestStartTime.day,2,10,QChar('0')) .arg(test_info.fbo_data_head_start.TestStartTime.hour,2,10,QChar('0')) .arg(test_info.fbo_data_head_start.TestStartTime.minute,2,10,QChar('0')); ui->label_data_starttime->setText(startTime); QString lastTime = QString("%1:%2:%3") .arg(test_info.fbo_data_head_stop.TestTimeLong.hour,2,10,QChar('0')) .arg(test_info.fbo_data_head_stop.TestTimeLong.minute,2,10,QChar('0')) .arg(test_info.fbo_data_head_stop.TestTimeLong.second,2,10,QChar('0')); ui->label_data_lasttime->setText(lastTime); if(test_info.fbo_data_head_stop.TestTimeLong.hour == 255 && test_info.fbo_data_head_stop.TestTimeLong.minute == 255 && test_info.fbo_data_head_stop.TestTimeLong.second == 255){ ui->label_data_lasttime->setText("--:--:--"); } } ui->pushButton_USB->setEnabled(true); ui->pushButton_Delete->setEnabled(true); } void Data_Page::checkUsbBtnState() { if(checkFlag[0]) { ui->pushButton_Rename->setEnabled(false); ui->pushButton_USB->setEnabled(true); ui->pushButton_Delete->setEnabled(true); } else { int count = 0; for(int i=1;ipushButton_Rename->setEnabled(false); ui->pushButton_USB->setEnabled(false); ui->pushButton_Delete->setEnabled(false); } else if(count ==1) { ui->pushButton_Rename->setEnabled(true); ui->pushButton_USB->setEnabled(true); ui->pushButton_Delete->setEnabled(true); } else { ui->pushButton_Rename->setEnabled(false); ui->pushButton_USB->setEnabled(true); ui->pushButton_Delete->setEnabled(true); } } int count = 0; int num = 0; if(ui->pushButton_BatteryList->isEnabled()) num = dataNumOnCurrentPage; else num = nameNumOnCurrentPage; qDebug("num = %d",num); for(int i=0;ipushButton_Delete->setEnabled(false); ui->pushButton_USB->setEnabled(false); checkFlag[8] = false; ui->pushButton_check8->setIcon(QIcon(":new/prefix1/uncheck.png")); } else if(count == num) { ui->pushButton_Delete->setEnabled(true); ui->pushButton_USB->setEnabled(true); checkFlag[8] = true; ui->pushButton_check8->setIcon(QIcon(":new/prefix1/check.png")); } else if(count !=num && count !=0) { ui->pushButton_Delete->setEnabled(true); ui->pushButton_USB->setEnabled(true); checkFlag[8] = false; ui->pushButton_check8->setIcon(QIcon(":new/prefix1/uncheck.png")); } } void Data_Page::updateROM() { int filecount = fileManage.FindLocalFileFromPath(dataDir,dataType); float percent = (float)1-(float)filecount/MaxDataNum; //最大保存数据2000条 ui->label_rom->setText(tr("内存余量:")+QString::number(percent*100,'f',2)+"%"); } int Data_Page::ifCheckRenameBattery(QString &name) { if(checkFlag[0]) return RenameErrorDefault; int count = 0; for(int i=1;itext(); } } if(count != 1) return RenameErrorMuch; return RenameOK; } //**************拷贝数据******************// void Data_Page::copy_action(void) { bool SD_Ok = false; SD_Ok = work_thread->CheckDiskState(usbDir); if(false == SD_Ok) { popBox(tr("U盘不存在!")); return; } QDir dir; if(!(dir.exists(usbDir+File_Dir))) { if(false == dir.mkdir(usbDir+File_Dir)) { popBox(tr("创建数据文件夹失败!")); return; } } FileCopyDialog FD; QStringList sl; if((!ui->pushButton_BatteryList->isEnabled())&&(!ui->pushButton_DataList->isEnabled())) { //电池组文件夹 for(int i=0;i<8;i++) { if(checkFlag[i]) { sl.append(dataDir+listNameButton[i]->text()); } } FD.CopyFiles(sl,usbDir+File_Dir,true); } else if(ui->pushButton_BatteryList->isEnabled()&&(!ui->pushButton_DataList->isEnabled())) { //数据 for(int i=0;i<8;i++) { if(checkFlag[i]) { sl.append(dataDir+battery_name+"/"+listNameButton[i]->text()); } } FD.CopyFiles(sl,usbDir+File_Dir+"/"+battery_name,true); } else //单个文件 { sl.append(dataDir+battery_name+"/"+data_name); FD.CopyFiles(sl,usbDir+File_Dir+"/"+battery_name,true); } popBox(tr("转存完成!")); } //**************删除数据******************// void Data_Page::delete_action(void) { QStringList sl; if((!ui->pushButton_BatteryList->isEnabled())&&(!ui->pushButton_DataList->isEnabled())) { for(int i=0;i<8;i++) { if(checkFlag[i]) { sl.append(dataDir+listNameButton[i]->text()); } } MessageBox box( this, QMessageBox::Question, MB_Caption, tr("确定删除选中的文件吗?"), QMessageBox::Ok|QMessageBox::Cancel, QMessageBox::Ok, work_thread); if(box.exec() != QMessageBox::Ok) { return; } for(int i=0;ipushButton_BatteryList->isEnabled()&&(!ui->pushButton_DataList->isEnabled()))//数据 { for(int i=0;i<8;i++) { if(checkFlag[i]) { sl.append(listNameButton[i]->text()); } } MessageBox box( this, QMessageBox::Question, MB_Caption, tr("确定删除选中的文件吗?"), QMessageBox::Ok|QMessageBox::Cancel, QMessageBox::Ok, work_thread ); if(box.exec() != QMessageBox::Ok) { return; } for(int i=0;iwidget_4,0); } } QStringList Data_Page::checkData(bool checkDischarge, bool checkCharge, QStringList name) { QStringList list; TEST_DATA_INFO info; if(checkDischarge && checkCharge) return name; //if(!checkDischarge && !checkCharge) // return list; if(checkDischarge) { //只选择放电 for(int i=0;ilocalData.Interface == FACE_RENAMEPAGE) { rename_page->closeCustom(false); } if(work_thread->localData.Interface == FACE_CHARPAGE) { chart_page->closeCustom(false); } this->closeCustom(false); }