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

📄 recsysdlg.cpp

📁 百色电信中继电话录音系统,是对于电话会议接入到本中继系统进行电话录音
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			break;
		case PROCSATAE_FAILD: 
			{
				m_trk_state.SetIcon(hicons[3].m_hIcon);
				m_trk_state_hold++;
				if(m_trk_state_hold%10==0)
				{
					sprintf(ts,"链路或电路故障%f分钟,请检查!",m_ftp_state_hold/120);
					m_trunkmsglist.InsertString(0,ts);
					//拨打告警电话
				}
				
			}
			break;
		}
		switch(ModernProc_state) {
		case PROCSTATE_NOTSTART: 
			{
				m_mod_state.SetIcon(hicons[0].m_hIcon);
				m_mod_state_hold++;
				if(m_mod_state_hold>10)
					ModernProc_state=PROCSTATE_WARNING;
			}
			break;
		case PROCSTATE_WORKING: 
			{
				m_mod_state.SetIcon(hicons[1].m_hIcon);
				m_mod_state_hold=0;
			}
			break;
		case PROCSTATE_WARNING: 
			{
				m_mod_state.SetIcon(hicons[2].m_hIcon);
				m_mod_state_hold++;
				if(m_mod_state_hold>10)
					ModernProc_state=PROCSATAE_FAILD;
			}
			break;
		case PROCSATAE_FAILD: 
			{
				m_mod_state.SetIcon(hicons[3].m_hIcon);
				m_mod_state_hold++;
				if(m_mod_state_hold%5==0)
				{
					sprintf(ts,"MODERM失效%ld秒钟,请检查!",m_mod_state_hold/2);
					m_trunkmsglist.InsertString(0,ts);
					//重启告警进程
					StartModemWarn();	
				}
			}
			break;
		}
		ProcCommunicate(PROCCESS_WORKING);
	}
	CDialog::OnTimer(nIDEvent);
}

void CRecsysDlg::OnResetFtpTh() 
{
	// TODO: Add your control notification handler code here
	m_trunkmsglist.AddString("手动重启FTP线程!");
	if(EndFtpTh())
	{
		if(StartFtpTh())
			m_trunkmsglist.AddString("手动重启FTP线程成功!");
		else m_trunkmsglist.AddString("手动重启FTP线程失败,请稍后再试!");
	}
	else
	{
		m_trunkmsglist.AddString("FTP线程结束失败,不能重启!");
	}
}

void CRecsysDlg::OnResetModTh() 
{
	// TODO: Add your control notification handler code here
	
}

void CRecsysDlg::OnResetSqlTh() 
{
	// TODO: Add your control notification handler code here
	
}

void CRecsysDlg::OnResetTrkTh() 
{
	// TODO: Add your control notification handler code here
	
}

void CRecsysDlg::OnRstFtpCheck() 
{
	// TODO: Add your control notification handler code here
	
}

void CRecsysDlg::OnRstModCheck() 
{
	// TODO: Add your control notification handler code here
	
}

void CRecsysDlg::OnRstSqlCheck() 
{
	// TODO: Add your control notification handler code here
	
}

void CRecsysDlg::OnRstTrkCheck() 
{
	// TODO: Add your control notification handler code here
	
}

BOOL CRecsysDlg::StartSsmmonitor()
{

	// zero out and initialize STARTUPINFO
	pH=NULL;
	memset( &si, 0, sizeof( si ) );
	si.cb = sizeof( si );
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOW;
	BOOL proc_ret=FALSE;
	try
	{
		proc_ret=CreateProcess(NULL,( char * )LPCSTR( "c:\\ShCti\\Ss7Monitor.exe" ),
			NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,
			( char * )LPCSTR( "c:\\ShCti\\" ),&si,&pi);
		if(proc_ret)
		{
			m_trunkmsglist.AddString("Ss7Monitor启动成功");
			pH=pi.hProcess;
		}
		else
		{
			m_trunkmsglist.AddString("Ss7Monitor启动失败");
		}
	}
	catch (...) 
	{
		m_trunkmsglist.AddString("Ss7Monitor启动异常");
		proc_ret=false;
	}
	return proc_ret;
}

BOOL CRecsysDlg::EndSsmmonitor()
{
	BOOL proc_ret=FALSE;
	try
	{
		if(pH!=NULL)
		{
			proc_ret=TerminateProcess( pH, 0 );
			if(proc_ret)
			{
				m_trunkmsglist.AddString("Ss7Monitor程序结束成功");
				pH=pi.hProcess;
			}
			else
			{
				m_trunkmsglist.AddString("Ss7Monitor程序结束失败");
			}
		}
		else
		{
			m_trunkmsglist.AddString("Ss7Monitor程序未启动");
		}
	}
	catch (...) 
	{
		m_trunkmsglist.AddString("Ss7Monitor程序结束异常");
		proc_ret=false;
	}
/*	CString str="Ss7Monitor";
	CWnd *pWnd=CWnd::FindWindow(NULL,str);
	if(pWnd)
		pWnd->PostMessage(WM_QUIT,0,0); */
	return proc_ret;
}

BOOL CRecsysDlg::StartFtpTh()
{
	FtpProc_pTh=NULL;
	FtpProc_pTh = AfxBeginThread( RUNTIME_CLASS( CFtpProc ) );
	//
	if(FtpProc_pTh)
		return true;
	else
		return false;;
}

BOOL CRecsysDlg::EndFtpTh()
{
	DWORD exitcode=StopWinThread(FtpProc_pTh,3000);
	if(exitcode==99)
		return false;
	else return true;
}

BOOL CRecsysDlg::StartSqlTh()
{
	//
	SqlProc_pTh=NULL;
	SqlProc_pTh = AfxBeginThread( RUNTIME_CLASS( CSqlProc ) );
	//
	if(SqlProc_pTh)
		return true;
	else
		return false;
}

