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

📄 mdf.cpp

📁 电信机房MDF、电源柜监控源码,主要用在通信机房配线设备监控、电源柜监控
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	return 0 ;
}

//##ModelId=44B6F88502D4
int CMDFApp::ReStart()
{
	CString strTip ;

	try
	{
		if( m_bReStart )
			return 1 ;

		m_bReStart = TRUE ;
		strTip.Format("系统:MDF 监测中心 进行重启") ;
		Show(strTip) ;
		theApp.OutPut(strTip) ;
		//m_pComm->StopComm() ;
		//m_pComm->StartComm() ;
		m_bReStart = FALSE ;
	}
	catch(_com_error e)
	{
		strTip.Format("异常:关闭Web服务时 发生异常:%s",(LPCSTR)e.Description()) ;
		theApp.OutPut(strTip) ;
		return -1 ;
	}

	return 0 ;
}

//##ModelId=44B6F88502D0
void CMDFApp::SetTimeOut(int nId, int nTime,sCommEQ* pEQ)
{

	CString strTip ;
	//try
	//{
	//	switch( nId )
	//	{
	//	case ID_MSG_TIMEOUT :
	//		if( m_bTOMsg )
	//			return ;

	//		if( m_pComm->m_bIsDebug )
	//			((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.SetTimer(nId,nTime,NULL) ;
	//		else
	//			((CMDFDlg*)m_pMainWnd)->SetTimer(nId,nTime,NULL) ;
	//		m_bTOMsg = TRUE ;
	//		break ;

	//	case ID_VOICE_TIMEOUT :
	//		if( m_bTOVoice )
	//			return ;
	//		if( m_pComm->m_bIsDebug )
	//			((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.SetTimer(nId,nTime,NULL) ;
	//		else
	//			((CMDFDlg*)m_pMainWnd)->SetTimer(nId,nTime,NULL) ;
	//		m_bTOVoice = TRUE ;

	//		break ;

	//	case ID_COM_SCAN :
	//		if( m_bTOScan )
	//			return ;
	//		if( m_pComm->m_bIsDebug )
	//			((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.SetTimer(nId,nTime,NULL) ;
	//		else
	//			((CMDFDlg*)m_pMainWnd)->SetTimer(nId,nTime,NULL) ;
	//		m_bTOScan = TRUE ;
	//		break ;

	//	case ID_CONNECT_TIMEOUT:
	//		if( m_bTOConnect )
	//			return ;
	//		if( m_pComm->m_bIsDebug )
	//			((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.SetTimer(nId,nTime,NULL) ;
	//		else
	//			((CMDFDlg*)m_pMainWnd)->SetTimer(nId,nTime,NULL) ;
	//		m_bTOConnect = TRUE ;
	//		break ;

	//	default :
	//		break ;
	//	}
	//}
	//catch(_com_error e)
	//{
	//	CString strTip ;
	//	strTip.Format("异常:设置定时器时 发生异常:%s",(LPCSTR)e.Description()) ;
	//	m_pAdoDB->WriteLog(strTip) ;
	//	return ;
	//}

}
//##ModelId=44B6F88502C1
void CMDFApp::ClearTimeOut(int nId, sCommEQ *pEQ)
{


	//CString strTip ;
	//try
	//{
	//	switch( nId )
	//	{
	//	case ID_MSG_TIMEOUT :
	//		if( m_bTOMsg )
	//		{
	//			if( theApp.m_pComm->m_bIsDebug )
	//				((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.KillTimer(nId) ;
	//			else
	//				((CMDFDlg*)m_pMainWnd)->KillTimer(nId) ;
	//			m_bTOMsg = FALSE ;
	//		}
	//		break ;
	//	case ID_VOICE_TIMEOUT :
	//		if( m_bTOVoice )
	//		{
	//			if( theApp.m_pComm->m_bIsDebug )
	//				((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.KillTimer(nId) ;
	//			else
	//				((CMDFDlg*)m_pMainWnd)->KillTimer(nId) ;
	//			m_bTOVoice = FALSE ;
	//		}
	//		break ;
	//	case ID_COM_SCAN :
	//		if( m_bTOScan )
	//		{
	//			if( m_pComm->m_bIsDebug )
	//				((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.KillTimer(nId) ;
	//			else
	//				((CMDFDlg*)m_pMainWnd)->KillTimer( nId ) ;
	//			m_bTOScan = FALSE ;	

	//			strTip.Format("程序:CMDFApp::ClearTimeOut() 串口扫描 定时器被清除") ;
	//			theApp.TestWriteLog(strTip) ;//%%%
	//		}
	//		break ;
	//	case ID_CONNECT_TIMEOUT :
	//		if( m_bTOConnect )
	//		{
	//			if( m_pComm->m_bIsDebug )
	//				((CMDFDlg*)m_pMainWnd)->m_UI.m_DebugDlg.KillTimer(nId) ;
	//			else
	//				((CMDFDlg*)m_pMainWnd)->KillTimer( nId ) ;

	//			m_bTOConnect = FALSE ;	

	//			strTip.Format("程序:CMDFApp::ClearTimeOut() 通话 设置超时定时器") ;
	//			theApp.TestWriteLog(strTip) ;//%%%
	//		}
	//		break ;
	//	default :
	//		break ;
	//	}
	//}
	//catch(_com_error e)
	//{
	//	strTip.Format("异常:设置定时器时 发生异常:%s",(LPCSTR)e.Description()) ;
	//	m_pAdoDB->WriteLog(strTip) ;
	//	return ;
	//}
	
}

