#pragma once #include "dt.h" #include <iostream> #include "CMath.h" #include "JAxis.h" #include "CForceControl.h" #include "CMachineCalibration.h" /* 1��ˮƽ��У����������㣬����ȷ��һ��ƽ�棬��ƽ�淨���������ݷ���������Ƕ� ע�⣺��ˮƽ��У�����ͷ����ϵΪ������ϵ�� �磺X����Ϊ�������������������̣���Ϊ�������������� */ class __declspec(dllexport) CHorizMeasure { public: /** * @brief ���캯�������ڴ��� CHorizMeasure ���� * * @param id �����Ψһ��ʶ�����������ֲ�ͬ��У���� * @param forceControl ָ�� CForceControl �����ָ�룬���ڿ��ƺͻ�ȡ����ص����� */ CHorizMeasure(int id, CForceControl* forceControl); /** * @brief ������������������ CHorizMeasure �����ͷ������Դ */ ~CHorizMeasure(); // /** // * @brief �߶Ȳ��Ժ�����������ǰλ�õĸ߶� // * // * @param hight ���ڴ洢�����õ��ĸ߶�ֵ // * @return LONG ����������ɹ����� OK��ʧ�ܷ�����Ӧ�Ĵ����� // */ // LONG HightTest(double& hight); /** * @brief ��ʼˮƽ��У���� * * �ú���������豸�ƶ�������Ԥ��IJ���λ�ã����и߶Ȳ��ԣ� * �����������Ե������߶�ȷ��һ��ƽ�棬�����ƽ��ķ������� * ���������ƽ������ڰ�ͷ����ϵ�� X ��� Y �᷽�����б�Ƕ� * * @return LONG У�����Ľ�����ɹ����� OK��ʧ�ܷ�����Ӧ�Ĵ����� */ LONG StartCalib(); /** * @brief �����ݿ��л�ȡˮƽ��У����IJ��� * * ��Щ�����������Ե�����ꡢ�����߶ȵȣ���洢�� m_stParam ��Ա������ */ void GetParam(); /** * @brief ��У����������õ����ݿ��� * * Ŀǰ������Ϊ�գ�������ʵ�ֽ�У�õ��� X ��� Y ����б�ǶȵȲ������浽���ݿ���� */ void SetParam(); /** * @brief ��ȡˮƽ��У�� X �᷽�����б�ǶȽ�� * * @return double X �᷽�����б�Ƕȣ���ͷ����ϵΪ�� */ double GetAngleXResult() { return m_stParam.dAngleX; } /** * @brief ��ȡˮƽ��У�� Y �᷽�����б�ǶȽ�� * * @return double Y �᷽�����б�Ƕȣ���ͷ����ϵΪ�� */ double GetAngleYResult() { return m_stParam.dAngleY; } void Stop() { m_bStop = true; } void GetAngleResult(double& angleX, double& angleY) { angleX = m_stParam.dAngleX; angleY = m_stParam.dAngleY; } private: CForceControl* m_pForceControl = nullptr; // ָ�������ƶ����ָ�룬���ڿ��ƺͻ�ȡ����ص����� CMachineCalibration* m_pMcCalibDB = nullptr; // ָ�����У���ݿ�����ָ�룬���ڲ����Ķ�ȡ�ʹ洢 HORIZ_MEASURE m_stParam; // �洢ˮƽ��У����IJ�����У��� int m_nTableID = 0; // �����Ψһ��ʶ�� bool m_bStop = false; // ���³�Ա�����Ѻϲ��� m_stParam �У����ٵ���ʹ�� // double m_dTestPosX1 = 0; // double m_dTestPosY1 = 0; // double m_dTestPosX2 = 0; // double m_dTestPosY2 = 0; // double m_dTestPosX3 = 0; // double m_dTestPosY3 = 0; // double m_dSearchPosZ = 0; // double m_dAngleX = 0; // У��Ľ����X �������б�Ƕ� // double m_dAngleY = 0; // У��Ľ����Y �������б�Ƕ� private: /** * @brief ���������������ƶ���ָ��λ�ò����и߶Ȳ��� * * @param pos Ҫ�ƶ����IJ���λ�õĶ�ά���� * @param searchPosZ �����߶ȣ����ڸ߶Ȳ��ԵIJ��� * @param outZ ���ڴ洢�����õ���ʵ�ʸ߶�ֵ * @return LONG ����������ɹ����� OK��ʧ�ܷ�����Ӧ�Ĵ����� */ LONG MoveAndTest(const XY_DOUBLE_STRUCT& pos, double searchPosZ, double& outZ); };