123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- #pragma once
- #include "CppSQLite3.h"
- #include "dt.h"
- #include "CMathCalc.h"
- #include <string>
- #include <windows.h>
- #include <mutex>
- #include "CDataBaseOperate.h"
- namespace ns_db
- {
- using namespace std;
- #ifdef MACHINE_CALIBRATION_DLL
- #define DLL_MACHINE_CALIBRATION_API __declspec(dllexport)
- #else
- #define DLL_MACHINE_CALIBRATION_API
- #endif
- #define MACHINE_CALIBRATION_DATABASE_NAME ROOT_PATH##"\\db\\MachineCalibration.db"
- #define CTD_CALIB_TABLE_NAME "Calib_CameraTipDis"
- #define XY_CALIB_TABLE_NAME "Calib_XY"
- #define R_CALIB_TABLE_NAME "Calib_R"
- #define STEP_R_CALIB_RESULT_TABLE_NAME "Calib_R_Result"
- #define FORCE_CONTROL_TABLE_NAME "Force_Control"
- #define HORIZONTAL_MEASURE_TABLE_NAME "Horizontal_Measure"
- #define VERTICAL_MEASURE_TABLE_NAME "Vertical_Measure"
- #define TIP_CALIB_RESULT "Tip_R_CTD_CalibResult"
- #pragma region 标定参数
- struct CALIB_XY {
- int m_nId = 0;
- string m_sName = "";
- double m_dCenterPosX = 0;
- double m_dCenterPosY = 0;
- double m_dGrabPosZ = 0;
- double m_dCalibStepX = 0;
- double m_dCalibStepY = 0;
- int m_nTempId = 0;
- string m_sResultMatrix = "";
-
-
-
-
-
-
-
- };
- typedef struct _R_Calib_Result
- {
- int m_nId;
- string m_sName;
- int nIndex;
- DOUBLE dAngle;
- DOUBLE dOffset_X;
- DOUBLE dOffset_Y;
- }Step_RCalib_Result;
- struct CALIB_R {
- int m_nId;
- string m_sName;
- double m_dCalibPosX = 0;
- double m_dCalibPosY = 0;
- double m_dAngleStep = 1;
- double m_dAngleLower = -90;
- double m_dAngleUpper = 90;
- XY_DOUBLE_STRUCT m_stRotateCenter = { 0,0 };
- double m_dRad = 0;
- double m_dStartAngle = 0;
- double m_dRotationAngle = 20;
- int m_nRotationNum = 3;
- double m_dGrabPosZ = 0;
- int m_nTempId = 0;
- };
- struct CALIB_LOOKUP {
- int m_nId = 0;
- string m_sName = "";
- bool m_bHaveHeadPos = false;
- double m_dCameraPosX = 0;;
- double m_dCameraPosY = 0;
- double m_dCameraPosZ = 0;
- double m_dHeadPosX = 0;
- double m_dHeadPosY = 0;
- double m_dHeadPosZ = 0;
- double m_dCameraToHeadPosX = 0;
- double m_dCameraToHeadPosY = 0;
- double m_dHeadActualPosX = -1;
- double m_dHeadActualPosY = -1;
- double m_dCameraActualPosX = -1;
- double m_dCameraActualPosY = -1;
- int m_nBondTempID = 0;
- int m_nLookUpTempID = 0;
- int m_nTipTempID = 0;
- };
- struct FORCE_CONTROL {
-
- int nHeadId = 0;
- std::string sHeadName = "";
- double dA1 = 1;
- double dA2 = 1;
- double dB = 0;
- double dGivenForceZPos = 0;
- vector<POINTF> vetPts;
- double dGivenCurrent = 0;
- vector<POINTF> vetForcePos;
- double dFTestSearchPosZ = 0;
- double dTestPosX = 0;
- double dTestPosY = 0;
- double dFSearchDis = 0;
- double dSearchVel = 0;
- int nPressDelay = 0;
- double dInitPosZ = 0;
- };
- struct HORIZ_MEASURE{
- int nTableID = 0;
- double dTestPosX1 = 0;
- double dTestPosY1 = 0;
- double dTestPosX2 = 0;
- double dTestPosY2 = 0;
- double dTestPosX3 = 0;
- double dTestPosY3 = 0;
- double dSearchPosZ = 0;
- double dAngleX = 0;
- double dAngleY = 0;
- };
- struct VERTICAL_MEASURE
- {
- int nHeadId = 0;
- double dMeasurePosX = 0;
- double dMeasurePosY = 0;
- double dAngle1 = 0;
- double dAngle2 = 0;
- double dAngle3 = 0;
- double dFixtureAngle = 0;
- double dFixtureLength = 0;
- double dSearchPosZ = 0;
- double dZAxisAngleX = 0;
- double dZAxisAngleY = 0;
- };
- struct NozzleCalibParam
- {
- int nNozzleId = 0;
- XY_DOUBLE_STRUCT stRotCenter = { 0,0 };
- XY_DOUBLE_STRUCT stBHHighCameraToNozzle = { 0,0 };
- XY_DOUBLE_STRUCT stBHLowCameraToNozzle = { 0,0 };
- XY_DOUBLE_STRUCT stWHCameraToNozzle = { 0,0 };
- bool bIsRotationCalib = false;
- bool bIsHighCTDCalib = false;
- bool bIsLowCTDCalib = false;
- int nRTempID = 0;
-
-
-
- int nCTDWHNozzleTempID = 0;
- };
- #pragma endregion
- class DLL_MACHINE_CALIBRATION_API CMachineCalibration : public CDataBaseOperate
- {
- public:
- CMachineCalibration();
- private:
- LONG SaveDB() override;
- LONG LoadDB() override;
- private:
- vector<CALIB_XY> m_vetCalibXY;
- vector<CALIB_R> m_vetCalibR;
- vector<CALIB_LOOKUP> m_vetCalibLookUp;
- vector<Step_RCalib_Result> m_vetStepRCalibResult;
- vector<FORCE_CONTROL> m_vetForceControl;
- vector<HORIZ_MEASURE> m_vetHorizMeasure;
- vector<VERTICAL_MEASURE> m_vetVerticalMeasure;
- vector<NozzleCalibParam> m_vetNozzleCalibParam;
- public:
- LONG GetCalibXYParam(int calibID, string name, CALIB_XY& calibXY);
- LONG GetCalibRParam(int calibID, string name, CALIB_R& calibR);
- LONG GetCalibLookUpParam(int calibID, string name, CALIB_LOOKUP& calibLookUp);
- LONG GetStepCalibResult(int calibID, string name, vector<Step_RCalib_Result>& m_stVecCalib_R);
- LONG GetNozzleCalibParam(int index, NozzleCalibParam& param);
- LONG SetNozzleCalibParam(int index, NozzleCalibParam param);
- LONG GetForceParam(int HeadID, FORCE_CONTROL& vetForceControl);
- LONG GetHorizMeasureParam(int HeadID, HORIZ_MEASURE& vetHorizMeasure);
- LONG GetVerticalMeasureParam(int HeadID, VERTICAL_MEASURE& vetVerticalMeasure);
- LONG SetCalibXYParam(int calibID, string name, CALIB_XY calibXY);
- LONG SetCalibRParam(int calibID, string name, CALIB_R calibXY);
- LONG SetCalibLookUpParam(int calibID, string name, CALIB_LOOKUP calibXY);
- LONG SetCalibRResult(int calibID, string name, vector<Step_RCalib_Result>& VecCalib_R);
- LONG SaveCalibXYParam();
- LONG SaveCalibRParam();
- LONG SaveCalibLookUpParam();
- LONG SaveCalibRResult();
- LONG SaveCalibForceParam();
- LONG SaveCalibTipParam();
-
-
-
-
-
- LONG LoadCalibXYParam(vector<CALIB_XY>& calibXY);
- LONG LoadCalibRParam(vector<CALIB_R>& calibR);
- LONG LoadCalibLookUpParam(vector<CALIB_LOOKUP>& calibLookUp);
- LONG LoadStepCalibResult(vector<Step_RCalib_Result>& m_stVecCalib_R);
- LONG LoadCalibForceParam(vector<FORCE_CONTROL>& vetForce);
- LONG LoadHorizMeasureParam(vector<HORIZ_MEASURE>& vetHorizMeasure);
- LONG LoadVerticalMeasureParam(vector<VERTICAL_MEASURE>& vetVerticalMeasure);
- LONG LoadNozzleCalibParam(vector<NozzleCalibParam>& nozzleParam);
- private:
- LONG SaveCalibXYParam(int calibID, string name, CALIB_XY calibXY);
- LONG SaveCalibRParam(int calibID, string name, CALIB_R calibXY);
- LONG SaveCalibLookUpParam(int calibID, string name, CALIB_LOOKUP calibXY);
- LONG SaveCalibRResult(int calibID, string name, vector<Step_RCalib_Result>& VecCalib_R);
- LONG SaveCalibForceParam(int headID, string name, FORCE_CONTROL VecCalib_R);
- LONG SaveCalibTipParam(int TipID, NozzleCalibParam NozzleCalibParam);
- };
- }
|