📄 recsysdlg.cpp
字号:
// recsysDlg.cpp : implementation file
//
#include "stdafx.h"
#include "recsys.h"
#include "recsysDlg.h"
#include "SqlProc.h"
#include "ftpproc.h"
#include "modernproc.h"
#include "shpa3api.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRecsysDlg dialog
CRecsysDlg::CRecsysDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRecsysDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRecsysDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CRecsysDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRecsysDlg)
DDX_Control(pDX, IDC_SS7MONITOR_STATE, m_ss7_state);
DDX_Control(pDX, IDC_TRK_STATE, m_trk_state);
DDX_Control(pDX, IDC_SQL_STATE, m_sql_state);
DDX_Control(pDX, IDC_MODERN_STATE, m_mod_state);
DDX_Control(pDX, IDC_FTP_STATE, m_ftp_state);
DDX_Control(pDX, IDC_TRUNKSTATELIST, m_trunkstatelist);
DDX_Control(pDX, IDC_TRUNKMSGLIST, m_trunkmsglist);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRecsysDlg, CDialog)
//{{AFX_MSG_MAP(CRecsysDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_TIMER()
ON_BN_CLICKED(IDC_RESET_FTP_TH, OnResetFtpTh)
ON_BN_CLICKED(IDC_RESET_MOD_TH, OnResetModTh)
ON_BN_CLICKED(IDC_RESET_SQL_TH, OnResetSqlTh)
ON_BN_CLICKED(IDC_RESET_TRK_TH, OnResetTrkTh)
ON_BN_CLICKED(IDC_RST_FTP_CHECK, OnRstFtpCheck)
ON_BN_CLICKED(IDC_RST_MOD_CHECK, OnRstModCheck)
ON_BN_CLICKED(IDC_RST_SQL_CHECK, OnRstSqlCheck)
ON_BN_CLICKED(IDC_RST_TRK_CHECK, OnRstTrkCheck)
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_RESET_SS7_PR, OnResetSs7Pr)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_PROCMSG, OnProcMsg)
ON_MESSAGE(WM_COMM, OnProcComm)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRecsysDlg message handlers
BOOL CRecsysDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
//初始化界面
hicons[0].m_hIcon=AfxGetApp()->LoadIcon(IDI_NOTSTART_TH);
hicons[0].laststate=PROCSTATE_NOTSTART;
hicons[1].m_hIcon=AfxGetApp()->LoadIcon(IDI_WORKING_TH);
hicons[1].laststate=PROCSTATE_NOTSTART;
hicons[2].m_hIcon=AfxGetApp()->LoadIcon(IDI_WARNING_TH);
hicons[2].laststate=PROCSTATE_NOTSTART;
hicons[3].m_hIcon=AfxGetApp()->LoadIcon(IDI_FAILD_TH);
hicons[3].laststate=PROCSTATE_NOTSTART;
m_ftp_state.SetIcon(hicons[0].m_hIcon);
m_sql_state.SetIcon(hicons[0].m_hIcon);
m_trk_state.SetIcon(hicons[0].m_hIcon);
m_mod_state.SetIcon(hicons[0].m_hIcon);
m_ss7_state.SetIcon(hicons[0].m_hIcon);
TrunkProc_state=PROCSTATE_NOTSTART;
SqlServer_state=PROCSTATE_NOTSTART;
FtpServer_state=PROCSTATE_NOTSTART;
ModernProc_state=PROCSTATE_NOTSTART;
m_sql_state_hold=0;
m_ftp_state_hold=0;
m_trk_state_hold=0;
m_mod_state_hold=0;
//
//开启测试线程
ptestsys=NULL;
// ptestsys =(CTestSys*) AfxBeginThread( RUNTIME_CLASS( CTestSys ) );
//
//
InitialList();
mainproc=NULL;
mainproc=GetSafeHwnd();
SqlProc_pTh=NULL;
FtpProc_pTh=NULL;
ModProc_pTh=NULL;
//启动SQL线程
StartSqlTh();
Sleep(300);
//启动SQL线程-END
//启动SSM MONITOR
StartSsmmonitor();
//启动SSM MONITOR-END
//启动中继扫描线程
StartTrkTh();
//启动中继扫描线程-END
//初始化三汇卡
// if(InitCtiSystem()==false)
// return false;
//初始化三汇卡-END
//启动扫描线程
AfxBeginThread(ScanTrunkProc, GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
//启动扫描线程-END
//启动FTP线程
m_ftpinfopos=0;
StartFtpTh();
//启动FTP线程-END
//启动MODERN线程
StartModernTh();
//启动MODERN线程-END
SetTimer(10,500,0);
StartModemWarn();
return TRUE; // return TRUE unless you set the focus to a control
}
void CRecsysDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CRecsysDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CRecsysDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CRecsysDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
}
void CRecsysDlg::OnCancel()
{
// TODO: Add extra cleanup here
if(MessageBox("确定要退出系统?","请确认",MB_OKCANCEL)==IDOK)
CDialog::OnCancel();
}
void CRecsysDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
char ts[200];
if(nIDEvent==10)
{
m_ss7_state.SetIcon(hicons[1].m_hIcon);
switch(FtpServer_state) {
case PROCSTATE_NOTSTART:
{
m_ftp_state.SetIcon(hicons[0].m_hIcon);
m_ftp_state_hold++;
if(m_ftp_state_hold>60)
FtpServer_state=PROCSTATE_WARNING;
}
break;
case PROCSTATE_WORKING:
{
m_ftp_state.SetIcon(hicons[1].m_hIcon);
m_ftp_state_hold=0;
}
break;
case PROCSTATE_WARNING:
{
m_ftp_state.SetIcon(hicons[2].m_hIcon);
m_ftp_state_hold++;
if(m_ftp_state_hold>1200)
FtpServer_state=PROCSATAE_FAILD;
}
break;
case PROCSATAE_FAILD:
{
m_ftp_state.SetIcon(hicons[3].m_hIcon);
m_ftp_state_hold++;
if(m_ftp_state_hold%10==0)
{
sprintf(ts,"FTP服务器失效%f分钟,请检查!",m_ftp_state_hold/120);
m_trunkmsglist.InsertString(0,ts);
//拨打告警电话
ProcCommunicate(FTP_WARNING);
}
}
break;
default:
break;
}
switch(SqlServer_state) {
case PROCSTATE_NOTSTART:
{
m_sql_state.SetIcon(hicons[0].m_hIcon);
m_sql_state_hold++;
if(m_sql_state_hold>60)
SqlServer_state=PROCSTATE_WARNING;
}
break;
case PROCSTATE_WORKING:
{
m_sql_state.SetIcon(hicons[1].m_hIcon);
m_sql_state_hold=0;
}
break;
case PROCSTATE_WARNING:
{
m_sql_state.SetIcon(hicons[2].m_hIcon);
m_sql_state_hold++;
if(m_sql_state_hold>1200)
SqlServer_state=PROCSATAE_FAILD;
}
break;
case PROCSATAE_FAILD:
{
m_sql_state.SetIcon(hicons[3].m_hIcon);
m_sql_state_hold++;
if(m_sql_state_hold%10==0)
{
sprintf(ts,"SQL SERVER服务器失效%f分钟,请检查!",m_sql_state_hold/120);
m_trunkmsglist.InsertString(0,ts);
//拨打告警电话
ProcCommunicate(SQL_WARNING);
}
}
break;
}
switch(TrunkProc_state) {
case PROCSTATE_NOTSTART:
{
m_trk_state.SetIcon(hicons[0].m_hIcon);
m_trk_state_hold++;
if(m_trk_state_hold>60)
TrunkProc_state=PROCSTATE_WARNING;
}
break;
case PROCSTATE_WORKING:
{
m_trk_state.SetIcon(hicons[1].m_hIcon);
m_trk_state_hold=0;
}
break;
case PROCSTATE_WARNING:
{
m_trk_state.SetIcon(hicons[2].m_hIcon);
m_trk_state_hold++;
if(m_trk_state_hold>600) //5分钟后拨打电话告警
TrunkProc_state=PROCSATAE_FAILD;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -