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.
65 lines
1.7 KiB
C++
65 lines
1.7 KiB
C++
// MotionController_ADVANTECH_ETHERCAT.h: interface for the CMotionController_ADVANTECH_ETHERCAT class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
#pragma once
|
|
|
|
#include <vector>
|
|
|
|
#include "MotionControllerBase.h"
|
|
|
|
class CMotionController_ADVANTECH_ETHERCAT;
|
|
using stThreadParam = struct _stThreadParam
|
|
{
|
|
int nId;
|
|
CMotionController_ADVANTECH_ETHERCAT* pController;
|
|
// ctor
|
|
_stThreadParam(int _id, CMotionController_ADVANTECH_ETHERCAT* _pController)
|
|
{
|
|
nId = _id;
|
|
pController = _pController;
|
|
}
|
|
};
|
|
|
|
class CMotionController_ADVANTECH_ETHERCAT : public CMotionControllerBase
|
|
{
|
|
public:
|
|
CMotionController_ADVANTECH_ETHERCAT(int index);
|
|
virtual ~CMotionController_ADVANTECH_ETHERCAT();
|
|
|
|
BOOL Init(int& nNoOfMtr) override;
|
|
void Close() override;
|
|
|
|
int GetCardId(int nIndex)
|
|
{
|
|
return m_cardInfo[nIndex].nId;
|
|
}
|
|
|
|
void SetAdvantechMotionInt(int nCardNo, int nAxisNo);
|
|
bool m_bKillThread;
|
|
|
|
private:
|
|
using stCardInfo = struct _stCardInfo
|
|
{
|
|
unsigned short nId;
|
|
unsigned short nNumOfAxes;
|
|
unsigned short nNumOfMotionSlaves;
|
|
unsigned short nNumOfIoSlaves;
|
|
|
|
_stCardInfo(unsigned short _Id, unsigned short _numOfAxes, unsigned short _numOfMotionSlaves, unsigned short _numOfIoSlaves)
|
|
{
|
|
nId = _Id;
|
|
nNumOfAxes = _numOfAxes;
|
|
nNumOfMotionSlaves = _numOfMotionSlaves;
|
|
nNumOfIoSlaves = _numOfIoSlaves;
|
|
}
|
|
};
|
|
// methods
|
|
|
|
// attributes
|
|
std::vector<stCardInfo> m_cardInfo;
|
|
std::map<std::string, ULONG> m_mapModelDeviceType;
|
|
|
|
std::vector<stThreadParam> m_vecThdParam;
|
|
CWinThread* m_pAdvantechIntThread[2];
|
|
};
|