//##ModelId=44B6F88502A3
int CMDFApp::AddDebugAlarm(sCommEQ* pEQ,int nPort)
{
	return 0;
}

//##ModelId=44B6F88502A1
void CMDFApp::TestWriteLog(CString strTip)
{
	//if( m_bTest )
		//m_pAdoDB->WriteLog(strTip) ;
}

//##ModelId=44B6F885029F
BOOL CMDFApp::WriteTxtLog(CString strTxt)
{
	CString strPath,strTime;
	CFile fileLog ;
	char *cbuf;
	int nRet ;
	CMutex mutex;
	try
	{
		cbuf = new char[strTxt.GetLength()];
		cbuf = strTxt.GetBuffer();
		cbuf[strTxt.GetLength()] = '\0';
		if (dlgServer)
		{
			SendMessage(dlgServer->m_hWnd,WM_SHOWLOG,(WPARAM)cbuf,0);
		}
		if (m_Baseinfo.SaveLog == 1)
		{
			strTime = CTime::GetCurrentTime().Format ( "%Y-%m-%d %H:%M:%S" ) ;	//获取当前时间
			mutex.Lock();
			strPath = m_strPath + "Data\\log.txt" ;
			if (!PathFileExists((LPCTSTR)strPath))
				nRet = fileLog.Open( strPath, CFile::modeReadWrite | CFile::modeCreate );
			else
				nRet = fileLog.Open( strPath, CFile::modeWrite | CFile::modeRead );

			if(nRet)
			{
				
				fileLog.SeekToEnd();
				strTime += " ";
				strTime += strTxt;
				strTime += "\r\n";
				fileLog.Write(strTime.GetBuffer(0),strTime.GetLength()) ;
				if (m_Baseinfo.SaveLog == 1 && m_pAdoDB->GetConnectState() )
				{
					m_pAdoDB->WriteLog(strTime);
				}
			}
			fileLog.Close() ;
			mutex.Unlock();
			if (nRet) 
				return TRUE;
			else
				return FALSE;

		}
		
	}
	catch(_com_error e)
	{
		CString strTip ;
		strTip.Format("异常:CMDFApp::AddDebugAlarm() 发生异常:%s",(LPCSTR)e.Description()) ;
		TRACE(strTip);
		return FALSE ;
	}
}

//##ModelId=44B6F8850292
UINT CMDFApp::RefreshThd(LPVOID pPara)
{
	CString strTip ;
	
	return 0;
}


// 输出函数
//##ModelId=44B6F885037A
int CMDFApp::OutPut(CString sNote)
{
	
	//输出信息到调试窗口
	if (sNote.GetLength() == 0)
		return 0;
	TRACE(sNote);
	//输出信息到文件
	WriteTxtLog(sNote);
	//输出信息到数据库
	//m_pAdoDB->WriteLog(sNote);
	
	return 0;
}

// 初始化基本配置信息
int CMDFApp::IniBaseInfo(CBaseInfo & m_Info)
{
	CString strSQL,strTable,strTip,strField,strValue ;		//SQL语句
	_variant_t var;
	_RecordsetPtr pRsPtr ;
	int iValue;
	m_Baseinfo.DBIP			= _T("192.168.1.5");
	m_Baseinfo.DBNam		= _T("MDFDB");
	m_Baseinfo.UserID		= _T("sa");
	m_Baseinfo.UserPassword	= _T("");
	m_Baseinfo.WebPort		= 9001;
	m_Baseinfo.DevicePort	= 9002;
	m_Baseinfo.GSMPort		= 1;
	m_Baseinfo.SMSCenter	= _T("8613800755500");
	m_Baseinfo.SMSOpen		= FALSE;
	m_Baseinfo.VoiceOpen	= FALSE;
	m_Baseinfo.SMSOpen		= FALSE;
	m_Baseinfo.Interval		= 500;
	m_Baseinfo.SaveLog		= 0;
	m_Baseinfo.PlaySound    = 1;
	m_Baseinfo.Autostart	= 1;
	
	pRsPtr.CreateInstance(__uuidof(Recordset));
	strSQL.Format("Select * From CMTBaseCode Where SVMNote ='%s' Order By BCOrderNo " ,_T("SYSTEM") );
	int iResult = m_pAdoDB->ReadDB(strSQL,pRsPtr,strTip);
	if(iResult == 0)
	{
		while (!pRsPtr->adoEOF)
		{
			m_pAdoDB->GetFieldValue("BCNote",pRsPtr,strField);
			if (strField.Compare("WEBPORT") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.WebPort);		//WEB接收端口
			}else if (strField.Compare("DEVICEPORT") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.DevicePort);	//设备监测端口
			}else if (strField.Compare("GSMPORT") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,strValue);					//GSM发送端口
				strValue.Replace("COM","");
				iValue = atoi(strValue.GetBuffer());
				m_Baseinfo.GSMPort = iValue;

			}else if (strField.Compare("SMSCENTER") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.SMSCenter);		//短信息中心号码
			}else if (strField.Compare("SERVERPORT") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.ServerPort);	//与WEB服务接收端口
			}else if (strField.Compare("PHONENO") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.Phone);			//短信电话号码
			}else if (strField.Compare("CALLTEL") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.CallTel);		//语音告警号码
			}else if (strField.Compare("INTERVAL") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.Interval);		//轮询时间间隔(毫秒)
			}else if (strField.Compare("WEBIP") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.WebIP);			//WEB服务器的IP地址
			}else if (strField.Compare("SAVELOG") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.SaveLog);		//保存日志
			}else if (strField.Compare("AUTOSTART") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.Autostart);		//是否自动起动监测服务
			}else if (strField.Compare("PLAYSOUND") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.PlaySound);		//是否播放告警声音
			}else if (strField.Compare("CURRENTLEVEL") == 0)
			{
				m_pAdoDB->GetFieldValue("BCValue",pRsPtr,m_Baseinfo.AlarmRange);		//当前选定电流范围
			}					
			
			pRsPtr->MoveNext();
		}
		pRsPtr->Close();
	}
	
	//pRsPtr.Release();

	return 0;
}

