123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- // RemoteLog.cpp : implementation file
- //
- #include "stdafx.h"
- #include "StoneU_HC_OCX.h"
- #include "RemoteLog.h"
- #include "newclientDlg.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- extern SERVER_INFO serverinfo[MAXIPNUMBER];
- CRemoteLog * RFile;
- HANDLE hfile[10];
- HANDLE hEvent;
- extern CNewclientDlg *g_NewClientDlg;
- /////////////////////////////////////////////////////////////////////////////
- // CRemoteLog dialog
- UINT LogFileThread(LPVOID pParam)
- {
- NET_DVR_TIME StartTime;
- NET_DVR_TIME StopTime;
- LONG m_lLogFile;
- LONG bRet = -1;
- NET_DVR_LOG strFileInfo;
- CString tempstring;
-
- RFile->m_iServer = RFile->m_ServerCtrl.GetCurSel()-1;
- RFile->m_iMode = RFile->m_ModeCtrl.GetCurSel();
- RFile->m_iMajType = RFile->m_MajTypeCtrl.GetCurSel();
- RFile->m_iMinType = RFile->m_MinTypeCtrl.GetCurSel();
- StartTime.dwYear = (WORD)RFile->m_ctDateStart.GetYear();
- StartTime.dwMonth = (WORD)RFile->m_ctDateStart.GetMonth();
- StartTime.dwDay = (WORD)RFile->m_ctDateStart.GetDay();
- StartTime.dwHour = (char)RFile->m_ctTimeStart.GetHour();
- StartTime.dwMinute = (char)RFile->m_ctTimeStart.GetMinute();
- StartTime.dwSecond = (char)RFile->m_ctTimeStart.GetSecond();
- StopTime.dwYear = (WORD)RFile->m_ctDateStop.GetYear();
- StopTime.dwMonth = (WORD)RFile->m_ctDateStop.GetMonth();
- StopTime.dwDay = (WORD)RFile->m_ctDateStop.GetDay();
- StopTime.dwHour = (char)RFile->m_ctTimeStop.GetHour();
- StopTime.dwMinute = (char)RFile->m_ctTimeStop.GetMinute();
- StopTime.dwSecond = (char)RFile->m_ctTimeStop.GetSecond();
-
- m_lLogFile = NET_DVR_FindDVRLog(serverinfo[RFile->m_iServer].m_lServerID, RFile->m_iMode, RFile->m_iMajType, RFile->m_iMinType, &StartTime, &StopTime);
- if(m_lLogFile < 0)
- {
- MessageBox(g_NewClientDlg->GetSafeHwnd(),"搜索日志结束失败!", "温馨提示", MB_ICONINFORMATION);
-
- CString sTemp;
- sTemp.Format("ERROR: NET_DVR_FindDVRLog = %d",NET_DVR_GetLastError());
- TRACE(sTemp);
- CloseHandle(hfile[RFile->n]);
- hfile[RFile->n] = NULL;
- return 0;
- }
- while(1)
- {
- bRet = NET_DVR_FindNextLog(m_lLogFile, &strFileInfo);
- if(bRet == NET_DVR_FILE_SUCCESS)
- {
- tempstring.Format("%04d-%02d-%02d %02d:%02d:%02d", strFileInfo.strLogTime.dwYear, strFileInfo.strLogTime.dwMonth, strFileInfo.strLogTime.dwDay, strFileInfo.strLogTime.dwHour,strFileInfo.strLogTime.dwMinute,strFileInfo.strLogTime.dwSecond);
- RFile->m_list.InsertItem(RFile->m_lLogNum,tempstring,0);
- if(strFileInfo.dwMajorType == 1)
- {
- tempstring.Format("%s","报警");
- }
- else if(strFileInfo.dwMajorType == 2)
- {
- tempstring.Format("%s","异常");
- }
- else if(strFileInfo.dwMajorType == 3)
- {
- tempstring.Format("%s","操作");
- }
- RFile->m_list.SetItemText(RFile->m_lLogNum,1,tempstring);
- tempstring.Format("%d",strFileInfo.dwMinorType);
- RFile->m_list.SetItemText(RFile->m_lLogNum,2,tempstring);
- RFile->m_lLogNum++;
- }
- else
- {
- if(bRet == NET_DVR_ISFINDING)
- {
- Sleep(5);
- continue;
- }
- if( (bRet == NET_DVR_NOMOREFILE) || (bRet == NET_DVR_FILE_NOFIND) )
- {
- RFile->GetDlgItem(IDC_BUTTONFIND)->SetWindowText("搜索日志"); // by zxy 2005/05/10
- RFile->m_bSearch = FALSE;
- MessageBox(g_NewClientDlg->GetSafeHwnd(),"搜索日志结束!", "温馨提示", MB_ICONINFORMATION);
-
- break;
- }
- else
- {
- RFile->GetDlgItem(IDC_BUTTONFIND)->SetWindowText("搜索日志");
- RFile->m_bSearch = FALSE;
- MessageBox(g_NewClientDlg->GetSafeHwnd(),"由于服务器忙,或网络故障,搜索日志异常终止!", "温馨提示", MB_ICONINFORMATION);
-
- break;
- }
- }
- }
- CloseHandle(hfile[RFile->n]);
- hfile[RFile->n] = NULL;
- NET_DVR_FindLogClose(m_lLogFile);
- return 0;
- }
- UINT GetLogFileThread(LPVOID pParam)
- {
- LONG bRet = -1;
- NET_DVR_LOG strFileInfo;
- CString tempstring;
- while(1)
- {
- bRet = NET_DVR_FindNextLog(RFile->m_lLogFile, &strFileInfo);
- if(bRet == NET_DVR_FILE_SUCCESS)
- {
- tempstring.Format("%04d-%02d-%02d %02d:%02d:%02d", strFileInfo.strLogTime.dwYear, strFileInfo.strLogTime.dwMonth, strFileInfo.strLogTime.dwDay, strFileInfo.strLogTime.dwHour,strFileInfo.strLogTime.dwMinute,strFileInfo.strLogTime.dwSecond);
- RFile->m_list.InsertItem(RFile->m_lLogNum,tempstring,0);
- if(strFileInfo.dwMajorType == 1)
- {
- tempstring.Format("%s","报警");
- }
- else if(strFileInfo.dwMajorType == 2)
- {
- tempstring.Format("%s","异常");
- }
- else if(strFileInfo.dwMajorType == 3)
- {
- tempstring.Format("%s","操作");
- }
- RFile->m_list.SetItemText(RFile->m_lLogNum,1,tempstring);
- tempstring.Format("%d",strFileInfo.dwMinorType);
- RFile->m_list.SetItemText(RFile->m_lLogNum,2,tempstring);
- RFile->m_lLogNum++;
- }
- else
- {
- if(bRet == NET_DVR_ISFINDING)
- {
- Sleep(5);
- continue;
- }
- if( (bRet == NET_DVR_NOMOREFILE) || (bRet == NET_DVR_FILE_NOFIND) )
- {
- RFile->GetDlgItem(IDC_BUTTONFIND)->SetWindowText("搜索日志"); // by zxy 2005/05/10
- RFile->m_bSearch = FALSE;
-
- MessageBox(g_NewClientDlg->GetSafeHwnd(),"搜索日志结束!", "温馨提示", MB_ICONINFORMATION);
- break;
- }
- else
- {
- RFile->GetDlgItem(IDC_BUTTONFIND)->SetWindowText("搜索日志");
- RFile->m_bSearch = FALSE;
-
- MessageBox(g_NewClientDlg->GetSafeHwnd(),"由于服务器忙,或网络故障,搜索日志异常终止!", "温馨提示", MB_ICONINFORMATION);
- break;
- }
- }
- }
- CloseHandle(RFile->m_hFileThread);
- RFile->m_hFileThread = NULL;
- NET_DVR_FindLogClose(RFile->m_lLogFile);
- return 0;
- }
- CRemoteLog::CRemoteLog(CWnd* pParent /*=NULL*/)
- : CDialog(CRemoteLog::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CRemoteLog)
- m_ctDateStart = 0;
- m_ctDateStop = 0;
- m_ctTimeStart = 0;
- m_ctTimeStop = 0;
- //}}AFX_DATA_INIT
- }
- void CRemoteLog::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CRemoteLog)
- DDX_Control(pDX, IDC_LIST, m_list);
- DDX_Control(pDX, IDC_COMBOSERVER, m_ServerCtrl);
- DDX_Control(pDX, IDC_COMBOMODE, m_ModeCtrl);
- DDX_Control(pDX, IDC_COMBOMINTYPE, m_MinTypeCtrl);
- DDX_Control(pDX, IDC_COMBOMAJTYPE, m_MajTypeCtrl);
- DDX_DateTimeCtrl(pDX, IDC_DATESTART, m_ctDateStart);
- DDX_DateTimeCtrl(pDX, IDC_DATESTOP, m_ctDateStop);
- DDX_DateTimeCtrl(pDX, IDC_TIMESTART, m_ctTimeStart);
- DDX_DateTimeCtrl(pDX, IDC_TIMESTOP, m_ctTimeStop);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CRemoteLog, CDialog)
- //{{AFX_MSG_MAP(CRemoteLog)
- ON_BN_CLICKED(IDEXIT, OnExit)
- ON_BN_CLICKED(IDC_BUTTONFIND, OnButtonfind)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CRemoteLog message handlers
- BOOL CRemoteLog::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
- m_bSearch = FALSE;
- m_hFileThread = NULL;
- m_ServerCtrl.AddString("请选择DVR");
- for(int i = 0; i < MAXIPNUMBER; i++)
- {
- if(serverinfo[i].m_csServerName != "")
- m_ServerCtrl.AddString(serverinfo[i].m_csServerName);
- }
- RFile = this;
-
- m_list.InsertColumn(0,"日志时间",LVCFMT_LEFT,180,-1);
- m_list.InsertColumn(1,"主类型",LVCFMT_LEFT,80,-1);
- m_list.InsertColumn(2,"次类型",LVCFMT_LEFT,150,-1);
- m_list.InsertColumn(3,"事件",LVCFMT_LEFT,150,-1);
- m_lLogNum = 0;
- m_lLogFile = -1;
- CTime time1 = CTime::GetCurrentTime();
- CTime time(time1.GetYear(),time1.GetMonth(),time1.GetDay(),0,0,0);
- CTime time0(time1.GetYear(),time1.GetMonth(),time1.GetDay(),23,59,59);
- m_ctDateStart = time;
- m_ctTimeStart = time;
- m_ctDateStop = time1;
- m_ctTimeStop = time0;
- m_iServer = 0;
- m_iMode = 0;
- m_iMajType = 0;
- m_iMinType = 0;
- m_ServerCtrl.SetCurSel(m_iServer);
- m_ModeCtrl.SetCurSel(m_iMode);
- m_MajTypeCtrl.SetCurSel(m_iMajType);
- m_MinTypeCtrl.SetCurSel(m_iMinType);
- UpdateData(FALSE);
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CRemoteLog::OnCancel()
- {
- // TODO: Add extra cleanup here
-
- // CDialog::OnCancel();
- }
- void CRemoteLog::OnOK()
- {
- // TODO: Add extra validation here
-
- // CDialog::OnOK();
- }
- void CRemoteLog::OnExit()
- {
- // TODO: Add your control notification handler code here
- if(m_hFileThread)
- {
- TerminateThread(m_hFileThread, 0);
- CloseHandle(m_hFileThread);
- m_hFileThread = NULL;
- NET_DVR_FindLogClose(m_lLogFile);
- }
- CDialog::OnCancel();
- }
- void CRemoteLog::OnButtonfind()
- {
- // TODO: Add your control notification handler code here
- UpdateData(TRUE);
- DWORD dwThreadId;
- if(m_ServerCtrl.GetCurSel() == 0)
- {
- MessageBox("获取设备状态失败!", "温馨提示", MB_ICONINFORMATION);
- return;
- }
- /* if(!m_bSearch)
- {
- for (i=0; i<10; i++)
- {
- n = i;
- hfile[i] = CreateThread(NULL,0,LPTHREAD_START_ROUTINE(LogFileThread),this,0,&dwThreadId);
- if(hfile[i] == NULL)
- {
-
- }
- }
- GetDlgItem(IDC_BUTTONFIND)->SetWindowText("停止搜索");
- m_bSearch = TRUE;
- }
- else
- {
- SetEvent(hEvent);
- Sleep(1000);
- for (i=0; i<10; i++)
- {
- if(hfile[i])
- {
- TerminateThread(hfile[i], 0);
- CloseHandle(hfile[i]);
- hfile[i] = NULL;
- }
- }
-
- GetDlgItem(IDC_BUTTONFIND)->SetWindowText("搜索日志");
- m_bSearch = FALSE;
- }
- */
-
- if(!m_bSearch)
- {
- NET_DVR_TIME StartTime;
- NET_DVR_TIME StopTime;
-
- m_iServer = m_ServerCtrl.GetCurSel()-1;
- m_iMode = m_ModeCtrl.GetCurSel();
- m_iMajType = m_MajTypeCtrl.GetCurSel();
- m_iMinType = m_MinTypeCtrl.GetCurSel();
- StartTime.dwYear = (WORD)m_ctDateStart.GetYear();
- StartTime.dwMonth = (WORD)m_ctDateStart.GetMonth();
- StartTime.dwDay = (WORD)m_ctDateStart.GetDay();
- StartTime.dwHour = (char)m_ctTimeStart.GetHour();
- StartTime.dwMinute = (char)m_ctTimeStart.GetMinute();
- StartTime.dwSecond = (char)m_ctTimeStart.GetSecond();
- StopTime.dwYear = (WORD)m_ctDateStop.GetYear();
- StopTime.dwMonth = (WORD)m_ctDateStop.GetMonth();
- StopTime.dwDay = (WORD)m_ctDateStop.GetDay();
- StopTime.dwHour = (char)m_ctTimeStop.GetHour();
- StopTime.dwMinute = (char)m_ctTimeStop.GetMinute();
- StopTime.dwSecond = (char)m_ctTimeStop.GetSecond();
-
- m_lLogFile = NET_DVR_FindDVRLog(serverinfo[m_iServer].m_lServerID, m_iMode, m_iMajType, m_iMinType, &StartTime, &StopTime);
- if(m_lLogFile < 0)
- {
- MessageBox("搜索日志失败!", "温馨提示", MB_ICONINFORMATION);
-
- CString sTemp;
- sTemp.Format("ERROR: NET_DVR_FindDVRLog = %d",NET_DVR_GetLastError());
- TRACE(sTemp);
- return;
- }
- m_bSearch = TRUE;
- m_lLogNum = 0;
- m_list.DeleteAllItems();
- if(m_hFileThread == NULL)
- m_hFileThread = CreateThread(NULL,0,LPTHREAD_START_ROUTINE(GetLogFileThread),this,0,&dwThreadId);
- if(m_hFileThread == NULL)
- {
- MessageBox("打开线程失败!", "温馨提示", MB_ICONINFORMATION);
-
- return;
- }
- GetDlgItem(IDC_BUTTONFIND)->SetWindowText("停止搜索");
- m_bSearch = TRUE;
- }
- else
- {
- if(m_hFileThread)
- {
- TerminateThread(m_hFileThread, 0);
- CloseHandle(m_hFileThread);
- m_hFileThread = NULL;
- }
- NET_DVR_FindLogClose(m_lLogFile);
- GetDlgItem(IDC_BUTTONFIND)->SetWindowText("搜索日志");
- m_bSearch = FALSE;
- m_lLogNum = 0;
- m_hFileThread = NULL;
- }
- }
|