This commit is contained in:
2024-09-10 11:50:41 +08:00
parent 9e4c2ff8d1
commit f36e9615cb
2 changed files with 29 additions and 27 deletions
+20 -18
View File
@@ -292,7 +292,7 @@ void createModbusStrs(const int startPos,double& Value, std::shared_ptr <detData
data->writeBack("short", startPos, QString::number(Value < 0 ? 2 : 1));
data->writeBack("short", startPos + 1, QString::number(abs(static_cast<int>(Value))));
double pvalue = Value - static_cast<int>(Value);
data->writeBack("short", startPos + 2, QString::number(static_cast<int>(abs(pvalue * 100))));
data->writeBack("short", startPos + 2, QString::number(static_cast<int>(abs(pvalue * 1000))));
}
correctionStruct* correctionData1x = new correctionStruct();
@@ -350,6 +350,7 @@ double offsetLimit(double valueIn,double offsetLimitIn)
}
void ALGO_Correction(std::shared_ptr <detData> data)
{
//x轴方向为-x 值越大-x越大 y方向为y+,值越大y+越大 z方向为y+,值越大z+越大
//data->writeBack("short", 274, "1");
//return;
CorrectionPoints resultPoints;
@@ -378,30 +379,39 @@ void ALGO_Correction(std::shared_ptr <detData> data)
double offsetLimit_Y = currentProductConfig._correctionConfigStruct.offsetLimit_Y;
double offsetLimit_Z = currentProductConfig._correctionConfigStruct.offsetLimit_Z;
//计算值
double correctionFinalResultX = correction_X - resultPoints.OriginX - baseOffset_X;
double correctionFinalResultY = correction_Y - resultPoints.OriginY - baseOffset_Y;
double correctionFinalResultZ = correction_Z - resultPoints.OriginZ - baseOffset_Z;
std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl;
std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl;
std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl;
//限制小数点后三位
correctionFinalResultX = doubleLmit(correctionFinalResultX, 3);
correctionFinalResultY = doubleLmit(correctionFinalResultY, 3);
correctionFinalResultZ = doubleLmit(correctionFinalResultZ, 3);
std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl;
std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl;
std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl;
//限制最大最小值
correctionFinalResultX = offsetLimit(correctionFinalResultX, offsetLimit_X);
correctionFinalResultY = offsetLimit(correctionFinalResultY, offsetLimit_Y);
correctionFinalResultZ = offsetLimit(correctionFinalResultZ, offsetLimit_Z);
//方向修正
correctionFinalResultY = -correctionFinalResultY;
correctionFinalResultZ = -correctionFinalResultZ;
std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl;
std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl;
std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl;
createModbusStrs(310, correctionFinalResultX, data);
createModbusStrs(313, correctionFinalResultY, data);
createModbusStrs(316, correctionFinalResultZ, data);
/*createModbusStrs(319, 0, data);
createModbusStrs(322, 0, data);
createModbusStrs(325, 0, data);*/
data->writeBack("short", 274, "1");
//double offsetRx = data->_productDataStruct.baseRad[0] - point.x;
//double offsetRy = data->_productDataStruct.baseRad[1] - point.y;
//double offsetRz = data->_productDataStruct.baseRad[2] - point.z;
@@ -420,16 +430,8 @@ void ALGO_Correction(std::shared_ptr <detData> data)
//offsetRy = doubleLmit(offsetRy, 3);
//offsetRz = doubleLmit(offsetRz, 3);
std::cout << "offsetX:" << data->pointsOffsetStruct_.baseOffsetX << "offsetY:" << data->pointsOffsetStruct_.baseOffsetY << "offsetZ:" << data->pointsOffsetStruct_.baseOffsetZ << std::endl;
//std::cout << "offsetX:" << data->pointsOffsetStruct_.baseOffsetX << "offsetY:" << data->pointsOffsetStruct_.baseOffsetY << "offsetZ:" << data->pointsOffsetStruct_.baseOffsetZ << std::endl;
//std::cout << "offsetRx:" << offsetRx << "offsetRy:" << offsetRy << "offsetRz:" << offsetRz << std::endl;
/*createModbusStrs(310, data->pointsOffsetStruct_.baseOffsetX,data);
createModbusStrs(313, data->pointsOffsetStruct_.baseOffsetY, data);
createModbusStrs(316, data->pointsOffsetStruct_.baseOffsetZ, data);*/
//createModbusStrs(319, offsetRx, data);
//createModbusStrs(322, offsetRy, data);
//createModbusStrs(325, offsetRz, data);
data->writeBack("short", 274, "1");
}