A142_Desktop/mainwindow.cpp

165 lines
5.7 KiB
C++
Raw Permalink Normal View History

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);
conf = new QSettings();
2023-11-30 12:58:49 +03:00
modbus=new ModbusOverUdp();
this->setWindowTitle ("Программа для управления A142");
2023-12-14 17:04:09 +03:00
this->setFixedSize(536,608);
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-14 17:04:09 +03:00
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");
}
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);
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)));
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-12-14 17:04:09 +03:00
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)));
2023-11-28 16:56:30 +03:00
}
MainWindow::~MainWindow()
{
2023-12-14 17:04:09 +03:00
// qDebug()<<ui->lineEditAddres->text();
conf->setValue("section1/keyCurrentIp",ui->lineEditAddres->text());
2023-12-14 17:04:09 +03:00
// 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());
ui->lineEditAddres->setEnabled(0);
//ui->lineEditPort->setEnabled(0);
2023-11-30 12:58:49 +03:00
ui->pushButtonConnect->setText("Отключиться");
ui->pushButtonSettings->setEnabled(0);
2023-11-30 12:58:49 +03:00
isConnected=1;
2023-11-30 12:58:49 +03:00
}else{
modbus->disconnectFrom();
ui->lineEditAddres->setEnabled(1);
// ui->lineEditPort->setEnabled(1);
ui->widget1->hideValue();
ui->widget2->hideValue();
ui->widget3->hideValue();
ui->widget4->hideValue();
2023-12-14 17:04:09 +03:00
ui->widgetS1->hideValue();
ui->widgetS2->hideValue();
ui->widgetS3->hideValue();
ui->widgetS4->hideValue();
2023-11-30 12:58:49 +03:00
ui->pushButtonConnect->setText("Подключиться");
ui->pushButtonSettings->setEnabled(1);
2023-11-30 12:58:49 +03:00
isConnected=0;
}
}
void MainWindow::on_pushButtonSettings_clicked()
{
ipSettings *w2 = new ipSettings(this, ui->lineEditAddres->text(),modbus);
w2->exec();
}