2023-11-28 16:56:30 +03:00
|
|
|
#include "mainwindow.h"
|
|
|
|
#include "ui_mainwindow.h"
|
2023-11-30 12:58:49 +03:00
|
|
|
#include "windowchannel.h"
|
|
|
|
|
|
|
|
class ModbusOverUdp;
|
2023-11-28 16:56:30 +03:00
|
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
|
|
: QMainWindow(parent)
|
|
|
|
, ui(new Ui::MainWindow)
|
|
|
|
{
|
2023-11-30 12:58:49 +03:00
|
|
|
|
2023-11-28 16:56:30 +03:00
|
|
|
ui->setupUi(this);
|
2023-12-07 16:55:56 +03:00
|
|
|
conf = new QSettings();
|
2023-11-30 12:58:49 +03:00
|
|
|
modbus=new ModbusOverUdp();
|
|
|
|
this->setWindowTitle ("Программа для управления A142");
|
2023-12-07 16:55:56 +03:00
|
|
|
this->setFixedSize(532,447);
|
|
|
|
|
|
|
|
ui->lineEditPort->setEnabled(0);
|
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
ui->widget1->setWindowsChannel(Ch1);
|
|
|
|
ui->widget2->setWindowsChannel(Ch2);
|
|
|
|
ui->widget3->setWindowsChannel(Ch3);
|
|
|
|
ui->widget4->setWindowsChannel(Ch4);
|
|
|
|
|
2023-12-07 16:55:56 +03:00
|
|
|
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");
|
|
|
|
}
|
|
|
|
|
2023-12-13 14:36:44 +03:00
|
|
|
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);
|
2023-12-07 16:55:56 +03:00
|
|
|
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);
|
|
|
|
*/
|
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
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)));
|
|
|
|
|
2023-12-07 16:55:56 +03:00
|
|
|
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)));
|
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
|
2023-11-28 16:56:30 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
MainWindow::~MainWindow()
|
|
|
|
{
|
2023-12-07 16:55:56 +03:00
|
|
|
qDebug()<<ui->lineEditAddres->text();
|
|
|
|
conf->setValue("section1/keyCurrentIp",ui->lineEditAddres->text());
|
|
|
|
qDebug()<<"Значение ва памяти"<<conf->value("section1/keyCurrentIp").toString();
|
|
|
|
|
2023-11-28 16:56:30 +03:00
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
void MainWindow::on_pushButtonConnect_clicked()
|
|
|
|
{
|
|
|
|
if(isConnected==0){
|
|
|
|
modbus->connectTo(ui->lineEditAddres->text(),ui->lineEditPort->text().toInt());
|
2023-12-07 16:55:56 +03:00
|
|
|
|
|
|
|
ui->lineEditAddres->setEnabled(0);
|
|
|
|
//ui->lineEditPort->setEnabled(0);
|
|
|
|
|
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
ui->pushButtonConnect->setText("Отключиться");
|
2023-12-07 16:55:56 +03:00
|
|
|
ui->pushButtonSettings->setEnabled(0);
|
2023-11-30 12:58:49 +03:00
|
|
|
isConnected=1;
|
2023-12-07 16:55:56 +03:00
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
}else{
|
|
|
|
modbus->disconnectFrom();
|
2023-12-07 16:55:56 +03:00
|
|
|
|
|
|
|
ui->lineEditAddres->setEnabled(1);
|
|
|
|
// ui->lineEditPort->setEnabled(1);
|
|
|
|
ui->widget1->hideValue();
|
|
|
|
ui->widget2->hideValue();
|
|
|
|
ui->widget3->hideValue();
|
|
|
|
ui->widget4->hideValue();
|
|
|
|
|
2023-11-30 12:58:49 +03:00
|
|
|
ui->pushButtonConnect->setText("Подключиться");
|
2023-12-07 16:55:56 +03:00
|
|
|
ui->pushButtonSettings->setEnabled(1);
|
2023-11-30 12:58:49 +03:00
|
|
|
isConnected=0;
|
|
|
|
}
|
|
|
|
}
|
2023-12-07 16:55:56 +03:00
|
|
|
|
|
|
|
void MainWindow::on_pushButtonSettings_clicked()
|
|
|
|
{
|
|
|
|
ipSettings *w2 = new ipSettings(this, ui->lineEditAddres->text(),modbus);
|
|
|
|
w2->exec();
|
|
|
|
}
|