BOOL CRecsysDlg::EndSqlTh()
{
	DWORD exitcode=StopWinThread(SqlProc_pTh,3000);
	if(exitcode==99)
		return false;
	else return true;
}

BOOL CRecsysDlg::StartModernTh()
{
	BOOL th_ret=false;
	//
	//
	return th_ret;
}

BOOL CRecsysDlg::EndModernTh()
{
	DWORD exitcode=StopWinThread(ModProc_pTh,3000);
	if(exitcode==99)
		return false;
	else return true;
}

BOOL CRecsysDlg::StartTrkTh()
{
	BOOL th_ret=false;
	//
	//
	return th_ret;
}

BOOL CRecsysDlg::EndTrkTh()
{
	BOOL th_ret=false;
	//
	//
	return th_ret;
}

void CRecsysDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
	EndTrkTh();
	EndFtpTh();
	EndSqlTh();
	EndModernTh();
	Sleep(1000);
	EndSsmmonitor();
}

LRESULT CRecsysDlg::OnProcMsg(WPARAM wParam, LPARAM lParam)
{
	CString ts;
	char state[51];
	char state2[51];
	char curtime[30];
	char *endchar;
	long templ=0;
	long groupid=0;
	SYSTEMTIME systime;
	GetLocalTime(&systime);
	sprintf(curtime,"%04d-%02d-%02d %02d:%02d:%02d",
	systime.wYear,systime.wMonth,systime.wDay,systime.wHour,systime.wMinute,systime.wSecond);
	if(m_trunkmsglist.GetCount()>1000)
		m_trunkmsglist.ResetContent();
	switch(lParam) {
	case SQLPROC_SHOWMSG:
		{
			ts.Format("(%s):%s",curtime,Sql_ProcMsg[wParam]);
			m_trunkmsglist.InsertString(0,ts);
			WriteLog(ts);
		}
		break;
	case SQLPROC_NEEDFTP:
		{
			ts.Format("%s",Sql_ProcMsg[wParam]);
			int stridx=ts.Delete(0,7);
			strcpy(state,ts);
			groupid=strtol(state,&endchar,10);
			//发送FTP消息
			strcpy(ftpinfo[m_ftpinfopos].filename,Sql_ProcMsg[wParam]);
			ftpinfo[m_ftpinfopos].groupid=groupid;
			FtpProc_pTh->PostThreadMessage(FTP_WANTE,m_ftpinfopos,0);
			m_ftpinfopos=(m_ftpinfopos+1)%FTPQUEUE_MAX;
		}
		break;
	case SQLPROC_SERV_FAILD :
		{
			ts.Format("(%s):%s",curtime,"数据库不可用");
			m_trunkmsglist.InsertString(0,ts);
			SqlServer_state=PROCSTATE_WARNING;
			WriteLog(ts);
		}
		break;
	case SQLPROC_SERV_RECOVER:
		{
			ts.Format("(%s):%s",curtime,"数据库连接恢复");
			m_trunkmsglist.InsertString(0,ts);
			SqlServer_state=PROCSTATE_WORKING;
			WriteLog(ts);
		}
		break;
	case SQLPROC_WORKING:
		{
			//界面显示正常
			SqlServer_state=PROCSTATE_WORKING;
		}
		break;
	case FTP_FAILD :
		{
			strcat(ftpinfo[wParam].statemsg,curtime);
			m_trunkmsglist.InsertString(0,ftpinfo[wParam].statemsg);
			ts.Format("insert into FTP_FAILD values"
				"('%s','%s',%d,0)",curtime,ftpinfo[wParam].filename,ftpinfo[wParam].groupid);
			sprintf(Sql_Command[m_sqlcompos],"%s",ts);
			SqlProc_pTh->PostThreadMessage(WM_EXESQL,m_sqlcompos,0);
			m_sqlcompos=(m_sqlcompos+1)%SQLPROC_MAXQUEUE;
			ts.Format("(%s)%s上传失败!",curtime,ftpinfo[wParam].filename);
			WriteLog(ts);
		}
		break;
	case FTP_WORKING:
		{
			FtpServer_state=PROCSTATE_WORKING;
		}
		break;
	case FTPSERVER_FAILD:
		{
			FtpServer_state=PROCSTATE_WARNING;
			ts.Format("(%s)FTPSERVER不可用!",curtime);
			m_trunkmsglist.InsertString(0,ts);
			WriteLog(ts);
		}
		break;
	case FTPSERVER_RECORVER:
		{
			FtpServer_state=PROCSTATE_WORKING;
			SqlProc_pTh->PostThreadMessage(WM_GETFTPQUEUE,0,0);
		}
		break;
	case SHOW_FTP_MSG :
		{
			strcat(ftpinfo[wParam].statemsg,curtime);
			m_trunkmsglist.InsertString(0,ftpinfo[wParam].statemsg);
		}
		break;
	case SHOW_CHN_NOTUSE :
		{
			m_trunkstatelist.GetItemText( orginfo_queue[wParam].trunkno, 1, state, 50 );
			if(strcmp(state,"不可用")==0)
				return 0;
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,1,"不可用");
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,2,"");
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,3,"");
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,4,"");
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,5,"");
			TrunkProc_state=PROCSTATE_WARNING;
		}
		break;
		case SHOW_CHN_GRS :
		{
			m_trunkstatelist.GetItemText( orginfo_queue[wParam].trunkno, 1, state, 50 );
			if(strcmp(state,"电路复原")==0)
				return 0;
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,1,"电路复原");
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,2,"");
			m_trunkstatelist.SetItemText(orginfo_queue[wParam].trunkno,3,"");

⌨️ 快捷键说明

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