⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netctlpalarmdlg.cpp

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecTable1[weekno].nEndHour;
			minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecTable1[weekno].nEndMinute;
			CTime time1(2002,10,16,hour,minute,0,0);
			m_EndTime1=time1;
			
			hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecTable2[weekno].nBgnHour;
			minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecTable2[weekno].nBgnMinute;
			CTime time2(2002,10,16,hour,minute,0,0);
			m_BgnTime2=time2;
			
			hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecTable2[weekno].nEndHour;
			minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecTable2[weekno].nEndMinute;
			CTime time3(2002,10,16,hour,minute,0,0);
			m_EndTime2=time3;			
		}
		if(nSelDay&(1<<weekno))
			m_ProbeRec=TRUE;
		else
			m_ProbeRec=FALSE;	
		UpdateData(FALSE);
		int curSel=m_LstRecPort.GetNextItem(-1,LVNI_SELECTED);
		if(curSel==-1)
		{
			if(m_LstRecPort.GetItemCount()>0)
			{
				m_LstRecPort.SetItemState(0,LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED);
				curSel=0;
			}
			else
				return;
		}
		m_Preset=m_LstRecPort.GetItemText(curSel,1);
		UpdateData(FALSE);
	}	
	else
	{
		BYTE weekno;
		unsigned short Trigger;
		UpdateData(TRUE) ;
		weekno = m_weekTab.GetCurSel() ;
		if(weekno<0)
			weekno=0;
		
		pNetRemoteCtlDlg->GetDvrParam(m_ProbeInput+1,weekno+1,PARA_TYPE_ALARM_PROBE,&m_ProbeAlarmParam,sizeof(m_ProbeAlarmParam));
		
		//Trigger=Con_pDVRPara->contactPara[m_ProbeInput].nContactRecPort;
		Trigger = m_ProbeAlarmParam.ContactRecChannel;

		for(i=0;i<m_LstRecPort.GetItemCount();i++)
		{
			if(Trigger&(1<<i))
				ListView_SetCheckState(m_LstRecPort.m_hWnd,i,TRUE)
			else
				ListView_SetCheckState(m_LstRecPort.m_hWnd,i,FALSE)
		}

		//Trigger=Con_pDVRPara->contactPara[m_ProbeInput].nContactAlarmOut;
		Trigger = m_ProbeAlarmParam.ContactAlarmOut;
		
		if(Trigger&1)
			m_ProbeInput1=TRUE;
		else
			m_ProbeInput1=FALSE;
		if(Trigger&2)
			m_ProbeInput2=TRUE;
		else
			m_ProbeInput2=FALSE;
		if(Trigger&4)
			m_ProbeInput3=TRUE;
		else
			m_ProbeInput3=FALSE;
		if(Trigger&8)
			m_ProbeInput4=TRUE;
		else
			m_ProbeInput4=FALSE;
//		if(Trigger&16)
//			m_ProbeInput5=TRUE;
//		else
//			m_ProbeInput5=FALSE;
//		if(Trigger&32)
//			m_ProbeInput6=TRUE;
//		else
//			m_ProbeInput6=FALSE;
//		if(Trigger&64)
//			m_ProbeInput7=TRUE;
//		else
//			m_ProbeInput7=FALSE;
//		if(Trigger&128)
//			m_ProbeInput8=TRUE;
//		else
//			m_ProbeInput8=FALSE;
		
		//m_ContactRec=Con_pDVRPara->contactPara[m_ProbeInput].nContactAlarmStatus;
		m_ContactRec = m_ProbeAlarmParam.IsProbeAlarmRec;
		
		//m_ProbeTime=Con_pDVRPara->contactPara[m_ProbeInput].nContactAlarmTime;
		m_ProbeTime = m_ProbeAlarmParam.ProbeAlarmRecTime;
		//预置
		for(i=0;i<m_LstRecPort.GetItemCount();i++)
		{
			//if(Con_pDVRPara->contactPara[m_ProbeInput].nPreSetPort[i]==0xFF)
			if (m_ProbeAlarmParam.PreSetPort[i] == 0xFF)
				m_LstRecPort.SetItemText(i,1,l_None);
			else
			{
				//str.Format("%d",Con_pDVRPara->contactPara[m_ProbeInput].nPreSetPort[i]);
				str.Format("%d", m_ProbeAlarmParam.PreSetPort[i]);
				m_LstRecPort.SetItemText(i,1,str);
			}
		}

//		BYTE weekno;
		BYTE hour,minute;
		weekno = m_weekTab.GetCurSel() ;
		if(weekno<0)
			weekno=0;
		//nSelDay=Con_pDVRPara->contactPara[m_ProbeInput].ContactAlarmRecDefendDayTag;
		nSelDay = m_ProbeAlarmParam.IsDefend;
		if(nSelDay&(1<<7))
			nSelDay=1<<7;

		//hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday1.nBgnHour;
		//minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday1.nBgnMinute;
		hour = m_ProbeAlarmParam.DefendStartHour1;
		minute = m_ProbeAlarmParam.DefendStartMinute1;
		CTime time(2002,10,16,hour,minute,0,0);
		m_BgnTime1=time;
		
		//hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday1.nEndHour;
		//minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday1.nEndMinute;
		hour = m_ProbeAlarmParam.DefendEndHour1;
		minute = m_ProbeAlarmParam.DefendEndMinute1;
		CTime time1(2002,10,16,hour,minute,0,0);
		m_EndTime1=time1;
		
		//hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday2.nBgnHour;
		//minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday2.nBgnMinute;
		hour = m_ProbeAlarmParam.DefendStartHour2;
		minute = m_ProbeAlarmParam.DefendStartMinute2;
		CTime time2(2002,10,16,hour,minute,0,0);
		m_BgnTime2=time2;
		
		//hour=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday2.nEndHour;
		//minute=Con_pDVRPara->contactPara[m_ProbeInput].tContactAlarmRecEveryday2.nEndMinute;
		hour = m_ProbeAlarmParam.DefendEndHour2;
		minute = m_ProbeAlarmParam.DefendEndMinute2;
		CTime time3(2002,10,16,hour,minute,0,0);
		m_EndTime2=time3;

		if(nSelDay&(1<<weekno))
			m_ProbeRec=TRUE;
		else
			m_ProbeRec=FALSE;	
		UpdateData(FALSE);
		int curSel=m_LstRecPort.GetNextItem(-1,LVNI_SELECTED);
		if(curSel==-1)
		{
			if(m_LstRecPort.GetItemCount()>0)
			{
				m_LstRecPort.SetItemState(0,LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED);
				curSel=0;
			}
			else
				return;
		}
		m_Preset=m_LstRecPort.GetItemText(curSel,1);
		UpdateData(FALSE);
	}
}

