1 Star 0 Fork 0

qinxude/rk3568ui

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
systemtool.cpp 4.70 KB
一键复制 编辑 原始数据 按行查看 历史
qinxude 提交于 2024-09-03 09:38 +08:00 . 3568ui base
#include "systemtool.h"
#include "ui_systemtool.h"
SystemTool::SystemTool(QWidget *parent) :
QWidget(parent),
ui(new Ui::SystemTool)
{
ui->setupUi(this);
m_Process = new QProcess;
connect(m_Process,SIGNAL(readyRead()),this,SLOT(ShowMes()));
connect(m_Process,SIGNAL(errorOccurred(QProcess::ProcessError)),\
this,SLOT(errorOccurred(QProcess::ProcessError)));
}
SystemTool::~SystemTool()
{
delete ui;
}
void SystemTool::Execute(QString Cmd)
{
if(m_Process->state() == QProcess::Running)
{
m_Process->kill();
m_Process->waitForFinished();
}
ui->OutputBrower->clear();
ui->OutputBrower->setText(Cmd);
m_Process->start(Cmd);
}
void SystemTool::on_CmdRun_clicked()
{
Execute(ui->CmdLine->text());
}
void SystemTool::ShowMes()
{
ui->OutputBrower->append(m_Process->readAll());
}
void SystemTool::errorOccurred(QProcess::ProcessError error)
{
switch (error) {
case QProcess::FailedToStart:
ui->OutputBrower->append("启动失败");
break;
case QProcess::Crashed:
ui->OutputBrower->append("Crashed");
break;
case QProcess::Timedout:
ui->OutputBrower->append("超时");
break;
case QProcess::ReadError:
ui->OutputBrower->append("读错误");
break;
case QProcess::WriteError:
ui->OutputBrower->append("写错误");
break;
case QProcess::UnknownError:
ui->OutputBrower->append("未知错误");
break;
}
}
void SystemTool::on_ifconfigCmd_clicked()
{
Execute("ifconfig");
}
void SystemTool::on_PingGatewayCmd_clicked()
{
QString Ip = GetGateWay();
if(Ip.size() == 0)
{
ui->OutputBrower->setText("网关地址为空");
}
else {
Execute(QString("ping -c 5 ") + Ip);
}
}
void SystemTool::on_PingIp1Cmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_CAMERA_IP1);
Execute(QString("ping -c 5 ") + Ip);
}
void SystemTool::on_PingIp2Cmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_CAMERA_IP2);
Execute(QString("ping -c 5 ") + Ip);
}
void SystemTool::on_PingIp3Cmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_CAMERA_IP3);
Execute(QString("ping -c 5 ") + Ip);
}
void SystemTool::on_PingDomainCmd_clicked()
{
QString Ip = GetDns();
if(Ip.size() == 0)
{
ui->OutputBrower->setText("域名地址为空");
}
else {
Execute(QString("ping -c 5 ") + Ip);
}
}
void SystemTool::on_PingCloudCmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_SYNC_FACEID_HOST);
Execute(QString("ping -c 5 ") + Ip);
}
QStringList SystemTool::GetNetInfo()
{
#define NET_INTERFACE_PATH "/etc/network/interfaces"
QStringList RNetInfoList;
QFile *NetFile = new QFile(NET_INTERFACE_PATH);
if(NetFile->open(QIODevice::ReadWrite))
{
QByteArray Info = NetFile->readAll();
qDebug() << "INFO : " << Info;
QString SInfo = QString(Info);
QStringList NetInfoList = SInfo.split("auto");
foreach(QString s,NetInfoList)
{
while(s[0] == '\n')
{
s.remove(0,1);
}
if(s.isEmpty())
continue;
if(s[0] != '#')
RNetInfoList += "auto" + s;
}
}
else {
qDebug() << NetFile->errorString();
}
NetFile->close();
qDebug() << RNetInfoList;
return RNetInfoList;
}
QString SystemTool::GetGateWay()
{
QStringList NetInfo = GetNetInfo();
QString GateWay;
GateWay.clear();
QStringList Info = NetInfo.filter("eth0");
if(Info.count())
{
QString s = Info[0];
QStringList list = Info[0].split("\n");
QStringList g = list.filter("gateway");
if(g.count())
{
QStringList s = g[0].split(" ");
if(s.count() == 2)
GateWay= s[1];
else
GateWay=g[0];
qDebug() << GateWay;
}
else
{
GateWay.clear();
}
}
return GateWay;
}
QString SystemTool::GetDns()
{
QStringList NetInfo = GetNetInfo();
QString Dns;
Dns.clear();
QStringList Info = NetInfo.filter("eth0");
if(Info.count())
{
QString s = Info[0];
QStringList list = Info[0].split("\n");
QStringList g = list.filter("dns");
if(g.count())
{
QStringList s = g[0].split(" ");
if(s.count() == 2)
Dns = s[1];
else
Dns = g[0];
qDebug() << Dns;
}
else
{
Dns.clear();
}
}
return Dns;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/qinxude/rk3568ui.git
[email protected]:qinxude/rk3568ui.git
qinxude
rk3568ui
rk3568ui
master

搜索帮助