|
|
|
|
#pragma once
|
|
|
|
|
#include "module.h"
|
|
|
|
|
#include "EnumPropertieType.h"
|
|
|
|
|
#include "PlatformXY.h"
|
|
|
|
|
#include "WorkCmdInvoker.h"
|
|
|
|
|
|
|
|
|
|
typedef pair<double,double> TypePosError;//(first <20><>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,second <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ)
|
|
|
|
|
class CGratingRuler :public CModule
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CGratingRuler(void);
|
|
|
|
|
~CGratingRuler(void);
|
|
|
|
|
virtual CMFCPropertyGridProperty *CreatGridProperty();
|
|
|
|
|
virtual MODULE GetModuleType(){return _GRATING_RULER_PROP;};
|
|
|
|
|
virtual void ExportPar(ofstream *pFile);
|
|
|
|
|
|
|
|
|
|
bool ReadGratingRuler(Dbxy &pt);
|
|
|
|
|
bool SetOriginCoord();
|
|
|
|
|
bool GetCurCoord(Dbxy &pt);
|
|
|
|
|
bool PlatformOriginCalibration(CPlatformXY &PlatformXY);
|
|
|
|
|
bool MeasurePlatfromError(DbRect rect,CPlatformXY &PlatformXY);
|
|
|
|
|
private:
|
|
|
|
|
bool IsUsed(){return m_bUseGratingRuler;};//<2F>Ƿ<EFBFBD>ʹ<EFBFBD>ù<EFBFBD>դ<EFBFBD><D5A4>
|
|
|
|
|
bool AnalysisRulerRet(char *str,Dbxy &pt);
|
|
|
|
|
bool AnalysisSymbol(BYTE byte,bool &bIsNegativeX,bool &bIsNegativeY);
|
|
|
|
|
bool AnalysisXYState(BYTE byte);
|
|
|
|
|
double AnalysisCoord(BYTE byte1,BYTE byte2,BYTE byte3,BYTE byte4);
|
|
|
|
|
void GetTwoNum(BYTE byte,double &high,double &low);
|
|
|
|
|
bool MeasureMotorError(CPlatformXY &PlatformXY,X_OR_Y xy,double Start,double End,vector<TypePosError> &ErrorTable);
|
|
|
|
|
void ExportErrorTable(ofstream *pFile,vector<TypePosError> &ErrorTable);
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
bool m_bIni;//<2F><>դ<EFBFBD><D5A4><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
Dbxy m_OriginCoord;//ƽ̨<C6BD>趨ԭ<E8B6A8><D4AD>ʱ<EFBFBD><CAB1>դ<EFBFBD>ߵĶ<DFB5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD>궼<EFBFBD><EAB6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>--------------------------------------
|
|
|
|
|
bool m_bUseGratingRuler;//<2F>Ƿ<EFBFBD>ʹ<EFBFBD>ù<EFBFBD>դ<EFBFBD><D5A4>
|
|
|
|
|
int m_CommPort;//<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>
|
|
|
|
|
double m_OriginCalibrationError;//ԭ<><D4AD>У<D0A3><D7BC><EFBFBD><EFBFBD>(mm)(ƽ̨<C6BD><CCA8>ԭ<EFBFBD><D4AD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
int m_MaxCalibrationTimes;//<2F><><EFBFBD><EFBFBD>У<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
|
|
|
|
|
double m_MeasureErrorGap;//Уƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>(<28><>λ: mm)
|
|
|
|
|
double m_MaxOriginError;/*<2A><>ԭ<EFBFBD><D4AD>ʱƽ̨ԭ<CCA8><D4AD><EFBFBD><EFBFBD>դ<EFBFBD><D5A4>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(mm)(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)*/
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EEB2B9><EFBFBD><EFBFBD>-----------------------------------------
|
|
|
|
|
vector<TypePosError> m_ErrorTableX;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB2B9><EFBFBD><EFBFBD>
|
|
|
|
|
vector<TypePosError> m_ErrorTableY;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB2B9><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern CGratingRuler *gGratingRuler;
|