BOOL CNetCtlPAlarmDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	DWORD t1=0;
	DWORD t2=0;

    t1=pMsg->message;
	t2=(DWORD)pMsg->wParam;
	if(t1==WM_KEYDOWN&&(t2==VK_RETURN||t2==VK_ESCAPE))
       return true;
	
	return CDialog::PreTranslateMessage(pMsg);
}

void CNetCtlPAlarmDlg::Refresh()
{
	char * l_probealarmRecTime;	
	char * l_Port;
	char * l_PresetPort;
	char * l_Everyday;
	char * l_Input;
	CString		m_Str;

	l_probealarmRecTime=_T("探头报警录像时间(秒):");
	l_Port=_T("通道");
	l_PresetPort=_T("预置位置");
	l_Everyday=_T("每天");
	
		
	int i;
	CString str;


	int DVRHardWareType;
	
	TM8100_NET_NODE*pCur;
	pCur = pNetNodeHead;
	while(pCur!=NULL)
	{
		if(pCur->ipAddr!=pNetRemoteCtlDlg->m_nIpAddr)
			pCur = pCur->next;
		else
		{
            DVRHardWareType = pCur->DVRHardWareType;
		      pCur = pCur->next;
		} 
	}

	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{		
		m_cProbeTime.SetLimitText(3);
		GetDlgItem(IDC_STATICPROBERECORD)->SetWindowText(l_probealarmRecTime);
		
		if(Con_pDVRPara!=NULL)
		{							
			GetDlgItem(IDC_EDIT_PRESET)->EnableWindow(TRUE);
			GetDlgItem(IDC_BTN_MODIFY)->EnableWindow(TRUE);
			
			if(m_weekTab.GetItemCount()==6)
				m_weekTab.InsertItem(7,l_Everyday,7);
			if(m_LstRecPort.GetHeaderCtrl()->GetItemCount()==1)
				m_LstRecPort.InsertColumn(1,l_PresetPort,LVCFMT_CENTER,100,1);
			
			for(i=0;i<Con_pDVRPara->nPortNo;i++)
			{
				if(m_LstRecPort.GetItemCount()<=i)
				{
					str.Format("%s%02d",l_Port,i+1);
					m_LstRecPort.InsertItem(i,str);
				}
			}
			while(m_LstRecPort.GetItemCount()>Con_pDVRPara->nPortNo)
			{
				m_LstRecPort.DeleteItem(m_LstRecPort.GetItemCount()-1);
			}
		}
	}
	else
	{
		m_cProbeTime.SetLimitText(3);
			GetDlgItem(IDC_STATICPROBERECORD)->SetWindowText(l_probealarmRecTime);
		if(ENGLISH)
		{
			l_Input=_T("Input");
		}
		else
		{
            l_Input=_T("输入");
		}	
		//if(DVRHardWareType==2)
		if(m_LoginParam.ChannelCount>8)
		{
			m_alarminput.ResetContent() ;
			for (i=0;i<16;i++)
			{
				m_Str.Format("%s%02d",l_Input,i+1) ;
				m_alarminput.AddString(m_Str) ;
			}
			m_alarminput.SetCurSel(0);
		}
//		GetDlgItem(IDC_STATICPRESETPOSITION1)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_PRESET)->EnableWindow(TRUE);
		GetDlgItem(IDC_BTN_MODIFY)->EnableWindow(TRUE);
		GetDlgItem(IDC_CHK_PROBEREC)->ShowWindow(SW_SHOW);
//		GetDlgItem(IDC_CHK_ALLDAY)->ShowWindow(SW_HIDE);
		if(m_weekTab.GetItemCount()==6)
			m_weekTab.InsertItem(7,l_Everyday,7);
		if(m_LstRecPort.GetHeaderCtrl()->GetItemCount()==1)
			m_LstRecPort.InsertColumn(1,l_PresetPort,LVCFMT_CENTER,100,1);

		for(i=0;i<m_LoginParam.ChannelCount;i++)
		{
			if(m_LstRecPort.GetItemCount()<=i)
			{
				str.Format("%s%02d",l_Port,i+1);
				m_LstRecPort.InsertItem(i,str);
			}
		}
		while(m_LstRecPort.GetItemCount()>m_LoginParam.ChannelCount)
		{
			m_LstRecPort.DeleteItem(m_LstRecPort.GetItemCount()-1);
		}
	}

	OnSelchangeRprobealarmInput();
}

