⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 provincedlg.cpp

📁 一个手机通信的源代码 一个手机通信的源代码一个手机通信的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	m_Action->InitProvinceArray(m_ProvinceArray.GetSize());//初始化个数 
    
	for(i=0;i<m_ProvinceArray.GetSize();i++)
	{
	 StructProvince& Temp=m_ProvinceArray.ElementAt(i);
	 m_Action->InitQueuePath(Temp.m_csInQueue,Temp.m_csOutQueue ,Temp.m_csReportQueue,Temp.m_csSpyQueue ,Temp.m_csControlQueue,i);   
	 m_Action->MoInitConnect(Temp.m_csIsmgIP , Temp.m_IsmgPort , Temp.m_csICPID , Temp.m_csSourceNode,Temp.m_IsmgUserID , Temp.m_csIsmgPassword , Temp.m_LocalPort ,Temp.m_ServiceNumber,i,Temp.m_csProvincename);
	 m_Action->MoStartCmppServer(m_MoThreadNum,m_ProvinceArray.GetAt(i).m_MtThreadNum ,i);
	}
    m_Action->StartMoThread();//启动Mothread
	m_MoThreadNum=GetDlgItemInt(IDC_MOTHREADNUM);
	m_MtThreadNum=GetDlgItemInt(IDC_MTTHREADNUM);

	m_Action->SetSaveReport(m_bSavereport); 

	InitListCtrl();
}

//停止服务
void CProvinceDlg::OnStopserver() 
{
	KillTimer(GETMSGS);
	KillTimer(EVENTDISPLAY);

	if(m_Action!=NULL)
	{
	 m_Action->MoCloseCmppServer();
	 delete m_Action;
	 m_Action=NULL;
	}
  CTime CurTime=CTime::GetCurrentTime();
  CString csContent="Success to close MoThread and MtThread!";
  m_DisplayInfo.Format("%s %s",CurTime.Format("%Y-%m-%d %H:%M:%S"),csContent); 
  UpdateData(FALSE);

}

void CProvinceDlg::Load()
{
  char FileName[255];
  UINT len=::GetCurrentDirectory(255,FileName);
  FileName[len]=0;
  CString csFileName=::strcat(FileName,"\\ProvinceInfo.ini");//得到包含路径的完整文件名
  m_AutoRun=::GetPrivateProfileInt("Province","AutoRun",0,csFileName);
  UINT ProvinceNum=::GetPrivateProfileInt("Province","ProvinceNum",0,csFileName);
  UINT i;
  CString TempSection;
 
  m_ProvinceList.ResetContent();
 
  for(i=0;i<ProvinceNum;i++)
  {
	  StructProvince ProvinceInfo;
	  memset(&ProvinceInfo,0,sizeof(ProvinceInfo));
	  TempSection.Format("Province%d",i);
	  ::GetPrivateProfileString(TempSection,"ProvinceName",NULL,
		             ProvinceInfo.m_csProvincename,50,csFileName);//得到省ID
	  ::GetPrivateProfileString(TempSection,"RemoteIP",NULL,ProvinceInfo.m_csIsmgIP,20,csFileName);
	  ProvinceInfo.m_IsmgPort =::GetPrivateProfileInt(TempSection,"RemotePort",0,csFileName);
	  ProvinceInfo.m_LocalPort=::GetPrivateProfileInt(TempSection,"LocalPort",0,csFileName);
	  ProvinceInfo.m_MtThreadNum=::GetPrivateProfileInt(TempSection,"MtThreadNum",0,csFileName);
	  ProvinceInfo.m_MoThreadNum=::GetPrivateProfileInt(TempSection,"MoThreadNum",0,csFileName);
	  ::GetPrivateProfileString(TempSection,"ICPID",NULL,ProvinceInfo.m_csICPID,10,csFileName);
	  ::GetPrivateProfileString(TempSection,"USERID",NULL,ProvinceInfo.m_IsmgUserID,10,csFileName);
	  ::GetPrivateProfileString(TempSection,"ServiceNumber",NULL,ProvinceInfo.m_ServiceNumber ,10,csFileName);
	  ::GetPrivateProfileString(TempSection,"SourceNode",NULL,ProvinceInfo.m_csSourceNode,11,csFileName);

	  ::GetPrivateProfileString(TempSection,"Password",NULL,ProvinceInfo.m_csIsmgPassword ,10,csFileName);

	  ::GetPrivateProfileString(TempSection,"InQueuePath",NULL,ProvinceInfo.m_csInQueue  ,255,csFileName);
	  ::GetPrivateProfileString(TempSection,"OutQueuePath",NULL,ProvinceInfo.m_csOutQueue  ,255,csFileName);
	  ::GetPrivateProfileString(TempSection,"ControlQueuePath",NULL,ProvinceInfo.m_csControlQueue  ,255,csFileName);
	  ::GetPrivateProfileString(TempSection,"SpyQueuePath",NULL,ProvinceInfo.m_csSpyQueue ,255,csFileName);
	  ::GetPrivateProfileString(TempSection,"ReportQueuePath",NULL,ProvinceInfo.m_csReportQueue,255,csFileName);
      m_ProvinceArray.Add(ProvinceInfo);
	  m_ProvinceList.InsertString(i, ProvinceInfo.m_csProvincename);//显示该移动
  }

  m_ProvinceList.SetCurSel(0);
  m_ProvinceList.GetLBText(0,m_csProvincename);

  DisplayAllInfo(0);
}