// 重新起动监测服务
BOOL CMDFApp::RestartMonitoring(void)
{
	BOOL bResult = FALSE ;
	CString strNote;
	if (m_Baseinfo.MonitorStatus)
	{
		bResult = m_pMonitor->StopMonitoring();
		if(bResult )
		{
			delete m_pMonitor;
			m_Baseinfo.MonitorStatus = 0;
			strNote = "监测服务器已经关闭...";
			m_pMonitor = new CMonitor();
			if(m_pMonitor->StartMonitoring())
				if (m_pMonitor->StartAsking(100))
				{
					m_Baseinfo.MonitorStatus = 1;
					return(TRUE);
				}
		}
		else
			strNote = "监测服务器正在忙,还未关闭,请稍候重试...";
	}
	return FALSE;
}

void CMDFApp::OnCmStop()
{

	StopMonitoring();
	// TODO: 在此添加命令处理程序代码
}

// 起动监测服务
BOOL CMDFApp::StartMonitoring(void)
{
	BOOL bResult = FALSE ;
	CString strNote;
	if (m_Baseinfo.MonitorStatus != TRUE)
	{	
		//delete m_pMonitor;
		//m_Baseinfo.MonitorStatus = 0;
		strNote = "准备起动监测服务器...";
		WriteTxtLog(strNote);
		if(!m_pMonitor)
			m_pMonitor = new CMonitor();
		
		if(m_pMonitor->StartMonitoring())
		{
			Sleep(1000);
			if (m_pMonitor->StartAsking(500))
			{
				m_Baseinfo.MonitorStatus = 1;
				strNote = "监测服务器起动成功...";
				WriteTxtLog(strNote);
				bResult = TRUE;
				PostMessage(dlgServer->m_hWnd,WM_SERVICESTATUS,1,NULL);
			}
			else
				PostMessage(dlgServer->m_hWnd,WM_SERVICESTATUS,0,NULL);
		}else
			PostMessage(dlgServer->m_hWnd,WM_SERVICESTATUS,0,NULL);

		//起动GSM MODEM设备
		if (!m_Baseinfo.SMSOpen )
		{
			bResult = m_pMonitor->IniGsmInfo();
			m_Baseinfo.SMSOpen = bResult;
		}

		
	}else
	{
		strNote = "监测服务器正在运行...";
		WriteTxtLog(strNote);
		bResult = FALSE;
	}
	return bResult;
}

// 停止监测服务
BOOL CMDFApp::StopMonitoring(void)
{
	BOOL bResult = FALSE;	
	if(m_Baseinfo.MonitorStatus == 1  )
	{
		bResult = m_pMonitor->StopMonitoring();
		if (bResult)
			PostMessage(dlgServer->m_hWnd,WM_SERVICESTATUS,0,NULL);
	}

	if (m_Baseinfo.SMSOpen)
	{
		bResult = m_pMonitor->ClsoeGSM();
		if(bResult == TRUE)
		{
			m_Baseinfo.SMSOpen = FALSE;
		}
		else
		{
			m_Baseinfo.SMSOpen = TRUE;
		}
	}

	delete m_pMonitor;
	m_pMonitor = NULL;

	if (bResult)
	{
		m_Baseinfo.MonitorStatus = 0;
		bResult = TRUE;
		WriteTxtLog("监测服务器已经停止运行...");
	}
	else
	{
		bResult = FALSE;
		m_Baseinfo.MonitorStatus = 1;
		WriteTxtLog("监测服务器正在忙,稍后在停止...");

	}
	return bResult;
}

⌨️ 快捷键说明

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