#include "ethconfig.h" #include "ui_ethconfig.h" #include #include 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() { PackageHead header = { {0xAA, 0x55, 0xAA}, kRebootCard, sizeof(ConfigIPv4Req),0,{} }; ConfigIPv4Req config_ip; 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*)&header, sizeof(PackageHead)); memcpy(send_buf + sizeof(PackageHead), (char*)&config_ip, sizeof(ConfigIPv4Req)); int length = sizeof(PackageHead) + 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(); }