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.
123 lines
3.7 KiB
C++
123 lines
3.7 KiB
C++
// RSLaser.h: interface for the CRSLaser class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
#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:
|
|
// ctor
|
|
CRSLaser();
|
|
virtual ~CRSLaser();
|
|
|
|
// methods
|
|
HANDLE GetMarkingInProgressHandle();
|
|
HANDLE GetAlarmHandle();
|
|
int WaitMarkInProgress(DWORD dwTimeout);
|
|
int IsAlarm(DWORD dwTimeout);
|
|
int WaitMarkComplete(DWORD dwTimeout);
|
|
|
|
std::string GetReceiveData();
|
|
bool Send(const std::string& strMsg);
|
|
|
|
bool MeasurePower(DWORD dwTimeout);
|
|
virtual void ReceiveComm(const char *cpcBuffer, int nSize);
|
|
|
|
bool SetSetting(const std::string& strSetting, int nRequired, DWORD dwTimeout);
|
|
bool SetDeviceID(int nOriginLocation, const std::string& strDeviceIDData, DWORD dwTimeout);
|
|
bool SetBin(int nOriginLocation, const std::string& strBinData, DWORD dwTimeout);
|
|
bool SetMatrixPosition(double dX, double dY, double dAngle, DWORD dwTimeout);
|
|
bool SetPositionAndOccupation(const std::string& strMsg, DWORD dwTimeout);
|
|
bool SetPart(int nPartNo, DWORD dwTimeout);
|
|
bool SetOccupation(const std::string& strMsg, DWORD dwTimeout);
|
|
double GetPowerValue(DWORD dwTimeout);
|
|
|
|
std::string GetLayoutFile(DWORD dwTimeout);
|
|
std::string GetLotID(DWORD dwTimeout);
|
|
bool GetAlarm(int &nAlarmNo, std::string &csAlarmMsg, DWORD dwTimeout);
|
|
|
|
int IsPowerAutoMode(DWORD dwTimeout);
|
|
int IsPowerOK(DWORD dwTimeout);
|
|
int IsMarkingEnd(DWORD dwTimeout);
|
|
int IsJobEnd(DWORD dwTimeout);
|
|
int IsSystemReady(DWORD dwTimeout);
|
|
|
|
bool StopMark();
|
|
bool StartMark();
|
|
bool CancelJob();
|
|
bool LoadJob();
|
|
|
|
bool SetVariable(const std::string& strVariableName, const std::string& csData, DWORD dwTimeout);
|
|
bool SetLotFile(const std::string& strLotFilename, DWORD dwTimeout);
|
|
bool SetLayout(const std::string& csLotNo, long lLotQty, const std::string& csLayoutFilename, const std::string& csVariableData, int nLotType, DWORD dwTimeout);
|
|
|
|
bool Connect(int nPortNo, const std::string& csIPAddress, bool bServer = true);
|
|
void Disconnect();
|
|
bool IsClientConnected();
|
|
bool IsServerActive();
|
|
bool IsConnectedToServer();
|
|
|
|
HANDLE GetMarkingEndHandle();
|
|
|
|
protected:
|
|
bool GetPowerStatus(DWORD dwTimeout);
|
|
bool GetNextData(char *Token, char** context);
|
|
bool SendMsg(const std::string& csMsg, DWORD dwTimeout);
|
|
bool DecodeStatus(char *Token, char** context);
|
|
bool GetStatus(const std::string& 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;
|
|
std::string m_strAlarmMsg;
|
|
int m_nAlarmNo;
|
|
|
|
std::string m_strLotID;
|
|
std::string m_strLayoutFilename;
|
|
double m_dPower;
|
|
bool m_bPowerOK;
|
|
bool m_nPowerAutoMode;
|
|
|
|
char m_cReceiveData[4096];
|
|
bool m_bWaitForTerminator2;
|
|
|
|
private:
|
|
int GetMsgCase(const std::string& csMsg);
|
|
};
|
|
|
|
|