You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

346 lines
14 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "mainpage_a_v.h"
mainpage_A_V::mainpage_A_V(QWidget *parent) : QWidget(parent)
{
label_3_1=new QLabel(this);
label_3_2=new QLabel(this);
label_3_3=new QLabel(this);
label_3_4=new QLabel(this);
label_3_5=new QLabel(this);
label_3_6=new QLabel(this);
label_3_7=new QLabel(this);
label_3_8=new QLabel(this);
label_line_vol_AB=new QLabel(this);
label_line_vol_BC=new QLabel(this);
label_line_vol_CA=new QLabel(this);
line3_1=new QFrame(this);
label_disconnect_current=new QLabel(this);
label_disconnect_current->setGeometry(520,10,160,20);
label_disconnect_current->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(240, 0, 0)");
label_disconnect_voltage=new QLabel(this);
label_disconnect_voltage->setGeometry(140,10,200,20);
label_disconnect_voltage->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(240, 0, 0)");
label_3_1->setGeometry(20,10,100,20);
label_3_1->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(255, 255, 255)");
label_3_1->setText("电压:");
label_3_2->setGeometry(20,30,200,20);
label_3_2->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_3_3->setGeometry(20,50,200,20);
label_3_3->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_3_4->setGeometry(20,70,200,20);
label_3_4->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_line_vol_AB->setGeometry(20,90,200,20);
label_line_vol_AB->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_line_vol_BC->setGeometry(20,110,200,20);
label_line_vol_BC->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_line_vol_CA->setGeometry(20,130,200,20);
label_line_vol_CA->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_3_5->setGeometry(400,10,100,20);
label_3_5->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(255, 255, 255)");
label_3_5->setText("电流:");
label_3_6->setGeometry(400,30,200,20);
label_3_6->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_3_7->setGeometry(400,50,200,20);
label_3_7->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
label_3_8->setGeometry(400,70,200,20);
label_3_8->setStyleSheet("background: rgb(145, 145, 145);font: 12pt 黑体 bold;color: rgb(0, 0, 0)");
line3_1->setGeometry(380,10,1,150);
line3_1->setFrameShape(QFrame::VLine);
}
void mainpage_A_V::labelShow()
{
QFile file_read("/home/data/I_state.txt");
if(file_read.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&file_read);//创建一个对象让它去读文件
if(in.readLine()=="1")//电流互感器未连接
{
label_disconnect_current->setText("电流互感器未连接!");
label_disconnect_current->show();
label_disconnect_current->raise();
}
else
{
label_disconnect_current->hide();
}
file_read.close();
}
QString aXiang = "";
QString bXiang = "";
QString cXiang = "";
QFile fileVA("/home/data/V_A_state.txt");
if(fileVA.exists())
{
if(fileVA.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&fileVA);//创建一个对象让它去读文件
aXiang = in.readLine();
}
fileVA.close();
}
QFile fileVB("/home/data/V_B_state.txt");
if(fileVB.exists())
{
if(fileVB.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&fileVB);//创建一个对象让它去读文件
bXiang = in.readLine();
}
fileVB.close();
}
QFile fileVC("/home/data/V_C_state.txt");
if(fileVC.exists())
{
if(fileVC.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&fileVC);//创建一个对象让它去读文件
cXiang = in.readLine();
}
fileVC.close();
}
QFile file_byqread1("/home/data/cspz_byqset.txt");
if(file_byqread1.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream byqin(&file_byqread1);//创建一个对象让它去读文件
byqin.readLine();
QString one = byqin.readLine();
if(one == "100")//电压互感器未连接
{
label_disconnect_voltage->hide();
}
else
{
if(aXiang != "" && bXiang != "" && cXiang != "")
{
if(aXiang == "1" && bXiang == "0" && cXiang == "0")
{
label_disconnect_voltage->setText("A相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "1" && bXiang == "1" && cXiang == "0")
{
label_disconnect_voltage->setText("AB相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "1" && bXiang == "0" && cXiang == "1")
{
label_disconnect_voltage->setText("AC相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "1" && bXiang == "1" && cXiang == "1")
{
label_disconnect_voltage->setText("ABC相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "0" && bXiang == "1" && cXiang == "0")
{
label_disconnect_voltage->setText("B相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "0" && bXiang == "1" && cXiang == "1")
{
label_disconnect_voltage->setText("BC相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "0" && bXiang == "0" && cXiang == "1")
{
label_disconnect_voltage->setText("C相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else if(aXiang != "" && bXiang != "" && cXiang == "")
{
if(aXiang == "1" && bXiang == "1")
{
label_disconnect_voltage->setText("AB相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "1" && bXiang != "1")
{
label_disconnect_voltage->setText("A相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang != "1" && bXiang == "1")
{
label_disconnect_voltage->setText("B相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else if(aXiang != "" && bXiang == "" && cXiang != "")
{
if(aXiang == "1" && cXiang == "1")
{
label_disconnect_voltage->setText("AC相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang == "1" && cXiang != "1")
{
label_disconnect_voltage->setText("A相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(aXiang != "1" && cXiang == "1")
{
label_disconnect_voltage->setText("C相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else if(aXiang == "" && bXiang != "" && cXiang != "")
{
if(bXiang == "1" && cXiang == "1")
{
label_disconnect_voltage->setText("BC相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(bXiang == "1" && cXiang != "1")
{
label_disconnect_voltage->setText("B相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else if(bXiang != "1" && cXiang == "1")
{
label_disconnect_voltage->setText("C相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else if(aXiang != "" && bXiang == "" && cXiang == "")
{
if(aXiang == "1")
{
label_disconnect_voltage->setText("A相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else if(aXiang == "" && bXiang != "" && cXiang == "")
{
if(bXiang == "1")
{
label_disconnect_voltage->setText("B相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else if(aXiang == "" && bXiang == "" && cXiang != "")
{
if(cXiang == "1")
{
label_disconnect_voltage->setText("C相电压互感器未连接");
label_disconnect_voltage->show();
label_disconnect_voltage->raise();
}else{
label_disconnect_voltage->hide();
}
}else{
label_disconnect_voltage->hide();
}
}
file_byqread1.close();
}
}
void mainpage_A_V::onPageOneDataUpdate(float A_Current,float B_Current,float C_Current)
{
bool ok;
bool state = false;
auto get_right = [&](QByteArray &array, int rig,int rems,int remd,int q = 10)->float{
QString A1_temp = array.toHex();
QString A1_temp1=A1_temp.right(rig);
QString A1_temp2=A1_temp1.remove(rems, remd);
return (float)A1_temp2.toInt(&ok,16)*1.0/q;
};
auto get_right_minus = [&](QByteArray &array,int q = 10)->float{
QString transition1 = array.toHex();
int transition2 = transition1.toUInt(&ok,16);
return (float)transition2*1.0/q;
};
/*ABC相电压显示*/
float C1_vol3 = get_right(SEC.SecFanStartTempeture,24,8,16,1000);
ANA.C_vol = C1_vol3;
label_3_2->setText("A相电压"+QString::number(C1_vol3,'f',3)+"V");//10进制转字符串,保留3位小数
qDebug()<<"a xiang dian ya:"<<C1_vol3<<endl;
float B1_vol3 = get_right(SEC.SecFanStartTempeture,16,8,8,1000);
ANA.B_vol = B1_vol3;
label_3_3->setText("B相电压"+QString::number(B1_vol3,'f',3)+"V");//10进制转字符串
qDebug()<<"b xiang dian ya:"<<B1_vol3<<endl;
QString A1_vol = SEC.SecFanStartTempeture.toHex();
QString A1_vol1=A1_vol.right(8);
float A1_vol2 = A1_vol1.toInt(&ok,16)*1.000/1000;//16进制转十进制
ANA.A_vol = A1_vol2;
label_3_4->setText("C相电压"+QString::number(A1_vol2,'f',3)+"V");//10进制转字符串
qDebug()<<"c xiang dian ya:"<<A1_vol2<<endl;
QFileInfo fileall_v("/home/data/V_0_state.txt");
if(fileall_v.exists())
{
QFile fileall2("/home/data/V_0_state.txt");
if(fileall2.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&fileall2);
if(in.readLine()=="0" && ANA.A_vol < 10 && ANA.B_vol < 10 && ANA.C_vol < 10)
{
state = true;
}else{
state = false;
}
fileall2.close();
}
}else{
state = false;
}
emit sigDispByqAlarm(state);
/*线电压显示*/
float AB_vol3 = get_right_minus(SEC.WheelLineVAB,100);
label_line_vol_AB->setText("AB线电压"+QString::number(AB_vol3,'f',3)+"V");//10进制转字符串,保留3位小数
qDebug()<<"ab xian dian ya:"<<AB_vol3<<endl;
float BC_vol3 = get_right_minus(SEC.WheelLineVBC,100);
label_line_vol_BC->setText("BC线电压"+QString::number(BC_vol3,'f',3)+"V");//10进制转字符串
qDebug()<<"bc xian dian ya:"<<BC_vol3<<endl;
float CA_vol2 = get_right_minus(SEC.WheelLineVCA,100);
label_line_vol_CA->setText("CA线电压"+QString::number(CA_vol2,'f',3)+"V");//10进制转字符串
qDebug()<<"ca xian dian ya:"<<CA_vol2<<endl;
/*轮显电流显示*/
label_3_6->setText("A相电流"+QString::number(A_Current,'f',3)+"A");//10进制转字符串
qDebug()<<"a xiang dian liu:"<<A_Current<<endl;
label_3_7->setText("B相电流"+QString::number(B_Current,'f',3)+"A");//10进制转字符串
qDebug()<<"b xiang dian liu:"<<B_Current<<endl;
label_3_8->setText("C相电流"+QString::number(C_Current,'f',3)+"A");//10进制转字符串
qDebug()<<"c xiang dian liu:"<<C_Current<<endl;
}
void mainpage_A_V::onPageOneDataLabelUpdate()
{
if(ANA.A_vol < 10 || ANA.B_vol < 10 || ANA.C_vol < 10)
{
labelShow();
}
}