void CNetCtlPAlarmDlg::OnBtnModify() 
{
	// TODO: Add your control notification handler code here
	char * l_Input_099;//=_T("Please Input a integer between 0 and 99");
	char * l_None;
	
		l_None=_T("无");
		l_Input_099=_T("请输入一个0到99之间的整数");
	
	// TODO: Add your control notification handler code here
	int Index;
	int nVal;
	UpdateData(TRUE);
	if(m_LstRecPort.GetSelectedCount()==0)
		return;
	nVal=CheckPreset(m_Preset);
	if(nVal!=0xFF&&(nVal<0||nVal>99))
	{
		AfxMessageBox(l_Input_099);
		GetDlgItem(IDC_EDIT_PRESET)->SetFocus();
		return ;
	}
	Index=m_LstRecPort.GetNextItem(-1,LVNI_SELECTED);
	if(Index!=-1)
	{
		if(nVal==0xFF)
		{
			m_LstRecPort.SetItemText(Index,1,l_None);
		}
		else
		{
			CString str;
			str.Format("%d",nVal);
			m_LstRecPort.SetItemText(Index,1,str);
		}
	}
}

void CNetCtlPAlarmDlg::OnItemchangedListRecport(NMHDR* pNMHDR, LRESULT* pResult) 
{
	this->UpdateData();
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	int curSel;
	if(pNMListView==NULL)
		return;
	curSel=pNMListView->iItem;
	if(curSel==-1)
		return;
	if(curSel!=m_LstRecPort.GetNextItem(-1,LVNI_SELECTED))
		return;
	m_Preset=m_LstRecPort.GetItemText(curSel,1);
	UpdateData(FALSE);
	
	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -