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

📄 linkagealarmset.cpp

📁 一个完整的数字硬盘录像机系统软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// LinkageAlarmSet.cpp : implementation file
//

#include "stdafx.h"
#include "gtmpeg.h"
#include "LinkageAlarmSet.h"
#include "SecondaryOutSet.h"
#include "ZoneSet.h"
#include "GtMpegWnd.h"
#include "Chunnel.h"
#include "AppendSecondarySet.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(CLinkageAlarmSet, CPropertyPage)
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
CLinkageAlarmSet::CLinkageAlarmSet() : CPropertyPage(CLinkageAlarmSet::IDD)
{
	//{{AFX_DATA_INIT(CLinkageAlarmSet)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_nCurChunnel=0;
}
CLinkageAlarmSet::~CLinkageAlarmSet()
{
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLinkageAlarmSet)
	DDX_Control(pDX, IDC_CHUNNEL_BOX, m_cChunnelBox);
	//}}AFX_DATA_MAP
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CLinkageAlarmSet, CPropertyPage)
	//{{AFX_MSG_MAP(CLinkageAlarmSet)
	ON_BN_CLICKED(IDC_SECONDARY_OUT_SET, OnSecondaryOutSet)
	ON_BN_CLICKED(IDC_ZONE_SET, OnZoneSet)
	ON_CBN_CLOSEUP(IDC_CHUNNEL_BOX, OnCloseupChunnelBox)
	ON_BN_CLICKED(IDC_SAVE, OnSave)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_1, OnCloseupBindChannel1)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_2, OnCloseupBindChannel2)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_3, OnCloseupBindChannel3)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_4, OnCloseupBindChannel4)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_5, OnCloseupBindChannel5)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_6, OnCloseupBindChannel6)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_7, OnCloseupBindChannel7)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_8, OnCloseupBindChannel8)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_9, OnCloseupBindChannel9)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_10, OnCloseupBindChannel10)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_11, OnCloseupBindChannel11)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_12, OnCloseupBindChannel12)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_13, OnCloseupBindChannel13)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_14, OnCloseupBindChannel14)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_15, OnCloseupBindChannel15)
	ON_CBN_CLOSEUP(IDC_BIND_CHANNEL_16, OnCloseupBindChannel16)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_1, OnCloseupBindSecondary1)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_2, OnCloseupBindSecondary2)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_3, OnCloseupBindSecondary3)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_4, OnCloseupBindSecondary4)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_5, OnCloseupBindSecondary5)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_6, OnCloseupBindSecondary6)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_7, OnCloseupBindSecondary7)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_8, OnCloseupBindSecondary8)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_9, OnCloseupBindSecondary9)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_10, OnCloseupBindSecondary10)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_11, OnCloseupBindSecondary11)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_12, OnCloseupBindSecondary12)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_13, OnCloseupBindSecondary13)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_14, OnCloseupBindSecondary14)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_15, OnCloseupBindSecondary15)
	ON_CBN_CLOSEUP(IDC_BIND_SECONDARY_16, OnCloseupBindSecondary16)
	ON_CBN_CLOSEUP(IDC_REC_STOP_1, OnCloseupRecStop1)
	ON_CBN_CLOSEUP(IDC_REC_STOP_2, OnCloseupRecStop2)
	ON_CBN_CLOSEUP(IDC_REC_STOP_3, OnCloseupRecStop3)
	ON_CBN_CLOSEUP(IDC_REC_STOP_4, OnCloseupRecStop4)
	ON_CBN_CLOSEUP(IDC_REC_STOP_5, OnCloseupRecStop5)
	ON_CBN_CLOSEUP(IDC_REC_STOP_6, OnCloseupRecStop6)
	ON_CBN_CLOSEUP(IDC_REC_STOP_7, OnCloseupRecStop7)
	ON_CBN_CLOSEUP(IDC_REC_STOP_8, OnCloseupRecStop8)
	ON_CBN_CLOSEUP(IDC_REC_STOP_9, OnCloseupRecStop9)
	ON_CBN_CLOSEUP(IDC_REC_STOP_10, OnCloseupRecStop10)
	ON_CBN_CLOSEUP(IDC_REC_STOP_11, OnCloseupRecStop11)
	ON_CBN_CLOSEUP(IDC_REC_STOP_12, OnCloseupRecStop12)
	ON_CBN_CLOSEUP(IDC_REC_STOP_13, OnCloseupRecStop13)
	ON_CBN_CLOSEUP(IDC_REC_STOP_14, OnCloseupRecStop14)
	ON_CBN_CLOSEUP(IDC_REC_STOP_15, OnCloseupRecStop15)
	ON_CBN_CLOSEUP(IDC_REC_STOP_16, OnCloseupRecStop16)
	//}}AFX_MSG_MAP
	ON_COMMAND_EX_RANGE(IDC_APPEND_BUTTON1, IDC_APPEND_BUTTON16, OnAppendButton)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BOOL CLinkageAlarmSet::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	for(int i=0;i<theApp.m_nChunnel;i++)
	{
	    CString sTxt;
		sTxt.Format("报警通道%d",i+1);
		m_cChunnelBox.AddString(sTxt);
	}
	m_cChunnelBox.SetCurSel(m_nCurChunnel);
	UpdateSet();
	return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::OnSecondaryOutSet() 
{
  CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
  CChunnel* pCurChunnel=pWnd->GetChunnel(m_nCurChunnel);
  CSecondaryOutSet dlg(pCurChunnel,m_nCurChunnel);
  if(dlg.DoModal()==IDOK)
  {
       OnSave();
  }
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::OnZoneSet() 
{
    CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
    CChunnel* pCurChunnel=pWnd->GetChunnel(m_nCurChunnel);
    CZoneSet dlg(pCurChunnel,m_nCurChunnel);
    if(dlg.DoModal()==IDOK)
	{
	   OnSave();
       UpdateSet();
	}
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::OnCloseupChunnelBox() 
{
  int nIndex=m_cChunnelBox.GetCurSel();
  if(nIndex!=-1)
  {
     if(nIndex!=m_nCurChunnel)
	 {
	    m_nCurChunnel=nIndex;
		UpdateSet();
		SetFocus();
	 }
  }
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::UpdateSet()
{
    CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
    CChunnel* pCurChunnel=pWnd->GetChunnel(m_nCurChunnel);
	if(pCurChunnel!=NULL)
	{
		for(int i=0;i<16;i++)
		{
		   CZone *pZone=pCurChunnel->GetZone(i);
		   BOOL bEnable=TRUE;
		   if(pZone->m_nType==7)
               bEnable=FALSE;
		   CComboBox *pChannelBox=(CComboBox*)GetDlgItem(IDC_BIND_CHANNEL_1+i);
		   if(bEnable)
		     pChannelBox->SetCurSel(pZone->GetBindChannel()+1);
           pChannelBox->EnableWindow(bEnable);

		   CComboBox *pSecondaryBox=(CComboBox*)GetDlgItem(IDC_BIND_SECONDARY_1+i);
		   if(bEnable)
		      pSecondaryBox->SetCurSel(pZone->GetBindSecondary()+1);
		   pSecondaryBox->EnableWindow(bEnable);
		   CComboBox *pRecStopBox=(CComboBox*)GetDlgItem(IDC_REC_STOP_1+i);
		   if(bEnable)
		     pRecStopBox->SetCurSel(pZone->GetRecordTimer());
		   pRecStopBox->EnableWindow(bEnable);
		   CEdit *pEdit=(CEdit *)GetDlgItem(IDC_APPEND_EDIT1+i);
		   CString sTxt;
		   sTxt.Format("通道%d,%d路输出",pZone->m_nBindChunnel2+1,pZone->m_nBindSecondary2+1);
		   if(pZone->m_nBindChunnel2!=-1&&pZone->m_nBindSecondary2!=-1&&bEnable)
			   pEdit->SetWindowText(sTxt);
			else
               pEdit->SetWindowText("");
			pEdit->EnableWindow(bEnable);
		}
	}
	else
	{
		for(int i=0;i<16;i++)
		{
		   CComboBox *pChannelBox=(CComboBox*)GetDlgItem(IDC_BIND_CHANNEL_1+i);
		   pChannelBox->SetCurSel(-1);

		   CComboBox *pSecondaryBox=(CComboBox*)GetDlgItem(IDC_BIND_SECONDARY_1+i);
		   pSecondaryBox->SetCurSel(-1);

		   CComboBox *pSecondaryStopBox=(CComboBox*)GetDlgItem(IDC_SECONDARY_STOP_1+i);
		   pSecondaryStopBox->SetCurSel(-1);
		   CComboBox *pRecStopBox=(CComboBox*)GetDlgItem(IDC_REC_STOP_1+i);
		   pRecStopBox->SetCurSel(-1);
		}
	}
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::OnSave() 
{
  CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
  pWnd->SaveAlarmSet();
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::SetRecStop(int nAddress,int nWay)
{
    CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
    CChunnel* pCurChunnel=pWnd->GetChunnel(m_nCurChunnel);
	if(pCurChunnel!=NULL)
	{
	   CZone *pZone=pCurChunnel->GetZone(nAddress);
	   if(pZone!=NULL)
	      pZone->SetRecordTimer(nWay);
	}
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::SetBindChannel(int nAddress,int nChannel)
{
    CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
    CChunnel* pCurChunnel=pWnd->GetChunnel(m_nCurChunnel);
	if(pCurChunnel!=NULL)
	{
	   CZone *pZone=pCurChunnel->GetZone(nAddress);
	   if(pZone!=NULL)
	      pZone->SetBindChannel(nChannel);
	}
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::SetBindSecondary(int nAddress,int nSecondary)
{
    CGtMpegWnd *pWnd=(CGtMpegWnd *)theApp.m_pMainWnd;
    CChunnel* pCurChunnel=pWnd->GetChunnel(m_nCurChunnel);
	if(pCurChunnel!=NULL)
	{
	   CZone *pZone=pCurChunnel->GetZone(nAddress);
	   if(pZone!=NULL)
	      pZone->SetBindSecondary(nSecondary);
	}
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CLinkageAlarmSet::OnCloseupBindChannel1() 
{
   CComboBox *pChannelBox=(CComboBox*)GetDlgItem(IDC_BIND_CHANNEL_1);  
   SetBindChannel(0,pChannelBox->GetCurSel()-1);
}
void CLinkageAlarmSet::OnCloseupBindChannel2() 
{
   CComboBox *pChannelBox=(CComboBox*)GetDlgItem(IDC_BIND_CHANNEL_2);  
   SetBindChannel(1,pChannelBox->GetCurSel()-1);
}
void CLinkageAlarmSet::OnCloseupBindChannel3() 

⌨️ 快捷键说明

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