void CProvinceDlg::Save()
{
  UpdateData();
  CReg Reg;
  Reg.SetKey(m_csProvincename,"m_csProvincename",m_csProvincename);
  Reg.SetKey(m_csProvincename,"m_csControlQueue",m_csControlQueue);
  Reg.SetKey(m_csProvincename,"m_csICPID",m_csICPID);
  Reg.SetKey(m_csProvincename,"m_csInQueue",m_csInQueue);
  Reg.SetKey(m_csProvincename,"m_csIsmgIP",m_csIsmgIP);
  Reg.SetKey(m_csProvincename,"m_csIsmgPassword",m_csIsmgPassword);
  Reg.SetKey(m_csProvincename,"m_IsmgPort",m_IsmgPort);
  Reg.SetKey(m_csProvincename,"m_IsmgUserID",m_IsmgUserID);
  Reg.SetKey(m_csProvincename,"m_csOutQueue",m_csOutQueue);
  Reg.SetKey(m_csProvincename,"m_csReportQueue",m_csReportQueue);
  Reg.SetKey(m_csProvincename,"m_csSpyQueue",m_csSpyQueue);
  Reg.SetKey(m_csProvincename,"m_LocalPort",(int&)m_LocalPort);
  Reg.SetKey(m_csProvincename,"m_ServiceNumber",m_ServiceNumber);
  Reg.SetKey(m_csProvincename,"m_SourceNode",m_SourceNode);

}


void CProvinceDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	OnStopserver();
	Save();
	m_ProvinceArray.RemoveAll();
}

void CProvinceDlg::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent==EVENTDISPLAY)
	{
	 CString NewInfo = "";
	 int LostMsg = 0;
     m_Action->GetStatusNewInfo(NewInfo,LostMsg);
	 if(NewInfo!="")
	 {
	    //if(m_DisplayInfo.GetLength()>=20000) m_DisplayInfo.Empty();

     	int row = m_ctrlList.GetItemCount();
		if( row > 80 )
		{
			m_ctrlList.DeleteAllItems();
			row = 0;
		}
		row = m_ctrlList.InsertItem(row,NewInfo) ;

//	  m_DisplayInfo=NewInfo+m_DisplayInfo;
//	  UpdateData(FALSE);
//      if(m_DisplayInfo.GetLength()>=20000)
//		  m_DisplayInfo.Empty();
	 }
	}
	if(nIDEvent==GETMSGS)
	{
     RefrashListCtrl();
	}
	CDialog::OnTimer(nIDEvent);
}

void CProvinceDlg::OnDisplayinfo() 
{
	m_IsDisplayAllInfo=!m_IsDisplayAllInfo;
	if(m_IsDisplayAllInfo)
	{
	  if(m_Action!=NULL)
	  {
		m_Action->SetDisplayAllInfo();
	    SetTimer(EVENTDISPLAY,500,NULL);
	  }
	}
	else
	{
	  if(m_Action!=NULL)
	  {
	   m_Action->SetDisplayForbidden();
	   KillTimer(EVENTDISPLAY);
	  }
	}
}

//控制是否返回状态报告
void CProvinceDlg::OnGetreport() 
{
	
}


void CProvinceDlg::OnLoadset() 
{
	Load();
	//m_ProvinceList.SetCurSel(m_SelProvince);
}
//保存状态报告
void CProvinceDlg::OnSavereport() 
{
    m_bSavereport=!m_bSavereport;
	if(m_Action!=NULL)
       m_Action->SetSaveReport(m_bSavereport);
}

