focuser.h

来自「天文望远镜电动调焦距驱动程序」· C头文件 代码 · 共 79 行

H
79
字号
// Focuser.h: Definition of the Focuser class
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FOCUSER_H__8DC5101A_AF9A_48A3_87AD_2CD0B95C82F5__INCLUDED_)
#define AFX_FOCUSER_H__8DC5101A_AF9A_48A3_87AD_2CD0B95C82F5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "resource.h"       // main symbols

class ComPort;

/////////////////////////////////////////////////////////////////////////////
// Focuser

class Focuser : 
	public IDispatchImpl<IFocuser, &IID_IFocuser, &LIBID_DualFocus>, 
	public ISupportErrorInfo,
	public CComObjectRoot,
	public CComCoClass<Focuser,&CLSID_Focuser>
{
public:
	Focuser()
	{
		bLinkEstablished = FALSE;
		Port = NULL;
		FocusNum = 0;
	}
	~Focuser()
	{
		if (Port != NULL) put_Link ( FALSE );
	}

BEGIN_COM_MAP(Focuser)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IFocuser)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
//DECLARE_NOT_AGGREGATABLE(Focuser) 
// Remove the comment from the line above if you don't want your object to 
// support aggregation. 

DECLARE_REGISTRY_RESOURCEID(IDR_Focuser)
// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

protected:
	BOOL bLinkEstablished;
	int Timeout;
	int FocusNum;
	ComPort *Port;
	bool GetPosition(long &Position);
	bool SetPosition(long Delta);
	bool GetParms(int num, char *Buf);

// IFocuser
public:
	STDMETHOD(get_Temperature)(/*[out, retval]*/ float *pVal);
	STDMETHOD(get_TempCompAvailable)(/*[out, retval]*/ VARIANT_BOOL *pVal);
	STDMETHOD(get_TempComp)(/*[out, retval]*/ VARIANT_BOOL *pVal);
	STDMETHOD(put_TempComp)(/*[in]*/ VARIANT_BOOL newVal);
	STDMETHOD(get_StepSize)(/*[out, retval]*/ float *pVal);
	STDMETHOD(SetupDialog)();
	STDMETHOD(get_Position)(/*[out, retval]*/ long *pVal);
	STDMETHOD(Move)(long Position);
	STDMETHOD(get_MaxStep)(/*[out, retval]*/ long *pVal);
	STDMETHOD(get_MaxIncrement)(/*[out, retval]*/ long *pVal);
	STDMETHOD(get_Link)(/*[out, retval]*/ VARIANT_BOOL *pVal);
	STDMETHOD(put_Link)(/*[in]*/ VARIANT_BOOL newVal);
	STDMETHOD(get_IsMoving)(/*[out, retval]*/ VARIANT_BOOL *pVal);
	STDMETHOD(Halt)();
	STDMETHOD(get_Absolute)(/*[out, retval]*/ VARIANT_BOOL *pVal);
};

#endif // !defined(AFX_FOCUSER_H__8DC5101A_AF9A_48A3_87AD_2CD0B95C82F5__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?