#include "app_control.h" #include "ui_app_control.h" #include "WorkForm/discharge_page.h" App_Control::App_Control(QWidget *parent, Control_Thread *C_thread, Work_Thread *W_thread) : customDialog(parent), ui(new Ui::App_Control) { ui->setupUi(this); initAPPUI(); work_thread = W_thread; control_thread = C_thread; app_param_xml = control_thread->app_param_xml; workstate = -1; getDataTimer = new QTimer(this); connect(getDataTimer,SIGNAL(timeout()),this,SLOT(GetDataSlot())); getDataTimer->setInterval(500); getDataTimer->start(); connect(control_thread,SIGNAL(sendAPPUIcmd(int,quint8)),this,SLOT(RecvConCmd(int,quint8))); set_btn_beep(ui->pushButton_Exit,SIGNAL(pressed())); connect(ui->pushButton_Exit,SIGNAL(released()),this,SLOT(AppBtnSlot())); } App_Control::~App_Control() { delete ui; } void App_Control::initAPPUI() { NowType<<"停止"<<"暂停"<<"放电"<<"等待放电" <<"恒流充电"<<"恒压充电"<<"浮充充电"<<"等待充电" <<"测试时间到!"<<"测试容量到"<<"电压下限到"<<"电压上限到"<<"活化次数到"<<"截止电流到"<<"线缆连接错误"<<"风扇堵转"<<"线缆连接异常或者内部通信异常"; } void App_Control::GetDataSlot() { fbs_data = work_thread->fbsData; local_data = work_thread->localData; app_param_xml = control_thread->app_param_xml; setTestPage();//表格显示 } void App_Control::setTestPage() { ui->State->setText(NowType.at(local_data.WPAlarmState)); if(workstate != local_data.WPAlarmState) { workstate = local_data.WPAlarmState; app_param_xml.cmd = workstate; ClassXML::ModifyAppParamXml(app_param_xml);//更改工作状态 } ui->vol->setText(QString::number(float(fbs_data.mVol.vol[0])/1000,'f',3)); ui->Cap->setText(QString::number(fbs_data.vcData.battcap[0])); ui->TestTime->setText(QString("%1:%2:%3") .arg(fbs_data.m_TestTime.hour,2,10,QChar('0')) .arg(fbs_data.m_TestTime.minute,2,10,QChar('0')) .arg(fbs_data.m_TestTime.second,2,10,QChar('0'))); ui->Current->setText(QString::number(float(fbs_data.vcData.battcurr[0])/10,'f',1)); } void App_Control::CountTime(quint16 datetime ) { for(int i=0;i*60<=datetime;i++) { minute = datetime-i*60; hour = i; } } void App_Control::RecvConCmd(int cmd,quint8 type) { if(cmd == 0) { this->close(); } } void App_Control::AppBtnSlot() { app_param_xml.appState = 0; ClassXML::ModifyAppParamXml(app_param_xml); closeCustom(false); }