#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);
|
}
|