#pragma once #include "CHAfmControls/AfmControl.h" #include "CHThreadPools/WorkThreadPools.h" enum {AFM_WEGU_JOG_COMAND = 0, AFM_WEGU_WRITE_ZOOM, AFM_WEGU_AF_TRACKING, AFM_WEGU_AF_STOP, AFM_WEGU_IS_SERIAL_CONNECTION, AFM_WEGU_HOME, AFM_WEGU_END_PROCESS }; class CAfmControlProcessData : public CWorkThreadData { public: CAfmControlProcessData(PVOID pPtr) : CWorkThreadData(pPtr) { nThreadIdx = -1; } int nThreadIdx; }; class AFX_EXT_CLASS CAfmControl_Wegu : public CAfmControl, public CWorkThreadPools { public: CAfmControl_Wegu(int nIndex); virtual ~CAfmControl_Wegu(void); virtual int Connect(const CAfmControlInfo& controlInfo); virtual void Disconnect(); // getter virtual BOOL GetConnected() const; virtual BOOL GetTracking(int& nTracking) const; virtual BOOL GetZoomIndex(int& nZoomIndex) const; virtual BOOL GetRecipeIndex(int& nRecipeIdnex, int& nZoomIndex) const; virtual BOOL GetRecipeName(CString& strRecipeName, int& nZoomIndex) const; virtual BOOL GetInFocus(BOOL* pRtCheck); virtual int GetAFMHomePosition(bool &bHome) const; virtual BOOL GetCurPos(double& dPos); // setter virtual BOOL SetTracking(int nTracking); virtual BOOL SetZoomIndex(int nZoomIndex); virtual BOOL SetRecipeIndex(int nRecipeIdnex, int nZoomIndex=-1); virtual BOOL SetRecipeName(const CString& strRecipeName, int nZoomIndex=-1); virtual int RecipeJogSpeed(double dSpeed); virtual int RecipeJogCommand(int nCmd); virtual int RecipeTracking(int nTracking); virtual int RecipeZoom(int nZoomIndex); virtual int RecipeChange(int nRecipeIndex, int nZoomIndex); virtual int RecipeChange(const CString& strRecipeName, int nZoomIndex); virtual BOOL MoveToLimitPlus(); virtual BOOL MoveToLimitMinus(); virtual int MoveToHomePosition(int nHomePos = 0); virtual BOOL MoveToBasePosition(int nZoomIndex); virtual BOOL MoveToTargetPosition(double dPos); virtual int JumpAF(){return -1;}; // [2017:4:14]-[WEZASW] : Change System Time(CIM) virtual BOOL SetSystemTime(SYSTEMTIME stCurrentTime); virtual void WorkThreadProcess(PVOID pParameter); int NetProcess_FC_SEND_ALIVE(){return 0;}; BOOL IsSetTime() {return FALSE;}; void KillTime(){}; CTime GetLastAliveTime(){return 0;}; protected: void Wait(DWORD dwMillisecond); char m_strPort[16]; int m_nBaudrate_start; double m_dSpeed; HANDLE m_hMutex; int m_count; HANDLE m_hMapFile; LPCTSTR m_pBuf; u_short m_nMicroSteps; u_short m_nFullsteps; int m_pAFMHomingZParam[8]; };