#pragma once
#include "CModule.h"
/**/
class  __declspec(dllexport) CTransferTable : public CModule
{
	typedef struct _TRANSFERTABLE_CONFIG_STRUCT
	{
		double dCalibPosX ;						//��תλ��X
		double dGetDiePosX ;						//��ȡоƬλ��X
		double dAllowGrabPosX;					//��������λ
		_TRANSFERTABLE_CONFIG_STRUCT()
		{
			dCalibPosX = 0;		
			dGetDiePosX = 0;		
			dAllowGrabPosX = 0;	
		}
	} TRANSFERTABLE_CONFIG_STRUCT;     //��������

public:
	CTransferTable(MODULE_LIST eModuleType);
	~CTransferTable();

	virtual LONG AllocateAxis(vector<CAxis*> vecAxis) override;
	virtual LONG AllocateIo(vector<CIO*> vecIo) override;

	virtual void SetDataChangFunction() override;
	virtual void DataChangNotice(string strDbName, string strTableName) override;
	virtual LONG SetParam() override;//��������
	virtual LONG GetParam() override;//��������
	virtual LONG ToHome() override;
	virtual LONG Sync() override;
	virtual LONG ToSafePosition() override;
	virtual LONG InitResource();				

	//���ž�λ��
	LONG ToBondPosition(bool waitDone);
	//��ȡ��λ��
	LONG ToPickPosition(bool waitDone);

	//�������
	LONG SetVacDoVal(bool isOn);

	bool AllowLookUpGrab();

private:
	CAxis* m_pXAxis = nullptr;
	CIO* m_pVacGpo = nullptr;
	//����
	TRANSFERTABLE_CONFIG_STRUCT m_stConfig;
};