89 lines
2.5 KiB
C++
89 lines
2.5 KiB
C++
#include <backEndManager.h>
|
|
#include <triggerManager.h>
|
|
#include <cameraManager.h>
|
|
#include <jsonParsing.h>
|
|
#include <handleAi/handleAiModel.h>
|
|
#include <future>
|
|
#include <backEndManager.h>
|
|
#include <back/imgSaveThreadManager.h>
|
|
backEndManager::backEndManager()
|
|
{
|
|
_jsonConfiguration = new jsonConfiguration();
|
|
_detDataManager = new detDataManager();
|
|
_handleAiModelManager = new handleAiModelManager();
|
|
|
|
_imgSaveThreadManager = new imgSaveThreadManager(this);
|
|
_triggerManager = new triggerManager();
|
|
_cameraManager = new cameraManager();
|
|
_threadManager = new threadManager();
|
|
}
|
|
void backEndManager::run()
|
|
{
|
|
if(isInit == ReInit)
|
|
{
|
|
if (_cameraManager != nullptr)
|
|
delete _cameraManager;
|
|
if (_triggerManager != nullptr)
|
|
delete _triggerManager;
|
|
|
|
_triggerManager = new triggerManager();
|
|
_cameraManager = new cameraManager();
|
|
isInit = NotInit;
|
|
}
|
|
if(isInit == NotInit)
|
|
{
|
|
//µÈ´ý³õʼ»¯
|
|
std::vector<std::future<void>> futures;//Òì²½³õʼ»¯
|
|
futures.push_back(std::async(std::launch::async, &threadManager::initialization, _threadManager, this));
|
|
futures.push_back(std::async(std::launch::async, &triggerManager::initialization, _triggerManager, this));
|
|
futures.push_back(std::async(std::launch::async, &cameraManager::initialization, _cameraManager, this));
|
|
futures.push_back(std::async(std::launch::async, &sqlManager::initialization, &_sqlManager, sqlDefaultDatabasePath,true));
|
|
futures.push_back(std::async(std::launch::async, &handleAiModelManager::initialization, _handleAiModelManager,this));
|
|
for (auto& future : futures) {
|
|
future.wait();
|
|
}
|
|
|
|
_imgSaveThreadManager->start();
|
|
_triggerManager->start();
|
|
if (_threadManager->initFlag == true)
|
|
{
|
|
_threadManager->start();
|
|
}
|
|
if (_triggerManager->initFlag == true && _cameraManager->initFlag == true)
|
|
{
|
|
isInit = InitOK;
|
|
_triggerManager->start();
|
|
_cameraManager->start();
|
|
}
|
|
else
|
|
{
|
|
isInit = InitFailure;
|
|
}
|
|
sendInitFinished(isInit);
|
|
}
|
|
}
|
|
|
|
backEndManager::~backEndManager()
|
|
{
|
|
_triggerManager->stop();
|
|
_cameraManager->stop();
|
|
_threadManager->stop();
|
|
|
|
delete _cameraManager;
|
|
delete _threadManager;
|
|
delete _triggerManager;
|
|
delete _jsonConfiguration;
|
|
delete _detDataManager;
|
|
|
|
}
|
|
|
|
void backEndManager::startManualDetSlot(cv::Mat* mats, int algoIndex)
|
|
{
|
|
std::shared_ptr <detData> data = _detDataManager->insertDetData("Manual", "Manual", 0, 1);
|
|
data->oriImgMutex.lock();
|
|
data->oriImgs.push_back(mats->clone());
|
|
data->oriImgMutex.unlock();
|
|
delete mats;
|
|
_threadManager->addTask(data);//Ìí¼ÓÈÎÎñ
|
|
|
|
} |