|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "SecsBase.h"
|
|
|
|
|
|
//#include "SecsBase300.h"
|
|
|
|
|
|
#include "Group.h"
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef DMS_300MM
|
|
|
|
|
|
#include "SecsBase300.h"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// <20>豸<EFBFBD><E8B1B8>ʹ<EFBFBD>õ<EFBFBD>API<50>ӿ<EFBFBD><D3BF><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// SECS/GEM API<50>ӿ<EFBFBD><D3BF><EFBFBD>
|
|
|
|
|
|
// <20>ͻ<EFBFBD>ֻ<EFBFBD><D6BB>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
class CSecsEquip
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CSecsEquip();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<C3B8><C3BA><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
|
RcResult Start(std::string pServerAddr = "local", int nPort = 7000);
|
|
|
|
|
|
void SecsEnable(bool bEnable); // <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> SECS<43><53><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ֹ<EFBFBD><D6B9><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void Abort();
|
|
|
|
|
|
|
|
|
|
|
|
// ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult CommEnable(); // <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|
|
|
|
|
RcResult CommDisable(); // <20>ر<EFBFBD>ͨ<EFBFBD><CDA8>
|
|
|
|
|
|
RcResult CommIsEnable(bool& bEnable); // ͨѶ<CDA8>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult GetCommState(COMM_STATE& nState); // <20><>ȡͨѶ״̬
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
RcResult SetControlMode(CONTROL_MODE nState); // <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>״̬,<2C><><EFBFBD><EFBFBD>semi<6D><69>
|
|
|
|
|
|
RcResult SetControlModeForce(CONTROL_MODE nState); // ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Host<73><74><EFBFBD><EFBFBD>
|
|
|
|
|
|
CONTROL_MODE GetControlMode(); // <20><>ȡ<EFBFBD><C8A1><EFBFBD>õ<EFBFBD>״̬
|
|
|
|
|
|
RcResult GetControlState(CONTROL_STATE& nState); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
RcResult ActiveRequestOnline(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>״̬ͨ<CCAC><CDA8>SetControlState<74><65><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>Ȩ
|
|
|
|
|
|
RcResult GetLicenseLevel(__int32& nLevel); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult GetMaxRunCount(__int32& nCount); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
|
|
|
|
|
|
RcResult GetMaxRunDataPoint(__int32& nCount); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
void SetClientData(void* pClientData);
|
|
|
|
|
|
void* GetClientData();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult LoadDataByCsvFile(std::string pDir = ""); // <20><><EFBFBD><EFBFBD>Csv<73><76><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult LoadProtocolConfig(std::string pDir = ""); // <20><><EFBFBD><EFBFBD>SECS<43><53><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////
|
|
|
|
|
|
// <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>, <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult SetIP(std::string ip); // <20><><EFBFBD><EFBFBD>tcp/ip<69><70><EFBFBD><EFBFBD>IP, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::string GetIP();
|
|
|
|
|
|
|
|
|
|
|
|
RcResult SetPassive(bool bPassive); // <20><><EFBFBD><EFBFBD>tcp/ip<69><70><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>/<2F><><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
bool GetPassive();
|
|
|
|
|
|
|
|
|
|
|
|
RcResult SetPort(int port); // <20><><EFBFBD><EFBFBD>tcp/ip<69><70><EFBFBD>Ӷ˿<D3B6>
|
|
|
|
|
|
int GetPort();
|
|
|
|
|
|
|
|
|
|
|
|
RcResult SetDeviceID(int nDeviceID);
|
|
|
|
|
|
RcResult GetDeviceID(int& nDeviceID);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ó<EFBFBD>ʱ
|
|
|
|
|
|
RcResult SetT1(int nTimeout); // <20><><EFBFBD><EFBFBD>T1<54><31>ʱ
|
|
|
|
|
|
RcResult SetT2(int nTimeout); // <20><><EFBFBD><EFBFBD>T2<54><32>ʱ
|
|
|
|
|
|
RcResult SetT3(int nTimeout); // <20><><EFBFBD><EFBFBD>T3<54><33>ʱ
|
|
|
|
|
|
RcResult SetT4(int nTimeout); // <20><><EFBFBD><EFBFBD>T4<54><34>ʱ
|
|
|
|
|
|
RcResult SetT5(int nTimeout); // <20><><EFBFBD><EFBFBD>T5<54><35>ʱ
|
|
|
|
|
|
RcResult SetT6(int nTimeout); // <20><><EFBFBD><EFBFBD>T6<54><36>ʱ
|
|
|
|
|
|
RcResult SetT7(int nTimeout); // <20><><EFBFBD><EFBFBD>T7<54><37>ʱ
|
|
|
|
|
|
RcResult SetT8(int nTimeout); // <20><><EFBFBD><EFBFBD>T8<54><38>ʱ
|
|
|
|
|
|
|
|
|
|
|
|
RcResult SetMDLN(std::string pMDLN); // <20>豸<EFBFBD>ͺ<EFBFBD>
|
|
|
|
|
|
RcResult SetSOFTREV(std::string pSOFTREV); // <20><><EFBFBD><EFBFBD><EFBFBD>汾
|
|
|
|
|
|
|
|
|
|
|
|
RcResult SetEnableLog(bool bEnable); // <20><><EFBFBD><EFBFBD>Log<6F><67>¼,Ĭ<>Ϲر<CFB9>
|
|
|
|
|
|
RcResult SetLogDir(std::string pDir); // <20><><EFBFBD><EFBFBD>Log<6F><67>־Ŀ¼
|
|
|
|
|
|
RcResult SetAutoDeleteLog(int nDay); // <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ɾ<EFBFBD><C9BE>Log<6F><67>־Ŀ¼<C4BF><C2BC>nDayС<79>ڵ<EFBFBD><DAB5><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>log
|
|
|
|
|
|
void EnableRuntimeTrace(bool bEnable); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD>е<EFBFBD>LogTrace,<><D7B7>BUG<55><47>
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult AlarmListGet(std::vector<ALARM_DATA>& ved); // <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ȡ
|
|
|
|
|
|
RcResult AlarmAdd(int nALID, std::string pALTX); // <20><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
|
|
|
|
|
|
RcResult AlarmAdd(int nALID, std::string pALTX, int nAlarmSetCEID, int nAlarmClearCEID, int nCategory); // <20><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
|
|
|
|
|
|
RcResult AlarmAdd(int nALID, std::string pALTX, int nAlarmSetCEID, int nAlarmClearCEID, bool bEnable, int nCategory, bool bAddEvent); // <20><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
|
|
|
|
|
|
RcResult AlarmEnable(int nALID, bool bEnable); // <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|
|
|
|
|
RcResult AlarmSet(int nALID, bool bSet); // <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|
|
|
|
|
RcResult AlarmSetAll(bool bSet); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еı<D0B5><C4B1><EFBFBD>
|
|
|
|
|
|
RcResult AlarmNotifyEventMode(ALARM_NOTIFY_EVENT_MODE nMode); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨģʽ<C4A3><CABD>Ĭ<EFBFBD>϶<EFBFBD>֪ͨ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventPos(int nCEID, bool bWaitReply = false); // <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>: CEID
|
|
|
|
|
|
RcResult EventPos(std::string EventName, bool bWaitReply = false); // <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>: <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventAdd(int nCEID, std::string pDescription, std::string pEventName = "", bool bEnable = true); // <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>б<EFBFBD>
|
|
|
|
|
|
RcResult EventListGet(std::vector<EVENT_DATA>& ved); // <20>¼<EFBFBD><C2BC>б<EFBFBD><D0B1><EFBFBD>ȡ
|
|
|
|
|
|
RcResult EventEnable(int nCEID, bool bEnable); // <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventIsEnable(int nCEID, bool& bEnable); // <20>¼<EFBFBD><C2BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventDvvals(std::string pEventName, std::vector<std::string> &dvvalName); // <20>¼<EFBFBD>DVVAL<41><4C><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventDvvals(int nCEID, std::vector<int> &dvval); // <20>¼<EFBFBD>DVVAL<41><4C><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventDiscreteVarPos(int nCEID); // <20>¼<EFBFBD>S6,F3<46><33><EFBFBD><EFBFBD>: CEID
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventReportLink(int nECID, int report); // <20>¼<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventReportLink(int nECID, std::vector<int>& report); // <20>¼<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult EventReportUnlink(int nECID); // <20>¼<EFBFBD>-<2D><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult ReportDefine(int nReport, std::vector<int> & listVarID); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult ReportDefineGet(int nReport, std::vector<int> & listVarID); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult ReportDelete(int nReport); // ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult ReportUnlink(int nReport); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ص<EFBFBD><D8B5>¼<EFBFBD>
|
|
|
|
|
|
RcResult ReportClear(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>涨<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>뱨<EFBFBD><EBB1A8>֮<EFBFBD><D6AE><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
|
RcResult ReportStrictlyFollowStandard(bool bFollow); // <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>ձ<EFBFBD><EFBFBD>淶<EFBFBD><E6B7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>E5<45><35><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
RcResult ReportAutoSaveHostLinkConfig(bool bEnable); // <20><><EFBFBD>汣<EFBFBD><E6B1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult VariableAdd(int nVarID, std::string varName, std::string description,
|
|
|
|
|
|
std::string valueType, std::string initValue, std::string units, std::string varClass = "SV"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
RcResult VariableSet(int nVarID, std::string newValue); // <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
RcResult VariableGet(int nVarID, std::string& pValue); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
RcResult VariableListGet(std::vector<VARIABLE_DATA>& vvd); // <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ȡ
|
|
|
|
|
|
RcResult VariableSetMethod(int nVarID, bool bCallback = true); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult VariableSetMethod(int nVarID, SecsVarValueProc *pCallback); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ص<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult ConstantsAdd(int nECID, std::string name, std::string description, std::string Type,
|
|
|
|
|
|
std::string Units, std::string MinValue, std::string MaxValue, std::string DefValue); // <20><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
RcResult ConstantsGet(int nECID, std::string& pValue); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|
|
|
|
|
RcResult ConstantsSet(int nECID, std::string newValue); // <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
RcResult ConstantsInfoGet(std::vector<VARIABLE_DATA> &info); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
RcResult ConstantsSetMethod(int nECID, bool bCallback = true); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult ConstantsSetMethod(int nECID, SecsConstantValueProc *pCallback); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ص<EFBFBD>
|
|
|
|
|
|
RcResult ConstantChangeSendEventEnable(bool bEnable); // <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ı䷢<C4B1><E4B7A2><EFBFBD>¼<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ն˷<D5B6><CBB7><EFBFBD>
|
|
|
|
|
|
RcResult SendSingleTerminal(std::string pContent);
|
|
|
|
|
|
RcResult SendMultipleTerminal(std::vector<std::string> svContent);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult PPAllowHostDowmload(bool bAllow); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult PPHandleMode(PP_HANDLE_MODE nMode); // PP<50><50><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
|
|
|
|
|
|
std::string GetRecipeDirectory(); // <20><>ȡ<EFBFBD><C8A1>ʽĿ¼
|
|
|
|
|
|
void SetRecipeDirectory(std::string dir); // <20><><EFBFBD>ó<EFBFBD>ʽĿ¼
|
|
|
|
|
|
RcResult ProcessProgramUpload(std::string ppid); // <20>ϴ<EFBFBD><CFB4><EFBFBD>ʽ
|
|
|
|
|
|
RcResult ProcessProgramDownload(std::string ppid); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD>ʽ
|
|
|
|
|
|
RcResult PPIsFolderDir(bool bFolder); // <20><><EFBFBD><EFBFBD>PP<50><50><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ŀ¼
|
|
|
|
|
|
RcResult SetWinrarPath(std::string path); // <20><><EFBFBD><EFBFBD>winrar.exeĿ¼
|
|
|
|
|
|
RcResult PPSetFilenameExtension(std::string pFileExten); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// recipe <20><><EFBFBD>л<EFBFBD>
|
|
|
|
|
|
RcResult PPFormatAdd(std::string pCmdCode, std::string pName, std::string pValueType); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult PPFormatSend(std::string ppid); // PP<50><50><EFBFBD>л<EFBFBD><D0BB>ϴ<EFBFBD>
|
|
|
|
|
|
RcResult PPFormatRequest(std::string ppid); // PP<50><50><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult PPFormatSetCodeMode(PP_FORMAT_MODE nMode); // PP<50><50><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
|
|
|
|
|
|
// wafer map
|
|
|
|
|
|
RcResult WaferMapUpload(WAFER_MAP pWaferMap); // <20><>Բͼ<D4B2>ϴ<EFBFBD>
|
|
|
|
|
|
RcResult WaferMapDownload(WAFER_MAP& pRequstInfo, WAFER_MAP& pWaferMap); // <20><>Բͼ<D4B2>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult StripMapDownload(std::string pStripID, STRIP_MAP& pStripMap); // <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// <20><>չ<EFBFBD><EFBFBD><CDB9>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
|
|
|
|
|
|
|
// ʱ<><CAB1>ͬ<EFBFBD><CDAC>,Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void AutoResponseTimeSync(bool bAuto); // <20>Զ<EFBFBD><D4B6><EFBFBD>Ӧʱ<D3A6><CAB1>ͬ<EFBFBD><CDAC>,
|
|
|
|
|
|
RcResult ActiveTimeSynchronizeRequest(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>չ<EFBFBD><D5B9>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F0B8B4BD><EFBFBD>
|
|
|
|
|
|
void RemoteCmdReply(std::string pReplyMailbox, REMOTE_REPLY nHCACK, std::list<ERROR_CODE_DESCRIPTION> listErrorCode);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult SendSecsMsgAsync(int nStream, int nFunction, bool bReply, std::string pData, int64& nMsgID);
|
|
|
|
|
|
RcResult SendSecsMsgSync(int nStream, int nFunction, bool bReply, std::string pData, std::string& pReplyData);
|
|
|
|
|
|
RcResult SendReply(int nStream, int nFunction, int nTransactionID, std::string pData);
|
|
|
|
|
|
|
|
|
|
|
|
RcResult MessageTypeAdd(int nStream, int nFunction, SecsMessageReceiveProc pCallback, void* pClientData);
|
|
|
|
|
|
RcResult MessageTypeRemove(int nStream, int nFunction);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>
|
|
|
|
|
|
SecsStateChangeProc* m_pStateChangeCallback; // ״̬<D7B4>ı<EFBFBD><C4B1>ص<EFBFBD>
|
|
|
|
|
|
SecsTerminalProc* m_pTerminalCallback; // <20>ն<EFBFBD><D5B6><EFBFBD>Ϣ<EFBFBD>ص<EFBFBD>
|
|
|
|
|
|
SecsRemoteProc* m_pRemoteCallback; // Զ<>̿<EFBFBD><CCBF>ƻص<C6BB>
|
|
|
|
|
|
SecsVarValueProc* m_pVarValueProc; // <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ȡֵʱ<D6B5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VariableSetMethodû<64><C3BB>ָ<EFBFBD><D6B8><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<C3B8><C3BA><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><EFBFBD>
|
|
|
|
|
|
SecsRemoteProcEx* m_pRemoteExCallback; // Զ<>̿<EFBFBD><CCBF>ƻص<C6BB>,<2C><>Ҫ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>̻ص<CCBB><D8B5><EFBFBD>ѡһ
|
|
|
|
|
|
SecsConstantsChangeProc* m_pConstantsChangeCallback; // <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>ص<EFBFBD>
|
|
|
|
|
|
SecsPPChangeNotifyProc* m_pPPChangeNotifyProc; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>֪ͨ<CDA8>ص<EFBFBD>
|
|
|
|
|
|
SecsClockProc* m_pClockProc; // ʱ<><CAB1><EFBFBD>ı<EFBFBD><C4B1>ص<EFBFBD>
|
|
|
|
|
|
SecsConstantValueProc* m_pConstantValueProc; // <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ȡֵʱ<D6B5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ConstantsSetMethodû<64><C3BB>ָ<EFBFBD><D6B8><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<C3B8><C3BA><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
|
SecsPPFormatValueProc* m_pPPFormatValueProc; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡRecipe<70><65><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
SecsPPFormatChangeProc* m_pPPFormatChangeProc; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Recipe<70><65><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
SecsPPNameListProc* m_pPPNameListProc; // PP<50><50><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ȡ
|
|
|
|
|
|
SecsPPEventProc* m_pPPEventProc; // <20>Զ<EFBFBD><D4B6><EFBFBD>PP<50>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SecsPPFormatValueDynamicProc* m_pPPFormatValueDynamicProc; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡRecipe<70><65><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ֵ
|
|
|
|
|
|
SecsPPFormatChangeDynamicProc* m_pPPFormatChangeDynamicProc; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Recipe<70><65><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ֵ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// WaferMap
|
|
|
|
|
|
SecsWaferMapSubstrateProc* m_pWaferMapSubstrateProc; // StripMap<61><70><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
SecsS9ErrorNotifyProc* m_pS9ErrorNotifyProc; // S9<53><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ<CDA8>ͻ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD>û<EFBFBD>ʹ<EFBFBD>õķ<C3B5><C4B7><EFBFBD>
|
|
|
|
|
|
void OnStateChangeHandler(const char *data); // <20><>Ӧ״̬<D7B4>ı䴦<C4B1><E4B4A6>
|
|
|
|
|
|
void OnTerminalHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD>ն˷<D5B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void OnRemoteHandler(std::string pReplyMailbox, const char *data); // <20><>ӦԶ<D3A6><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB4A6>
|
|
|
|
|
|
void OnConstantsChangeHandler(const char *data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ı䴦<C4B1><E4B4A6>
|
|
|
|
|
|
void OnPPChangeNotifyHandler(const char *data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>֪ͨ
|
|
|
|
|
|
void OnClockHandler(const char *data); // <20><>Ӧʱ<D3A6><CAB1><EFBFBD>ı䴦<C4B1><E4B4A6>
|
|
|
|
|
|
void OnVarValueHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void OnConstantValueHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void OnPPFormatValueHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡRecipe<70><65><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
void OnPPFormatValueDynamicHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡRecipe<70><65><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
void OnPPFormatChangeHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Recipe<70><65><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
void OnPPFormatChangeDynamicHandler(std::string pReplyMailbox, std::string Data); // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Recipe<70><65><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
void OnPPChangeCostomizeHandler(std::string pReplyMailbox, std::string Data); // <20><>ӦPP<50>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ı䴦<C4B1><E4B4A6>
|
|
|
|
|
|
void OnS9ErrorNotifyHandler(std::string pReplyMailbox, std::string Data); // <20><>ӦS9<53><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ
|
|
|
|
|
|
void OnWaferMapSubstrateHandler(std::string pReplyMailbox, std::string Data); // <20><>ӦWafer<65><72>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
/// <20><>ʼ<EFBFBD><CABC>SECS<43><53><EFBFBD><EFBFBD>
|
|
|
|
|
|
RcResult InitSecsParament();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD>ص<EFBFBD>
|
|
|
|
|
|
void InitCallback();
|
|
|
|
|
|
|
|
|
|
|
|
void VarValueRequest(const char *varList, std::vector<std::string> &values);
|
|
|
|
|
|
void ConstantValueRequest(std::string varList, std::vector<std::string> &values);
|
|
|
|
|
|
void PPFormatValueRequest(std::string varList, std::vector<std::string> &values);
|
|
|
|
|
|
void PPFormatValueDynamicRequest(const char *varList, std::vector<std::string> &values);
|
|
|
|
|
|
PP_HANDLE_REPLY PPFormatValueChange(const char *varList, std::vector<std::string> values);
|
|
|
|
|
|
|
|
|
|
|
|
long GetWaferMap(std::string pData, WAFER_MAP& pWaferMap);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef DMS_300MM
|
|
|
|
|
|
CSecsBase300 m_impl;
|
|
|
|
|
|
#else
|
|
|
|
|
|
CSecsBase m_impl;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
|
|
|
|
|
std::string m_pIP;
|
|
|
|
|
|
int m_nPort;
|
|
|
|
|
|
bool m_bPassive;
|
|
|
|
|
|
int m_nDeviceID;
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void* m_pClientData;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ʱ (ms)
|
|
|
|
|
|
int m_nT1;
|
|
|
|
|
|
int m_nT2;
|
|
|
|
|
|
int m_nT3;
|
|
|
|
|
|
int m_nT4;
|
|
|
|
|
|
int m_nT5;
|
|
|
|
|
|
int m_nT6;
|
|
|
|
|
|
int m_nT7;
|
|
|
|
|
|
// T8 is not used
|
|
|
|
|
|
|
|
|
|
|
|
// <20>豸<EFBFBD>ͺ<EFBFBD> Equipment Model Type
|
|
|
|
|
|
std::string m_pMDLN;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD><E6B1BE> Software revision code
|
|
|
|
|
|
std::string m_pSOFTREV;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ʽ·<CABD><C2B7><EFBFBD><EFBFBD>Host<73><74>
|
|
|
|
|
|
std::string m_pRecipeDir;
|
|
|
|
|
|
|
|
|
|
|
|
CONTROL_MODE m_nControlState;
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
vCritical m_lockVarMethod;
|
|
|
|
|
|
vCritical m_lockConstantMethod;
|
|
|
|
|
|
vCritical m_lockPPFormat;
|
|
|
|
|
|
vCritical m_lockPPChange;
|
|
|
|
|
|
std::map<int,SecsVarValueProc*> m_mapVarValueCallback;
|
|
|
|
|
|
std::map<int,SecsConstantValueProc*> m_mapConstantValueCallback;
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Զ<EFBFBD><D4B6><EFBFBD>Ӧʱ<D3A6><CAB1>ͬ<EFBFBD><CDAC>
|
|
|
|
|
|
bool m_bAutoResponseTimeSync;
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::string GetCommunicationText(COMM_STATE e); // <20><>ȡͨѶ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::string GetControlText(CONTROL_STATE e); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::string UnicodeToAscii(std::wstring pUnicode); // UNICODE <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA> ANSI
|
|
|
|
|
|
std::wstring AsciiToUnicode(std::string pUnicode); // ANSI <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA> UNICODE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|