优化后端结构

This commit is contained in:
2024-05-22 16:47:14 +08:00
parent 323cc25cf7
commit e867d2d251
52 changed files with 653 additions and 5117 deletions
@@ -1,6 +1,4 @@
#include <algorithmThread.h>
#include "camera_thread.h"
#include "myiothread.h"
#include "FrontendBackendBridge.h"
#include <myTools.h>
@@ -477,7 +475,7 @@ void calculateLineSegmentDistances(const std::vector<std::pair<cv::Point, cv::Po
/////////////////////ALGOTHREAD/////////////////////////
bool algoThread::addDetTask(detData* data)
bool algoThread::addDetTask(std::shared_ptr <detData> data)
{
detQueueMutex.lock();
detQueue.append(data);
@@ -485,7 +483,7 @@ bool algoThread::addDetTask(detData* data)
this->start();
return false;
}
bool algoThread::waitForImg(detData* data,int timeOutSet=10000)
bool algoThread::waitForImg(std::shared_ptr <detData> data,int timeOutSet=10000)
{
int timeOut = 0;
int sleepMs = 100;
@@ -509,7 +507,7 @@ void algoThread::run()
{
detQueueMutex.lock();
detData* data = detQueue.dequeue();//取出数据
std::shared_ptr <detData> data = detQueue.dequeue();//取出数据
detQueueMutex.unlock();
int threadId = data->algoThreadIndex;//获取线程id
if (waitForImg(data) == false)
@@ -598,7 +596,7 @@ void matsToMat(cv::Mat& mat1, cv::Mat& mat2, cv::Mat* Paint)
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time);
std::cout << "matsToMat: " << duration.count() << " microseconds" << std::endl;
}
void algoThread::ALGO_Correction(detData* data)
void algoThread::ALGO_Correction(std::shared_ptr <detData> data)
{
ALGO_Inspection(data);
int pValueBounus = 100;
@@ -732,60 +730,60 @@ void algoThread::ALGO_Correction(detData* data)
return;
}
//originX
bridge.back.sendFinsMsg("write_short_310_" + QString::number(out_Origin[0] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_311_" + QString::number(abs(static_cast<int>(out_Origin[0]))));
_triggerManager->sendFinsMsg("write_short_310_" + QString::number(out_Origin[0] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_311_" + QString::number(abs(static_cast<int>(out_Origin[0]))));
double pvalue = out_Origin[0] - static_cast<int>(out_Origin[0]);
bridge.back.sendFinsMsg("write_short_312_" + QString::number(abs(pvalue* pValueBounus)));
_triggerManager->sendFinsMsg("write_short_312_" + QString::number(abs(pvalue* pValueBounus)));
//originY
bridge.back.sendFinsMsg("write_short_313_" + QString::number(out_Origin[1] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_314_" + QString::number(abs(static_cast<int>(out_Origin[1]))));
_triggerManager->sendFinsMsg("write_short_313_" + QString::number(out_Origin[1] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_314_" + QString::number(abs(static_cast<int>(out_Origin[1]))));
pvalue = out_Origin[1] - static_cast<int>(out_Origin[1]);
bridge.back.sendFinsMsg("write_short_315_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_315_" + QString::number(abs(pvalue * pValueBounus)));
//originZ
bridge.back.sendFinsMsg("write_short_316_" + QString::number(out_Origin[2] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_317_" + QString::number(abs(static_cast<int>(out_Origin[2]))));
_triggerManager->sendFinsMsg("write_short_316_" + QString::number(out_Origin[2] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_317_" + QString::number(abs(static_cast<int>(out_Origin[2]))));
pvalue = out_Origin[2] - static_cast<int>(out_Origin[2]);
bridge.back.sendFinsMsg("write_short_318_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_318_" + QString::number(abs(pvalue * pValueBounus)));
//ResultX1
bridge.back.sendFinsMsg("write_short_319_" + QString::number(out_Result_X[0] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_320_" + QString::number(abs(static_cast<int>(out_Result_X[0]))));
_triggerManager->sendFinsMsg("write_short_319_" + QString::number(out_Result_X[0] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_320_" + QString::number(abs(static_cast<int>(out_Result_X[0]))));
pvalue = out_Result_X[0] - static_cast<int>(out_Result_X[0]);
bridge.back.sendFinsMsg("write_short_321_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_321_" + QString::number(abs(pvalue * pValueBounus)));
//ResultX2
bridge.back.sendFinsMsg("write_short_322_" + QString::number(out_Result_X[1] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_323_" + QString::number(abs(static_cast<int>(out_Result_X[1]))));
_triggerManager->sendFinsMsg("write_short_322_" + QString::number(out_Result_X[1] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_323_" + QString::number(abs(static_cast<int>(out_Result_X[1]))));
pvalue = out_Result_X[1] - static_cast<int>(out_Result_X[1]);
bridge.back.sendFinsMsg("write_short_324_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_324_" + QString::number(abs(pvalue * pValueBounus)));
//ResultX3
bridge.back.sendFinsMsg("write_short_325_" + QString::number(out_Result_X[2] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_326_" + QString::number(abs(static_cast<int>(out_Result_X[2]))));
_triggerManager->sendFinsMsg("write_short_325_" + QString::number(out_Result_X[2] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_326_" + QString::number(abs(static_cast<int>(out_Result_X[2]))));
pvalue = out_Result_X[2] - static_cast<int>(out_Result_X[2]);
bridge.back.sendFinsMsg("write_short_327_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_327_" + QString::number(abs(pvalue * pValueBounus)));
//ResultY1
bridge.back.sendFinsMsg("write_short_328_" + QString::number(out_Result_Y[0] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_329_" + QString::number(abs(static_cast<int>(out_Result_Y[0]))));
_triggerManager->sendFinsMsg("write_short_328_" + QString::number(out_Result_Y[0] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_329_" + QString::number(abs(static_cast<int>(out_Result_Y[0]))));
pvalue = out_Result_Y[0] - static_cast<int>(out_Result_Y[0]);
bridge.back.sendFinsMsg("write_short_330_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_330_" + QString::number(abs(pvalue * pValueBounus)));
//ResultY2
bridge.back.sendFinsMsg("write_short_331_" + QString::number(out_Result_Y[1] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_332_" + QString::number(abs(static_cast<int>(out_Result_Y[1]))));
_triggerManager->sendFinsMsg("write_short_331_" + QString::number(out_Result_Y[1] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_332_" + QString::number(abs(static_cast<int>(out_Result_Y[1]))));
pvalue = out_Result_Y[1] - static_cast<int>(out_Result_Y[1]);
bridge.back.sendFinsMsg("write_short_333_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_333_" + QString::number(abs(pvalue * pValueBounus)));
//ResultY3
bridge.back.sendFinsMsg("write_short_334_" + QString::number(out_Result_Y[2] < 0 ? 2 : 1));
bridge.back.sendFinsMsg("write_short_335_" + QString::number(abs(static_cast<int>(out_Result_Y[2]))));
_triggerManager->sendFinsMsg("write_short_334_" + QString::number(out_Result_Y[2] < 0 ? 2 : 1));
_triggerManager->sendFinsMsg("write_short_335_" + QString::number(abs(static_cast<int>(out_Result_Y[2]))));
pvalue = out_Result_Y[2] - static_cast<int>(out_Result_Y[2]);
bridge.back.sendFinsMsg("write_short_336_" + QString::number(abs(pvalue * pValueBounus)));
_triggerManager->sendFinsMsg("write_short_336_" + QString::number(abs(pvalue * pValueBounus)));
}
void algoThread::ALGO_Inspection(detData* data)
void algoThread::ALGO_Inspection(std::shared_ptr <detData> data)
{
if (data->imgs.size() < 1)
{
@@ -851,7 +849,7 @@ void algoThread::ALGO_Inspection(detData* data)
rectangle(Paint, Result[0], cv::Scalar(0, 0, 255), 4);
_sleep(100);
}
void algoThread::Camera1_Algo(detData* data)
void algoThread::Camera1_Algo(std::shared_ptr <detData> data)
{
auto start_time = std::chrono::high_resolution_clock::now();
if (data->imgs.size() < 1)