SDC C-Project CF Review 프로그램
LYW
2021-09-23 c08b701c90c8998b241c82638d5c488e03238214
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#pragma once
 
#include "CHAfmControls/AfmControl.h"
#include "CHThreadPools/WorkThreadPools.h"
 
enum {AFM_MSG_JOG_COMAND = 0, AFM_MSG_WRITE_ZOOM, AFM_MSG_AF_TRACKING, AFM_MSG_AF_STOP, AFM_MSG_IS_SERIAL_CONNECTION, AFM_MSG_HOME, AFM_MSG_END_PROCESS };
 
class CAfmControlProcessData_Msg : public CWorkThreadData
{
public:
    CAfmControlProcessData_Msg(PVOID pPtr) : CWorkThreadData(pPtr)
    {
        nThreadIdx        = -1;        
    }
    int                nThreadIdx;
};
 
class AFX_EXT_CLASS CAfmControl_Msg :    public CAfmControl,
                                        public CWorkThreadPools
{
public:
    CAfmControl_Msg(int nIndex);
    virtual ~CAfmControl_Msg(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 BOOL    SetSystemTime(SYSTEMTIME stCurrentTime);
 
    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();
 
    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];
};