// RemoteAlarmIn.cpp : implementation file // #include "stdafx.h" #include "newclient.h" #include "RemoteAlarmIn.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRemoteAlarmIn dialog CRemoteAlarmIn::CRemoteAlarmIn(CWnd* pParent /*=NULL*/) : CDialog(CRemoteAlarmIn::IDD, pParent) { //{{AFX_DATA_INIT(CRemoteAlarmIn) m_bHandleType1 = FALSE; m_bHandleType2 = FALSE; m_bHandleType3 = FALSE; m_bHandleType4 = FALSE; m_bAlarmOut1 = FALSE; m_bAlarmOut2 = FALSE; m_bAlarmOut3 = FALSE; m_bAlarmOut4 = FALSE; m_bRecordChan1 = FALSE; m_bRecordChan10 = FALSE; m_bRecordChan11 = FALSE; m_bRecordChan12 = FALSE; m_bRecordChan14 = FALSE; m_bRecordChan13 = FALSE; m_bRecordChan15 = FALSE; m_bRecordChan16 = FALSE; m_bRecordChan2 = FALSE; m_bRecordChan3 = FALSE; m_bRecordChan4 = FALSE; m_bRecordChan5 = FALSE; m_bRecordChan6 = FALSE; m_bRecordChan7 = FALSE; m_bRecordChan8 = FALSE; m_bRecordChan9 = FALSE; m_iHour11 = 0; m_iHour12 = 0; m_iHour21 = 0; m_iHour22 = 0; m_iHour31 = 0; m_iHour32 = 0; m_iHour41 = 0; m_iHour42 = 0; m_iMin11 = 0; m_iMin12 = 0; m_iMin21 = 0; m_iMin22 = 0; m_iMin31 = 0; m_iMin32 = 0; m_iMin41 = 0; m_iMin42 = 0; m_bHandleType5 = FALSE; //}}AFX_DATA_INIT } void CRemoteAlarmIn::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRemoteAlarmIn) DDX_Control(pDX, IDC_COMBOWEEKDAY, m_WeekDayCtrl); DDX_Control(pDX, IDC_COMBOCOPYTIME, m_CopyTimeCtrl); DDX_Check(pDX, IDC_CHECKHANDLETYPE1, m_bHandleType1); DDX_Check(pDX, IDC_CHECKHANDLETYPE2, m_bHandleType2); DDX_Check(pDX, IDC_CHECKHANDLETYPE3, m_bHandleType3); DDX_Check(pDX, IDC_CHECKHANDLETYPE4, m_bHandleType4); DDX_Check(pDX, IDC_CHKALARMOUT1, m_bAlarmOut1); DDX_Check(pDX, IDC_CHKALARMOUT2, m_bAlarmOut2); DDX_Check(pDX, IDC_CHKALARMOUT3, m_bAlarmOut3); DDX_Check(pDX, IDC_CHKALARMOUT4, m_bAlarmOut4); DDX_Check(pDX, IDC_CHKRECORDCHAN1, m_bRecordChan1); DDX_Check(pDX, IDC_CHKRECORDCHAN10, m_bRecordChan10); DDX_Check(pDX, IDC_CHKRECORDCHAN11, m_bRecordChan11); DDX_Check(pDX, IDC_CHKRECORDCHAN12, m_bRecordChan12); DDX_Check(pDX, IDC_CHKRECORDCHAN14, m_bRecordChan14); DDX_Check(pDX, IDC_CHKRECORDCHAN13, m_bRecordChan13); DDX_Check(pDX, IDC_CHKRECORDCHAN15, m_bRecordChan15); DDX_Check(pDX, IDC_CHKRECORDCHAN16, m_bRecordChan16); DDX_Check(pDX, IDC_CHKRECORDCHAN2, m_bRecordChan2); DDX_Check(pDX, IDC_CHKRECORDCHAN3, m_bRecordChan3); DDX_Check(pDX, IDC_CHKRECORDCHAN4, m_bRecordChan4); DDX_Check(pDX, IDC_CHKRECORDCHAN5, m_bRecordChan5); DDX_Check(pDX, IDC_CHKRECORDCHAN6, m_bRecordChan6); DDX_Check(pDX, IDC_CHKRECORDCHAN7, m_bRecordChan7); DDX_Check(pDX, IDC_CHKRECORDCHAN8, m_bRecordChan8); DDX_Check(pDX, IDC_CHKRECORDCHAN9, m_bRecordChan9); DDX_Text(pDX, IDC_EDITHOUR11, m_iHour11); DDX_Text(pDX, IDC_EDITHOUR12, m_iHour12); DDX_Text(pDX, IDC_EDITHOUR21, m_iHour21); DDX_Text(pDX, IDC_EDITHOUR22, m_iHour22); DDX_Text(pDX, IDC_EDITHOUR31, m_iHour31); DDX_Text(pDX, IDC_EDITHOUR32, m_iHour32); DDX_Text(pDX, IDC_EDITHOUR41, m_iHour41); DDX_Text(pDX, IDC_EDITHOUR42, m_iHour42); DDX_Text(pDX, IDC_EDITMIN11, m_iMin11); DDX_Text(pDX, IDC_EDITMIN12, m_iMin12); DDX_Text(pDX, IDC_EDITMIN21, m_iMin21); DDX_Text(pDX, IDC_EDITMIN22, m_iMin22); DDX_Text(pDX, IDC_EDITMIN31, m_iMin31); DDX_Text(pDX, IDC_EDITMIN32, m_iMin32); DDX_Text(pDX, IDC_EDITMIN41, m_iMin41); DDX_Text(pDX, IDC_EDITMIN42, m_iMin42); DDX_Check(pDX, IDC_CHECKHANDLETYPE5, m_bHandleType5); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRemoteAlarmIn, CDialog) //{{AFX_MSG_MAP(CRemoteAlarmIn) ON_BN_CLICKED(IDC_INTIMECOPY, OnIntimecopy) ON_BN_CLICKED(IDC_INEXIT, OnInexit) ON_BN_CLICKED(IDC_INOK, OnInok) ON_BN_CLICKED(IDC_INTIMEOK, OnIntimeok) ON_CBN_SELCHANGE(IDC_COMBOWEEKDAY, OnSelchangeComboweekday) ON_BN_CLICKED(IDC_CHECKHANDLETYPE4, OnCheckhandletype4) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRemoteAlarmIn message handlers BOOL CRemoteAlarmIn::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_nCopyInTime = -1; F_ShowRecordChan(m_iChannelnumber); m_bHandleType1 = m_lpAlarmIn->struAlarmHandleType.dwHandleType &0x01; m_bHandleType2 = (m_lpAlarmIn->struAlarmHandleType.dwHandleType>>1)&0x01; m_bHandleType3 = (m_lpAlarmIn->struAlarmHandleType.dwHandleType>>2)&0x01; m_bHandleType4 = (m_lpAlarmIn->struAlarmHandleType.dwHandleType>>3)&0x01; m_bHandleType5 = (m_lpAlarmIn->struAlarmHandleType.dwHandleType>>4)&0x01; EnableControl(m_bHandleType4); m_WeekDayCtrl.SetCurSel(0); m_CopyTimeCtrl.SetCurSel(0); m_iHour11 = m_lpAlarmIn->struAlarmTime[0][0].byStartHour; m_iMin11 = m_lpAlarmIn->struAlarmTime[0][0].byStartMin; m_iHour12 = m_lpAlarmIn->struAlarmTime[0][0].byStopHour; m_iMin12 = m_lpAlarmIn->struAlarmTime[0][0].byStopMin; m_iHour21 = m_lpAlarmIn->struAlarmTime[0][1].byStartHour; m_iMin21 = m_lpAlarmIn->struAlarmTime[0][1].byStartMin; m_iHour22 = m_lpAlarmIn->struAlarmTime[0][1].byStopHour; m_iMin22 = m_lpAlarmIn->struAlarmTime[0][1].byStopMin; m_iHour31 = m_lpAlarmIn->struAlarmTime[0][2].byStartHour; m_iMin31 = m_lpAlarmIn->struAlarmTime[0][2].byStartMin; m_iHour32 = m_lpAlarmIn->struAlarmTime[0][2].byStopHour; m_iMin32 = m_lpAlarmIn->struAlarmTime[0][2].byStopMin; m_iHour41 = m_lpAlarmIn->struAlarmTime[0][3].byStartHour; m_iMin41 = m_lpAlarmIn->struAlarmTime[0][3].byStartMin; m_iHour42 = m_lpAlarmIn->struAlarmTime[0][3].byStopHour; m_iMin42 = m_lpAlarmIn->struAlarmTime[0][3].byStopMin; GetDlgItem(IDC_INOK)->EnableWindow(TRUE); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CRemoteAlarmIn::OnSelchangeComboweekday() { // TODO: Add your control notification handler code here UpdateData(TRUE); int i = m_WeekDayCtrl.GetCurSel(); m_iHour11 = m_lpAlarmIn->struAlarmTime[i][0].byStartHour; m_iMin11 = m_lpAlarmIn->struAlarmTime[i][0].byStartMin; m_iHour12 = m_lpAlarmIn->struAlarmTime[i][0].byStopHour; m_iMin12 = m_lpAlarmIn->struAlarmTime[i][0].byStopMin; m_iHour21 = m_lpAlarmIn->struAlarmTime[i][1].byStartHour; m_iMin21 = m_lpAlarmIn->struAlarmTime[i][1].byStartMin; m_iHour22 = m_lpAlarmIn->struAlarmTime[i][1].byStopHour; m_iMin22 = m_lpAlarmIn->struAlarmTime[i][1].byStopMin; m_iHour31 = m_lpAlarmIn->struAlarmTime[i][2].byStartHour; m_iMin31 = m_lpAlarmIn->struAlarmTime[i][2].byStartMin; m_iHour32 = m_lpAlarmIn->struAlarmTime[i][2].byStopHour; m_iMin32 = m_lpAlarmIn->struAlarmTime[i][2].byStopMin; m_iHour41 = m_lpAlarmIn->struAlarmTime[i][3].byStartHour; m_iMin41 = m_lpAlarmIn->struAlarmTime[i][3].byStartMin; m_iHour42 = m_lpAlarmIn->struAlarmTime[i][3].byStopHour; m_iMin42 = m_lpAlarmIn->struAlarmTime[i][3].byStopMin; UpdateData(FALSE); } void CRemoteAlarmIn::OnIntimeok() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(!F_TimeTest()) return; int i = m_WeekDayCtrl.GetCurSel(); m_lpAlarmIn->struAlarmTime[i][0].byStartHour = m_iHour11; m_lpAlarmIn->struAlarmTime[i][0].byStartMin = m_iMin11; m_lpAlarmIn->struAlarmTime[i][0].byStopHour = m_iHour12; m_lpAlarmIn->struAlarmTime[i][0].byStopMin = m_iMin12; m_lpAlarmIn->struAlarmTime[i][1].byStartHour = m_iHour21; m_lpAlarmIn->struAlarmTime[i][1].byStartMin = m_iMin21; m_lpAlarmIn->struAlarmTime[i][1].byStopHour = m_iHour22; m_lpAlarmIn->struAlarmTime[i][1].byStopMin = m_iMin22; m_lpAlarmIn->struAlarmTime[i][2].byStartHour = m_iHour31; m_lpAlarmIn->struAlarmTime[i][2].byStartMin = m_iMin31; m_lpAlarmIn->struAlarmTime[i][2].byStopHour = m_iHour32; m_lpAlarmIn->struAlarmTime[i][2].byStopMin = m_iMin32; m_lpAlarmIn->struAlarmTime[i][3].byStartHour = m_iHour41; m_lpAlarmIn->struAlarmTime[i][3].byStartMin = m_iMin41; m_lpAlarmIn->struAlarmTime[i][3].byStopHour = m_iHour42; m_lpAlarmIn->struAlarmTime[i][3].byStopMin = m_iMin42; GetDlgItem(IDC_INTIMECOPY)->EnableWindow(TRUE); } void CRemoteAlarmIn::OnIntimecopy() { // TODO: Add your control notification handler code here UpdateData(TRUE); int j,k; int i = m_WeekDayCtrl.GetCurSel(); int m_nCopyTime = m_CopyTimeCtrl.GetCurSel() - 1; if(m_nCopyTime == -1) { for(j=0; jstruAlarmTime[j][k]), &(m_lpAlarmIn->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME)); } } } else { for(k=0; kstruAlarmTime[m_nCopyTime][k]), &(m_lpAlarmIn->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME)); } } } void CRemoteAlarmIn::OnInok() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(!F_TimeTest()) return; int i = m_WeekDayCtrl.GetCurSel(); m_lpAlarmIn->struAlarmTime[i][0].byStartHour = m_iHour11; m_lpAlarmIn->struAlarmTime[i][0].byStartMin = m_iMin11; m_lpAlarmIn->struAlarmTime[i][0].byStopHour = m_iHour12; m_lpAlarmIn->struAlarmTime[i][0].byStopMin = m_iMin12; m_lpAlarmIn->struAlarmTime[i][1].byStartHour = m_iHour21; m_lpAlarmIn->struAlarmTime[i][1].byStartMin = m_iMin21; m_lpAlarmIn->struAlarmTime[i][1].byStopHour = m_iHour22; m_lpAlarmIn->struAlarmTime[i][1].byStopMin = m_iMin22; m_lpAlarmIn->struAlarmTime[i][2].byStartHour = m_iHour31; m_lpAlarmIn->struAlarmTime[i][2].byStartMin = m_iMin31; m_lpAlarmIn->struAlarmTime[i][2].byStopHour = m_iHour32; m_lpAlarmIn->struAlarmTime[i][2].byStopMin = m_iMin32; m_lpAlarmIn->struAlarmTime[i][3].byStartHour = m_iHour41; m_lpAlarmIn->struAlarmTime[i][3].byStartMin = m_iMin41; m_lpAlarmIn->struAlarmTime[i][3].byStopHour = m_iHour42; m_lpAlarmIn->struAlarmTime[i][3].byStopMin = m_iMin42; m_lpAlarmIn->byRelRecordChan[0] = m_bRecordChan1; m_lpAlarmIn->byRelRecordChan[1] = m_bRecordChan2; m_lpAlarmIn->byRelRecordChan[2] = m_bRecordChan3; m_lpAlarmIn->byRelRecordChan[3] = m_bRecordChan4; m_lpAlarmIn->byRelRecordChan[4] = m_bRecordChan5; m_lpAlarmIn->byRelRecordChan[5] = m_bRecordChan6; m_lpAlarmIn->byRelRecordChan[6] = m_bRecordChan7; m_lpAlarmIn->byRelRecordChan[7] = m_bRecordChan8; m_lpAlarmIn->byRelRecordChan[8] = m_bRecordChan9; m_lpAlarmIn->byRelRecordChan[9] = m_bRecordChan10; m_lpAlarmIn->byRelRecordChan[10] = m_bRecordChan11; m_lpAlarmIn->byRelRecordChan[11] = m_bRecordChan12; m_lpAlarmIn->byRelRecordChan[12] = m_bRecordChan13; m_lpAlarmIn->byRelRecordChan[13] = m_bRecordChan14; m_lpAlarmIn->byRelRecordChan[14] = m_bRecordChan15; m_lpAlarmIn->byRelRecordChan[15] = m_bRecordChan16; m_lpAlarmIn->struAlarmHandleType.dwHandleType = 0; m_lpAlarmIn->struAlarmHandleType.dwHandleType |= (m_bHandleType1 << 0); m_lpAlarmIn->struAlarmHandleType.dwHandleType |= (m_bHandleType2 << 1); m_lpAlarmIn->struAlarmHandleType.dwHandleType |= (m_bHandleType3 << 2); m_lpAlarmIn->struAlarmHandleType.dwHandleType |= (m_bHandleType4 << 3); m_lpAlarmIn->struAlarmHandleType.dwHandleType |= (m_bHandleType5 << 4); m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[0] = m_bAlarmOut1; m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[1] = m_bAlarmOut2; m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[2] = m_bAlarmOut3; m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[3] = m_bAlarmOut4; CDialog::OnOK(); } void CRemoteAlarmIn::OnInexit() { // TODO: Add your control notification handler code here CDialog::OnCancel(); } void CRemoteAlarmIn::EnableControl(BOOL bEnable) { if(m_dwAlarmOutNum >= 1) { GetDlgItem(IDC_CHKALARMOUT1)->EnableWindow(bEnable); m_bAlarmOut1 = m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[0]; } if(m_dwAlarmOutNum >= 2) { GetDlgItem(IDC_CHKALARMOUT2)->EnableWindow(bEnable); m_bAlarmOut2 = m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[1]; } if(m_dwAlarmOutNum >= 3) { GetDlgItem(IDC_CHKALARMOUT3)->EnableWindow(bEnable); m_bAlarmOut3 = m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[2]; } if(m_dwAlarmOutNum >= 4) { GetDlgItem(IDC_CHKALARMOUT4)->EnableWindow(bEnable); m_bAlarmOut4 = m_lpAlarmIn->struAlarmHandleType.byRelAlarmOut[3]; } } void CRemoteAlarmIn::OnCheckhandletype4() { // TODO: Add your control notification handler code here UpdateData(TRUE); EnableControl(m_bHandleType4); } BOOL CRemoteAlarmIn::F_TimeTest() { int i, j; WORD wStartTime[4], wStopTime[4]; UpdateData(TRUE); if( (m_iHour11 < 0) || (m_iHour11 > 24) || (m_iHour12 < 0) || (m_iHour12 > 24) || \ (m_iHour21 < 0) || (m_iHour21 > 24) || (m_iHour22 < 0) || (m_iHour22 > 24) || \ (m_iHour31 < 0) || (m_iHour31 > 24) || (m_iHour32 < 0) || (m_iHour32 > 24) || \ (m_iHour41 < 0) || (m_iHour41 > 24) || (m_iHour42 < 0) || (m_iHour42 > 24) ) { AfxMessageBox("小时的范围在0 -- 24之间!"); return FALSE; } if( (m_iMin11 < 0) || (m_iMin11 > 60) || (m_iMin12 < 0) || (m_iMin12 > 60) || \ (m_iMin21 < 0) || (m_iMin21 > 60) || (m_iMin22 < 0) || (m_iMin22 > 60) || \ (m_iMin31 < 0) || (m_iMin31 > 60) || (m_iMin32 < 0) || (m_iMin32 > 60) || \ (m_iMin41 < 0) || (m_iMin41 > 60) || (m_iMin42 < 0) || (m_iMin42 > 60) ) { AfxMessageBox("分钟的范围在0 -- 60之间!"); return FALSE; } wStartTime[0] = m_iHour11 * 100 + m_iMin11; wStartTime[1] = m_iHour21 * 100 + m_iMin21; wStartTime[2] = m_iHour31 * 100 + m_iMin31; wStartTime[3] = m_iHour41 * 100 + m_iMin41; wStopTime[0] = m_iHour12 * 100 + m_iMin12; wStopTime[1] = m_iHour22 * 100 + m_iMin22; wStopTime[2] = m_iHour32 * 100 + m_iMin32; wStopTime[3] = m_iHour42 * 100 + m_iMin42; for(i = 0; i < 4; i++) { if( (wStartTime[i] > 2400) || (wStopTime[i] > 2400) ) { AfxMessageBox("布防时间不能超过24:00!"); return FALSE; } if(wStartTime[i] > wStopTime[i]) { AfxMessageBox("布防起始时间不能大于停止时间!"); return FALSE; } for(j = 0; j < 4; j++) { if (i == j) continue; if( (wStartTime[i] > wStartTime[j]) && (wStartTime[i] < wStopTime[j]) || \ (wStopTime[i] > wStartTime[j]) && (wStopTime[i] < wStopTime[j]) ) { AfxMessageBox("布防时间段不能重复!"); return FALSE; } } } return TRUE; } BOOL CRemoteAlarmIn::F_ShowRecordChan(int nChan) { if(nChan>=1) { GetDlgItem(IDC_CHKRECORDCHAN1)->EnableWindow(TRUE); m_bRecordChan1 = m_lpAlarmIn->byRelRecordChan[0]; } if(nChan>=2) { GetDlgItem(IDC_CHKRECORDCHAN2)->EnableWindow(TRUE); m_bRecordChan2 = m_lpAlarmIn->byRelRecordChan[1]; } if(nChan>=3) { GetDlgItem(IDC_CHKRECORDCHAN3)->EnableWindow(TRUE); m_bRecordChan3 = m_lpAlarmIn->byRelRecordChan[2]; } if(nChan>=4) { GetDlgItem(IDC_CHKRECORDCHAN4)->EnableWindow(TRUE); m_bRecordChan4 = m_lpAlarmIn->byRelRecordChan[3]; } if(nChan>=5) { GetDlgItem(IDC_CHKRECORDCHAN5)->EnableWindow(TRUE); m_bRecordChan5 = m_lpAlarmIn->byRelRecordChan[4]; } if(nChan>=6) { GetDlgItem(IDC_CHKRECORDCHAN6)->EnableWindow(TRUE); m_bRecordChan6 = m_lpAlarmIn->byRelRecordChan[5]; } if(nChan>=7) { GetDlgItem(IDC_CHKRECORDCHAN7)->EnableWindow(TRUE); m_bRecordChan7 = m_lpAlarmIn->byRelRecordChan[6]; } if(nChan>=8) { GetDlgItem(IDC_CHKRECORDCHAN8)->EnableWindow(TRUE); m_bRecordChan8 = m_lpAlarmIn->byRelRecordChan[7]; } if(nChan>=9) { GetDlgItem(IDC_CHKRECORDCHAN9)->EnableWindow(TRUE); m_bRecordChan9 = m_lpAlarmIn->byRelRecordChan[8]; } if(nChan>=10) { GetDlgItem(IDC_CHKRECORDCHAN10)->EnableWindow(TRUE); m_bRecordChan10 = m_lpAlarmIn->byRelRecordChan[9]; } if(nChan>=11) { GetDlgItem(IDC_CHKRECORDCHAN11)->EnableWindow(TRUE); m_bRecordChan11 = m_lpAlarmIn->byRelRecordChan[10]; } if(nChan>=12) { GetDlgItem(IDC_CHKRECORDCHAN12)->EnableWindow(TRUE); m_bRecordChan12 = m_lpAlarmIn->byRelRecordChan[11]; } if(nChan>=13) { GetDlgItem(IDC_CHKRECORDCHAN13)->EnableWindow(TRUE); m_bRecordChan13 = m_lpAlarmIn->byRelRecordChan[12]; } if(nChan>=14) { GetDlgItem(IDC_CHKRECORDCHAN14)->EnableWindow(TRUE); m_bRecordChan14 = m_lpAlarmIn->byRelRecordChan[13]; } if(nChan>=15) { GetDlgItem(IDC_CHKRECORDCHAN15)->EnableWindow(TRUE); m_bRecordChan15 = m_lpAlarmIn->byRelRecordChan[14]; } if(nChan>=16) { GetDlgItem(IDC_CHKRECORDCHAN16)->EnableWindow(TRUE); m_bRecordChan16 = m_lpAlarmIn->byRelRecordChan[15]; } return TRUE; } void CRemoteAlarmIn::OnCancel() { // TODO: Add extra cleanup here // CDialog::OnCancel(); }