#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() { 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(); }