//初始化ListCtrl
void CProvinceDlg::InitListCtrl()
{
 m_ThreadsList.DeleteAllItems();
 int i=0,ThreadsNum=m_MtThreadNum+m_MoThreadNum  ;
 CString csID;
 //0是Mo,1是Mt
 for(i=0;i<ThreadsNum;i++)
 {
   UINT SubmitMsgs,DeliverMsgs,DeliveredMsgs,ReconnectTimes;
   csID.Format("%d",i);
   CString csConnectStatus;
   m_Action->GetMsgNum(SubmitMsgs,DeliverMsgs,DeliveredMsgs,ReconnectTimes,i);
   m_Action->GetConnectStatus(csConnectStatus,i);//得到连接状态
   if(i<m_MtThreadNum)//Mt
    m_ThreadsList.InsertItem(i,"Mt线程");
   else
    m_ThreadsList.InsertItem(i,"Mo线程");
   csID.Format("%d",DeliverMsgs);
   m_ThreadsList.SetItemText(i,1,csID);
   csID.Format("%d",SubmitMsgs);
   m_ThreadsList.SetItemText(i,2,csID);
   csID.Format("%d",DeliveredMsgs);
   m_ThreadsList.SetItemText(i,3,csID);
   csID.Format("%d",ReconnectTimes);
   m_ThreadsList.SetItemText(i,4,csID);
   m_ThreadsList.SetItemText(i,5,csConnectStatus);

 }  
}

//显示信息
void CProvinceDlg::RefrashListCtrl()
{
 int i=0,ThreadsNum=m_MtThreadNum+m_MoThreadNum;
 CString csID;

 //0是Mo,1是Mt
 for(i=0;i<ThreadsNum;i++)
 {
   UINT SubmitMsgs,DeliverMsgs,DeliveredMsgs,ReconnectTimes;
   csID.Format("%d",i);
   CString csConnectStatus;
   m_Action->GetMsgNum(SubmitMsgs,DeliverMsgs,DeliveredMsgs,ReconnectTimes,i);
   m_Action->GetConnectStatus(csConnectStatus,i);//得到连接状态
   csID.Format("%d",DeliverMsgs);
   m_ThreadsList.SetItemText(i,1,csID);
   csID.Format("%d",SubmitMsgs);
   m_ThreadsList.SetItemText(i,2,csID);
   csID.Format("%d",DeliveredMsgs);
   m_ThreadsList.SetItemText(i,3,csID);
   csID.Format("%d",ReconnectTimes);
   m_ThreadsList.SetItemText(i,4,csID);
   m_ThreadsList.SetItemText(i,5,csConnectStatus);
}  
}

//显示所有基本接入信息
void CProvinceDlg::DisplayAllInfo(int Index)
{
 
 m_csControlQueue=m_ProvinceArray.GetAt(Index).m_csControlQueue ;
 m_csICPID=m_ProvinceArray.GetAt(Index).m_csICPID ;
 m_csInQueue=m_ProvinceArray.GetAt(Index).m_csInQueue; 
 m_csIsmgIP=m_ProvinceArray.GetAt(Index).m_csIsmgIP; 
 m_csIsmgPassword=m_ProvinceArray.GetAt(Index).m_csIsmgPassword; 
 m_IsmgPort=m_ProvinceArray.GetAt(Index).m_IsmgPort; 
 m_IsmgUserID=m_ProvinceArray.GetAt(Index).m_IsmgUserID; 
 m_csOutQueue=m_ProvinceArray.GetAt(Index).m_csOutQueue; 
 m_csReportQueue=m_ProvinceArray.GetAt(Index).m_csReportQueue; 
 m_csSpyQueue=m_ProvinceArray.GetAt(Index).m_csSpyQueue; 
 m_LocalPort=m_ProvinceArray.GetAt(Index).m_LocalPort; 
 m_ServiceNumber=m_ProvinceArray.GetAt(Index).m_ServiceNumber; 
 m_MtThreadNum=m_ProvinceArray.GetAt(Index).m_MtThreadNum;
 m_MoThreadNum=m_ProvinceArray.GetAt(Index).m_MoThreadNum;
 m_SourceNode=m_ProvinceArray.GetAt(Index).m_csSourceNode;
 UpdateData(FALSE);
}


void CProvinceDlg::OnSelchangeProvincename() 
{
	 m_SelProvince=m_ProvinceList.GetCurSel();
	 DisplayAllInfo(m_SelProvince);
	if(m_Action!=NULL)
	  m_Action->SetDisplayProvince(m_SelProvince);
}

void CProvinceDlg::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	//CString WindowText="联通短息网关";
//
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -