|
|
|
|
/*******************************************************************
|
|
|
|
|
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>վ<EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2013/11/11
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־: 2013/11/11 TOD2214 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
2015/12/25 CW0793 <EFBFBD>ع<EFBFBD>
|
|
|
|
|
***********************************************************************/
|
|
|
|
|
#pragma once
|
|
|
|
|
#ifndef _DLL_INCLUDE_IDEV_H
|
|
|
|
|
#define _DLL_INCLUDE_IDEV_H
|
|
|
|
|
#include "dtype.h"
|
|
|
|
|
|
|
|
|
|
enum EDevType
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EDCard = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EDVision, //<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EDStation, //<2F><>վ<EFBFBD><D5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class IDev
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
public:
|
|
|
|
|
virtual int getID() const = 0;
|
|
|
|
|
virtual int getType() const = 0;
|
|
|
|
|
virtual int getStatus() const = 0;
|
|
|
|
|
virtual const char* getName() const = 0;
|
|
|
|
|
virtual int init() = 0;
|
|
|
|
|
virtual int deinit() = 0;
|
|
|
|
|
virtual int sendMessage(const char* msg, char* res) = 0;
|
|
|
|
|
virtual int recvMessage(const char* msg, char* res, int timeout) = 0;
|
|
|
|
|
virtual int getCmdDesc(char* pszcmddesc) = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
EXPORT_C int WINAPI IDev_getID(void* p);
|
|
|
|
|
EXPORT_C int WINAPI IDev_getType(void* p);
|
|
|
|
|
EXPORT_C int WINAPI IDev_getStatus(void* p);
|
|
|
|
|
EXPORT_C int WINAPI IDev_init(void* p);
|
|
|
|
|
EXPORT_C int WINAPI IDev_deinit(void* p);
|
|
|
|
|
EXPORT_C int WINAPI IDev_sendMessage(void* p, const char* msg, char* res);
|
|
|
|
|
EXPORT_C int WINAPI IDev_recvMessage(void* p, const char* msg, char* res, int timeout);
|
|
|
|
|
|
|
|
|
|
class IVision : public IDev
|
|
|
|
|
{//<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
public:
|
|
|
|
|
virtual int process(int secne) = 0;
|
|
|
|
|
virtual int processImg(int secne, TVisionImage* pimg) = 0;
|
|
|
|
|
virtual int processImgPath(int secne, char* pszpath) = 0;
|
|
|
|
|
virtual int processRes(int secne, TVisionResult* pres, int timeout = -1) = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
EXPORT_C int WINAPI IVision_process(IVision* p, int secne);
|
|
|
|
|
EXPORT_C int WINAPI IVision_processImg(IVision* p, int secne, TVisionImage* pimg);
|
|
|
|
|
EXPORT_C int WINAPI IVision_processImgPath(IVision* p, int secne, char* pszpath);
|
|
|
|
|
EXPORT_C int WINAPI IVision_processRes(IVision* p, int secne, TVisionResult* pres, int timeout = -1);
|
|
|
|
|
|
|
|
|
|
class IStation : public IDev
|
|
|
|
|
{//<2F><>վ<EFBFBD><D5BE><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
public:
|
|
|
|
|
virtual double getVel() const = 0;
|
|
|
|
|
virtual double getAcc() const = 0;
|
|
|
|
|
virtual double getDec() const = 0;
|
|
|
|
|
virtual double getGlobalSpeed() = 0;
|
|
|
|
|
virtual int setGlobalSpeed(double setval) = 0;
|
|
|
|
|
virtual int setSpeed(double vel, double acc, double dec) = 0;
|
|
|
|
|
|
|
|
|
|
//ʾ<><CABE>
|
|
|
|
|
virtual int getPallet(int index, TPallet* plt) = 0;
|
|
|
|
|
virtual int setPallet(const TPallet* plt) = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>ֱ<EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
|
|
|
|
|
virtual int setPoint(const TPoint* pt) = 0; //<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڴ<EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
virtual int savePoint(const TPoint* pt) = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>㵽<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
virtual int teachPoint(int index, const char* pszname) = 0; //ʾ<>̵<EFBFBD>ǰ<EFBFBD><C7B0>
|
|
|
|
|
virtual int getPointByIndex(TPoint* pt, int index = 0) = 0; //0<><30>ʾ<EFBFBD><CABE>ǰλ<C7B0><CEBB>
|
|
|
|
|
virtual int getPointByName(TPoint* pt, const char* pszname) = 0;
|
|
|
|
|
virtual int getPointByPallet(TPoint* pt, int plt, int col, int row) = 0;
|
|
|
|
|
virtual int isNearPoint(int index, const TPoint* ptOffset = 0, double offset = 0.01) = 0; //<2F>жϵ<D0B6>ǰ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>㸽<EFBFBD><E3B8BD> 1<><31> 0<><30><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
virtual int axisCount() const = 0;
|
|
|
|
|
virtual int axisID(int ijoint) = 0;
|
|
|
|
|
virtual int axisReset(int ijoint) = 0; //*PS: <20><>ֹͣ<CDA3><D6B9><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ȴ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
virtual int axisStop(int ijoint, int stoptype) = 0;
|
|
|
|
|
virtual int axisHome(int ijoint) = 0;
|
|
|
|
|
virtual int axisStatus(int ijoint) = 0;
|
|
|
|
|
virtual int axisRead(int ijoint, EIOType dio_type) = 0;
|
|
|
|
|
virtual int axisWrite(int ijoint, EIOType do_type, int val) = 0;
|
|
|
|
|
virtual int axisGetPos(int ijoint, double* pval, int posType = EMPos_Default) = 0;
|
|
|
|
|
virtual int axisMoveJog(int ijoint, int dir) = 0;
|
|
|
|
|
virtual int axisSetPos(int ijoint, double pos) = 0;
|
|
|
|
|
virtual int axisMovePos(int ijoint, double pos) = 0;
|
|
|
|
|
virtual int axisMoveOffset(int ijoint, double offset) = 0;
|
|
|
|
|
virtual int axisFindLimit(int ijoint, int blimitN, int blimitP) = 0;
|
|
|
|
|
|
|
|
|
|
//<2F>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
virtual int home() = 0;
|
|
|
|
|
virtual int reset() = 0; //*PS: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>ʶ
|
|
|
|
|
virtual int stop(int itype = 0) = 0;
|
|
|
|
|
virtual int pause(int ipause = 1) = 0;
|
|
|
|
|
virtual int goToPos(const TPoint* ptPos) = 0;
|
|
|
|
|
virtual int goToPoint(int index, const TPoint* ptOffset = 0) = 0;
|
|
|
|
|
virtual int moveToPoint(int index, const TPoint* ptOffset = 0) = 0;
|
|
|
|
|
virtual int moveArc(int iMiddle, int iEnd, const TPoint* ptOffset = 0) = 0;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>岹
|
|
|
|
|
virtual int addLinePoint(int index, const TPoint* ptOffset = 0) = 0;
|
|
|
|
|
virtual int addArcPoint(int iMiddle, int iEnd, const TPoint* ptOffset = 0) = 0;
|
|
|
|
|
virtual int startcp() = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
EXPORT_C double WINAPI IStation_getVel(IStation* p);
|
|
|
|
|
EXPORT_C double WINAPI IStation_getAcc(IStation* p);
|
|
|
|
|
EXPORT_C double WINAPI IStation_getDec(IStation* p);
|
|
|
|
|
EXPORT_C double WINAPI IStation_getGlobalSpeed(IStation* p);
|
|
|
|
|
EXPORT_C int WINAPI IStation_setGlobalSpeed(IStation* p, double setval);
|
|
|
|
|
EXPORT_C int WINAPI IStation_setSpeed(IStation* p, double vel, double acc, double dec);
|
|
|
|
|
EXPORT_C int WINAPI IStation_getPallet(IStation* p, int index, TPallet* plt);
|
|
|
|
|
EXPORT_C int WINAPI IStation_setPallet(IStation* p, const TPallet* plt);
|
|
|
|
|
EXPORT_C int WINAPI IStation_setPoint(IStation* p, const TPoint* pt);
|
|
|
|
|
EXPORT_C int WINAPI IStation_savePoint(IStation* p, const TPoint* pt);
|
|
|
|
|
EXPORT_C int WINAPI IStation_teachPoint(IStation* p, int index, const char* pszname);
|
|
|
|
|
EXPORT_C int WINAPI IStation_getPointByIndex(IStation* p, TPoint* pt, int index = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_getPointByName(IStation* p, TPoint* pt, const char* pszname);
|
|
|
|
|
EXPORT_C int WINAPI IStation_getPointByPallet(IStation* p, TPoint* pt, int plt, int col, int row);
|
|
|
|
|
EXPORT_C int WINAPI IStation_isNearPoint(IStation* p, int index, const TPoint* ptOffset = 0, double offset = 0.01);
|
|
|
|
|
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisCount(IStation* p);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisID(IStation* p, int ijoint);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisReset(IStation* p, int ijoint);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisStop(IStation* p, int ijoint, int stoptype);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisHome(IStation* p, int ijoint);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisStatus(IStation* p, int ijoint);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisRead(IStation* p, int ijoint, EIOType dio_type);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisWrite(IStation* p, int ijoint, EIOType do_type, int val);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisGetPos(IStation* p, int ijoint, double* pval, int posType = EMPos_Default);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisMoveJog(IStation* p, int ijoint, int dir);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisSetPos(IStation* p, int ijoint, double pos);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisMovePos(IStation* p, int ijoint, double pos);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisMoveOffset(IStation* p, int ijoint, double offset);
|
|
|
|
|
EXPORT_C int WINAPI IStation_axisFindLimit(IStation* p, int ijoint, int blimitN, int blimitP);
|
|
|
|
|
|
|
|
|
|
EXPORT_C int WINAPI IStation_home(IStation* p);
|
|
|
|
|
EXPORT_C int WINAPI IStation_reset(IStation* p);
|
|
|
|
|
EXPORT_C int WINAPI IStation_stop(IStation* p, int itype = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_pause(IStation* p, int ipause = 1);
|
|
|
|
|
EXPORT_C int WINAPI IStation_goToPos(IStation* p, const TPoint* ptPos);
|
|
|
|
|
EXPORT_C int WINAPI IStation_goToPoint(IStation* p, int index, const TPoint* ptOffset = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_moveToPoint(IStation* p, int index, const TPoint* ptOffset = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_moveArc(IStation* p, int iMiddle, int iEnd, const TPoint* ptOffset = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_addLinePoint(IStation* p, int index, const TPoint* ptOffset = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_addArcPoint(IStation* p, int iMiddle, int iEnd, const TPoint* ptOffset = 0);
|
|
|
|
|
EXPORT_C int WINAPI IStation_startcp(IStation* p);
|
|
|
|
|
|
|
|
|
|
/*********************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
*Intput: pid <EFBFBD><EFBFBD>ID
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD>,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>NULL
|
|
|
|
|
*********************************************/
|
|
|
|
|
EXPORT_C IDev* WINAPI get_icard(int cid);
|
|
|
|
|
|
|
|
|
|
/*********************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD>Ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
*Intput: vid <EFBFBD>Ӿ<EFBFBD>ID
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD>,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>NULL
|
|
|
|
|
*********************************************/
|
|
|
|
|
EXPORT_C IVision* WINAPI get_ivision(int vid);
|
|
|
|
|
|
|
|
|
|
/*********************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>վ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
*Intput: tid <EFBFBD><EFBFBD>վID
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>վ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD>,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>NULL
|
|
|
|
|
*********************************************/
|
|
|
|
|
EXPORT_C IStation* WINAPI get_istation(int tid);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|