3500/DIO_Board.cpp

352 lines
12 KiB
C++

#include "DIO_Board.h"
#include "ui_DIO_Board.h"
#include "realtimeform.h"
#include "NetMgr.h"
#include <QNetworkRequest>
CDIO_Board::CDIO_Board(QWidget *parent) :
QWidget(parent),
ui(new Ui::CDIO_Board)
{
ui->setupUi(this);
ui->widget->setProperty("flag", "Title");
ui->widget_2->setProperty("flag", "normal");
Init();
CRealTimeForm *pRealTime = new CRealTimeForm();
connect(pRealTime,SIGNAL(sigDOStatus(QJsonArray&,QJsonArray&)), this, SLOT(slotDOStatus(QJsonArray&,QJsonArray&)));
if(g_strIOControl == "1"){
ui->pushButton_Close->setEnabled(1);
ui->pushButton_Open->setEnabled(1);
}
}
CDIO_Board::~CDIO_Board()
{
delete ui;
}
void CDIO_Board::slotDOStatus(QJsonArray& valueDI,QJsonArray& valueDO)
{
ui->label_DI1_Status->setText(QString("%1").arg(valueDI[0].toInt()));
ui->label_DI2_Status->setText(QString("%1").arg(valueDI[1].toInt()));
ui->label_DI3_Status->setText(QString("%1").arg(valueDI[2].toInt()));
ui->label_DI4_Status->setText(QString("%1").arg(valueDI[3].toInt()));
ui->label_DI5_Status->setText(QString("%1").arg(valueDI[4].toInt()));
ui->label_DI6_Status->setText(QString("%1").arg(valueDI[5].toInt()));
ui->label_DI7_Status->setText(QString("%1").arg(valueDI[6].toInt()));
ui->label_DI8_Status->setText(QString("%1").arg(valueDI[7].toInt()));
ui->label_DI9_Status->setText(QString("%1").arg(valueDI[8].toInt()));
ui->label_DI10_Status->setText(QString("%1").arg(valueDI[9].toInt()));
ui->label_DI11_Status->setText(QString("%1").arg(valueDI[10].toInt()));
ui->label_DI12_Status->setText(QString("%1").arg(valueDI[11].toInt()));
ui->label_DO1_Status->setText(QString("%1").arg(valueDO[0].toInt()));
ui->label_DO2_Status->setText(QString("%1").arg(valueDO[1].toInt()));
ui->label_DO3_Status->setText(QString("%1").arg(valueDO[2].toInt()));
ui->label_DO4_Status->setText(QString("%1").arg(valueDO[3].toInt()));
ui->label_DO5_Status->setText(QString("%1").arg(valueDO[4].toInt()));
ui->label_DO6_Status->setText(QString("%1").arg(valueDO[5].toInt()));
ui->label_DO7_Status->setText(QString("%1").arg(valueDO[6].toInt()));
ui->label_DO8_Status->setText(QString("%1").arg(valueDO[7].toInt()));
ui->label_DO9_Status->setText(QString("%1").arg(valueDO[8].toInt()));
ui->label_DO10_Status->setText(QString("%1").arg(valueDO[9].toInt()));
ui->label_DO11_Status->setText(QString("%1").arg(valueDO[10].toInt()));
ui->label_DO12_Status->setText(QString("%1").arg(valueDO[11].toInt()));
}
void CDIO_Board::Init()
{
for (int i = 0; i < g_ChannelBaseInfo.size(); i++) {
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 1){
ui->label_DI1->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 2){
ui->label_DI2->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 3){
ui->label_DI3->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 4){
ui->label_DI4->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 5){
ui->label_DI5->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 6){
ui->label_DI6->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 7){
ui->label_DI7->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 8){
ui->label_DI8->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 9){
ui->label_DI9->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 10){
ui->label_DI10->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 11){
ui->label_DI11->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 12){
ui->label_DI12->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 13){
ui->label_DO1->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 14){
ui->label_DO2->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 15){
ui->label_DO3->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 16){
ui->label_DO4->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 17){
ui->label_DO5->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 18){
ui->label_DO6->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 19){
ui->label_DO7->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 20){
ui->label_DO8->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 21){
ui->label_DO9->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 22){
ui->label_DO10->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 23){
ui->label_DO11->setText(g_ChannelBaseInfo[i].channelName);
}
if(g_ChannelBaseInfo[i].boardType == "6" && g_ChannelBaseInfo[i].channelNoInBoard == 24){
ui->label_DO12->setText(g_ChannelBaseInfo[i].channelName);
}
}
}
void CDIO_Board::on_pushButton_Close_clicked()
{
QMessageBox:: StandardButton iResult = QMessageBox::question(this, QStringLiteral("提示"),
QStringLiteral("确认后将关闭选择的开出通道!"),
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
switch (iResult) {
case QMessageBox::Yes:
break;
case QMessageBox::No:
return;
break;
default:
break;
}
QJsonObject allObj,cmdBody,itemObj,DOContralObj;
QJsonArray arrayBody;
allObj.insert("cmd", "91");
if(ui->checkBox->checkState()){
itemObj["channel"] = 13;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_2->checkState()){
itemObj["channel"] = 14;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_3->checkState()){
itemObj["channel"] = 15;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_4->checkState()){
itemObj["channel"] = 16;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_5->checkState()){
itemObj["channel"] = 17;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_6->checkState()){
itemObj["channel"] = 18;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_7->checkState()){
itemObj["channel"] = 19;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_8->checkState()){
itemObj["channel"] = 20;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_9->checkState()){
itemObj["channel"] = 21;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_10->checkState()){
itemObj["channel"] = 22;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_11->checkState()){
itemObj["channel"] = 23;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
if(ui->checkBox_12->checkState()){
itemObj["channel"] = 24;
itemObj["status"] = 1;
arrayBody.append(itemObj);
}
DOContralObj["DO_Control"] = arrayBody;
allObj["cmdBody"] = DOContralObj;
QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl);
g_NetMgr->PostJson(req,allObj);
}
void CDIO_Board::on_pushButton_Open_clicked()
{
// {
// "cmd": "91",
// "cmdBody": {
// "DO_Control": [
// {
// "channel": 13,
// "status": 0
// },
// {
// "channel": 14,
// "status": 1
// }
// ]
// }
// }
QMessageBox:: StandardButton iResult = QMessageBox::question(this, QStringLiteral("提示"),
QStringLiteral("确认后将打开选择的开出通道!"),
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
switch (iResult) {
case QMessageBox::Yes:
break;
case QMessageBox::No:
return;
break;
default:
break;
}
QJsonObject allObj,cmdBody,itemObj,DOContralObj;
QJsonArray arrayBody;
allObj.insert("cmd", "91");
if(ui->checkBox->checkState()){
itemObj["channel"] = 13;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_2->checkState()){
itemObj["channel"] = 14;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_3->checkState()){
itemObj["channel"] = 15;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_4->checkState()){
itemObj["channel"] = 16;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_5->checkState()){
itemObj["channel"] = 17;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_6->checkState()){
itemObj["channel"] = 18;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_7->checkState()){
itemObj["channel"] = 19;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_8->checkState()){
itemObj["channel"] = 20;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_9->checkState()){
itemObj["channel"] = 21;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_10->checkState()){
itemObj["channel"] = 22;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_11->checkState()){
itemObj["channel"] = 23;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
if(ui->checkBox_12->checkState()){
itemObj["channel"] = 24;
itemObj["status"] = 0;
arrayBody.append(itemObj);
}
DOContralObj["DO_Control"] = arrayBody;
allObj["cmdBody"] = DOContralObj;
QNetworkRequest req;
QString sUrl = QString("http://%1/cgi-bin/General.cgi/").arg(IP);
req.setUrl(sUrl);
g_NetMgr->PostJson(req,allObj);
}