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.
mitlib.pub/MITLIB/commdll/RSLaser.h

116 lines
3.8 KiB
C++

// RSLaser.h: interface for the CRSLaser class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_RSLASER_H__BC34682C_121B_4DB5_8AAE_86951A0409CE__INCLUDED_)
#define AFX_RSLASER_H__BC34682C_121B_4DB5_8AAE_86951A0409CE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "VisionNW.h"
#include "Utility.h"
#ifdef BUILD_COMMDLL
#define COMMDLL_DLLCLASS __declspec(dllexport)
#else
#define COMMDLL_DLLCLASS __declspec(dllimport)
#endif
enum LOT_TYPE
{
LOT,
LOT2,
LOT3
};
enum
{
LASER_MARK_TIMEOUT,
LASER_MARK_COMPLETE,
LASER_MARK_IN_PROGRESS,
LASER_MARK_ALARM,
};
class COMMDLL_DLLCLASS CRSLaser : public CVisionNW
{
public:
HANDLE GetMarkingInProgressHandle();
HANDLE GetAlarmHandle();
int WaitMarkInProgress(DWORD dwTimeout);
int IsAlarm(DWORD dwTimeout);
int WaitMarkComplete(DWORD dwTimeout);
CString GetReceiveData();
bool Send(CString csMsg);
bool MeasurePower(DWORD dwTimeout);
virtual void ReceiveComm(const char *cpcBuffer, int nSize);
bool SetSetting(CString csSetting, int nRequired, DWORD dwTimeout);
bool SetDeviceID(int nOriginLocation, CString csDeviceIDData, DWORD dwTimeout);
bool SetBin(int nOriginLocation, CString csBinData, DWORD dwTimeout);
bool SetMatrixPosition(double dX, double dY, double dAngle, DWORD dwTimeout);
bool SetPositionAndOccupation(CString csMsg, DWORD dwTimeout);
bool SetPart(int nPartNo, DWORD dwTimeout);
bool SetOccupation(CString csMsg, DWORD dwTimeout);
double GetPowerValue(DWORD dwTimeout);
int IsPowerAutoMode(DWORD dwTimeout);
int IsPowerOK(DWORD dwTimeout);
CString GetLayoutFile(DWORD dwTimeout);
CString GetLotID(DWORD dwTimeout);
bool GetAlarm(int &nAlarmNo, CString &csAlarmMsg, DWORD dwTimeout);
int IsMarkingEnd(DWORD dwTimeout);
int IsJobEnd(DWORD dwTimeout);
int IsSystemReady(DWORD dwTimeout);
bool StopMark();
bool StartMark();
bool CancelJob();
bool LoadJob();
bool SetVariable(CString csVariableName, CString csData, DWORD dwTimeout);
bool SetLotFile(CString csLotFilename, DWORD dwTimeout);
bool SetLayout(CString csLotNo, long lLotQty, CString csLayoutFilename, CString csVariableData, int nLotType, DWORD dwTimeout);
bool Connect(int nPortNo, CString csIPAddress, bool bServer = TRUE);
void Disconnect();
bool IsClientConnected();
bool IsServerActive();
bool IsConnectedToServer();
CRSLaser();
virtual ~CRSLaser();
HANDLE GetMarkingEndHandle();
protected:
bool GetPowerStatus(DWORD dwTimeout);
bool GetNextData(char *Token);
bool SendMsg(CString csMsg, DWORD dwTimeout);
bool DecodeStatus(char *Token);
bool GetStatus(CString csStatusName, DWORD dwTimeout);
HANDLE m_hAck;
HANDLE m_hNack;
HANDLE m_hStatusReady;
HANDLE m_hSystemReady;
HANDLE m_hJobEnd;
HANDLE m_hMarkingEnd;
HANDLE m_hMarkingInProgress;
HANDLE m_hPowerStatusReady;
HANDLE m_hAlarm;
bool m_bAlarm;
CString m_csAlarmMsg;
int m_nAlarmNo;
CString m_csLotID;
CString m_csLayoutFilename;
double m_dPower;
bool m_bPowerOK;
bool m_nPowerAutoMode;
char m_cReceiveData[4096];
bool m_bWaitForTerminator2;
private:
int GetMsgCase(CString csMsg);
};
#endif // !defined(AFX_RSLASER_H__BC34682C_121B_4DB5_8AAE_86951A0409CE__INCLUDED_)