You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.0 KiB
C++
62 lines
2.0 KiB
C++
// MotionController_ACS.h: interface for the CMotionController_ACS class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_MOTIONCONTROLLER_ACS_H__3E235D4B_C75D_4F13_A9B5_61EFB6BB5378__INCLUDED_)
|
|
#define AFX_MOTIONCONTROLLER_ACS_H__3E235D4B_C75D_4F13_A9B5_61EFB6BB5378__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#pragma warning(disable: 4481) // nonstandard extension used: override specifier 'override'
|
|
|
|
class CMotionController_ACS;
|
|
|
|
struct _ACS_CallBackStruct
|
|
{
|
|
_ACS_CallBackStruct(int _interrupt, CMotionController_ACS* _pController, const char *str)
|
|
: interrupt(_interrupt), pController(_pController), name(str)
|
|
{
|
|
}
|
|
|
|
int interrupt;
|
|
std::string name;
|
|
CMotionController_ACS *pController;
|
|
};
|
|
typedef struct _ACS_CallBackStruct ACS_CallBackStruct;
|
|
|
|
class CMotionController_ACS : public CMotionControllerBase
|
|
{
|
|
public:
|
|
CMotionController_ACS(int index);
|
|
virtual ~CMotionController_ACS();
|
|
|
|
BOOL Init(int &nNoOfMtr) override;
|
|
void Close() override;
|
|
|
|
// get Motion status of motor
|
|
int GetMotionStatus(const CMtrProfile &mtrProfile) override;
|
|
|
|
// check motor in position signal
|
|
BOOL IsInPosition(const CMtrProfile &mtrProfile) override;
|
|
|
|
void ProcessInt(unsigned __int64 Param, int interrupt, const std::string &name);
|
|
HANDLE GetCommHandle();
|
|
private:
|
|
const char *GetErrorString();
|
|
bool TestAcsResult(int line_nr, int result, char *code);
|
|
void _InstallCallBack(void *f, int interrupt, const char *name);
|
|
void UninstallCallbacks();
|
|
|
|
std::vector<std::shared_ptr<ACS_CallBackStruct> > m_installedCallbacks;
|
|
int m_lastError;
|
|
char m_errorString[256];
|
|
CMotionLogger m_logger;
|
|
HANDLE m_hComm;
|
|
|
|
bool TerminateStrayConnections();
|
|
};
|
|
|
|
#endif // !defined(AFX_MOTIONCONTROLLER_ACS_H__3E235D4B_C75D_4F13_A9B5_61EFB6BB5378__INCLUDED_)
|