📄 operator.cpp
字号:
// Operator.cpp: implementation of the COperator class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Operator.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
char * ConvertToSingle(char * strDest, CString strSource, int length)
{
int i;
for( i=0; i<length; i++)
{
strDest[i] = (char)strtol("0x"+strSource.Mid(i*2, 2), NULL,16);
}
return strDest;
}
CString ConvertToString(BYTE * strSource, int length)
{
CString strDest;
char strTemp[3];
int i, x;
strDest.Empty();
for( i=0; i<length; i++)
{
x = (int)strSource[i];
if( x<16 )
{
strTemp[0]='0';
itoa(x, strTemp+1, 16);
}
else
itoa(x, strTemp, 16);
strDest+=strTemp;
}
strDest.MakeUpper();
return strDest;
}
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
COperator::COperator(BYTE _telcomid,BYTE _protocol)
{
telcomid=_telcomid;
protocol=_protocol;
m_mtthread=GetPrivateProfileInt("Operator","mtthread",1,CONFIGFILE);
if(m_mtthread>10) m_mtthread=10;
m_mothread=GetPrivateProfileInt("Operator","mothread",0,CONFIGFILE);
if(m_mothread>10) m_mothread=10;
}
COperator::~COperator()
{
}
void COperator::LoadSetting()
{
GetPrivateProfileString("Operator","spnumber","555500961",spnumber,20,CONFIGFILE);
GetPrivateProfileString("Operator","username","555500961",uid,20,CONFIGFILE);
GetPrivateProfileString("Operator","passwd","123456",pwd,20,CONFIGFILE);
GetPrivateProfileString("Operator","host","",host,20,CONFIGFILE);
port=GetPrivateProfileInt("Operator","port",9999,CONFIGFILE);
}
void COperator::InitOperator()
{
}
int COperator::Submit(CString content, CString mobile,CString srcid,CString svrid,char* gmsgid,unsigned long* gstate)
{
return 0;
}
BOOL COperator::WriteResultLog(
unsigned long mtid,
int entid,
BYTE msgformat,
BYTE reportflag,
BYTE moflag,
BYTE tppid,
BYTE tpudhi,
char * destAddr,
BYTE destAddrType,
char * serviceID,
BYTE feeUserType,
BYTE feeType,
long feeCode,
char * chargeNumber,
BYTE chargeNumberType,
char * sendtime,
char * expiretime,
char * Srcterminal,
long msglength,
char * msgcontent,
char * messageid,
int errorcode,
int feedback,
BYTE TelcomID,
unsigned char* reserved)
{
CString strInsert;
CString strMsg;
CString Reserved;
CString strdestAddr;
CString strchargeNumber;
if(destAddrType==1)
{
strdestAddr=ConvertToString((BYTE*)destAddr,32);
}else
{
strdestAddr.Format("%s",destAddr);
}
if(chargeNumberType==1)
{
strchargeNumber=ConvertToString((BYTE*)chargeNumber,32);
}else
{
strchargeNumber.Format("%s",chargeNumber);
}
strMsg="0X"+ConvertToString((BYTE*)msgcontent,msglength);
Reserved=ConvertToString(reserved,20);
strInsert.Format("INSERT INTO MT_ResultLog(MT_ID,Ent_ID,MsgFormat,ReportFlag,MOFlag,TpPID,TpUDHI,DestAddr,DestAddrType,ServiceID,FeeUserType,FeeType,FeeCode,ChargeNumber,ChargeNumberType,SendTime,ExpireTime,Srcterminal,MsgLength,MsgContent,MessageID,ErrorCode,FeedBack,TelcomID,Reserved) VALUES(%u,%u,%u,%u,%u,%u,%u,'%s',%u,'%s',%u,%u,%u,'%s',%u,'%s','%s','%s',%u,%s,'%s',%d,%d,%u,'%s')",mtid,entid,msgformat,reportflag,moflag,tppid,tpudhi,strdestAddr,destAddrType,serviceID,feeUserType,feeType,feeCode,strchargeNumber,chargeNumberType,sendtime,expiretime,Srcterminal,msglength,strMsg,messageid,errorcode,feedback,TelcomID,Reserved);
return TRUE;
}
void COperator::WriteMOLog()
{
/*
CString strEXE;
CString strHex;
CString Reserved;
CString strsrcid;
strHex="0X"+ConvertToString((BYTE*)body->pMsg,body->msglength);
Reserved=ConvertToString((BYTE*)body->reserved,20);
if(body->SrcTerminalIDType==1)
{
strsrcid=ConvertToString((BYTE*)body->srcterminal,32);
}else
{
strsrcid.Format("%s",body->srcterminal);
}
strEXE.Format("INSERT INTO MO_LOG(MO_ID,TelcomID,OrgAddr,OrgAddrType,DestAddr,MsgFormat,Content,TP_PID,TP_UDHI,Message_ID,RecvTime,Reserved) VALUES(%u,%u,'%s',%u,'%s',%u,%s,%u,%u,'%s','%s','%s')",body->MO_ID,body->telcomid,strsrcid,body->SrcTerminalIDType,body->destterminal,body->msgformat,strHex,body->tpPID,body->tpUDHI,messageid,body->recvtime,Reserved);
*/
}
void COperator::WriteReportLog()
{
/*
CString strdestid;
CString strEXE;
if(body->Dest_terminal_Id_Type==1)
{
strdestid=ConvertToString((BYTE*)body->dest_terminal_id,32);
}else
{
strdestid.Format("%s",body->dest_terminal_id);
}
strEXE.Format("INSERT INTO MT_ReportLog(Report_ID,TelcomID,DestTermID,DestTermIDType,MessageID,State,ErrorCode,RecvTime,SubTime,DoneTime) VALUES(%u,%u,'%s',%u,'%s',%u,%u,'%s','%s','%s')",body->report_id,body->telcomid,strdestid,body->Dest_terminal_Id_Type,messageid,body->stat,body->ErrorCode,body->recvtime,body->subtime,body->donetime);
*/
}
void COperator::StartMoRecv()
{
}
void COperator::StopMoRecv()
{
}
void COperator::HandleMo()
{
/*
CString m_telcomid="";
m_telcomid.Format("%u",telcomid);
int tlen=m_telcomid.GetLength();
char* strmsg=new char[body->CMPP_Deliver.msglength+tlen+1];
memset(strmsg,0,body->CMPP_Deliver.msglength+tlen+1);
memcpy(strmsg,body->CMPP_Deliver.pMsg,body->CMPP_Deliver.msglength);
memcpy(strmsg+body->CMPP_Deliver.msglength,(char*)(LPCTSTR)m_telcomid,tlen);
if((strcmp(body->CMPP_Deliver.destterminal,spnumber)==0))
{
CString momsg;
momsg.Format("%s",strmsg);
momsg.MakeLower();
char* uid=m_mc->GetCmd(momsg);
if(uid)
strcat(body->CMPP_Deliver.destterminal,uid);
else
{
momsg=momsg.Left(momsg.GetLength()-tlen);
uid=m_mc->GetMhCmd(momsg,0);
if(uid)
strcat(body->CMPP_Deliver.destterminal,uid);
else
{
momsg.Format("*%s",m_telcomid);
uid=m_mc->GetCmd(momsg);
if(uid)
strcat(body->CMPP_Deliver.destterminal,uid);
}
}
}
delete[] strmsg;
WriteMOLog(&(body->CMPP_Deliver),msgid);
char aip[16];
memset(aip,0,16);
int ent_id=m_mc->GetEntidFromNumber(body->CMPP_Deliver.destterminal+strlen(spnumber),aip);
if(ent_id>0)
{
MoObject* _obj=new MoObject;
_obj->ent_id=ent_id;
time(&_obj->acttime);
time(&_obj->recvtime);
_obj->isReport=0;
strcpy(_obj->ip,aip);
_obj->state=0;
_obj->body=new CMPP_MsgBody;
memcpy(_obj->body,body,sizeof(CMPP_MsgBody));
m_mc->AddToMoList(_obj);
}
*/
}
void COperator::HandleRp()
{
/*
WriteReportLog(&(body->CMPP_Report),msgid);
char aip[16];
memset(aip,0,16);
long mt_id;
int ent_id=m_mc->GetEntidFromMsgid(msgid,body->CMPP_Report.telcomid,mt_id,aip);
if(ent_id>0)
{
MoObject* _obj=new MoObject;
_obj->ent_id=ent_id;
time(&_obj->acttime);
time(&_obj->recvtime);
_obj->isReport=1;
strcpy(_obj->ip,aip);
_obj->state=0;
_obj->body=new CMPP_MsgBody;
memcpy(_obj->body,body,sizeof(CMPP_MsgBody));
_obj->body->CMPP_Report.mt_id=mt_id;
m_mc->AddToMoList(_obj);
}
*/
}
char* COperator::FindStr(char *src, char* obj,int len)
{
for(int i=0;i<len-strlen(obj)+1;i++)
{
if(strncmp(src+i,obj,strlen(obj))==0)
{
return src+i+strlen(obj);
}
}
return NULL;
}
CString COperator::GenStrTime()
{
CTime t=CTime::GetCurrentTime();
return t.Format("%Y%m%d%H%M%S");
}
CString COperator::ParserCmppMsgid(char *MsgId)
{
return "";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -