48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
#include "ethconfig.h"
|
|
#include "ui_ethconfig.h"
|
|
#include <QRegularExpression>
|
|
#include <QRegularExpressionValidator>
|
|
|
|
|
|
EthConfig::EthConfig(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::EthConfig)
|
|
{
|
|
ui->setupUi(this);
|
|
QRegularExpression ipRegex(R"(^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$)");
|
|
QRegularExpressionValidator *ipValidator = new QRegularExpressionValidator(ipRegex, this);
|
|
|
|
ui->lineEdit_IP->setValidator(ipValidator);
|
|
ui->lineEdit_netmask->setValidator(ipValidator);
|
|
ui->lineEdit_gw->setValidator(ipValidator);
|
|
}
|
|
|
|
EthConfig::~EthConfig()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void EthConfig::on_pushButton_confirm_clicked()
|
|
{
|
|
ConfigIPv4Req config_ip = { {0xAA, 0x55, 0xAA}, kRebootCard, 1,0,{},{},{} };
|
|
config_ip.ethn = ui->comboBox_eth->currentIndex();
|
|
memcpy(config_ip.ip,ui->lineEdit_IP->text().toStdString().c_str(),sizeof(config_ip.ip));
|
|
memcpy(config_ip.netmask,ui->lineEdit_netmask->text().toStdString().c_str(),sizeof(config_ip.netmask));
|
|
memcpy(config_ip.gw,ui->lineEdit_gw->text().toStdString().c_str(),sizeof(config_ip.gw));
|
|
char send_buf[100] ={0};
|
|
memcpy(send_buf, (char*)&config_ip, sizeof(ConfigIPv4Req));
|
|
|
|
int length = sizeof(ConfigIPv4Req);
|
|
qint64 bytesWritten = m_tcpClient->sendData(send_buf, length);
|
|
m_tcpClient->waitForRead();
|
|
qDebug() << "bytesWritten: " << bytesWritten;
|
|
this->close();
|
|
}
|
|
|
|
|
|
void EthConfig::on_pushButton_cancel_clicked()
|
|
{
|
|
this->close();
|
|
}
|
|
|