#pragma once #include "LensChangeControlInfo.h" class AFX_EXT_CLASS CLensChangeControl { public: CLensChangeControl(int nIndex) { m_nIndex = nIndex; m_pLCC2P = NULL; m_nPortIndex = 1; m_nBaudRate = CBR_9600; m_bConnected = FALSE; } virtual ~CLensChangeControl(void) { } void SetRC2P(ILensChangeControl2Parent* pLCC2P) { m_pLCC2P = pLCC2P; } int GetControlType() const { return m_ControlInfo.GetControllerType(); } int GetIndex() const { return m_nIndex; } int GetPortIndex() const { return m_nPortIndex; } int GetBaudRate() const { return m_nBaudRate; } BOOL GetConnected() const { return m_bConnected; } virtual BOOL Connect(const CLensChangeControlInfo& controlInfo) = 0; virtual void Disconnect() = 0; virtual BOOL Backward() = 0; virtual BOOL Forward() = 0; virtual BOOL GetPosition(int& nPos) = 0; virtual BOOL SetPosition(int nPos) = 0; virtual BOOL GoHoming()=0; protected: int m_nIndex; ILensChangeControl2Parent *m_pLCC2P; CLensChangeControlInfo m_ControlInfo; int m_nPortIndex; int m_nBaudRate; BOOL m_bConnected; };