📄 mdf.cpp
字号:
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 + -