|
|
|
|
|
//#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;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|