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.

1192 lines
26 KiB
C++

//#include "stdafx.h" // QTɾ<54><C9BE>stdafxͷ<78>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
#include "SecsBase.h"
#include <TlHelp32.h> // QTɾ<54><C9BE>TlHelp32ͷ<32>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
#pragma warning(disable:4996)
void RcResult::_parse(const char *rcResultString)
{
std::vector<std::string> sv;
listSplit(rcResultString, sv);
if(sv.size() == 2)
{
rc = atoi(sv[0].c_str());
result = sv[1];
} else
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rc = -1;
result = rcResultString;
}
}
std::string RcResult::ToString(void)
{
char buff[200];
sprintf(buff, "%d", rc);
std::string s(buff);
listAppend(s, result.c_str());
return s;
}
// <20><>text<78><74><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
RcResult listSplit(const char *srcList, std::vector<std::string> &sv)
{
int64 argc;
char **argv;
sv.clear();
int rc = (int)imc_listSplit(srcList, &argc, &argv);
if(rc!=0) return GetErrorByCode(rc);
sv.reserve((__int32)argc);
for(int i=0; i<argc; i++) { sv.push_back(argv[i]);}
imc_free((void *)argv);
return GetErrorByCode(rc);
}
// <20><>text<78><74><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
RcResult listSplit(const char *srcList, std::list<std::string> &sv)
{
int64 argc;
char **argv;
sv.clear();
int rc = (int)imc_listSplit(srcList, &argc, &argv);
if(rc!=0) return GetErrorByCode(rc);
for(int i=0; i<argc; i++) { sv.push_back(argv[i]);}
imc_free((void *)argv);
return GetErrorByCode(rc);
}
// <20><>text<78><74><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
RcResult listSplit(const std::string &srcList, std::vector<std::string> &sv)
{
return listSplit(srcList.c_str(), sv);
}
// <20><>text<78><74><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
RcResult listSplit(const std::string &srcList, std::list<std::string> &sv)
{
return listSplit(srcList.c_str(), sv);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
std::string listJoin(std::vector<std::string> &sv)
{
char const** pArgv;
pArgv = (const char**)imc_malloc(sizeof(const char**) * sv.size());
if (pArgv == NULL)
{
return "";
}
for(std::vector<std::string>::size_type i=0; i<sv.size(); i++)
{
pArgv[i] = sv[i].c_str();
}
char *cptr = imc_listJoin((int)sv.size(), pArgv);
imc_free(pArgv);
if(cptr == NULL)
{
return ""; // should never happen
}
std::string s(cptr);
imc_free(cptr);
return s;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
std::string listJoin(std::list<std::string> &sl)
{
int i =0;
char const** pArgv;
pArgv = (const char**)imc_malloc(sizeof(const char**) * sl.size());
if (pArgv == NULL)
{
return "";
}
for(std::list<std::string>::iterator ite = sl.begin(); ite != sl.end(); ite++, i++)
{
pArgv[i] = ite->c_str();
}
char *cptr = imc_listJoin((int)sl.size(), pArgv);
imc_free(pArgv);
if(cptr == NULL)
{
return ""; // <20><><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
std::string s(cptr);
imc_free(cptr);
return s;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
std::string listJoin(int argc, const char *argv[]) {
char *cptr = imc_listJoin(argc, argv);
if(cptr == NULL)
{
return "";
}
std::string s(cptr);
imc_free(cptr);
return s;
}
std::string listJoin(int count, std::string s1, std::string s2, std::string s3,
std::string s4, std::string s5, std::string s6)
{
std::vector<std::string> sv;
sv.push_back(s1);
if (count > 1) {sv.push_back(s2); }
if (count > 2) {sv.push_back(s3); }
if (count > 3) {sv.push_back(s4); }
if (count > 4) {sv.push_back(s5); }
if (count > 5) {sv.push_back(s6); }
return listJoin(sv);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
std::string listJoin(const char *e1, const char *e2, const char *e3,
const char *e4, const char *e5, const char *e6)
{
std::vector<std::string> sv;
sv.push_back(e1);
if(e2 != NULL) { sv.push_back(e2); }
if(e3 != NULL) { sv.push_back(e3); }
if(e4 != NULL) { sv.push_back(e4); }
if(e5 != NULL) { sv.push_back(e5); }
if(e6 != NULL) { sv.push_back(e6); }
return listJoin(sv);
}
// <20>ӳ<EFBFBD><D3B3><EFBFBD>NULL<4C><4C><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>𣬺<EFBFBD><F0A3ACBA><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
void listAppend(std::string& desList, const char *e1, const char *e2, const char *e3,
const char *e4, const char *e5, const char *e6)
{
const char* srcList[6];
srcList[0] = e1;
srcList[1] = e2;
srcList[2] = e3;
srcList[3] = e4;
srcList[4] = e5;
srcList[5] = e6;
char *cptr = imc_listAppend(desList.c_str(), srcList, 6);
if (cptr != NULL)
{
desList = std::string(cptr);
}
imc_free(cptr);
}
// append one or more elements to the end of a list
void listAppend(std::string &desList, int count, std::string s1, std::string s2, std::string s3,
std::string s4, std::string s5, std::string s6)
{
int i = 0;
const char* pStr[6] = {0};
pStr[i++] = s1.c_str();
if (count > 1) {pStr[i++] = s2.c_str(); }
if (count > 2) {pStr[i++] = s3.c_str(); }
if (count > 3) {pStr[i++] = s4.c_str(); }
if (count > 4) {pStr[i++] = s5.c_str(); }
if (count > 5) {pStr[i++] = s6.c_str(); }
i = 0;
listAppend(desList, pStr[i++], pStr[i++], pStr[i++], pStr[i++], pStr[i++], pStr[i++]);
}
// <20><>ȡsrcList<73>е<EFBFBD>index1 <20><> index2 <20><> index3Ԫ<33><D4AA>
std::string listElement(std::string &srcList, int index1, int index2, int index3)
{
std::string data;
char* cptr = imc_listElement(srcList.c_str(), index1, index2, index3);
if(cptr != NULL)
{
data = cptr;
}
imc_free(cptr);
return data;
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬ͨ<EBA3AC><CDA8>code
RcResult GetErrorByCode(long nCode)
{
if (nCode == 0)
{
return RcResult();
}
RcResult rc;
char* pC = imc_GetErrorByCode(nCode);
rc.rc = nCode;
if (pC != NULL)
{
rc.result = pC;
}
imc_free(pC);
return rc;
}
// <20><><EFBFBD><EFBFBD>ת<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
std::string IntToString(__int64 nValue)
{
char pBuff[400] = {0};
sprintf(pBuff, "%lld", nValue);
return pBuff;
}
__int64 StringToInt(std::string pValue)
{
__int64 nValue = ::atoi(pValue.c_str());
return nValue;
}
// 16<31><36><EFBFBD><EFBFBD>ת10
unsigned char HexToDec(char cHightHex, char cLowHex)
{
return imc_hexToDec(cHightHex, cLowHex);
}
// 10<31><30><EFBFBD><EFBFBD>ת16<31><36><EFBFBD><EFBFBD>
void DecToHex(const unsigned char nDec, char& cHightHex, char& cLowHex)
{
imc_decToHex(nDec, cHightHex, cLowHex);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
RcResult JngGetLicenseLevel(__int32& nLevel)
{
long nCode = (long)imc_getLicenseLevel(nLevel);
return GetErrorByCode(nCode);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
RcResult JngGetMaxRunCount(__int32& nCount)
{
long nCode = (long)imc_getMaxRunCount(nCount);
return GetErrorByCode(nCode);
}
// <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>)
RcResult JngGetMaxRunDataPoint(__int32& nCount)
{
long nCode = (long)imc_getMaxRunDataPoint(nCount);
return GetErrorByCode(nCode);
}
CSecsBase::CSecsBase()
{
m_ih = imc_new();
// <20>ص<EFBFBD>
imc_setClientData(m_ih, this);
imc_setConnectedProc(m_ih, OnConnectedCallback);
imc_setDisconnectedProc(m_ih, OnDisconnectedCallback);
imc_setTraceProc(m_ih, OnTraceLog);
}
CSecsBase::~CSecsBase()
{
imc_destroy(m_ih);
}
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
RcResult CSecsBase::Start(std::string pServerAddr, int nPort)
{
// CloseProcess("JNG_Server.exe");
long nCode = (long)imc_start(m_ih, pServerAddr.c_str(), nPort);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> SECS<43><53><EFBFBD><EFBFBD>
void CSecsBase::SecsEnable(bool bEnable)
{
imc_secsEnable(m_ih, bEnable);
}
// <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
void CSecsBase::Abort()
{
imc_stop(m_ih);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
IMCHandle CSecsBase::GetIMCHandle()
{
return m_ih;
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
RcResult CSecsBase::GetLicenseLevel(__int32& nLevel)
{
long nCode = (long)imc_getLicenseLevel(nLevel);
return GetErrorByCode(nCode);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
RcResult CSecsBase::GetMaxRunCount(__int32& nCount)
{
long nCode = (long)imc_getMaxRunCount(nCount);
return GetErrorByCode(nCode);
}
// <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>)
RcResult CSecsBase::GetMaxRunDataPoint(__int32& nCount)
{
long nCode = (long)imc_getMaxRunDataPoint(nCount);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
RcResult CSecsBase::CommEnable()
{
long nCode = (long)imc_communicationEnable(m_ih);
return GetErrorByCode(nCode);
}
// <20>ر<EFBFBD>ͨ<EFBFBD><CDA8>
RcResult CSecsBase::CommDisable()
{
long nCode = (long)imc_communicationDisable(m_ih);
return GetErrorByCode(nCode);
}
// ͨѶ<CDA8>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::CommIsEnable(bool& bEnable)
{
long nCode = (long)imc_communicationIsEnable(m_ih, bEnable);
return GetErrorByCode(nCode);
}
// <20><>ȡͨ<C8A1><CDA8>״̬
RcResult CSecsBase::GetCommState(int& nState)
{
int64 tmp = 0;
long nCode = (long)imc_getCommunicationState(m_ih, tmp);
nState = (int)tmp;
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>״̬
RcResult CSecsBase::SetControlMode(int state)
{
long nCode = (long)imc_setControlMode(m_ih, state);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>״̬
RcResult CSecsBase::SetControlModeForce(int state)
{
long nCode = (long)imc_setControlModeForce(m_ih, state);
return GetErrorByCode(nCode);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
RcResult CSecsBase::GetControlState(int& state)
{
int64 nTmpState = 0;
long nCode = (long)imc_getControlState(m_ih, nTmpState);
state = (int)nTmpState;
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>״̬ͨ<CCAC><CDA8>GetControlState<74><65><EFBFBD><EFBFBD>
RcResult CSecsBase::ActiveRequestOnline()
{
long nCode = (long)imc_activeRequestOnline(m_ih);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>Ǿ<EFBFBD>̬<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
void CSecsBase::OnConnectedCallback(IMCHandle ic)
{
CSecsBase* pObj;
pObj = (CSecsBase*)imc_getClientData(ic);
if(pObj != NULL)
{
pObj->OnConnected();
}
}
// <20><><EFBFBD>Ǿ<EFBFBD>̬<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
void CSecsBase::OnDisconnectedCallback(IMCHandle ic)
{
CSecsBase* pObj;
pObj = (CSecsBase*)imc_getClientData(ic);
if(pObj != NULL)
{
pObj->OnDisconnected();
}
}
// <20><><EFBFBD>ó<EFBFBD>ʱ
RcResult CSecsBase::SetTn(std::string Tn, int nTimeout)
{
long nCode;
nCode = (long)imc_setTn(m_ih, Tn.c_str(), nTimeout);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::SetParament(std::string type, std::string param)
{
long nCode;
const char* pType[1];
const char* pParam[1];
pType[0] = type.c_str();
pParam[0] = param.c_str();
nCode = (long)imc_setParameter(m_ih, pType, pParam, 1);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::SetParament(const char* type[], const char* param[], int nCount)
{
int i = 0;
long nCode;
nCode = (long)imc_setParameter(m_ih, type, param, nCount);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ȡ
RcResult CSecsBase::AlarmGetList(std::string& pData)
{
char* pList = imc_alarmGetList(m_ih);
if(pList != NULL)
{
pData = pList;
imc_free(pList);
}
return GetErrorByCode(0);
}
// <20><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
RcResult CSecsBase::AlarmAdd(int nALID, std::string pALTX, int nAlarmSetCEID, int nAlarmClearCEID, bool bEnable, int nCategory, bool bAddEvent)
{
long nCode;
nCode = (long)imc_alarmAdd(m_ih, nALID, pALTX.c_str(), nAlarmSetCEID, nAlarmClearCEID, bEnable, nCategory, bAddEvent);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>
RcResult CSecsBase::AlarmAdd(int nALID, std::string pALTX)
{
return AlarmAdd(nALID, pALTX.c_str(), nALID, nALID, true, eCategoryIrrecoverableError, true);
}
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
RcResult CSecsBase::AlarmEnable(int nALID, bool bEnable)
{
long nCode;
nCode = (long)imc_alarmEnable(m_ih, nALID, bEnable);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
RcResult CSecsBase::AlarmSet(int nALID, bool bSet)
{
long nCode;
nCode = (long)imc_alarmSet(m_ih, nALID, bSet);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еı<D0B5><C4B1><EFBFBD>
RcResult CSecsBase::AlarmSetAll(bool bSet)
{
long nCode;
nCode = (long)imc_alarmSetAll(m_ih, bSet);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>֪ͨ<CDA8><D6AA>ʽ
RcResult CSecsBase::AlarmNotifyEventMode(int nMode)
{
long nCode;
nCode = (long)imc_alarmNotifyEventMode(m_ih, nMode);
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD><C2BC>б<EFBFBD><D0B1><EFBFBD>ȡ
RcResult CSecsBase::EventGetList(std::string& pData)
{
char* pList = imc_eventGetList(m_ih);
if(pList != NULL)
{
pData = pList;
imc_free(pList);
}
return GetErrorByCode(0);
}
// <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>: CEID
// bWaitSendFinish<73><68><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::EventPos(int nECID, bool bWaitReply)
{
long nCode = (long)imc_eventPos(m_ih, nECID, bWaitReply);
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>: <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
// bWaitSendFinish<73><68><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::EventPos(std::string EventName, bool bWaitReply)
{
long nCode = (long)imc_eventPosByName(m_ih, EventName.c_str(), bWaitReply);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>б<EFBFBD>
RcResult CSecsBase::EventAdd(int nCEID, std::string pDescription, std::string pEventName, bool bEnable)
{
long nCode;
nCode = (long)imc_eventAdd(m_ih, nCEID, pDescription.c_str(), pEventName.c_str(), bEnable);
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::EventEnable(int nCEID, bool bEnable)
{
long nCode;
nCode = (long)imc_eventEnable(m_ih, nCEID, bEnable);
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD><C2BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::EventIsEnable(int nCEID, bool& bEnable)
{
long nCode;
nCode = (long)imc_eventIsEnable(m_ih, nCEID, bEnable);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::VariableAdd(int varID, std::string varName, std::string description,
std::string valueType, std::string initValue, std::string units, std::string varClass)
{
long nCode;
nCode = (long)imc_variableAdd(m_ih, varID, varName.c_str(), description.c_str(),
valueType.c_str(), initValue.c_str(), units.c_str(), varClass.c_str());
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD>DVVAL<41><4C><EFBFBD><EFBFBD>
RcResult CSecsBase::EventDvvals(std::string eventName, std::string &dvvalNameList)
{
long nCode;
nCode = (long)imc_eventDvvalByName(m_ih, eventName.c_str(), dvvalNameList.c_str());
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD>DVVAL<41><4C><EFBFBD><EFBFBD>
RcResult CSecsBase::EventDvvals(int nECID, std::string& dvvalList)
{
long nCode;
nCode = (long)imc_eventDvval(m_ih, nECID, dvvalList.c_str());
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD>S6,F3<46><33><EFBFBD><EFBFBD>: CEID
RcResult CSecsBase::EventDiscreteVarPos(int nCEID, bool bWaitSendFinish)
{
long nCode = (long)imc_eventDiscreteVarPos(m_ih, nCEID, bWaitSendFinish);
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::EventReportLink(int nECID, std::string& report)
{
long nCode;
nCode = (long)imc_eventReportLink(m_ih, nECID, report.c_str());
return GetErrorByCode(nCode);
}
// <20>¼<EFBFBD>-<2D><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::EventReportUnlink(int nECID)
{
long nCode;
nCode = (long)imc_eventReportUnlink(m_ih, nECID);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::ReportDefine(int rptID, std::string& varID)
{
long nCode;
nCode = (long)imc_reportDefine(m_ih, rptID, varID.c_str());
return GetErrorByCode(nCode);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::ReportDefineGet(int rptID, std::string& varID)
{
long nCode;
char* pList = NULL;
nCode = (long)imc_reportDefineGet(m_ih, rptID, &pList);
if(pList != NULL)
{
if (nCode == 0)
{
varID = pList;
}
imc_free(pList);
}
return GetErrorByCode(nCode);
}
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::ReportDelete(int rptID)
{
long nCode;
nCode = (long)imc_reportDelete(m_ih, rptID);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ص<EFBFBD><D8B5>¼<EFBFBD>
RcResult CSecsBase::ReportUnlink(int rptID)
{
long nCode;
nCode = (long)imc_reportUnlink(m_ih, rptID);
return GetErrorByCode(nCode);
}
// <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 CSecsBase::ReportClear()
{
long nCode;
nCode = (long)imc_reportClear(m_ih);
return GetErrorByCode(nCode);
}
// <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 CSecsBase::ReportStrictlyFollowStandard(bool bFollow)
{
long nCode;
nCode = (long)imc_reportStrictlyFollowStandard(m_ih, bFollow);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><E6B1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::ReportAutoSaveHostLinkConfig(bool bEnable)
{
long nCode;
nCode = (long)imc_reportAutoSaveHostLinkConfig(m_ih, bEnable);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ֵ
RcResult CSecsBase::VariableSet(int varID, std::string newValue)
{
int nCode;
nCode = (long)imc_variableSet(m_ih, varID, newValue.c_str());
return GetErrorByCode(nCode);
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
RcResult CSecsBase::VariableGet(int varID, std::string& pValue)
{
pValue = "";
const char* point = imc_variableGet(m_ih, varID);
if (point != NULL)
{
pValue = point;
imc_free((void*)point);
}
return RcResult();
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::VariableGetList(std::string& pData)
{
char* pList = imc_variableGetList(m_ih);
if(pList != NULL)
{
pData = pList;
imc_free(pList);
}
return GetErrorByCode(0);
}
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::VariableSetMethod(int varID, bool enable)
{
long nCode;
nCode = (long)imc_variableSetMethod(m_ih, varID, enable);
return GetErrorByCode(nCode);
}
/////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
RcResult CSecsBase::ConstantsAdd(int nECID, std::string name, std::string description, std::string Type,
std::string Units, std::string MinValue, std::string MaxValue, std::string DefValue)
{
long nCode;
nCode = (long)imc_constantsAdd(m_ih, nECID, name.c_str(), description.c_str(), Type.c_str(),
Units.c_str(), MinValue.c_str(), MaxValue.c_str(), DefValue.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
RcResult CSecsBase::ConstantsGet(int nECID, std::string& pValue)
{
char* point = NULL;
long nCode = (long)imc_constantsGet(m_ih, nECID, &point);
if (point != NULL)
{
pValue = point;
imc_free(point);
}
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ֵ
RcResult CSecsBase::ConstantsSet(int nECID, std::string newValue)
{
long nCode;
nCode = (long)imc_constantsSet(m_ih, nECID, newValue.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ȡ
RcResult CSecsBase::ConstantsInfoGet(std::string& pInfoList)
{
long nCode;
char* pBackValue = NULL;
nCode = (long)imc_constantsInfoGet(m_ih, &pBackValue);
if(pBackValue != NULL)
{
if (nCode == 0)
{
pInfoList = pBackValue;
}
imc_free(pBackValue);
}
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::ConstantsSetMethod(int nECID, bool enable)
{
long nCode;
nCode = (long)imc_constantsSetMethod(m_ih, nECID, enable);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ı<C4B1><E4B7A2><EFBFBD>¼<EFBFBD>
RcResult CSecsBase::ConstantChangeSendEventEnable(bool bEnable)
{
long nCode;
nCode = (long)imc_constantChangeSendEventEnable(m_ih, bEnable);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
RcResult CSecsBase::ActiveTimeSynchronizeRequest()
{
long nCode;
nCode = (long)imc_hostTimeSynchronizeRequest(m_ih);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>
RcResult CSecsBase::WheneverAdd(const char* receiveMailbox, WhenProc* whenmsgProc,
void* clientData)
{
long nCode;
nCode = (long)imc_wheneverAdd(m_ih, receiveMailbox, whenmsgProc, clientData);
return GetErrorByCode(nCode);
}
// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>
void CSecsBase::WheneverRemove(const char* receiveMailbox)
{
imc_wheneverRemove(m_ih, receiveMailbox);
}
// <20><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>Ϣ
// when<65><6E>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
void CSecsBase::Reply(std::string receiveMailbox, std::string data)
{
imc_relpy(m_ih, receiveMailbox.c_str(), data.c_str());
}
// <20><><EFBFBD>͵<EFBFBD>һ<EFBFBD>ն<EFBFBD>
RcResult CSecsBase::SendSingleTerminal(std::string pContent)
{
long nCode;
nCode = (long)imc_sendSingleTerminal(m_ih, pContent.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>ն<EFBFBD>
RcResult CSecsBase::SendMultipleTerminal(std::vector<std::string> svContent)
{
const char** pList;
pList = (const char**)imc_malloc(sizeof(const char**) * svContent.size());
if (pList == NULL)
{
return RcResult(10, "memory malloc fail");
}
for (std::vector<std::string>::size_type i = 0; i < svContent.size(); i++)
{
pList[i] = svContent[i].c_str();
}
long nCode = 0;// = (long)imc_sendMultipleTerminal(m_ih, pList, svContent.size());
RcResult rc = GetErrorByCode(nCode);
imc_free(pList);
return rc;
}
// <20><><EFBFBD>ó<EFBFBD>ʽĿ¼
void CSecsBase::SetRecipeDirectory(std::string dir)
{
imc_setRecipeDirectory(m_ih, dir.c_str());
}
// <20><><EFBFBD>ó<EFBFBD>ʽĿ¼
RcResult CSecsBase::ProcessProgramUpload(std::string ppid)
{
int nCode;
nCode = (long)imc_processProgramUpload(m_ih, ppid.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD>ó<EFBFBD>ʽĿ¼
RcResult CSecsBase::ProcessProgramDownload(std::string ppid)
{
int nCode;
nCode = (long)imc_processProgramDownload(m_ih, ppid.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::PPAllowHostDowmload(bool bAllow)
{
int nCode;
nCode = (long)imc_ppAllowHostDowmload(m_ih, bAllow);
return GetErrorByCode(nCode);
}
// PP<50><50><EFBFBD><EFBFBD>ģʽ
RcResult CSecsBase::PPHandleMode(int nMode)
{
int nCode;
nCode = (long)imc_ppHandleMode(m_ih, nMode);
return GetErrorByCode(nCode);
}
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Csv<73>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
RcResult CSecsBase::LoadDataByCsvFile(std::string pDir)
{
int nCode;
nCode = (long)imc_loadDataByCsvFile(m_ih, pDir.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>SECS<43><53><EFBFBD><EFBFBD>
RcResult CSecsBase::LoadSecsConfig(std::string pDir)
{
int nCode;
nCode = (long)imc_loadSecsConfig(m_ih, pDir.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>PP<50><50><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ŀ¼
RcResult CSecsBase::PPIsFolderDir(bool bFolder)
{
int nCode;
nCode = (long)imc_ppIsFolderDir(m_ih, bFolder);
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>winrarĿ¼
RcResult CSecsBase::SetWinrarPath(std::string path)
{
int nCode;
nCode = (long)imc_setWinrarPath(m_ih, path.c_str());
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
RcResult CSecsBase::PPSetFilenameExtension(std::string pFileExten)
{
int nCode;
nCode = (long)imc_ppSetFilenameExtension(m_ih, pFileExten.c_str());
return GetErrorByCode(nCode);
}
// PP<50><50><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::PPFormatAdd(std::string pCmdCode, std::string pName, std::string pValueType)
{
int nCode;
nCode = (long)imc_ppFormatAdd(m_ih, pCmdCode.c_str(), pName.c_str(), pValueType.c_str());
return GetErrorByCode(nCode);
}
// PP<50><50><EFBFBD>л<EFBFBD><D0BB>ϴ<EFBFBD>
RcResult CSecsBase::PPFormatSend(std::string ppid)
{
int nCode;
nCode = (long)imc_ppFormatSend(m_ih, ppid.c_str());
return GetErrorByCode(nCode);
}
// PP<50><50><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::PPFormatRequest(std::string ppid)
{
int nCode;
nCode = (long)imc_ppFormatRequest(m_ih, ppid.c_str());
return GetErrorByCode(nCode);
}
// PP<50><50><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>ģʽ
RcResult CSecsBase::PPFormatSetCodeMode(int nMode)
{
int nCode;
nCode = (long)imc_ppFormatSetCodeMode(m_ih, nMode);
return GetErrorByCode(nCode);
}
// wafer map
// <20><>Բͼ<D4B2>ϴ<EFBFBD>
RcResult CSecsBase::WaferMapUpload(std::string pWaferMap)
{
int nCode;
nCode = (long)imc_waferMapUpload(m_ih, pWaferMap.c_str());
return GetErrorByCode(nCode);
}
// <20><>Բͼ<D4B2>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::WaferMapDownload(std::string pWaferInfo, std::string& pWaferMap)
{
int nCode;
char* pWaferMapTmp = NULL;
nCode = (long)imc_waferMapDownload(m_ih, pWaferInfo.c_str(), &pWaferMapTmp);
if (pWaferMapTmp != NULL)
{
pWaferMap = pWaferMapTmp;
imc_free(pWaferMapTmp);
}
return GetErrorByCode(nCode);
}
// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::StripMapDownload(std::string pStripInfo, std::string& pStripMap)
{
int nCode;
char* pStripMapTmp = NULL;
nCode = (long)imc_stripMapDownload(m_ih, pStripInfo.c_str(), &pStripMapTmp);
if (pStripMapTmp != NULL)
{
pStripMap = pStripMapTmp;
imc_free(pStripMapTmp);
}
return GetErrorByCode(nCode);
}
RcResult CSecsBase::SendSecsMsgAsync(int64 nStream, int64 nFunction,
bool bReply, std::string pData, int64& nMsgID)
{
int nCode = 0;
imc_sendSecsMsgAsync(m_ih, nStream, nFunction, bReply, nMsgID, pData.c_str());
return GetErrorByCode(nCode);
}
RcResult CSecsBase::SendSecsMsgSync(int nStream, int nFunction, bool bReply,
std::string pData, std::string& pReplyData)
{
int nCode = 0;
char* pReplyDataPoint = NULL;
nCode = (long)imc_sendSecsMsg(m_ih, nStream, nFunction, bReply, pData.c_str(),
&pReplyDataPoint, true);
if (nCode == 0 &&
pReplyDataPoint != NULL)
{
pReplyData = pReplyDataPoint;
}
if (pReplyDataPoint != NULL)
{
imc_free(pReplyDataPoint);
}
return GetErrorByCode(nCode);
}
RcResult CSecsBase::SendReply(int nStream, int nFunction, int nTransactionID, std::string pData)
{
imc_sendReply(m_ih, nStream, nFunction, nTransactionID, pData.c_str());
return RcResult();
}
// <20><><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::MessageTypeAdd(int nStream, int nFunction,
SecsMessageReceiveProc pCallback, void* pClientData)
{
// <20><><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nCode = (long)imc_messageTypeAdd(m_ih, nStream, nFunction, pCallback, pClientData);
return GetErrorByCode(nCode);
}
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RcResult CSecsBase::MessageTypeRemove(int nStream, int nFunction)
{
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
imc_messageTypeRemote(m_ih, nStream, nFunction);
return GetErrorByCode(0);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD>е<EFBFBD>LogTrace,׷<><D7B7>BUG<55><47>
void CSecsBase::EnableRuntimeTrace(bool bEnable)
{
imc_enableTrace(m_ih, bEnable);
}
void CSecsBase::CloseProcess(std::string pName)
{
// QTɾ<54><C9BE><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// QT<51><54>ʼɾ<CABC><C9BE>
PROCESSENTRY32 pe = { 0 };
pe.dwSize = sizeof(PROCESSENTRY32 );
HANDLE hProcess = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL bRet = ::Process32First(hProcess, &pe); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
while(bRet)
{
//<2F>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(pName == pe.szExeFile)
{
//<2F>򿪽<EFBFBD><F2BFAABD>̲<EFBFBD>ɱ<EFBFBD><C9B1>
HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE,pe.th32ProcessID);
if (pHandle != NULL)
{
TerminateProcess(pHandle, 0);
}
}
bRet = Process32Next(hProcess,&pe);//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
// QTɾ<54><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
// ׷<><D7B7>log
void CSecsBase::OnTraceLog(IMCHandle imc, int64 nCode, const char* pText)
{
CSecsBase* pObj;
pObj = (CSecsBase*)imc_getClientData(imc);
if(pObj != NULL)
{
pObj->OnTraceLog(nCode, pText);
}
}
void CSecsBase::OnTraceLog(int64 nCode, const char* pText)
{
}
// ת<>ַ<EFBFBD><D6B7><EFBFBD>
std::string ToString(__int64 nValue)
{
return IntToString(nValue);
}
std::string ToString(__int32 nValue)
{
return IntToString(nValue);
}
std::string ToString(__int16 nValue)
{
return IntToString(nValue);
}
std::string ToString(__int8 nValue)
{
return IntToString(nValue);
}
std::string ToString(unsigned __int64 nValue)
{
char pBuff[400] = {0};
sprintf(pBuff, "%lld", nValue);
return pBuff;
}
std::string ToString(unsigned __int32 nValue)
{
return IntToString((unsigned __int64)nValue);
}
std::string ToString(unsigned __int16 nValue)
{
return IntToString((unsigned __int64)nValue);
}
std::string ToString(unsigned __int8 nValue)
{
return IntToString((unsigned __int64)nValue);
}
std::string ToString(float nValue)
{
char pBuff[400] = {0};
sprintf(pBuff, "%f", nValue);
return pBuff;
}
std::string ToString(double nValue)
{
char pBuff[400] = {0};
sprintf(pBuff, "%f", nValue);
return pBuff;
}