📄 sgipservicedemodlg.cpp
字号:
m_lstrunstate.InsertItem(0, strTime);
m_lstrunstate.SetItemText(0, 1, strContent);
int iCount = m_lstrunstate.GetItemCount();
if (iCount > 200)
m_lstrunstate.DeleteItem(iCount-1);
singleLock.Unlock();
}
}
else
{//called by main thread
m_lstrunstate.InsertItem(0, strTime);
m_lstrunstate.SetItemText(0, 1, strContent);
int iCount = m_lstrunstate.GetItemCount();
if (iCount > 200)
m_lstrunstate.DeleteItem(iCount-1);
}
}
if(m_bLogState)
m_logFile.WriteLog(strContent);
}
void CSgipServiceDemoDlg::OnBtnStarttest()
{
// TODO: Add your control notification handler code here
m_bStartTest = TRUE;
m_BtnStartTest.EnableWindow(FALSE);
m_BtnConfig.EnableWindow(FALSE);
///////////////////
t_INIT_DEF ini_def;
ini_def.iLocalLisPort = m_iLocalLisPort;
ini_def.strLocalPwd = m_strLocalPwd;
ini_def.strLocalUserName = m_strLocalUserName;
ini_def.strServerIP = m_strServerIP;
ini_def.strServerPwd = m_strServerPwd;
ini_def.iServerLisPort = m_iServerLisPort;
ini_def.strServerUserName = m_strServerUserName;
ini_def.iSPNumber = m_iSPNumber;
ini_def.OnSMSSubmit = Callback_OnSMSSubmit;
m_SocketRes.InitSocket(ini_def);
//////////////////
ResetEvent(m_hTMTAppExit);
ResetEvent(m_hTMTExit);
ResetEvent(m_hTMOAppExit);
ResetEvent(m_hTMOExit);
ShowRunState("程序启动", 0);
AfxBeginThread(TMtct,this);
AfxBeginThread(TMoct,this);
m_iTestPhase = 0;
m_BtnMOCTStart.EnableWindow(TRUE);
m_BtnMTCTStart.EnableWindow(TRUE);
m_BtnStopTest.EnableWindow(TRUE);
}
void CSgipServiceDemoDlg::OnBtnMtctstart()
{
// TODO: Add your control notification handler code here
CTime tmBeginTime;
tmBeginTime = CTime::GetCurrentTime();
m_strEditMTCTBeginTime = tmBeginTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 1;
m_iEditMTCTRPN = 0;
m_strEditMTCTEndTime = "";
UpdateData(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
m_bStartMoctTest = TRUE;
if(!UpdateData(TRUE)) return;
CTime tmBeginTime;
tmBeginTime = CTime::GetCurrentTime();
m_strEditMOCTBeginTime = tmBeginTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 2;
m_BtnMOCTStop.EnableWindow();
m_BtnMOCTStart.EnableWindow(FALSE);
m_BtnMTCTStart.EnableWindow(FALSE);
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow(FALSE);
}
void CSgipServiceDemoDlg::OnBtnMtctstop()
{
// TODO: Add your control notification handler code here
CTime tmEndTime;
tmEndTime = CTime::GetCurrentTime();
m_strEditMTCTEndTime = tmEndTime.Format("%y-%m-%d %H:%M:%S");
UpdateData(FALSE);
m_iTestPhase = 0;
m_BtnMOCTStop.EnableWindow(FALSE);
m_BtnMOCTStart.EnableWindow();
m_BtnMTCTStart.EnableWindow();
m_BtnMTCTStop.EnableWindow(FALSE);
m_BtnStopTest.EnableWindow();
}
void CSgipServiceDemoDlg::OnBtnMoctstop()
{
// TODO: Add your control notification handler code here
m_BtnMTCTStop.EnableWindow(FALSE);
m_bStartMoctTest = FALSE;
}
void CSgipServiceDemoDlg::OnBtnConfig()
{
// TODO: Add your control notification handler code here
ReadConfigInfo();
CDlgConfig dlgConfig;
dlgConfig.m_strOrgPhoneNo = m_strOrgPhoneNo;
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_strServerIP = m_strServerIP;
dlgConfig.m_strServerPwd = m_strServerPwd;
dlgConfig.m_iServerLisPort = m_iServerLisPort;
dlgConfig.m_strServerUserName = m_strServerUserName;
dlgConfig.m_iSPNumber = m_iSPNumber;
if(IDOK == dlgConfig.DoModal())
{
m_strOrgPhoneNo = dlgConfig.m_strOrgPhoneNo;
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_strServerIP = dlgConfig.m_strServerIP;
m_strServerPwd = dlgConfig.m_strServerPwd;
m_iServerLisPort = dlgConfig.m_iServerLisPort;
m_strServerUserName = dlgConfig.m_strServerUserName;
m_iSPNumber = dlgConfig.m_iSPNumber;
if(0 != WriteConfigInfo())
ShowRunState("配置信息写入配置文件时发生错误!", 0);
else
ShowRunState("成功将配置信息写入配置文件!", 0);
}
}
void CSgipServiceDemoDlg::OnBtnStoptest()
{
m_bStartTest = 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);
while (WaitForSingleObject(m_hTMTExit, 0) != WAIT_OBJECT_0)
{
Sleep(100);
}
while (WaitForSingleObject(m_hTMOExit, 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);
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_OnSMSSubmit(unsigned long ulTimeID,
unsigned long ulSgipSerial,
CString strSpNumber,
BYTE UserCount,
CString strUserNumber,
CString strCorpID,
CString strServiceType,
BYTE FeeType,
CString strFeeValue,
CString strGivenValue,
BYTE AgentFlag,
BYTE MorelateoMTFlag,
BYTE Priority,
CString strExpireTime,
CString strScheduleTime,
BYTE ReportFlag,
BYTE TP_pid,
BYTE TP_udhi,
BYTE MessageCoding,
BYTE MessageType,
unsigned long ulMessageLength,
CString strMsgContent)
{
int iRet = 0;
CSingleLock singleLock(&m_csSMSSubmit);
if(singleLock.Lock()&&singleLock.IsLocked())
{
SMSSubmit smssubmit;
smssubmit.ulTimeID = ulTimeID;
smssubmit.ulSgipSerial = ulSgipSerial;
smssubmit.strSpNumber = strSpNumber;
smssubmit.UserCount = UserCount;
smssubmit.strUserNumber = strUserNumber;
smssubmit.strCorpID = strCorpID;
smssubmit.strServiceType = strServiceType;
smssubmit.FeeType = FeeType;
smssubmit.strFeeValue = strFeeValue;
smssubmit.strGivenValue = strGivenValue;
smssubmit.AgentFlag = AgentFlag;
smssubmit.MorelateoMTFlag = MorelateoMTFlag;
smssubmit.Priority = Priority;
smssubmit.strExpireTime = strExpireTime;
smssubmit.strScheduleTime = strScheduleTime;
smssubmit.ReportFlag = ReportFlag;
smssubmit.TP_pid = TP_pid;
smssubmit.TP_udhi = TP_udhi;
smssubmit.MessageCoding = MessageCoding;
smssubmit.MessageType = MessageType;
smssubmit.ulMessageLength = ulMessageLength;
smssubmit.strMsgContent = strMsgContent;
POSITION pos = m_SMSSubmitList.AddHead(smssubmit);
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}
//retvalue: -1:some errors
// 0:get nothing
// 1:get one!
int CSgipServiceDemoDlg::GetSMSSubmit(SMSSubmit &smssubmit)
{
int iRet = 0;
CSingleLock singleLock(&m_csSMSSubmit);
if(singleLock.Lock()&&singleLock.IsLocked())
{
if(m_SMSSubmitList.GetCount() <= 0)
{
iRet = 0;
singleLock.Unlock();
return iRet;
}
smssubmit = m_SMSSubmitList.RemoveTail();
iRet = 1;
singleLock.Unlock();
}
else
{
iRet = -1;
}
return iRet;
}
int CSgipServiceDemoDlg::DeliverOneMsg(CString strUserNum, CString strContent, unsigned long ulSgipSerialNo, int iMsgCoding, BOOL bWaitResp)
{
return m_SocketRes.DeliverOneMsg(strUserNum,
strContent,
ulSgipSerialNo,
iMsgCoding,
bWaitResp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -