📄 operationlogfile.cpp
字号:
DDX_Text(pDX, IDS_IP, m_ip_list);
DDX_Text(pDX, IDS_ALARM_TYPE, m_alarm_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAlarmLogFile, CPropertyPage)
//{{AFX_MSG_MAP(CAlarmLogFile)
// NOTE: the ClassWizard will add message map macros here
ON_CBN_SETFOCUS(IDS_OBJ_COM, OnSetfocuslog)
ON_CBN_SELCHANGE(IDS_OBJ_COM, OnSelchangelog)
ON_CBN_SETFOCUS(IDS_ALARM_TYPE, OnSetfocusalarm)
ON_CBN_SELCHANGE(IDS_ALARM_TYPE, OnSelchangealarm)
ON_CBN_SETFOCUS(IDS_IP, OnSetfocusip)
ON_CBN_SELCHANGE(IDS_IP, OnSelchangeip)
ON_BN_CLICKED(IDC_SHOWLOG, Onshowlog)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CAlarmLogFile::OnInitDialog()
{
CPropertyPage::OnInitDialog();
UpdateData(true);
init_label(m_lable1);
init_label(m_lable2);
init_label(m_lable3);
init_label(m_lable4);
CString m_str;
m_str.Format(LOG_FILE_ALARM_PATH);
m_alarm_file_p = fopen(m_str,"rb");
if(!m_alarm_file_p)
{
AfxMessageBox(IDS_OPEN_FILE);
return FALSE;
}
return TRUE;
}
void CAlarmLogFile::Onshowlog()
{
UpdateData(true);
if(!m_timebool1&&!m_timebool2&&!m_timebool3&&!m_timebool4)
{
info_balloon(IDS_REMIND);
return;
}
CString m_temstr;
m_dbgrid.Clear();
m_dbgrid.SetRow(0);
m_dbgrid.SetCol(0);
m_dbgrid.SetColAlignment(0, 4);
m_temstr.Format(IDS_NUMBER);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(1);
m_dbgrid.SetColAlignment(1, 4);
m_temstr.Format(IDS_DVR_NAME);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(2);
m_dbgrid.SetColAlignment(2, 4);
m_temstr.Format(IDS_DVR_IP);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(3);
m_dbgrid.SetColAlignment(3, 4);
m_temstr.Format(IDS_DVR_PORT);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(4);
m_dbgrid.SetColAlignment(4, 4);
m_temstr.Format(IDS_DATE);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(5);
m_dbgrid.SetColAlignment(5, 4);
m_temstr.Format(IDS_TIME);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(6);
m_dbgrid.SetColAlignment(6, 4);
m_temstr.Format(IDS_AlARM_TYPE_FE);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(7);
m_dbgrid.SetColAlignment(7, 4);
m_temstr.Format(IDS_AlARM_CHANNEL);
m_dbgrid.SetText(m_temstr);
m_dbgrid.SetCol(8);
m_dbgrid.SetColAlignment(8, 4);
m_temstr.Format(IDS_AlARM_DESCRIPTION);
m_dbgrid.SetText(m_temstr);
long m_row=0;
rewind(m_alarm_file_p);
while(1)
{
log_alarmfile m_log_alarm;
int circle = check_query_alarm(m_log_alarm);
if(circle == -1) break;
else if(!circle) continue;
m_row++;
char m_dc[10];
if(m_row>19)
m_dbgrid.SetRows(m_row+1);
m_dbgrid.SetRow(m_row);
m_dbgrid.SetCol(0);
m_dbgrid.SetText(itoa(m_row,m_dc,10));
m_dbgrid.SetCol(1);
m_dbgrid.SetText(m_log_alarm.dvrname);
m_dbgrid.SetCol(2);
m_dbgrid.SetText(m_log_alarm.ip);
m_dbgrid.SetCol(3);
m_dbgrid.SetText(itoa(m_log_alarm.port,m_dc,10));
m_dbgrid.SetCol(4);
CString m_timestr;
m_timestr.Format("%d-%02d-%02d",m_log_alarm.year,m_log_alarm.month,m_log_alarm.day);
m_dbgrid.SetText(m_timestr);
m_dbgrid.SetCol(5);
m_dbgrid.SetText(m_log_alarm.time);
m_dbgrid.SetCol(6);
CString m_str1,m_str2;
if(m_log_alarm.type == 0)
{
m_str1.Format(IDS_Sensor_Alarm);
}
if(m_log_alarm.type == 1)
{
m_str1.Format(IDS_Motion_Alarm);
}
if(m_log_alarm.type == 2)
{
m_str1.Format(IDS_Vlost_Alarm);
}
if(m_log_alarm.type == 3)
{
m_str1.Format(IDS_NET_Alarm);
}
m_dbgrid.SetText(m_str1);
m_dbgrid.SetCol(7);
m_str2 = checkchannel(m_log_alarm.alarmchannel);
m_dbgrid.SetText(m_str2);
m_dbgrid.SetCol(8);
m_dbgrid.SetText(m_log_alarm.description);
}
}
int CAlarmLogFile::check_query_alarm(log_alarmfile &m_log_alarm)
{
UpdateData(true);
int m_year,m_month,m_day;
m_year=m_time1.GetYear();
m_month=m_time1.GetMonth();
m_day=m_time1.GetDay();
int index=m_alarm_listctl.GetCurSel();
if(fread(&m_log_alarm, sizeof(log_alarmfile), 1, m_alarm_file_p)!=1)
return -1;
if(m_timebool1) if(strcmp(m_log_alarm.use,m_list)) return 0;
if(m_timebool2)
if(m_log_alarm.day != m_day || m_log_alarm.month != m_month || m_log_alarm.year != m_year)
return 0;
if(m_timebool3)
if(strcmp(m_log_alarm.ip,m_ip_list)) return 0;
if(m_timebool4)
{
if(m_log_alarm.type != index) return 0;
}
return 1;
}
CString CAlarmLogFile::checkchannel(int m_nub)
{
CString m_str;
for(int i=0;i<16;i++)
{
ULONG m_temaction=m_nub>>i;
m_temaction=m_temaction&1;
if(m_temaction)
{
CString m_temstr;
m_temstr.Format("%d.",i+1);
m_str=m_str+m_temstr;
}
}
return m_str;
}
void CAlarmLogFile::OnSelchangeip()
{
int index=m_ip_listctl.GetCurSel();
if (index!=CB_ERR)
{
m_ip_listctl.GetLBText(index,m_ip_list);
}
}
void CAlarmLogFile::OnSetfocusip()
{
UpdateData(true);
m_ip_listctl.ResetContent();
rewind(m_alarm_file_p);
while(1)
{
log_alarmfile m_log_alarm;
if(fread(&m_log_alarm, sizeof(log_alarmfile), 1, m_alarm_file_p)!=1)
break;
if(!strcmp(m_list, m_log_alarm.use))
{
int index = m_ip_listctl.FindString(-1, m_log_alarm.ip);
if( index == CB_ERR)
m_ip_listctl.AddString(m_log_alarm.ip);
}
}
}
void CAlarmLogFile::OnSelchangealarm()
{
}
void CAlarmLogFile::OnSetfocusalarm()
{
CString m_str;
m_alarm_listctl.ResetContent();
m_str.Format(IDS_Sensor_Alarm);
m_alarm_listctl.InsertString(0,m_str);
m_str.Format(IDS_Motion_Alarm);
m_alarm_listctl.InsertString(1,m_str);
m_str.Format(IDS_Vlost_Alarm);
m_alarm_listctl.InsertString(2,m_str);
m_str.Format(IDS_NET_Alarm);
m_alarm_listctl.InsertString(3,m_str);
}
void CAlarmLogFile::OnSelchangelog()
{
int index=m_log_list.GetCurSel();
if (index!=CB_ERR)
{
m_log_list.GetLBText(index,m_list);
}
UpdateData(false);
}
void CAlarmLogFile::OnSetfocuslog()
{
CString m_temstr;
m_log_list.ResetContent();
m_temstr.Format(IDS_AdDMINISTRATOR);
if(!strcmp(m_login_client_name,m_temstr))
{
rewind(m_alarm_file_p);
while(1)
{
log_alarmfile m_log_alarm;
if(fread(&m_log_alarm, sizeof(log_alarmfile), 1, m_alarm_file_p)!=1)
break;
int index = m_log_list.FindString(-1, m_log_alarm.use);
if( index == CB_ERR)
m_log_list.AddString(m_log_alarm.use);
}
}
else
{
m_log_list.AddString(m_login_client_name);
}
}
HBRUSH CAlarmLogFile::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor==CTLCOLOR_DLG)
return (HBRUSH)m_brush .GetSafeHandle( ) ;
return hbr;
}
void CAlarmLogFile::OnProperties()
{
// TODO: The property sheet attached to your project
// via this function is not hooked up to any message
// handler. In order to actually use the property sheet,
// you will need to associate this function with a control
// in your project such as a menu item or tool bar button.
CMyPropertySheet3 propSheet;
propSheet.DoModal();
// This is where you would retrieve information from the property
// sheet if propSheet.DoModal() returned IDOK. We aren't doing
// anything for simplicity.
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -