#include "choose_page.h"
|
#include "ui_choose_page.h"
|
|
Choose_Page::Choose_Page(QWidget *parent,Work_Thread *thread) :
|
customDialog(parent),
|
ui(new Ui::Choose_Page)
|
{
|
ui->setupUi(this);
|
|
work_thread = thread;
|
connect(work_thread,SIGNAL(SentInterface(int)),this,SLOT(UpdateInterface(int)));
|
work_thread->localData.Interface = FACE_CHOOSE;
|
|
set_btn_beep(ui->list_Battery0,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery1,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery2,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery3,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery4,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery5,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery6,SIGNAL(pressed()));
|
set_btn_beep(ui->list_Battery7,SIGNAL(pressed()));
|
|
set_btn_beep(ui->edit_MonVol,SIGNAL(custom_click()));
|
set_btn_beep(ui->edit_NomiNalCap,SIGNAL(custom_click()));
|
set_btn_beep(ui->edit_MonNum,SIGNAL(custom_click()));
|
set_btn_beep(ui->edit_GroupNum,SIGNAL(custom_click()));
|
|
set_btn_beep(ui->pushButton_NewPage,SIGNAL(pressed()));
|
set_btn_beep(ui->pushButton_WorkingPage,SIGNAL(pressed()));
|
set_btn_beep(ui->pushButton_Exit,SIGNAL(pressed()));
|
set_btn_beep(ui->pushButton_Last,SIGNAL(pressed()));
|
set_btn_beep(ui->pushButton_Next,SIGNAL(pressed()));
|
|
connect(ui->list_Battery0,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery1,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery2,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery3,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery4,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery5,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery6,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
connect(ui->list_Battery7,SIGNAL(pressed()),this,SLOT(ChooseBatterySlot()));
|
|
connect(ui->edit_MonVol,SIGNAL(custom_click()),this,SLOT(CustomEditSlot()));
|
connect(ui->edit_NomiNalCap,SIGNAL(custom_click()),this,SLOT(CustomEditSlot()));
|
connect(ui->edit_MonNum,SIGNAL(custom_click()),this,SLOT(CustomEditSlot()));
|
connect(ui->edit_GroupNum,SIGNAL(custom_click()),this,SLOT(CustomEditSlot()));
|
|
connect(ui->pushButton_NewPage,SIGNAL(released()),this,SLOT(ChooseBtnSlot()));
|
connect(ui->pushButton_WorkingPage,SIGNAL(released()),this,SLOT(ChooseBtnSlot()));
|
connect(ui->pushButton_Exit,SIGNAL(released()),this,SLOT(ChooseBtnSlot()));
|
connect(ui->pushButton_Last,SIGNAL(released()),this,SLOT(ChooseBtnSlot()));
|
connect(ui->pushButton_Next,SIGNAL(released()),this,SLOT(ChooseBtnSlot()));
|
|
one_sub_window_exist = false;
|
|
//更新时间和图标
|
IconTimeSlot();
|
getDataTimer = new QTimer(this);
|
connect(getDataTimer,SIGNAL(timeout()),this,SLOT(IconTimeSlot()));
|
getDataTimer->start(500);
|
|
initListBattery();
|
updateChoosePage();
|
}
|
|
Choose_Page::~Choose_Page()
|
{
|
work_thread->localData.Interface = FACE_HOME;
|
delete ui;
|
}
|
|
void Choose_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("");
|
}
|
|
void Choose_Page::ChooseBatterySlot()
|
{
|
QPushButton *pb = dynamic_cast<QPushButton*>(sender());
|
initBatteryBtn();
|
setBatteryBtnColor(pb);
|
setBatteryInfo(pb->text());
|
batteryName = pb->text();//fileDir+pb->text()+"/"
|
if(ui->list_Battery0 == pb)
|
{
|
ui->edit_MonVol->resize(QSize(80,45));
|
ui->edit_NomiNalCap->resize(QSize(80,45));
|
ui->edit_MonNum->resize(QSize(80,45));
|
ui->edit_GroupNum->resize(QSize(80,45));
|
}
|
else
|
{
|
ui->edit_MonVol->resize(QSize(0,0));
|
ui->edit_NomiNalCap->resize(QSize(0,0));
|
ui->edit_MonNum->resize(QSize(0,0));
|
ui->edit_GroupNum->resize(QSize(0,0));
|
}
|
}
|
|
void Choose_Page::ChooseBtnSlot()
|
{
|
QPushButton *pb = dynamic_cast<QPushButton*>(sender());
|
initBatteryBtn();
|
if(ui->pushButton_NewPage == pb)
|
{
|
if(true == one_sub_window_exist)
|
{
|
return;
|
}
|
work_thread->localData.Interface = FACE_NEWPAGE;
|
new_page = new New_Page(this,work_thread);
|
one_sub_window_exist = true;
|
new_page->execCustom();
|
updateChoosePage();
|
one_sub_window_exist = false;
|
work_thread->localData.Interface = FACE_CHOOSE;
|
}
|
else if(ui->pushButton_WorkingPage == pb)
|
{
|
if(true == one_sub_window_exist)
|
{
|
return;
|
}
|
this->close();
|
ClassXML::ModifyNewestPNameXml(batteryName);
|
work_thread->openWorkPage = true;
|
}
|
else if(ui->pushButton_Exit == pb)
|
{
|
closeCustom(false);
|
}
|
else if(ui->pushButton_Last == pb)
|
{
|
currentPageIndex--;
|
for(int i=0;i<BatteryNumEachPage;i++)
|
{
|
listBattery[i]->setEnabled(true);
|
listBattery[i]->setText(batteryList.at(currentPageIndex*BatteryNumEachPage+i));
|
listBattery[i]->setIcon(QIcon(":new/prefix1/to.png"));
|
}
|
ui->pushButton_Next->setEnabled(true);
|
if(currentPageIndex == 0)
|
ui->pushButton_Last->setEnabled(false);
|
ui->label_PageNum->setText(QString::number(currentPageIndex+1)
|
+" / "+QString::number(pageNum)+tr(" 页"));
|
}
|
else if(ui->pushButton_Next == pb)
|
{
|
currentPageIndex++;
|
int batteryNumOnCurrentPage;
|
if(batteryNum>(currentPageIndex+1)*BatteryNumEachPage)
|
{
|
batteryNumOnCurrentPage = BatteryNumEachPage;
|
ui->pushButton_Next->setEnabled(true);
|
}
|
else
|
{
|
batteryNumOnCurrentPage = batteryNum-currentPageIndex*BatteryNumEachPage;
|
ui->pushButton_Next->setEnabled(false);
|
}
|
for(int i=0;i<BatteryNumEachPage;i++)
|
{
|
listBattery[i]->setEnabled(false);
|
listBattery[i]->setText("");
|
listBattery[i]->setIcon(QIcon(""));
|
}
|
for(int i=0;i<batteryNumOnCurrentPage;i++)
|
{
|
listBattery[i]->setEnabled(true);
|
listBattery[i]->setText(batteryList.at(currentPageIndex*BatteryNumEachPage+i));
|
listBattery[i]->setIcon(QIcon(":new/prefix1/to.png"));
|
}
|
ui->pushButton_Last->setEnabled(true);
|
ui->label_PageNum->setText(QString::number(currentPageIndex+1)
|
+" / "+QString::number(pageNum)+tr(" 页"));
|
}
|
}
|
|
void Choose_Page::CustomEditSlot()
|
{
|
Custom_LineEdit *le = dynamic_cast<Custom_LineEdit*>(sender());
|
if(ui->edit_MonVol == le)
|
{
|
if(le->text() == "2.0")
|
{
|
le->setText("4.0");
|
}
|
else if(le->text() == "4.0")
|
{
|
le->setText("6.0");
|
}
|
else if(le->text() == "6.0")
|
{
|
le->setText("12.0");
|
}
|
#if TYPE_IDCE_940
|
else if(le->text() == "12.0")
|
{
|
le->setText("1.2");
|
}
|
#endif
|
else
|
{
|
le->setText("2.0");
|
}
|
test_param_xml.mon_vol = le->text().toFloat()*10+0.5;
|
}
|
else if(ui->edit_NomiNalCap == le)
|
{
|
if(setEditInput(le,0,0,9999,0))
|
{
|
test_param_xml.nominal_cap = le->text().toInt();
|
}
|
}
|
else if(ui->edit_MonNum == le)
|
{
|
int max = 300/ui->edit_GroupNum->text().toInt();
|
if(setEditInput(le,0,MONOMER_NUM_MIN,max,0))
|
{
|
test_param_xml.mon_number = le->text().toInt();
|
work_thread->testParam.mon_number = test_param_xml.mon_number;
|
work_thread->fboData.BattSum = test_param_xml.mon_number * test_param_xml.group_number;
|
}
|
}
|
else if(ui->edit_GroupNum == le)
|
{
|
if(setEditInput(le,0,1,4,0))
|
{
|
test_param_xml.group_number = le->text().toInt();
|
int max = 300/test_param_xml.group_number;
|
if(max<test_param_xml.mon_number)
|
{
|
ui->edit_MonNum->setText(QString::number(max));
|
test_param_xml.mon_number = max;
|
}
|
|
work_thread->testParam.group_number = test_param_xml.group_number;
|
work_thread->fboData.BattSum = test_param_xml.mon_number * test_param_xml.group_number;
|
}
|
}
|
ClassXML::ModifyTestParamXml(Default_Battery,test_param_xml);
|
}
|
|
bool Choose_Page::setEditInput(Custom_LineEdit *edit,
|
int space, float min, float max, int floatNum)
|
{
|
edit->setStyleSheet("color:red");
|
KeyBoard_Num keyboard(this,INPUT_ALLNO,work_thread);
|
if(space)
|
keyboard.setGeometry(260,125,300,350);
|
else
|
keyboard.setGeometry(260,125,300,350);
|
keyboard.execKeyboard();
|
edit->setStyleSheet("color:black");
|
DATA_KB_RTN kbdata = keyboard.get_kb_data();
|
if(kbdata.If_OK)
|
{
|
float input = kbdata.set_text.toFloat();
|
if(input>=min && input<=max)
|
{
|
edit->setText(QString::number(input,'f',floatNum));
|
}
|
}
|
return kbdata.If_OK;
|
}
|
|
void Choose_Page::initListBattery()
|
{
|
listBattery[0] = ui->list_Battery1;
|
listBattery[1] = ui->list_Battery2;
|
listBattery[2] = ui->list_Battery3;
|
listBattery[3] = ui->list_Battery4;
|
listBattery[4] = ui->list_Battery5;
|
listBattery[5] = ui->list_Battery6;
|
listBattery[6] = ui->list_Battery7;
|
}
|
|
void Choose_Page::initBatteryBtn()
|
{
|
ui->list_Battery0->setAutoFillBackground(false);
|
ui->list_Battery1->setAutoFillBackground(false);
|
ui->list_Battery2->setAutoFillBackground(false);
|
ui->list_Battery3->setAutoFillBackground(false);
|
ui->list_Battery4->setAutoFillBackground(false);
|
ui->list_Battery5->setAutoFillBackground(false);
|
ui->list_Battery6->setAutoFillBackground(false);
|
ui->list_Battery7->setAutoFillBackground(false);
|
ui->pushButton_WorkingPage->setEnabled(true);
|
}
|
|
void Choose_Page::setBatteryBtnColor(QPushButton *pushButton)
|
{
|
QPalette pal = pushButton->palette();
|
pal.setColor(QPalette::Button,QColor(0,170,0));
|
pushButton->setPalette(pal);
|
pushButton->setAutoFillBackground(true);
|
}
|
|
void Choose_Page::renewErrorBatteryParam(QString batteryName)
|
{
|
if(PageType == FBI48CT)
|
test_param_xml.test_mode = ONline_working;
|
else
|
test_param_xml.test_mode = OFFline_working;
|
test_param_xml.acstop_op = ACOFF_CONTINUE;
|
test_param_xml.nominal_cap = 1000;
|
test_param_xml.hourly_rate = 10;
|
test_param_xml.preset_cur = 100;
|
test_param_xml.preset_cap = 1000;
|
test_param_xml.preset_time = 600;
|
test_param_xml.mon_vol = 20;
|
test_param_xml.mon_lower = 180;
|
test_param_xml.group_lower = VolTooLow;
|
|
test_param_xml.mon_number = 108;
|
test_param_xml.group_number = 1;
|
test_param_xml.lower_number = 1;
|
test_param_xml.onlinevol_lowlimit = onlinevollow;
|
|
test_param_xml.charge_limit = 300;
|
test_param_xml.temp_High = 500;
|
|
test_param_xml.discharge_mode = 0;
|
test_param_xml.preset_power = MinPower;
|
|
ClassXML::ModifyTestParamXml(batteryName,test_param_xml);
|
}
|
|
void Choose_Page::setBatteryInfo(QString batteryName)
|
{
|
ui->textBrowser->setText(batteryName);
|
if(ui->textBrowser->styleSheet().trimmed() == "color: rgb(255, 255, 0);background-color: rgb(255, 255, 255,0);"){
|
ui->textBrowser->setStyleSheet("color: rgb(255, 255, 0);background-color: rgb(255, 255, 255,0);border:1px solid white;");
|
}
|
if(false == ClassXML::ReadTestParamXml(batteryName,test_param_xml))
|
{
|
qDebug("XML is error!");
|
|
renewErrorBatteryParam(batteryName);
|
}
|
|
if(batteryName == Default_Battery)
|
{
|
ui->edit_MonVol->setText(QString::number((double)test_param_xml.mon_vol/10,'f',1));
|
ui->edit_NomiNalCap->setText(QString::number(test_param_xml.nominal_cap));
|
ui->edit_MonNum->setText(QString::number(test_param_xml.mon_number));
|
ui->edit_GroupNum->setText(QString::number(test_param_xml.group_number));
|
}
|
else
|
{
|
ui->label_MonVol->setText(QString::number((double)test_param_xml.mon_vol/10,'f',1));
|
ui->label_NominalCap->setText(QString::number(test_param_xml.nominal_cap));
|
ui->label_MonNum->setText(QString::number(test_param_xml.mon_number));
|
ui->label_GroupNum->setText(QString::number(test_param_xml.group_number));
|
}
|
}
|
|
void Choose_Page::updateChoosePage()
|
{
|
batteryList = fileManage.getDirs(false);
|
batteryNum = batteryList.count();
|
if(batteryNum%BatteryNumEachPage == 0)
|
pageNum = batteryNum/BatteryNumEachPage;
|
else
|
pageNum = (batteryNum/BatteryNumEachPage)+1;
|
if(pageNum<1)
|
pageNum = 1;
|
currentPageIndex = 0;
|
int batteryNumOnCurrentPage;
|
if(batteryNum > BatteryNumEachPage)
|
batteryNumOnCurrentPage = BatteryNumEachPage;
|
else
|
batteryNumOnCurrentPage = batteryNum;
|
for(int i=0;i<BatteryNumEachPage;i++)
|
{
|
listBattery[i]->setEnabled(false);
|
listBattery[i]->setText("");
|
listBattery[i]->setIcon(QIcon(""));
|
}
|
for(int i=0;i<batteryNumOnCurrentPage;i++)
|
{
|
listBattery[i]->setEnabled(true);
|
listBattery[i]->setText(batteryList.at(i));
|
listBattery[i]->setIcon(QIcon(":new/prefix1/to.png"));
|
}
|
ui->pushButton_Last->setEnabled(false);
|
if(batteryNum>BatteryNumEachPage)
|
ui->pushButton_Next->setEnabled(true);
|
else
|
ui->pushButton_Next->setEnabled(false);
|
ui->label_PageNum->setText(QString::number(currentPageIndex+1)
|
+" / "+QString::number(pageNum)+tr(" 页"));
|
ui->textBrowser->setText("");ui->textBrowser->setStyleSheet("color: rgb(255, 255, 0);background-color: rgb(255, 255, 255,0);");
|
ui->label_MonVol->setText("");
|
ui->label_NominalCap->setText("");
|
ui->label_MonNum->setText("");
|
ui->label_GroupNum->setText("");
|
ui->edit_MonVol->resize(QSize(0,0));
|
ui->edit_NomiNalCap->resize(QSize(0,0));
|
ui->edit_MonNum->resize(QSize(0,0));
|
ui->edit_GroupNum->resize(QSize(0,0));
|
ui->pushButton_WorkingPage->setEnabled(false);
|
}
|
|
void Choose_Page::UpdateInterface(int interface)
|
{
|
if(work_thread->localData.Interface == FACE_NEWPAGE)
|
{
|
new_page->closeCustom(false);
|
}
|
this->closeCustom(false);
|
}
|