📄 zone.cpp
字号:
#include "stdafx.h"
#include "GtMpeg.h"
#include "Zone.h"
#include "GtMpegWnd.h"
IMPLEMENT_SERIAL(CZone, CObject, 1)
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::StartRecord()
{
if(m_nRecordTimer==0)
{
m_nStartTicks=GetTickCount();
}
}
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::StopRecord(BOOL bForce/*=FALSE*/)
{
if(m_nStartTicks==-1)
return;
CGtMpegWnd* pWnd=(CGtMpegWnd*)theApp.m_pMainWnd;
if(bForce)
{
m_nStartTicks=-1;
pWnd->StopTimerRecord(m_nBindChunnel,m_nSort);
}
else
{
int nCurTicks = GetTickCount();
if ((nCurTicks - m_nStartTicks)>=theApp.m_nAlarmRecordTimer)//1分=60000毫秒
{
m_nStartTicks=-1;
pWnd->StopTimerRecord(m_nBindChunnel,m_nSort);
}
}
}
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::StartExitDelay()
{
if(!m_bExitDelay)
{
m_bExitDelay=TRUE;
m_nStartExitDelayTicks=GetTickCount();
if(m_nExitTimer>0)
{
CString sMsg;
sMsg=GetZoneTxt();
sMsg+=",准备布防";
CGtMpegWnd* pWnd=(CGtMpegWnd*)theApp.m_pMainWnd;
pWnd->m_cMsgListBox.AddString(sMsg);
}
}
}
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::EndExitDelay()
{
if(m_bExitDelay)
{
int nCurTicks = GetTickCount();
sndPlaySound(GetAppPath()+"Sound\\进入.wav",SND_ASYNC );
if ((nCurTicks - m_nStartExitDelayTicks)>=(m_nExitTimer*1000))//1分=60000毫秒
{
CGtMpegWnd* pWnd=(CGtMpegWnd*)theApp.m_pMainWnd;
CString sMsg;
sMsg=m_sZoneTxt;
sMsg+="布防完毕!";
pWnd->m_cMsgListBox.AddString(sMsg+"\t");
pWnd->WriteAlarmInfo(m_nBindChunnel,m_nSort,4,COleDateTime::GetCurrentTime());
m_bStates2=TRUE;
m_bExitDelay=FALSE;
pWnd->OpenZoneAlarm(this);
POSITION nPos=pWnd->m_lstEnterDelayZone.GetHeadPosition();
while(nPos)
{
POSITION OldPos=nPos;
CZone *pTmpZone=pWnd->m_lstEnterDelayZone.GetNext(nPos);
if(pTmpZone==this)
{
pWnd->m_lstEnterDelayZone.RemoveAt(OldPos);
break;
}
}
m_nStartExitDelayTicks=-1;
pWnd->SaveAlarmSet();
}
}
}
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::StartEnterDelay()
{
if(!m_bEnterDelay)
{
m_bEnterDelay=TRUE;
m_nStartEnterDelayTicks=GetTickCount();
if(m_nEnterTimer>0)
{
CString sMsg;
sMsg=GetZoneTxt();
sMsg+=",准备撤防";
CGtMpegWnd* pWnd=(CGtMpegWnd*)theApp.m_pMainWnd;
pWnd->m_cMsgListBox.AddString(sMsg);
}
}
}
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::EndEnterDelay()
{
CGtMpegWnd* pWnd=(CGtMpegWnd*)theApp.m_pMainWnd;
if(m_bEnterDelay)
{
if(m_nType==7)
{
int nCurTicks = GetTickCount();
sndPlaySound(GetAppPath()+"Sound\\进入.wav",SND_ASYNC );
if ((nCurTicks - m_nStartEnterDelayTicks)>=(m_nEnterTimer*1000))//1分=60000毫秒
{
CString sMsg;
sMsg=m_sZoneTxt;
sMsg+="撤防完毕!";
m_bStates2=FALSE;
m_bEnterDelay=FALSE;
pWnd->m_cMsgListBox.AddString(sMsg+"\t");
pWnd->OpenZoneAlarm(this);
m_nStartEnterDelayTicks=-1;
pWnd->SaveAlarmSet();
}
return;
}
if(m_bStates)
{
int nCurTicks = GetTickCount();
sndPlaySound(GetAppPath()+"Sound\\进入.wav",SND_ASYNC );
if ((nCurTicks - m_nStartEnterDelayTicks)>=(m_nEnterTimer*1000))//1分=60000毫秒
{
CGtMpegWnd* pWnd=(CGtMpegWnd*)theApp.m_pMainWnd;
pWnd->ZoneAlarm(this);
m_bEnterDelay=FALSE;
m_nStartEnterDelayTicks=-1;
}
}
else
{
CString sMsg;
sMsg=m_sZoneTxt;
sMsg+="解除";
pWnd->m_cMsgListBox.AddString(sMsg+"\t");
pWnd->WriteAlarmInfo(m_nBindChunnel,m_nSort,4,COleDateTime::GetCurrentTime());
m_nStartEnterDelayTicks=-1;
POSITION nPos=pWnd->m_lstEnterDelayZone.GetHeadPosition();
while(nPos)
{
POSITION OldPos=nPos;
CZone *pTmpZone=pWnd->m_lstEnterDelayZone.GetNext(nPos);
if(pTmpZone==this)
{
pWnd->m_lstEnterDelayZone.RemoveAt(OldPos);
break;
}
}
m_bEnterDelay=FALSE;
}
}
}
//////////////////////////////////////////
//
//////////////////////////////////////////
void CZone::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsStoring())
{
ar << (DWORD)m_nBindChunnel;
ar << (DWORD)m_nSort;
ar << (DWORD)m_nBindSecondary;
ar << (DWORD)m_nBindChannel;
ar << (DWORD)m_bStates;
ar << m_sZoneTxt;
ar << (DWORD)m_nRecordTimer;
ar << (DWORD)m_nType;
ar << m_sTouchTxt;
ar << (DWORD)m_nExitTimer;
ar << (DWORD)m_nEnterTimer;
ar << (DWORD)m_nBindChunnel2;
ar << (DWORD)m_nBindSecondary2;
ar << (DWORD)m_nBelong;
ar << (DWORD)m_nCtrlWay;
ar << (DWORD)m_bStates2;
ar << (DWORD)m_bStates3;
ar << (DWORD)m_nTmp2;
ar << (DWORD)m_nTmp3;
ar << m_sTmp1;
ar << m_stmp2;
ar << m_sTmp3;
for(int i=0;i<16;i++)
ar << m_Zone[i];
}
else
{
DWORD temp;
ar >> temp; m_nBindChunnel=temp;
ar >> temp;m_nSort=temp;
ar >> temp; m_nBindSecondary=temp;
ar >> temp; m_nBindChannel=temp;
ar >> temp; m_bStates=temp;
ar >> m_sZoneTxt;
ar >> temp; m_nRecordTimer=temp;
ar >> temp;m_nType=temp;
ar >> m_sTouchTxt;
ar >> temp;m_nExitTimer=temp;
ar >> temp;m_nEnterTimer=temp;
ar >> temp;m_nBindChunnel2=temp;
ar >> temp;m_nBindSecondary2=temp;
ar >> temp;m_nBelong=temp;
ar >> temp;m_nCtrlWay=temp;
ar >> temp;m_bStates2=temp;
ar >> temp;m_bStates3=temp;
ar >> temp;m_nTmp2=temp;
ar >> temp;m_nTmp3=temp;
ar >> m_sTmp1;
ar >> m_stmp2;
ar >> m_sTmp3;
for(int i=0;i<16;i++)
{
ar >> temp;
m_Zone[i]=temp;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -