mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-21 08:40:53 +01:00
Mod Machine_info
add send_info_to_debug Mod get data PC send to debuger on startup
This commit is contained in:
@@ -18,7 +18,6 @@
|
||||
#include "machine_info.h"
|
||||
#include <QScreen>
|
||||
#include <QProcess>
|
||||
#include <QThread>
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QSysInfo>
|
||||
@@ -31,6 +30,43 @@
|
||||
Machine_info::Machine_info(QObject *parent) : QObject(parent)
|
||||
{
|
||||
init_get_Screen_info();
|
||||
init_get_cpu_info();
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Machine_info::send_info_to_debug
|
||||
*/
|
||||
void Machine_info::send_info_to_debug()
|
||||
{
|
||||
qDebug()<<"test message generated";
|
||||
qInfo()<< tr("Compilation : ") + pc.built.version;
|
||||
qInfo()<< "Built with Qt " + pc.built.QT
|
||||
+ " - Date : " + pc.built.date
|
||||
+ " : " + pc.built.time;
|
||||
qInfo()<< "Run with Qt "+ QString(qVersion())
|
||||
+ " using"
|
||||
+ QString(" %1 thread(s)").arg(pc.cpu.ThreadCount);
|
||||
qInfo()<< "CPU : " + pc.cpu.info;
|
||||
qInfo()<< pc.ram.Total;
|
||||
qInfo()<< pc.ram.Available;
|
||||
qInfo()<< "GPU : " + pc.gpu.info;
|
||||
qInfo()<< "GPU RAM : " + pc.gpu.RAM;
|
||||
|
||||
qInfo()<< "OS : " + pc.os.type
|
||||
+ " - " + pc.cpu.Architecture
|
||||
+ " - Version : "+pc.os.name
|
||||
+ " - Kernel : "+pc.os.kernel;
|
||||
qInfo()<< "*** Qt screens ***";
|
||||
|
||||
for (int ii = 0; ii < pc.screen.count; ++ii) {
|
||||
qInfo()<<"( "
|
||||
+ QString::number(ii + 1)
|
||||
+ " : "
|
||||
+ QString::number(pc.screen.width[ii])
|
||||
+ " x "
|
||||
+ QString::number(pc.screen.height[ii])
|
||||
+ " )";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,28 +78,29 @@ void Machine_info::init_get_Screen_info()
|
||||
const auto screens = qApp->screens();
|
||||
for (int ii = 0; ii < screens.count(); ++ii)
|
||||
{
|
||||
|
||||
if(
|
||||
Max_screen_width
|
||||
pc.screen.Max_width
|
||||
<
|
||||
screens[ii]->geometry().width()
|
||||
*
|
||||
screens[ii]->devicePixelRatio()
|
||||
)
|
||||
{
|
||||
Max_screen_width =
|
||||
pc.screen.Max_width =
|
||||
screens[ii]->geometry().width()
|
||||
*
|
||||
screens[ii]->devicePixelRatio();
|
||||
}
|
||||
if(
|
||||
Max_screen_height
|
||||
pc.screen.Max_height
|
||||
<
|
||||
screens[ii]->geometry().height()
|
||||
*
|
||||
screens[ii]->devicePixelRatio()
|
||||
)
|
||||
{
|
||||
Max_screen_height =
|
||||
pc.screen.Max_height =
|
||||
screens[ii]->geometry().height()
|
||||
*
|
||||
screens[ii]->devicePixelRatio();
|
||||
@@ -72,61 +109,36 @@ void Machine_info::init_get_Screen_info()
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Machine_info::i_max_screen_width
|
||||
@return max screen width
|
||||
@brief Machine_info::init_get_cpu_info
|
||||
*/
|
||||
int32_t Machine_info::i_max_screen_width()
|
||||
void Machine_info::init_get_cpu_info()
|
||||
{
|
||||
return Max_screen_width;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Machine_info::i_max_screen_height
|
||||
@return max screen height
|
||||
*/
|
||||
int32_t Machine_info::i_max_screen_height()
|
||||
{
|
||||
return Max_screen_height;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Machine_info::compilation_info
|
||||
@return compilation_info
|
||||
*/
|
||||
QString Machine_info::compilation_info()
|
||||
{
|
||||
QString compilation_info = "<br />" + tr("Compilation : ");
|
||||
#ifdef __GNUC__
|
||||
#ifdef __APPLE_CC__
|
||||
compilation_info += " CLANG " + QString(__clang_version__ );
|
||||
compilation_info += " <br>Built with Qt " + QString(QT_VERSION_STR);
|
||||
compilation_info += " - Date : " + QString(__DATE__);
|
||||
compilation_info += " : " + QString(__TIME__);
|
||||
compilation_info += " <br>Run with Qt "+ QString(qVersion());
|
||||
compilation_info += " using" + QString(" %1 thread(s)").arg(
|
||||
QThread::idealThreadCount());
|
||||
QProcess macoscpuinfo;
|
||||
macoscpuinfo.start("bash",
|
||||
QStringList()
|
||||
<< "-c"
|
||||
<< "sysctl -n machdep.cpu.brand_string");
|
||||
macoscpuinfo.waitForFinished();
|
||||
QString macosOutput = macoscpuinfo.readAllStandardOutput();
|
||||
compilation_info += "<br>"" CPU : "
|
||||
+ QString(macosOutput.toLocal8Bit().constData());
|
||||
|
||||
init_get_cpu_info_macos();
|
||||
#else
|
||||
compilation_info += " GCC " + QString(__VERSION__);
|
||||
compilation_info += "<br>Built with Qt " + QString(QT_VERSION_STR);
|
||||
compilation_info += " - Date : " + QString(__DATE__);
|
||||
compilation_info += " : " + QString(__TIME__);
|
||||
compilation_info += " <br>Run with Qt "+ QString(qVersion());
|
||||
compilation_info += " using"
|
||||
+ QString(" %1 thread(s)").arg(
|
||||
QThread::idealThreadCount());
|
||||
if (pc.os.type == "linux")
|
||||
init_get_cpu_info_linux();
|
||||
if (pc.os.type == "winnt")
|
||||
init_get_cpu_info_winnt();
|
||||
#endif
|
||||
#endif
|
||||
const auto screens = qApp->screens();
|
||||
pc.screen.count=screens.count();
|
||||
for (int ii = 0; ii < pc.screen.count; ++ii) {
|
||||
pc.screen.width[ii]=
|
||||
screens[ii]->geometry().width()
|
||||
* screens[ii]->devicePixelRatio();
|
||||
pc.screen.height[ii]=
|
||||
screens[ii]->geometry().height()
|
||||
* screens[ii]->devicePixelRatio();
|
||||
}
|
||||
}
|
||||
|
||||
QString OSName = QSysInfo::kernelType();
|
||||
if (OSName == "linux")
|
||||
/**
|
||||
@brief Machine_info::init_get_cpu_info_linux
|
||||
*/
|
||||
void Machine_info::init_get_cpu_info_linux()
|
||||
{
|
||||
QProcess linuxcpuinfo;
|
||||
linuxcpuinfo.start("bash", QStringList()
|
||||
@@ -134,8 +146,7 @@ QString Machine_info::compilation_info()
|
||||
<< "cat /proc/cpuinfo |grep 'model name' | uniq");
|
||||
linuxcpuinfo.waitForFinished();
|
||||
QString linuxOutput = linuxcpuinfo.readAllStandardOutput();
|
||||
compilation_info += "<br>"" CPU : "
|
||||
+ QString(linuxOutput.toLocal8Bit().constData());
|
||||
pc.cpu.info=QString(linuxOutput.toLocal8Bit().constData());
|
||||
|
||||
QProcess p;
|
||||
p.start("awk", QStringList()
|
||||
@@ -143,8 +154,8 @@ QString Machine_info::compilation_info()
|
||||
<< "/proc/meminfo");
|
||||
p.waitForFinished();
|
||||
QString memory = p.readAllStandardOutput();
|
||||
compilation_info += "<br>"
|
||||
+ QString("RAM Total : %1 MB").arg(
|
||||
//compilation_info += "<br>"
|
||||
pc.ram.Total=QString("RAM Total : %1 MB").arg(
|
||||
memory.toLong() / 1024);
|
||||
p.close();
|
||||
|
||||
@@ -155,8 +166,7 @@ QString Machine_info::compilation_info()
|
||||
<< "/proc/meminfo");
|
||||
qp.waitForFinished();
|
||||
QString AvailableMemory = qp.readAllStandardOutput();
|
||||
compilation_info += "<br>"
|
||||
+ QString("RAM Available : %1 MB").arg(
|
||||
pc.ram.Available=QString("RAM Available : %1 MB").arg(
|
||||
AvailableMemory.toLong() / 1024);
|
||||
qp.close();
|
||||
|
||||
@@ -167,26 +177,22 @@ QString Machine_info::compilation_info()
|
||||
<< "lspci | grep VGA | cut -d : -f 3");
|
||||
linuxgpuinfo.waitForFinished();
|
||||
QString linuxGPUOutput = linuxgpuinfo.readAllStandardOutput();
|
||||
compilation_info += "<br>"" GPU : "
|
||||
+ QString(linuxGPUOutput.toLocal8Bit().constData());
|
||||
|
||||
pc.gpu.info=QString(linuxGPUOutput.toLocal8Bit().constData());
|
||||
pc.gpu.RAM="@ToDo";
|
||||
}
|
||||
|
||||
if(QSysInfo::kernelType() == "winnt")
|
||||
/**
|
||||
@brief Machine_info::init_get_cpu_info_winnt
|
||||
*/
|
||||
void Machine_info::init_get_cpu_info_winnt()
|
||||
{
|
||||
QProcess wincpuinfo;
|
||||
{
|
||||
|
||||
wincpuinfo.start("wmic",
|
||||
QStringList() << "cpu" << "get" << "name");
|
||||
wincpuinfo.waitForFinished();
|
||||
QString windows_output = wincpuinfo.readAllStandardOutput().toUpper();
|
||||
compilation_info += "<br>"" CPU : "
|
||||
+ QString(windows_output.toLocal8Bit().constData());
|
||||
pc.cpu.info=QString(windows_output.toLocal8Bit().constData());
|
||||
|
||||
QProcess wingpuinfo;
|
||||
{
|
||||
|
||||
wingpuinfo.start("wmic",
|
||||
QStringList()
|
||||
<< "PATH"
|
||||
@@ -195,13 +201,9 @@ QString Machine_info::compilation_info()
|
||||
<< "VideoProcessor ");
|
||||
wingpuinfo.waitForFinished();
|
||||
QString WinGPUOutput = wingpuinfo.readAllStandardOutput();
|
||||
compilation_info += "<br>" "GPU : "
|
||||
+ QString(WinGPUOutput.toLocal8Bit().constData());
|
||||
}
|
||||
pc.gpu.info=QString(WinGPUOutput.toLocal8Bit().constData());
|
||||
|
||||
QProcess wingpuraminfo;
|
||||
{
|
||||
|
||||
wingpuraminfo.start("wmic",
|
||||
QStringList()
|
||||
<< "PATH"
|
||||
@@ -210,38 +212,73 @@ QString Machine_info::compilation_info()
|
||||
<< "AdapterRAM ");
|
||||
wingpuraminfo.waitForFinished();
|
||||
QString WinGPURAMOutput = wingpuraminfo.readAllStandardOutput();
|
||||
compilation_info += "<br>" "GPU RAM : "
|
||||
+ QString(WinGPURAMOutput.toLocal8Bit().constData());
|
||||
}
|
||||
}
|
||||
pc.gpu.RAM=QString(WinGPURAMOutput.toLocal8Bit().constData());
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
void Machine_info::init_get_cpu_info_macos()
|
||||
{
|
||||
QProcess macoscpuinfo;
|
||||
macoscpuinfo.start("bash",
|
||||
QStringList()
|
||||
<< "-c"
|
||||
<< "sysctl -n machdep.cpu.brand_string");
|
||||
macoscpuinfo.waitForFinished();
|
||||
QString macosOutput = macoscpuinfo.readAllStandardOutput();
|
||||
pc.cpu.info=QString(macosOutput.toLocal8Bit().constData());
|
||||
}
|
||||
|
||||
compilation_info += "<br>" " OS : "
|
||||
+ QString(QSysInfo::kernelType());
|
||||
compilation_info += " - "
|
||||
+ QString(QSysInfo::currentCpuArchitecture());
|
||||
compilation_info += " - Version : "
|
||||
+ QString(QSysInfo::prettyProductName());
|
||||
compilation_info += "</br>" " - Kernel : "
|
||||
+ QString(QSysInfo::kernelVersion());
|
||||
/**
|
||||
@brief Machine_info::i_max_screen_width
|
||||
@return max screen width
|
||||
*/
|
||||
int32_t Machine_info::i_max_screen_width()
|
||||
{
|
||||
return pc.screen.Max_width;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Machine_info::i_max_screen_height
|
||||
@return max screen height
|
||||
*/
|
||||
int32_t Machine_info::i_max_screen_height()
|
||||
{
|
||||
return pc.screen.Max_height;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Machine_info::compilation_info
|
||||
@return compilation_info
|
||||
*/
|
||||
QString Machine_info::compilation_info()
|
||||
{
|
||||
QString compilation_info = "<br />" + tr("Compilation : ");
|
||||
compilation_info +=pc.built.version;
|
||||
compilation_info += "<br>Built with Qt " + pc.built.QT;
|
||||
compilation_info += " - Date : " + pc.built.date;
|
||||
compilation_info += " : " + pc.built.time;
|
||||
compilation_info += " <br>Run with Qt "+ QString(qVersion());
|
||||
compilation_info += " using"
|
||||
+ QString(" %1 thread(s)").arg(pc.cpu.ThreadCount);
|
||||
compilation_info += "<br> CPU : " + pc.cpu.info;
|
||||
compilation_info += "<br>" + pc.ram.Total;
|
||||
compilation_info += "<br>" + pc.ram.Available;
|
||||
compilation_info += "<br>GPU : " + pc.gpu.info;
|
||||
compilation_info += "<br>GPU RAM : " + pc.gpu.RAM;
|
||||
|
||||
compilation_info += "<br> OS : " + pc.os.type;
|
||||
compilation_info += " - " + pc.cpu.Architecture;
|
||||
compilation_info += " - Version : "+pc.os.name;
|
||||
compilation_info += "</br> - Kernel : "+pc.os.kernel;
|
||||
compilation_info += "<br> *** Qt screens *** </br>";
|
||||
const auto screens = qApp->screens();
|
||||
for (int ii = 0; ii < screens.count(); ++ii) {
|
||||
|
||||
for (int ii = 0; ii < pc.screen.count; ++ii) {
|
||||
compilation_info += "<br> ( "
|
||||
+ QString::number(ii + 1)
|
||||
+ " : "
|
||||
+ QString::number(
|
||||
screens[ii]->geometry().width()
|
||||
* screens[ii]->devicePixelRatio())
|
||||
+ QString::number(pc.screen.width[ii])
|
||||
+ " x "
|
||||
+ QString::number(
|
||||
screens[ii]->geometry().height()
|
||||
* screens[ii]->devicePixelRatio())
|
||||
+ QString::number(pc.screen.height[ii])
|
||||
+ " ) </br>";
|
||||
}
|
||||
qDebug()<<compilation_info;
|
||||
return compilation_info;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define MACHINE_INFO_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
|
||||
/**
|
||||
@brief The Machine_info class
|
||||
@@ -32,13 +33,65 @@ public:
|
||||
int32_t i_max_screen_width();
|
||||
int32_t i_max_screen_height();
|
||||
QString compilation_info();
|
||||
void send_info_to_debug();
|
||||
|
||||
signals:
|
||||
|
||||
private:
|
||||
void init_get_Screen_info();
|
||||
int32_t Max_screen_width;
|
||||
int32_t Max_screen_height;
|
||||
void init_get_cpu_info();
|
||||
void init_get_cpu_info_linux();
|
||||
void init_get_cpu_info_winnt();
|
||||
void init_get_cpu_info_macos();
|
||||
struct Pc
|
||||
{
|
||||
struct Screen
|
||||
{
|
||||
int32_t count;
|
||||
int32_t width[10];
|
||||
int32_t height[10];
|
||||
int32_t Max_width;
|
||||
int32_t Max_height;
|
||||
}screen;
|
||||
struct Built
|
||||
{
|
||||
QString version=
|
||||
#ifdef __GNUC__
|
||||
#ifdef __APPLE_CC__
|
||||
"CLANG " + QString(__clang_version__);
|
||||
#else
|
||||
"GCC " + QString(__VERSION__);
|
||||
#endif
|
||||
#endif
|
||||
QString QT=QString(QT_VERSION_STR);
|
||||
QString date=QString(__DATE__);
|
||||
QString time=QString(__TIME__);
|
||||
}built;
|
||||
struct CPU
|
||||
{
|
||||
QString info;
|
||||
QString Architecture=QString(
|
||||
QSysInfo::currentCpuArchitecture());
|
||||
int32_t ThreadCount=QThread::idealThreadCount();
|
||||
}cpu;
|
||||
struct RAM
|
||||
{
|
||||
QString Total;
|
||||
QString Available;
|
||||
}ram;
|
||||
struct GPU
|
||||
{
|
||||
QString info;
|
||||
QString RAM;
|
||||
|
||||
}gpu;
|
||||
struct OS
|
||||
{
|
||||
QString type=QString(QSysInfo::kernelType());
|
||||
QString name=QString(QSysInfo::prettyProductName());
|
||||
QString kernel=QString(QSysInfo::kernelVersion());
|
||||
}os;
|
||||
}pc;
|
||||
|
||||
|
||||
};
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "singleapplication.h"
|
||||
#include "qet.h"
|
||||
#include "macosxopenevent.h"
|
||||
#include "machine_info.h"
|
||||
#include <QStyleFactory>
|
||||
|
||||
/**
|
||||
@@ -50,12 +51,9 @@ void myMessageOutput(QtMsgType type,
|
||||
break;
|
||||
case QtInfoMsg:
|
||||
fprintf(stderr,
|
||||
"%s Info: %s (%s:%u, %s)\n",
|
||||
"%s Info: %s \n",
|
||||
dbs.constData(),
|
||||
localMsg.constData(),
|
||||
file,
|
||||
context.line,
|
||||
function);
|
||||
localMsg.constData());
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
fprintf(stderr,
|
||||
@@ -110,19 +108,16 @@ int main(int argc, char **argv)
|
||||
QCoreApplication::setOrganizationName("QElectroTech");
|
||||
QCoreApplication::setOrganizationDomain("qelectrotech.org");
|
||||
QCoreApplication::setApplicationName("QElectroTech");
|
||||
qDebug()<<"test message generated";
|
||||
qInfo()<<"OS:"
|
||||
+ QString(QSysInfo::kernelType())
|
||||
+ "-"
|
||||
+ QString(QSysInfo::currentCpuArchitecture())
|
||||
+ " Version:"
|
||||
+ QString(QSysInfo::prettyProductName())
|
||||
+ " Kernel:"
|
||||
+ QString(QSysInfo::kernelVersion());
|
||||
//Creation and execution of the application
|
||||
//HighDPI
|
||||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
SingleApplication app(argc, argv, true);
|
||||
|
||||
{
|
||||
Machine_info *my_ma =new Machine_info();
|
||||
my_ma->send_info_to_debug();
|
||||
delete my_ma;
|
||||
}
|
||||
#ifdef Q_OS_MACOS
|
||||
//Handle the opening of QET when user double click on a .qet .elmt .tbt file
|
||||
//or drop these same files to the QET icon of the dock
|
||||
|
||||
Reference in New Issue
Block a user