📄 demodlg.cpp
字号:
case SM_RES_WAIT_ALERT:
m_status.Format("%s", "等待ALERT");
break;
default:
m_status.Format("未知状态:%d", SM_Status);
case 0:
m_status.Format("0 %s", "WAITING_FOR_DELIVER");
break;
case 1:
m_status.Format("1 %s", "DELIVER_SUCCESS");
break;
case 2:
m_status.Format("2 %s", "DELIVER_FAIL");
break;
default:
m_status.Format("%d", SM_Status);
};*/
m_error_code.Format("%d", Error_Code);
/*
switch(Error_Code)
{
case 0:
m_error_code.Format("0 %s","SM_STATUS_NO_ERR");
break;
case 1:
m_error_code.Format("1 %s","SM_STATUS_ERR_OTHER");
break;
default:
m_error_code.Format("%d", Error_Code);
};*/
UpdateData(FALSE);
AfxMessageBox("Query SM Details SUCCESS!");
if (UserData != NULL) delete UserData;
}
void CDemoDlg::OnCancelSM()
{
UpdateData(TRUE);
CString str;
int iRet = CancelSM(m_sm_id);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
}
void CDemoDlg::OnReplaceSM()
{
UpdateData(TRUE);
unsigned char DCS = (unsigned char)atol(m_DCS);
int size = m_userdata.GetLength();
char * ud = NULL;
ud = new char[size+1];
memset(ud, 0, size+1);
if (ud == NULL)
return;
unsigned long UDLen = size;
if ((m_UDHI == 1) && m_Binary)
{
AnalysisString(m_userdata, (unsigned char*)ud, size);
UDLen = size;
}
else
strcpy(ud,m_userdata);
int iRet=ReplaceSM(m_sm_id,1,1,m_orgaddr,m_schedule,m_expire,DCS,m_default_id,
UDLen,ud);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
delete ud;
}
void CDemoDlg::OnQueryStatus()
{
unsigned char SM_Status;
unsigned char Error_Code;
UpdateData(TRUE);
char final[MAX_ADDR_LEN];
char OrgAddr[MAX_ADDR_LEN];
char DestAddr[MAX_ADDR_LEN];
memset(OrgAddr, 0, MAX_ADDR_LEN);
memset(DestAddr, 0, MAX_ADDR_LEN);
strcpy(OrgAddr, m_orgaddr);
strcpy(DestAddr, m_destaddr);
int iRet = QuerySMStatus(m_sm_id,NULL,NULL,OrgAddr,NULL,NULL,DestAddr,final,&SM_Status,&Error_Code);
if (iRet != E_SUCCESS)
{
// char errstr[200];
//if (GetErrorString(iRet, 200, errstr) > 0)
//AfxMessageBox(errstr);
return;
};
m_final.Format("%s",final);
m_orgaddr.Format("%s",OrgAddr);
m_destaddr.Format("%s",DestAddr);
char sStatusStr[255];
GetSMStatusString(SM_Status, 255, sStatusStr);
m_status.Format("%d %s", SM_Status, sStatusStr);
/*
switch(SM_Status)
{
case WAITING_FOR_DELIVER:
m_status.Format("%s", "WAITING_FOR_DELIVER");
break;
case DELIVER_SUCCESS:
m_status.Format("%s", "DELIVER_SUCCESS");
break;
case DELIVER_FAIL:
m_status.Format("%s", "DELIVER_FAIL");
break;
case SM_RES_WAIT_DELIVER_FOR_ERROR:
m_status.Format("%s", "因提交失败而等待");
break;
case SM_RES_WAIT_DELIVER_FOR_NORMAL:
m_status.Format("%s", "因定时短讯而等待");
break;
case SM_RES_WORK:
m_status.Format("%s", "工作态");
break;
case SM_RES_WAIT_ALERT:
m_status.Format("%s", "等待ALERT");
break;
default:
m_status.Format("未知状态:%d", SM_Status);
};
*/
m_error_code.Format("%d", Error_Code);
/*
switch(Error_Code)
{
case 0:
m_error_code.Format("0 %s","SM_STATUS_NO_ERR");
break;
case 1:
m_error_code.Format("1 %s","SM_STATUS_ERR_OTHER");
break;
default:
m_error_code.Format("%d", Error_Code);
};
*/
UpdateData(FALSE);
AfxMessageBox("success.");
}
void CDemoDlg::OnAddSub()
{
UpdateData(TRUE);
unsigned char bsm = (unsigned char)atol(m_bSM);
unsigned char ton = (unsigned char)atol(m_TON);
unsigned char npi = (unsigned char)atol(m_NPI);
unsigned char mstype = (unsigned char)atol(m_mstype);
unsigned long service = atol(m_Service);
int iRet=AddSubscriber(ton, npi, (LPCTSTR)m_subid, (LPCTSTR)m_subname, (LPCTSTR)m_subaddr,
mstype, service, bsm, m_ocos, m_tcos, 0, (LPCTSTR)m_subpassword);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
}
void CDemoDlg::OnDelSub()
{
UpdateData(TRUE);
int iRet=DeleteSubscriber((LPCTSTR) m_subid);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
}
void CDemoDlg::OnModSub()
{
UpdateData(TRUE);
unsigned char bsm = (unsigned char)atol(m_bSM);
unsigned char ton = (unsigned char)atol(m_TON);
unsigned char npi = (unsigned char)atol(m_NPI);
unsigned char mstype = (unsigned char)atol(m_mstype);
unsigned long service = atol(m_Service);
int iRet=ModifySubscriber(ton, npi, (LPCTSTR)m_subid, (LPCTSTR)m_subname, (LPCTSTR)m_subaddr,
mstype, service, bsm, m_ocos, m_tcos, (LPCTSTR)m_subpassword);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
}
void CDemoDlg::OnQuerySub()
{
UpdateData(TRUE);
char subname[100];
char subaddr[100];
char password[100];
unsigned char bsm;
unsigned char ucMstype;
unsigned long ulService;
unsigned char regtime[30];
unsigned char ton, npi;
memset(regtime, 0, 30);
int iRet = QuerySubscriber((LPCTSTR) m_subid, &ton, &npi, subname, subaddr, &ucMstype, &ulService, &bsm, &m_ocos, &m_tcos, password, (char*)regtime);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
if (iRet == E_SUCCESS)
{
m_subname.Format("%s",subname);
m_subaddr.Format("%s",subaddr);
m_subpassword.Format("%s",password);
m_mstype.Format("%d", ucMstype);
m_RegTime.Format("%s", regtime);
m_Service.Format("%d", ulService);
m_bSM.Format("%d", bsm);
m_TON.Format("%d", ton);
m_NPI.Format("%d", npi);
UpdateData(FALSE);
};
}
void CDemoDlg::OnQueryMsgs()
{
unsigned char Dir;
CString Addr;
CString beginTime;
CString finalTime;
unsigned char smnum;
unsigned char status;
//unsigned long smids[20];
unsigned long smids[100];
UpdateData(TRUE);
Dir=m_dir;
Addr=m_orgaddr;
beginTime=m_begintime;
finalTime=m_finaltime;
smnum=(unsigned char)m_smnum;
CString str;
int iRet=QuerySMS(Dir, 1, 1, Addr, beginTime, finalTime, &smnum, &status, smids);
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
AfxMessageBox(errstr);
if (iRet == E_SUCCESS)
{
CString id;
m_smidlist.ResetContent();
for(int i=0; i<smnum; i++)
{
id.Format("%d", smids[i]);
m_smidlist.AddString((LPCTSTR)id);
};
id.Format("%d",smnum);
AfxMessageBox(id);
UpdateData(FALSE);
};
}
void CDemoDlg::OnDblclkList1()
{
UpdateData(TRUE);
CString str;
m_smidlist.GetText(m_smidlist.GetCurSel(), str);
if (str.IsEmpty()) return;
m_sm_id = atol(str);
UpdateData(FALSE);
}
void CDemoDlg::OnInitialInterface()
{
UpdateData(TRUE);
int iProtocol;
CString sDrvPara;
//sDrvPara.Format("%s %s %d", m_ip, m_port, INITIALTIME);
WORD wPort;
switch(m_protocol)
{
case 0:
iProtocol = 3; //SMPP
if (m_port)
wPort = (WORD)m_port;
else
wPort = 5016;
sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
break;
case 1:
iProtocol = 1; //SMEI
if (m_port)
wPort = (WORD)m_port;
else
wPort = 1000;
sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
break;
case 2:
iProtocol = 5; //Cmpp
if (m_port)
wPort = (WORD)m_port;
else
wPort = 7890;
sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
break;
// 2002-09-06 hyt add for sgip
case 3:
iProtocol = 4; //Sgip
if (m_port)
wPort = (WORD)m_port;
else
wPort =8801;
sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
break;
default:
ASSERT(FALSE);
break;
// end 2002-09-06
};
CComboBox* pComboBox = (CComboBox*) GetDlgItem(IDC_COMBO1);
if (!IFInitInterface(iProtocol, 1, (LPCTSTR)sDrvPara) )
AfxMessageBox(" initial failed!");
else
{
if (pComboBox->FindString(-1, (LPCTSTR)m_ip) == CB_ERR)
pComboBox->AddString(m_ip);
AfxMessageBox(" initial success!");
};
}
void CDemoDlg::OnGetDeliverSM()
{
SetEvent(m_hWaitEvent);
Sleep(200);
}
void CDemoDlg::OnAutoAck()
{
UpdateData(TRUE);
if (m_bAutoAck)
{
SetEvent(m_hWaitEvent);
};
}
void CDemoDlg::OnDlvSMNum(WPARAM wParam , LPARAM lParam )
{
// 2002.01.31 hyt change
/*
UpdateData(TRUE);
int num = atoi((LPCTSTR)m_DlvSMNum);
int i = wParam;
num +=i;
m_DlvSMNum.Format("%d", num);
UpdateData(FALSE);
*/
int num = m_ulSmNum;
int i = wParam;
num += i;
m_DlvSMNum.Format("%d", num);
m_ulSmNum = num;
if (m_bSmNumFlag)
{
UpdateData(FALSE);
}
}
void CDemoDlg::OnKillfocusEdit3()
{
CEdit* pEdit = (CEdit*) GetDlgItem(IDC_EDIT3);
CString str;
pEdit->GetWindowText(str);
m_len = str.GetLength();
pEdit = (CEdit*) GetDlgItem(IDC_EDIT25);
CString szlen;
szlen.Format("%d", m_len);
pEdit->SetWindowText(szlen);
}
void CDemoDlg::Onvpsubmit()
{
unsigned char OrgTON=1, OrgNPI=1;
unsigned char DestTON=1, DestNPI=1;
unsigned char PRI, DCS;
char sadd[100];
char dadd[100];
char schedule[100];
char expire[100];
unsigned long default_id=0;
unsigned char UDHI=0;
unsigned long UDLen;
unsigned long SM_ID;
unsigned char PID;
UpdateData(TRUE);
switch(m_PRI)
{
case 0:
PRI=SM_PRI_DEFAULT;
break;
case 1:
PRI=SM_PRI_PRIOR;
break;
};
DCS = (unsigned char)atol(m_DCS);
PID = (unsigned char)m_pid;
/* switch(m_DCS)
{
case 0:
DCS=SM_DCS_ASC;
break;
case 1:
DCS=SM_DCS_CHINA;
break;
case 2:
DCS=0;
break;
};*/
UDLen=m_len;
long size=m_userdata.GetLength();
char * ud =NULL;
ud=new char[size+1];
memset(ud, 0, size+1);
strcpy(ud,m_userdata);
strcpy(schedule, m_schedule);
strcpy(expire, m_expire);
default_id=m_default_id;
strcpy(sadd,m_orgaddr);
strcpy(dadd,m_destaddr);
CString str;
/* int iRet = SubmitSM(OrgTON,OrgNPI,sadd,DestTON,DestNPI,dadd,PRI,DCS,
schedule,expire,default_id,0, UDLen, (LPCTSTR)ud,&SM_ID,&FCS);*/
/*
int iRet = VPSubmitA(sadd, dadd, DCS, PID, schedule, expire,
default_id, (LPCTSTR)ud, &SM_ID);*/
int iRet = VPSubmitSM(sadd, dadd, schedule, expire,
default_id, (LPCTSTR)ud, &SM_ID);
if (iRet != E_SUCCESS)
{
char errstr[200];
if (GetErrorString(iRet, 200, errstr) > 0)
::MessageBox(NULL, errstr, "Submit Error Info", MB_OK|MB_ICONINFORMATION);
delete ud;
return;
};
str.Format("submit success.\n"
" SM ID :%u,\n", SM_ID);
::MessageBox(NULL,str, "Submit Info", MB_OK|MB_ICONINFORMATION);
delete ud;
return;
}
void CDemoDlg::OnLogoutR()
{
UpdateData(TRUE);
if (!Login_R(m_system_id, m_password)) //m_system_id 登陆帐号变量。
AfxMessageBox("login failed."); //m_password 登陆帐号的密码。
else
{
AfxMessageBox("login success.");
CString strText;
strText.Format("Demo - %s", m_system_id);
SetWindowText(strText);
};
}
BOOL AnalysisString(LPCTSTR lpszBuf, BYTE* SendData, int& iSize)
{
char szTemp[20];
int iIndex = 0;
int iTempSize = 20;
DWORD dwData = 0;
int iDataIndex = 0;
int iRet;
while ((iRet = GetValidString(lpszBuf, iIndex, szTemp, iTempSize)) == 0)
{
if (sscanf(szTemp, "%x", &dwData) == 0)
{
AfxMessageBox("sscanf error.");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -