Files
952-11/HanddleAI/HanddleAIUI/main.cpp
T
2024-02-23 17:38:59 +08:00

68 lines
1.9 KiB
C++

#include "mainwindow.h"
#include <QApplication>
#include <QSystemSemaphore>
#include <QSharedMemory>
#include <QMessageLogger>//日志
#include <QDebug>
#include "logmsg.h"
#include "dll1.h"
int main ( int argc, char *argv[] )
{
QApplication a(argc, argv);
LogMsg::Create(LogMsg::LogMsgType::DebugMsg);
MainWindow w;
auto fun = [&w](std::string time,std::string msg) {
// w.getMsg(time, msg);
};
auto fun2 = [&w](unsigned char* showImg, int width, int height, int channel, char* outstr, char* Res) {
cv::Mat pt;
if (channel == 3) {
pt = cv::Mat(height, width, CV_8UC3, (void*)showImg);
}
else if (channel == 1) {
pt = cv::Mat(height, width, CV_8UC1, (void*)showImg);
}
w.SendImage(pt, QString::fromUtf8(outstr), QString::fromUtf8(Res));
pt.release();
};
auto fun3 = [&w](unsigned char* showImg, int width, int height, int channel, char* outstr, char* Res) {
cv::Mat pt;
if (channel == 3) {
pt = cv::Mat(height, width, CV_8UC3, (void*)showImg);
}
else if (channel == 1) {
pt = cv::Mat(height, width, CV_8UC1, (void*)showImg);
}
w.SendImage2(pt, QString::fromUtf8(outstr), QString::fromUtf8(Res));
pt.release();
};
RegisterFUNC2D(fun2);
RegisterFUNC3D(fun3);
//LogMsg::set_key_callback(fun);
logDebug(QString::fromUtf8("软件启动").toStdString().c_str());
//检测是否已运行
QSystemSemaphore sema("monkey", 1, QSystemSemaphore::Open);
sema.acquire();
QSharedMemory mem("EVE984");
if (mem.create(1) == false)
{
logDebug(QString::fromUtf8("本机已经运行一个实例,不能重复运行!").toStdString().c_str());
sema.release();
//程序直接退出
exit(0);
}
else {
sema.release();
w.initWidget();
w.show();
return a.exec();
}
}