A142_Desktop/mainwindow.cpp

165 lines
5.7 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "windowchannel.h"
class ModbusOverUdp;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
conf = new QSettings();
modbus=new ModbusOverUdp();
this->setWindowTitle ("Программа для управления A142");
this->setFixedSize(536,608);
ui->lineEditPort->setEnabled(0);
ui->widget1->setWindowsChannel(Ch1);
ui->widget2->setWindowsChannel(Ch2);
ui->widget3->setWindowsChannel(Ch3);
ui->widget4->setWindowsChannel(Ch4);
ui->widgetS1->setWindowsChannel(Ch1);
ui->widgetS2->setWindowsChannel(Ch2);
ui->widgetS3->setWindowsChannel(Ch3);
ui->widgetS4->setWindowsChannel(Ch4);
// ui->widget1->hideValue();
// ui->widget2->hideValue();
// ui->widget3->hideValue();
// ui->widget4->hideValue();
ui->lineEditAddres->setText(conf->value("section1/keyCurrentIp").toString());
qDebug()<<"Значение ва памяти"<<conf->value("section1/keyCurrentIp").toString();
if(ui->lineEditAddres->text()==""){
ui->lineEditAddres->setText("192.168.0.50");
}
QRegularExpression ip_regexp("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}");
QRegularExpressionValidator *ip_validator = new QRegularExpressionValidator(ip_regexp,ui->lineEditAddres);
ui->lineEditAddres->setValidator(ip_validator);
/*
ui->lineEditAddres->setInputMask("000.000.000.000");
QRegExp rx( "( |[0-9] | [0-9] | [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
"( |[0-9] | [0-9] | [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
"( |[0-9] | [0-9] | [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
"( |[0-9] | [0-9] | [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])");
QRegExpValidator *validator = new QRegExpValidator(QRegExp(rx), ui->lineEditAddres);
ui->lineEditAddres->setValidator(validator);
*/
connect(this->modbus,SIGNAL(stateRecive (Set)),
ui->widget1,SLOT(setState(Set)));
connect(modbus,SIGNAL(stateRecive (Set)),
ui->widget2,SLOT(setState(Set)));
connect(modbus,SIGNAL(stateRecive (Set)),
ui->widget3,SLOT(setState(Set)));
connect(modbus,SIGNAL(stateRecive (Set)),
ui->widget4,SLOT(setState(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widget1,SLOT(setSens(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widget2,SLOT(setSens(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widget3,SLOT(setSens(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widget4,SLOT(setSens(Set)));
connect(ui->widget1,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(ui->widget2,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(ui->widget3,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(ui->widget4,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(this->modbus,SIGNAL(stateRecive (Set)),
ui->widgetS1,SLOT(setState(Set)));
connect(modbus,SIGNAL(stateRecive (Set)),
ui->widgetS2,SLOT(setState(Set)));
connect(modbus,SIGNAL(stateRecive (Set)),
ui->widgetS3,SLOT(setState(Set)));
connect(modbus,SIGNAL(stateRecive (Set)),
ui->widgetS4,SLOT(setState(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widgetS1,SLOT(setSens(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widgetS2,SLOT(setSens(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widgetS3,SLOT(setSens(Set)));
connect(modbus,SIGNAL(sensRecive(Set)),
ui->widgetS4,SLOT(setSens(Set)));
connect(ui->widgetS1,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(ui->widgetS2,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(ui->widgetS3,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
connect(ui->widgetS4,SIGNAL(ReadyToSend(Set, typeREQ)),
modbus,SLOT(set(Set,typeREQ)));
}
MainWindow::~MainWindow()
{
// qDebug()<<ui->lineEditAddres->text();
conf->setValue("section1/keyCurrentIp",ui->lineEditAddres->text());
// qDebug()<<"Значение в памяти"<<conf->value("section1/keyCurrentIp").toString();
delete ui;
}
void MainWindow::on_pushButtonConnect_clicked()
{
if(isConnected==0){
modbus->connectTo(ui->lineEditAddres->text(),ui->lineEditPort->text().toInt());
ui->lineEditAddres->setEnabled(0);
//ui->lineEditPort->setEnabled(0);
ui->pushButtonConnect->setText("Отключиться");
ui->pushButtonSettings->setEnabled(0);
isConnected=1;
}else{
modbus->disconnectFrom();
ui->lineEditAddres->setEnabled(1);
// ui->lineEditPort->setEnabled(1);
ui->widget1->hideValue();
ui->widget2->hideValue();
ui->widget3->hideValue();
ui->widget4->hideValue();
ui->widgetS1->hideValue();
ui->widgetS2->hideValue();
ui->widgetS3->hideValue();
ui->widgetS4->hideValue();
ui->pushButtonConnect->setText("Подключиться");
ui->pushButtonSettings->setEnabled(1);
isConnected=0;
}
}
void MainWindow::on_pushButtonSettings_clicked()
{
ipSettings *w2 = new ipSettings(this, ui->lineEditAddres->text(),modbus);
w2->exec();
}