触发器与相机联动成功
This commit is contained in:
@@ -1,9 +1,30 @@
|
||||
#include <triggerManager.h>
|
||||
#include <backEndManager.h>
|
||||
#include <threadPoolManager.h>
|
||||
#include <backStruct.h>
|
||||
#include <cameraManager.h>
|
||||
#include <jsonParsing.h>
|
||||
static correctionStruct* correctionData;
|
||||
void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
{
|
||||
#if 0
|
||||
#if 1
|
||||
//if (checkTrigger(1, 2, byte) == true)
|
||||
{
|
||||
detData* data = dManager->insertDetData("Camera1", "Thread3", "TEST", 0);
|
||||
data->correctionData = correctionData;
|
||||
_threadManager->addTask(data);//添加任务
|
||||
auto camera = _cameraManager->cameras.find("123");
|
||||
camera->second->Process(data);
|
||||
}
|
||||
//if (checkTrigger(2, 2, byte) == true)
|
||||
{
|
||||
detData* data = dManager->insertDetData("Camera1", "Thread2", "TEST", 0);
|
||||
data->correctionData = correctionData;
|
||||
_threadManager->addTask(data);//添加任务
|
||||
auto camera = _cameraManager->cameras.find("Vir-CA013-20GC");
|
||||
camera->second->Process(data);
|
||||
}
|
||||
return;
|
||||
if (byte.isEmpty())
|
||||
return;
|
||||
double cameraData = 0;
|
||||
@@ -24,12 +45,27 @@ void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
correctionData->in_Y_Y0Z = { -1147.29,-1147.28,-940.82 };
|
||||
correctionData->in_Z_Y0Z = { 118.15,-228.19,-256.5 };
|
||||
correctionData->in_X_Y0Z_Value = { -36.652200,-36.7302,41.0436 };
|
||||
detData* data = dManager.insertDetData("Camera1", "correctionDataThread", "TEST", 0);
|
||||
detData* data = dManager->insertDetData("Camera1", "correctionDataThread", "TEST", 0);
|
||||
data->correctionData = correctionData;
|
||||
workThread->addTask(data);//添加任务
|
||||
_threadManager->addTask(data);//添加任务
|
||||
correctionData = nullptr;
|
||||
}
|
||||
|
||||
if (checkTrigger(1, 2, byte) == true)
|
||||
{
|
||||
detData* data = dManager->insertDetData("Camera1", "Thread3", "TEST", 0);
|
||||
data->correctionData = correctionData;
|
||||
_threadManager->addTask(data);//添加任务
|
||||
auto camera = _cameraManager->cameras.find("123");
|
||||
camera->second -> Process(data);
|
||||
}
|
||||
if (checkTrigger(2, 2, byte) == true)
|
||||
{
|
||||
detData* data = dManager->insertDetData("Camera1", "Thread3", "TEST", 0);
|
||||
data->correctionData = correctionData;
|
||||
_threadManager->addTask(data);//添加任务
|
||||
auto camera = _cameraManager->cameras.find("456");
|
||||
camera->second->Process(data);
|
||||
}
|
||||
//总流程开始,机器人发送1至寄存器259
|
||||
|
||||
//上位机确认OK之后,清零寄存器259,并发送1至寄存器260
|
||||
@@ -37,8 +73,8 @@ void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
//之后机器人确认之后需发送测量点位总数具体值至寄存器258
|
||||
if (checkTrigger(259, 1, byte) == true)
|
||||
{
|
||||
bridge.back.sendFinsMsg("write_short_259_0");//触发信号清零
|
||||
bridge.back.sendFinsMsg("write_short_260_1");//开始检测信号
|
||||
sendFinsMsg("write_short_259_0");//触发信号清零
|
||||
sendFinsMsg("write_short_260_1");//开始检测信号
|
||||
}
|
||||
|
||||
//机器人激光当前点位 264 1...9
|
||||
@@ -64,7 +100,7 @@ void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
double xValue = (xValue1 == 1 ? 1 : -1) * ((double)xValue2 + ((double)xValue3) / (std::pow(10, to_string(xValue3).length())));
|
||||
double yValue = (yValue1 == 1 ? 1 : -1) * ((double)yValue2 + ((double)yValue3) / (std::pow(10, to_string(yValue3).length())));
|
||||
double zValue = (zValue1 == 1 ? 1 : -1) * ((double)zValue2 + ((double)zValue3) / (std::pow(10, to_string(zValue3).length())));
|
||||
double rangeData = threadlist[0]->getValueFromCamera();
|
||||
double rangeData = _cameraManager->cameras.find("相机的名字")->second->getCameraValue();
|
||||
|
||||
if (armPos == 1)//第一次
|
||||
correctionData = new correctionStruct();
|
||||
@@ -92,16 +128,16 @@ void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
correctionData->in_X_Y0Z_Value.push_back(rangeData);
|
||||
}
|
||||
}
|
||||
bridge.back.sendFinsMsg("write_short_261_0");//清零
|
||||
bridge.back.sendFinsMsg("write_short_262_1");
|
||||
bridge.back.sendFinsMsg("write_short_263_1");
|
||||
sendFinsMsg("write_short_261_0");//清零
|
||||
sendFinsMsg("write_short_262_1");
|
||||
sendFinsMsg("write_short_263_1");
|
||||
|
||||
//上位机校正完成,将寄存器274置为1,并将结果按照定义XYZ规则放入310~336中
|
||||
if (armPos == 9)
|
||||
{
|
||||
detData* data = dManager.insertDetData("Camera1", "correctionDataThread", "TEST", 0);
|
||||
detData* data = dManager->insertDetData("Camera1", "correctionDataThread", "TEST", 0);
|
||||
data->correctionData = correctionData;
|
||||
workThread->addTask(data);//添加任务
|
||||
_threadManager->addTask(data);//添加任务
|
||||
correctionData = nullptr;
|
||||
}
|
||||
}
|
||||
@@ -110,8 +146,8 @@ void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
|
||||
if (checkTrigger(300, 1, byte) == true)
|
||||
{
|
||||
bridge.back.sendFinsMsg("write_short_300_0");//触发信号清零
|
||||
bridge.back.sendFinsMsg("write_short_301_1");//开始检测信号
|
||||
sendFinsMsg("write_short_300_0");//触发信号清零
|
||||
sendFinsMsg("write_short_301_1");//开始检测信号
|
||||
int Pos = getValue(303, byte);
|
||||
}
|
||||
|
||||
@@ -122,6 +158,9 @@ void triggerManager::decodeCameraCMD(QByteArray byte)
|
||||
void triggerManager::init(backEndManager* input)
|
||||
{
|
||||
_backEndManager = input;
|
||||
dManager = _backEndManager->_detDataManager;
|
||||
_cameraManager = _backEndManager->_cameraManager;
|
||||
_threadManager = _backEndManager->_threadManager;
|
||||
QLibrary* m_lib = new QLibrary(triggerFileName);
|
||||
bool flag = m_lib->load();
|
||||
if (!m_lib->isLoaded())
|
||||
@@ -152,4 +191,14 @@ void triggerManager::init(backEndManager* input)
|
||||
}
|
||||
}
|
||||
this->start();
|
||||
}
|
||||
|
||||
int triggerManager::getValue(int dmPos, QByteArray byte)
|
||||
{
|
||||
int triggerPos = (dmPos - _backEndManager->_jsonConfiguration->tcp.startPos) * 2;
|
||||
if (byte.size() / 2 < triggerPos)
|
||||
return false;
|
||||
int val1 = byte.at(triggerPos) * 256;
|
||||
int val2 = static_cast<unsigned char>(byte.at(triggerPos + 1));
|
||||
return val1 + val2;
|
||||
}
|
||||
Reference in New Issue
Block a user