📄 sgipservicedemodlg.cpp
字号:
m_BtnMTMOStart.EnableWindow(TRUE);
m_BtnMOCTStart.EnableWindow(TRUE);
m_BtnMTCTStart.EnableWindow(TRUE);
m_BtnStopTest.EnableWindow(TRUE);
}
void CSgipServiceDemoDlg::OnBtnMtctstart()
{
// TODO: Add your control notification handler code here
m_bStartMtctTest = TRUE;
UpdateData(TRUE);
CTime tmBeginTime;
tmBeginTime = CTime::GetCurrentTime();
m_strEditMTCTBeginTime = tmBeginTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 1;
m_BtnMTMOStop.EnableWindow(FALSE);
m_BtnMTMOStart.EnableWindow(FALSE);
m_BtnMOCTStop.EnableWindow(FALSE);
m_BtnMOCTStart.EnableWindow(FALSE);
m_BtnMTCTStart.EnableWindow(FALSE);
m_BtnMTCTStop.EnableWindow();
m_BtnStopTest.EnableWindow(FALSE);
}
void CSgipServiceDemoDlg::OnBtnMoctstart()
{
// TODO: Add your control notification handler code here
CTime tmBeginTime;
tmBeginTime = CTime::GetCurrentTime();
m_strEditMOCTBeginTime = tmBeginTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 2;
m_iEditMOCTRPN = 0;
m_strEditMOCTEndTime = "";
UpdateData(FALSE);
m_BtnMTMOStop.EnableWindow(FALSE);
m_BtnMTMOStart.EnableWindow(FALSE);
m_BtnMOCTStop.EnableWindow();
m_BtnMOCTStart.EnableWindow(FALSE);
m_BtnMTCTStart.EnableWindow(FALSE);
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow(FALSE);
}
void CSgipServiceDemoDlg::OnBtnMoctstop()
{
// TODO: Add your control notification handler code here
CTime tmEndTime;
tmEndTime = CTime::GetCurrentTime();
m_strEditMOCTEndTime = tmEndTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 0;
m_BtnMTMOStop.EnableWindow(FALSE);
m_BtnMTMOStart.EnableWindow();
m_BtnMOCTStop.EnableWindow(FALSE);
m_BtnMOCTStart.EnableWindow();
m_BtnMTCTStart.EnableWindow();
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow();
}
void CSgipServiceDemoDlg::OnBtnMtmostart()
{
// TODO: Add your control notification handler code here
CTime tmBeginTime;
tmBeginTime = CTime::GetCurrentTime();
m_strEditMTMOBeginTime = tmBeginTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 3;
m_iEditMTMORPN = 0;
m_strEditMTMOEndTime = "";
m_iEditMTMOSPN = 0;
UpdateData(FALSE);
m_BtnMTMOStop.EnableWindow();
m_BtnMTMOStart.EnableWindow(FALSE);
m_BtnMOCTStop.EnableWindow(FALSE);
m_BtnMOCTStart.EnableWindow(FALSE);
m_BtnMTCTStart.EnableWindow(FALSE);
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow(FALSE);
}
void CSgipServiceDemoDlg::OnBtnMtmostop()
{
// TODO: Add your control notification handler code here
CTime tmEndTime;
tmEndTime = CTime::GetCurrentTime();
m_strEditMTMOEndTime = tmEndTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 0;
m_BtnMTMOStop.EnableWindow(FALSE);
//++
//因为TMomtct线程中用到“pDlg->SubmitOneMsg”,而SubmitOneMsg在
//网络状态不好时可能使线程等待,所以界面上一些按钮的“使能”最好
//还是放在TMomtct线程中比较好。
m_BtnMTMOStart.EnableWindow();
m_BtnMOCTStop.EnableWindow(FALSE);
m_BtnMOCTStart.EnableWindow();
m_BtnMTCTStart.EnableWindow();
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow();
}
//////////////////////////////////////////////////////////////////////////
//function:submit one short message
//input:
//retval:0:ok
/////////////////////////////////////////////////////////////////////////
int CSgipServiceDemoDlg::SubmitOneMsg(CString strContent,
CString strDestPhoneNum,
CString strFeePhoneNo,
unsigned long ulSgipSerialNo,
int iReportFlag,
int iMsgCoding,
BOOL bWaitResp)
{
return m_SocketRes.SubmitOneMsg(strContent,
strDestPhoneNum,
strFeePhoneNo,
ulSgipSerialNo,
iReportFlag,
iMsgCoding,
bWaitResp);
}
void CSgipServiceDemoDlg::OnBtnConfig()
{
// TODO: Add your control notification handler code here
ReadConfigInfo();
CDlgConfig dlgConfig;
dlgConfig.m_iCorpID = m_iCorpID;
dlgConfig.m_strDestPnoneNo = m_strDestPnoneNo;
dlgConfig.m_strFeePhoneNo = m_strFeePhoneNo;
dlgConfig.m_iFeeType = m_iFeeType;
dlgConfig.m_iFeeValue = m_iFeeValue;
dlgConfig.m_iLocalLisPort = m_iLocalLisPort;
dlgConfig.m_strLocalPwd = m_strLocalPwd;
dlgConfig.m_strLocalUserName = m_strLocalUserName;
dlgConfig.m_strMsgContent = m_strMsgContent;
dlgConfig.m_iMsgFmt = m_iMsgFmt;
dlgConfig.m_iMsgLevel = m_iMsgLevel;
dlgConfig.m_iRepFlag = m_iRepFlag;
dlgConfig.m_strServerIP = m_strServerIP;
dlgConfig.m_strServerPwd = m_strServerPwd;
dlgConfig.m_iServerLisPort = m_iServerLisPort;
dlgConfig.m_strServerUserName = m_strServerUserName;
dlgConfig.m_lSourceID = m_lSourceID;
dlgConfig.m_iSPNumber = m_iSPNumber;
if(IDOK == dlgConfig.DoModal())
{
m_iCorpID = dlgConfig.m_iCorpID;
m_strDestPnoneNo = dlgConfig.m_strDestPnoneNo;
m_strFeePhoneNo = dlgConfig.m_strFeePhoneNo;
m_iFeeType = dlgConfig.m_iFeeType;
m_iFeeValue = dlgConfig.m_iFeeValue;
m_iLocalLisPort = dlgConfig.m_iLocalLisPort;
m_strLocalPwd = dlgConfig.m_strLocalPwd;
m_strLocalUserName = dlgConfig.m_strLocalUserName;
m_strMsgContent = dlgConfig.m_strMsgContent;
m_iMsgFmt = dlgConfig.m_iMsgFmt;
m_iMsgLevel = dlgConfig.m_iMsgLevel;
m_iRepFlag = dlgConfig.m_iRepFlag;
m_strServerIP = dlgConfig.m_strServerIP;
m_strServerPwd = dlgConfig.m_strServerPwd;
m_iServerLisPort = dlgConfig.m_iServerLisPort;
m_strServerUserName = dlgConfig.m_strServerUserName;
m_lSourceID = dlgConfig.m_lSourceID;
m_iSPNumber = dlgConfig.m_iSPNumber;
if(0 != WriteConfigInfo())
ShowRunState("配置信息写入配置文件时发生错误!", 0);
else
ShowRunState("成功将配置信息写入配置文件!", 0);
}
}
void CSgipServiceDemoDlg::OnBtnStoptest()
{
m_bStartTest = FALSE;
m_BtnMTMOStart.EnableWindow(FALSE);
m_BtnMTMOStop.EnableWindow(FALSE);
m_BtnMOCTStart.EnableWindow(FALSE);
m_BtnMOCTStop.EnableWindow(FALSE);
m_BtnMTCTStart.EnableWindow(FALSE);
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow(FALSE);
TRACE("OnBtnStoptest()(let all the worker threads exit)!\n");
if(m_iTestPhase >= 0)
{
SetEvent(m_hTMTAppExit);
SetEvent(m_hTMOAppExit);
SetEvent(m_hTMOMTAppExit);
while (WaitForSingleObject(m_hTMTExit, 0) != WAIT_OBJECT_0)
{
Sleep(100);
}
while (WaitForSingleObject(m_hTMOExit, 0) != WAIT_OBJECT_0)
{
Sleep(100);
}
while (WaitForSingleObject(m_hTMOMTExit, 0) != WAIT_OBJECT_0)
{
Sleep(100);
}
}
TRACE("OnBtnStoptest()(all the worker threads have exited)!\n");
m_SocketRes.ExitSocket();
m_iTestPhase = -1;
m_BtnStartTest.EnableWindow();
m_BtnConfig.EnableWindow();
}
void CSgipServiceDemoDlg::OnCancel()
{
// TODO: Add extra cleanup here
if(m_iTestPhase > 0)
{
MessageBox("请先停止任何测试再退出!" , "提示");
return;
}
if(IDOK == MessageBox("真的要退出吗?", "退出", MB_OKCANCEL))
{
OnBtnStoptest();
if (m_hTMTAppExit != NULL)
::CloseHandle(m_hTMTAppExit);
if (m_hTMTExit != NULL)
::CloseHandle(m_hTMTExit);
if (m_hTMOAppExit != NULL)
::CloseHandle(m_hTMOAppExit);
if (m_hTMOExit != NULL)
::CloseHandle(m_hTMOExit);
if (m_hTMOMTAppExit != NULL)
::CloseHandle(m_hTMOMTAppExit);
if (m_hTMOMTExit != NULL)
::CloseHandle(m_hTMOMTExit);
CDialog::OnCancel();
}
}
void CSgipServiceDemoDlg::OnCheckViewstate()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
void CSgipServiceDemoDlg::OnCheckLogstate()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
void CSgipServiceDemoDlg::OnCheckWaitresp()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
/*int CSgipServiceDemoDlg::Callback_OnSMSSubmitResp(unsigned long ulTimeID,
unsigned long ulSgipSerial,
int iSubmitResult)
{
return 0;//在该测试程序中不做Submit Resp包的性能测试!!!
int iRet = 0;
CSingleLock singleLock(&m_csSMSSubmitResp);
if(singleLock.Lock()&&singleLock.IsLocked())
{
SMSSubmitResp smssubmitresp;
smssubmitresp.ulTimeID = ulTimeID;
smssubmitresp.ulSgipSerial = ulSgipSerial;
smssubmitresp.iSubmitResult = iSubmitResult;
POSITION pos = m_SMSSubmitRespList.AddHead(smssubmitresp);
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}*/
int CSgipServiceDemoDlg::Callback_OnSMSDeliver(unsigned long ulSgipSerial,
unsigned long ulTimeID,
CString strGSMNo,
CString strDeliverMsg)
{
int iRet = 0;
if(2 == m_iTestPhase || 3 == m_iTestPhase)//只在做MO、MOMT性能测试时才接收deliver消息!!
{
CSingleLock singleLock(&m_csSMSDeliver);
if(singleLock.Lock()&&singleLock.IsLocked())
{
SMSDeliver smsdeliver;
smsdeliver.ulTimeID = ulTimeID;
smsdeliver.ulSgipSerial = ulSgipSerial;
smsdeliver.strGSMNo = strGSMNo;
smsdeliver.strDeliverMsg = strDeliverMsg;
POSITION pos = m_SMSDeliverList.AddHead(smsdeliver);
singleLock.Unlock();
}
else
{
iRet = -1;
}
}
return iRet;
}
int CSgipServiceDemoDlg::Callback_OnSMSReport(unsigned long ulSgipSerial,
unsigned long ulTimeID,
CString strGSMNo,
int iState,
int iErrorCode)
{
return 0;//在该测试程序中不做report包的性能测试!!!
int iRet = 0;
CSingleLock singleLock(&m_csSMSReport);
if(singleLock.Lock()&&singleLock.IsLocked())
{
SMSReport smsreport;
smsreport.ulTimeID = ulTimeID;
smsreport.ulSgipSerial = ulSgipSerial;
smsreport.strGSMNo = strGSMNo;
smsreport.iState = iState;
smsreport.iErrorCode = iErrorCode;
POSITION pos = m_SMSReportList.AddHead(smsreport);
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}
//retvalue: -1:some errors
// 0:get nothing
// 1:get one!
/*int CSgipServiceDemoDlg::GetSMSSubmitResp(SMSSubmitResp &smssubmitresp)
{
int iRet = 0;
CSingleLock singleLock(&m_csSMSSubmitResp);
if(singleLock.Lock()&&singleLock.IsLocked())
{
if(m_SMSSubmitRespList.GetCount() <= 0)
{
iRet = 0;
singleLock.Unlock();
return iRet;
}
smssubmitresp = m_SMSSubmitRespList.RemoveTail();
iRet = 1;
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}*/
//retvalue: -1:some errors
// 0:get nothing
// 1:get one!
int CSgipServiceDemoDlg::GetSMSDeliver(SMSDeliver &smsdeliver)
{
int iRet = 0;
CSingleLock singleLock(&m_csSMSDeliver);
if(singleLock.Lock()&&singleLock.IsLocked())
{
if(m_SMSDeliverList.GetCount() <= 0)
{
iRet = 0;
singleLock.Unlock();
return iRet;
}
smsdeliver = m_SMSDeliverList.RemoveTail();
iRet = 1;
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}
//retvalue: -1:some errors
// 0:get nothing
// 1:get one!
int CSgipServiceDemoDlg::GetSMSReport(SMSReport &smsreport)
{
int iRet = 0;
CSingleLock singleLock(&m_csSMSReport);
if(singleLock.Lock()&&singleLock.IsLocked())
{
if(m_SMSReportList.GetCount() <= 0)
{
iRet = 0;
singleLock.Unlock();
return iRet;
}
smsreport = m_SMSReportList.RemoveTail();
iRet = 1;
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}
void CSgipServiceDemoDlg::OnBtnMtctstop()
{
// TODO: Add your control notification handler code here
m_BtnMTCTStop.EnableWindow(FALSE);
m_bStartMtctTest = FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -