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.
52 lines
2.2 KiB
C++
52 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include <functional>
|
|
#include <vector>
|
|
class _declspec(dllexport) IGugaoDriver {
|
|
public:
|
|
using OnAxisMoveSafeCallBack = std::function<bool(int iAxisId, double dTargetPos)>;
|
|
using OnAxisPrevHomeCallBack = std::function<bool(int iAxisId)>;
|
|
using OnAxisAfterHomeCallBack = std::function<bool(int iAxisId)>;
|
|
using OnSetIoSafeCallBack = std::function<bool(int iIoIndex, unsigned char iIoData)>;
|
|
|
|
public:
|
|
void RegisterAxisMoveSafeCallBack(OnAxisMoveSafeCallBack const& func) { m_onAxisMoveSafeFunc = func; }
|
|
void RegisterAxisPrevHomeCallBack(OnAxisPrevHomeCallBack const& func) { m_onAxisPrevHomeFunc = func; }
|
|
void RegisterAxisAfterHomeCallBack(OnAxisAfterHomeCallBack const& func) { m_AxisAfterHomeFunc = func; }
|
|
void RegisterSetIoSageCallBack(OnSetIoSafeCallBack const& func) {m_onSetIoSafeFunc = func;}
|
|
|
|
public:
|
|
virtual bool OpenCard(std::vector<int>& axisIdVec) = 0;
|
|
virtual bool CloseCard(std::vector<int>& axisIdVec) = 0;
|
|
virtual int AbsMove(int iAxisId,
|
|
int pulseTo1mm,
|
|
double dPos,
|
|
double dAcc,
|
|
double dDec,
|
|
double dMoveSpeed,
|
|
bool bWaitFinished) = 0;
|
|
virtual int WriteIO(short sSlaveNo, short sIoIndex, unsigned char ucValue) = 0;
|
|
virtual int WriteAO(short sSlaveNo, short sIoIndex, short sValue) = 0; //ÉèÖÃÄ£ÄâÁ¿
|
|
virtual short ReadDo(short sSlaveNo, short sIoIndex) = 0;
|
|
virtual unsigned char ReadDi(short sSlaveNo, short sIoIndex) = 0;
|
|
virtual double GetCurPos(int iAxisId, int pulseTo1mm) = 0;
|
|
virtual void stopMove(int iAxisId) = 0;
|
|
virtual int home(int iAxisId, double dSearchSpeed, double iIndexSpeed, double sSearchAcc, short sModule) = 0;
|
|
|
|
//״̬ÅжÏ
|
|
virtual bool IsHome(int iAxisId) = 0;
|
|
virtual bool IsHoming(int iAxisId) = 0;
|
|
virtual bool IsMoveing(int iAxisId) = 0;
|
|
virtual bool IsMoveEnd(int iAxisId) = 0;
|
|
virtual bool IsAxisEnable(int iAxisId) = 0;
|
|
virtual bool IsAxisError(int iAxisId) = 0;
|
|
virtual bool GetAxisErrorCode(int iAxisId) = 0;
|
|
virtual bool IsAxisPaslimit(int iAxisId) = 0;
|
|
virtual bool isAxisNagLimit(int iAxisId) = 0;
|
|
|
|
protected:
|
|
OnAxisMoveSafeCallBack m_onAxisMoveSafeFunc = nullptr;
|
|
OnAxisPrevHomeCallBack m_onAxisPrevHomeFunc = nullptr;
|
|
OnAxisAfterHomeCallBack m_AxisAfterHomeFunc = nullptr;
|
|
OnSetIoSafeCallBack m_onSetIoSafeFunc = nullptr;
|
|
}; |