📄 mainfrm.cpp
字号:
int iItem,iSunItem,iValue;
iValue = 0;
//CAlarmForm *p_Wnd = (CAlarmForm *)this->m_wndSplitter2.GetPane(1,0);
CAlarmForm *p_Wnd = (CAlarmForm *)this->m_wndSplitter.GetPane(0,1);
CListCtrl *m_listAlarm = &(p_Wnd->m_listAlarm);
pRsPtr.CreateInstance(__uuidof(Recordset));
/****************************************************************************
保存告警信息
****************************************************************************/
iSunItem = 1;
//LVITEM lvItem;
//取得被监测设备资料ID及序号
if(pRsPtr->State == 1 )
pRsPtr->Close();
strSQL.Format("Select * From VW_ModulePortNote Where SVMID = %d and SVMPSort = %d",port->SVMID,port->SVMPSort);
iResult = p_adodb->ReadDB(strSQL,pRsPtr,strTip);
if (iResult == 0)
{
strItem.Format("%d",m_listAlarm->GetItemCount() + 1 );
if (port->AlarmState == PORT_NORMAL)
iItem = m_listAlarm->InsertItem(m_listAlarm->GetItemCount() + 1,strItem.GetBuffer(),0);
else
iItem = m_listAlarm->InsertItem(m_listAlarm->GetItemCount() + 1,strItem.GetBuffer(),port->AlarmLevel );
p_adodb->GetFieldValue("SVSpotNote",pRsPtr,strItem);
if (strItem.GetLength() == 0)
{
p_adodb->GetFieldValue("SVMTrueName",pRsPtr,strItem);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
p_adodb->GetFieldValue("SVMPSort",pRsPtr,iValue);
strItem.Format("%d",iValue);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
}
else
{
p_adodb->GetFieldValue("SVDTrueName",pRsPtr,strItem);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
p_adodb->GetFieldValue("SVSpotNote",pRsPtr,strItem);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
}
if (port->AlarmState == PORT_NORMAL)
{
strItem = _T("销警");
::SendMessage(p_Wnd->m_hWnd,WM_STATUS_CHANGE,-1,0);
}
else
{
strItem = _T("告警");
::SendMessage(p_Wnd->m_hWnd,WM_STATUS_CHANGE,1,0);
}
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
strItem = port->tmUpdateTime.Format("%Y-%m-%d %H:%M:%S");
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
//持续秒数
CTimeSpan tmsTime = port->tmUpdateTime - port->tmStartTime;
long lSeconds = (long) tmsTime.GetTotalSeconds();
strItem.Format("%d",lSeconds);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
//告警值
strItem.Format("%5.0f",port->value);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
//告警级别
strItem.Format("%d",port->AlarmLevel);
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
//处理结果
if (port->AlarmState == PORT_NORMAL)
{
strItem = _T("自动销警");
m_listAlarm->SetItemText(iItem,iSunItem++,strItem);
}
}
pRsPtr->Close();
m_listAlarm->UpdateData(true);
//UpdateData(true);
return LRESULT();
}
void CMainFrame::OnShowcontrol()
{
// TODO: 在此添加命令处理程序代码
//CMDFDlg *dlgControl;
//dlgControl = new CMDFDlg(this);
//dlgControl->Create(IDD_MDFMAIN);
//dlgControl->ShowWindow(SW_SHOW);
//theApp.dlgServer->ShowWindow(SW_SHOW);
}
void CMainFrame::OnShowmainwin()
{
// TODO: 在此添加命令处理程序代码
ShowWindow(SW_SHOW);
}
//void CMainFrame::OnExit()
//{
// // TODO: 在此添加命令处理程序代码
// // TODO: Add your command handler code here
// NOTIFYICONDATA tnd ;
// //int i = AfxMessageBox("是否关闭服务器?",MB_YESNO|MB_ICONQUESTION) ;
// //if( i == 7 )
// //return ;
// //theApp.m_pComm->StopComm() ;
// tnd.cbSize = sizeof(NOTIFYICONDATA) ;
// tnd.hWnd = theApp.m_pMainWnd->m_hWnd ;
// tnd.uID = IDD_MDFMAIN ;
// Shell_NotifyIcon(NIM_DELETE,&tnd) ;
// //exit(0) ;
//
//
//
// //PostQuitMessage(0);
//}
//##ModelId=44B6F88500EA
LRESULT CMainFrame::OnShellNotify(WPARAM wParam, LPARAM lParam)
{
BOOL bResult;
if( lParam==WM_LBUTTONDBLCLK )
{
theApp.dlgServer->ShowWindow(SW_SHOW);
theApp.dlgServer->BringWindowToTop();
//BringWindowToTop();
return(0) ;
}
//如果收到的中单击右键信息,根据对剪贴板的监视与否修改不同的菜单项
if(lParam==WM_RBUTTONDOWN)
{
CMenu menu;
menu.LoadMenu(IDR_POPMENU);
if( theApp.m_Baseinfo.MonitorStatus )
{
//启用“开始记录”菜单项
//bResult = menu.EnableMenuItem(ID_STARTCOMM,1 ); //0 使启动菜单有效
//bResult = menu.EnableMenuItem(ID_STOPCOMM,0); //1 使停止菜单无效
bResult = menu.EnableMenuItem(ID_STARTCOMM,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED ); //0 使启动菜单有效
bResult = menu.EnableMenuItem(ID_STOPCOMM,MF_BYCOMMAND|MF_ENABLED); //1 使停止菜单无效
}
else
{
//启用“停止始记录”菜单项
bResult = menu.EnableMenuItem(ID_STARTCOMM,MF_BYCOMMAND|MF_ENABLED);
bResult = menu.EnableMenuItem(ID_STOPCOMM,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
}
// 鼠标单击位置
CPoint point;
GetCursorPos(&point);
// 将背景窗口激活
//SetForegroundWindow();
// 显示图标菜单
menu.GetSubMenu(0)->TrackPopupMenu(
TPM_LEFTBUTTON|TPM_RIGHTBUTTON,
point.x, point.y, this, NULL);
return(0) ;
}
return(0);
}
void CMainFrame::HideMainWin()
{
CString strTemp;
NOTIFYICONDATA tnd ;
tnd.cbSize = sizeof(NOTIFYICONDATA) ;
tnd.hWnd = m_hWnd;
tnd.uID = IDD_MDFMAIN ;
tnd.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP ;
tnd.uCallbackMessage = WM_SHELLNOTIFY ;
tnd.hIcon = ::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_PLAY)) ;
strTemp.LoadString(IDS_STRAPPTITLLE);
strcpy(tnd.szTip,strTemp) ;
//CString::LoadString(IDS_STRAPPTITLLE);
ShowWindow(SW_HIDE);
Shell_NotifyIcon(NIM_ADD,&tnd) ;
//CloseHandle(tnd.hIcon) ;
}
// 关闭系统服务
void CMainFrame::CloseSystem(void)
{
//First stop service just close system
NOTIFYICONDATA tnd ;
tnd.cbSize = sizeof(NOTIFYICONDATA) ;
tnd.hWnd = m_hWnd ;
tnd.uID = IDD_MDFMAIN ;
Shell_NotifyIcon(NIM_DELETE,&tnd) ;
}
BOOL CMainFrame::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
// TODO: 在此添加专用代码和/或调用基类
return CFrameWnd::OnWndMsg(message, wParam, lParam, pResult);
}
void CMainFrame::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
HideMainWin();
//CFrameWnd::OnClose();
}
void CMainFrame::OnExit()
{
CloseSystem();
PostQuitMessage(0);
// TODO: 在此添加命令处理程序代码
}
void CMainFrame::OnAppExit()
{
// TODO: 在此添加命令处理程序代码
CloseSystem();
PostQuitMessage(0);
}
void CMainFrame::OnStartcomm()
{
theApp.StartMonitoring();
// TODO: 在此添加命令处理程序代码
}
void CMainFrame::OnStopcomm()
{
theApp.StopMonitoring();
// TODO: 在此添加命令处理程序代码
}
LRESULT CMainFrame::onRestart(WPARAM wParam, LPARAM lParam)
{
//Send message to mobile phone
CString strReply;
strReply.Empty();
//strReply = (LPCTSTR)wParam;
//CInfoFrame *frame = (InfoFrame *)wParam ;
theApp.WriteTxtLog("准备停止监测服务器运行...");
Sleep(100);
if (theApp.StopMonitoring())
{
theApp.WriteTxtLog("监测服务器停止运行,正准备重新启动...");
theApp.StartMonitoring();
if (theApp.m_Baseinfo.MonitorStatus) //返回起动信息
{
strReply = "RF|00";
theApp.WriteTxtLog("监测服务器重新起动成功...");
if (theApp.m_pMonitor->m_udpServer[0]->IsOpen())
{
theApp.m_pMonitor->m_udpServer[0]->SendTo(strReply,theApp.m_Baseinfo.WebIP,theApp.m_Baseinfo.WebPort);
}
theApp.WriteTxtLog("远程起动成功...");
}
}
else
{
theApp.WriteTxtLog("监测服务器未能正常停止运行...");
strReply.Replace("00","FF");
if (theApp.m_Baseinfo.MonitorStatus) //返回起动失败
{
strReply = "RF|FF";
//theApp.m_pMonitor->m_udpServer[0]->SendTo(strReply,theApp.m_Baseinfo.WebIP,theApp.m_Baseinfo.WebPort);
}
theApp.WriteTxtLog("远程起动失败...");
}
return LRESULT();
}
int CMainFrame::PlayWave(CString strWaveFile)
{
CString strSound;
if (strWaveFile.GetLength() >0)
strSound = strWaveFile;
sndPlaySound(strSound.GetBuffer(),SND_SYNC);
return 0;
}
void CMainFrame::OnCmSound()
{
CString strTip;
strTip = "33962181";
theApp.m_pMonitor->IniGsmInfo();
theApp.m_pMonitor->m_Gsm->Dail(strTip);
//theApp.m_pMonitor->m_pMedia.SetVoice(_T("1"),1,m_hWnd);
//theApp.m_pMonitor->m_pMedia.AlarmVoice();
// TODO: 在此添加命令处理程序代码
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -