📄 netremotectrldlg.cpp
字号:
// NetRemoteCtrlDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Sample.h"
#include "NetRemoteCtrlDlg.h"
#include "ConSDK.h"
#include <WinSock2.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//----------------------------------------------
BOOL DVRParaChange;
extern BOOL ENGLISH;
//----------------------------------------------
/////////////////////////////////////////////////////////////////////////////
// CNetRemoteCtrlDlg dialog
CNetRemoteCtrlDlg::CNetRemoteCtrlDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNetRemoteCtrlDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CNetRemoteCtrlDlg)
//}}AFX_DATA_INIT
pParent = NULL ;
m_nDVRType = 0;
}
void CNetRemoteCtrlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNetRemoteCtrlDlg)
DDX_Control(pDX, IDC_NETCTL_TAB, m_TabSheet);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNetRemoteCtrlDlg, CDialog)
//{{AFX_MSG_MAP(CNetRemoteCtrlDlg)
ON_WM_CLOSE()
ON_WM_SHOWWINDOW()
ON_NOTIFY(TCN_SELCHANGE, IDC_NETCTL_TAB, OnSelchangeNetctlTab)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNetRemoteCtrlDlg message handlers
BOOL CNetRemoteCtrlDlg::Create(CWnd* pParentWnd)
{
// pParent = (CNetDlg *)pParentWnd ;
return CDialog::Create(IDD, pParentWnd);
}
BOOL CNetRemoteCtrlDlg::OnInitDialog()
{
char * l_RecordPara;//=_T("Record PARA");
char * l_VideoPara;
char * l_SchedulePara;//=_T("Schedule PARA");
char * l_MotionPara;//=_T("Motion PARA");
char * l_MotionRegion;
char * l_ContactPara;//=_T("Contact PARA");
char * l_NetAttr;//=_T("Net setup");
char * l_OtherSet;//=_T("Other setup");
char * l_Record;//=_T("Record");
char * l_Alarm_Log;
char * l_GetLog;
char * l_HeartBeat;
if(ENGLISH)
{
l_RecordPara=_T("Record PARA");
l_VideoPara=_T("Video PARA");
l_SchedulePara=_T("Schedule PARA");
l_MotionPara=_T("Motion PARA");
l_MotionRegion=_T("Motion Region");
l_ContactPara=_T("Contact PARA");
l_NetAttr=_T("Net setup");
l_OtherSet=_T("Other setup");
l_Record=_T("Record");
l_Alarm_Log=_T("Alarm log");
l_GetLog = _T("Get Log");
l_HeartBeat = _T("Heart Beat PARA");
}
else
{
l_RecordPara=_T("录像参数");
l_VideoPara=_T("视频参数");
l_SchedulePara=_T("定时参数");
l_MotionPara=_T("移动报警参数");
l_MotionRegion=_T("移动报警区域");
l_ContactPara=_T("探头报警参数");
l_NetAttr=_T("网络属性");
l_OtherSet=_T("其他设置");
l_Record=_T("录像");
l_Alarm_Log=_T("报警日志");
l_GetLog = _T("读取日志");
l_HeartBeat = _T("心跳属性");
}
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_TabSheet.AddPage (l_VideoPara,&VideoParaDlg,IDD_NETCTL_VIDEOPARA_DLG); ///视频参数
m_TabSheet.AddPage (l_Record,&RecDlg,IDD_NETCTL_REC_DLG);//"录像"
m_TabSheet.AddPage (l_RecordPara,&RecSetDlg,IDD_NETCTL_RECSET_DLG);//"录像参数"
m_TabSheet.AddPage (l_SchedulePara,&SchRecDlg,IDD_NETCTL_SCHREC_DLG);//"定时参数"
m_TabSheet.AddPage (l_MotionPara,&MAlarmDlg,IDD_NETCTL_MALARM_DLG);//"移动报警参数"
m_TabSheet.AddPage (l_MotionRegion,&MRegionDlg,IDD_NETCTL_MREGION_DLG);
m_TabSheet.AddPage (l_ContactPara,&PAlarmDlg,IDD_NETCTL_PALARM_DLG);//"探头报警参数"
m_TabSheet.AddPage (l_NetAttr,&NetAddrDlg,IDD_NETCTL_NETADDR_DLG);//"添加DVR"
// add
m_TabSheet.AddPage (l_OtherSet,&ElseDlg,IDD_NETCTL_ELSE_DLG);//"其他设置"
m_TabSheet.AddPage (l_GetLog, &ReadLog, IDD_NETCTL_DVRLOG_DLG);//读取日志
m_TabSheet.AddPage (l_HeartBeat, &HeartBeatDlg, IDD_NETCTL_HEARTBEAT); // 该页面为专用
m_TabSheet.Show();
return TRUE ;
}
BOOL CNetRemoteCtrlDlg::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 CNetRemoteCtrlDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
/* if(DVRParaChange)
{
DVRParaChange=false;
pParent->SetNetRemoteSaveFlash();
}*/
CDialog::OnClose();
}
void CNetRemoteCtrlDlg::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CDialog::PostNcDestroy();
DestroyWindow();
}
void CNetRemoteCtrlDlg::Refresh()
{
RecDlg.Refresh();
RecSetDlg.Refresh();
SchRecDlg.Refresh();
MAlarmDlg.Refresh();
PAlarmDlg.Refresh();
ElseDlg.Refresh();
VideoParaDlg.Refresh();
NetAddrDlg.Refresh();
MRegionDlg.Refresh();
if ((m_nDVRType == 3) ||
(m_nDVRType == 6) ||
(m_nDVRType == 7))
HeartBeatDlg.Refresh();
}
void CNetRemoteCtrlDlg::SetIpPort(unsigned long nIpAddr,unsigned short nServPort, int nDVRType)
{
char * l_RemoteCtrl;
if(ENGLISH)
{
l_RemoteCtrl=_T("Remote Ctrl");
}
else
{
l_RemoteCtrl=_T("远程控制");
}
CString Title;
IN_ADDR InAddr;
m_nIpAddr=nIpAddr;
m_nServPort=nServPort;
m_nDVRType = nDVRType;
InAddr.s_addr=nIpAddr;
Title.Format("%s %s(%04d)",l_RemoteCtrl,inet_ntoa(InAddr),nServPort);
SetWindowText(Title);
}
void CNetRemoteCtrlDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
if( (bShow) && (nStatus == 0))
{
SetWindowPos (&wndTopMost,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
UpdateData(TRUE);
SetWindowPos (&wndNoTopMost,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
}
}
void CNetRemoteCtrlDlg::SetNetPortName(unsigned char PortNo,char *strPortName)
{
Con_SetLabel(m_nIpAddr,m_nServPort,PortNo,strPortName);
}
void CNetRemoteCtrlDlg::SetNetRemoteDefault()
{
Con_RecoverDefaultSet(m_nIpAddr,m_nServPort);
}
void CNetRemoteCtrlDlg::SetNetRemoteSaveFlash()
{
Con_SavePara(m_nIpAddr,m_nServPort);
}
void CNetRemoteCtrlDlg::SetNetRemoteRec(unsigned char PortNo,unsigned char nSchRec,unsigned char nMotionRec,unsigned char nContactRec,unsigned char nManualRec)
{
Con_SetRecord(m_nIpAddr,m_nServPort,PortNo,nSchRec,nMotionRec,nContactRec,nManualRec);
}
void CNetRemoteCtrlDlg::SetVideoParaDefault(unsigned char nPort)
{
Con_SetVideoParaDefault(m_nIpAddr,m_nServPort,nPort);
}
void CNetRemoteCtrlDlg::SetDVRSysTime(unsigned char y, unsigned char mo, unsigned char d, unsigned char h, unsigned char mi, unsigned char s, unsigned char w)
{
Con_SetDvrSysTime(m_nIpAddr,m_nServPort,y,mo,d, h,mi,s,w);
}
void CNetRemoteCtrlDlg::GetDVRSysTime()
{
Con_GetDvrSysTime(m_nIpAddr,m_nServPort);
}
void CNetRemoteCtrlDlg::SetNetRemoteMAlarmRecSet(unsigned char nPort, unsigned char nWeek,CTime BgnTime1,CTime EndTime1,CTime BgnTime2,CTime EndTime2,unsigned char Smart,unsigned char RecTime,unsigned char nMotionAlarmOut,unsigned char nSelDay,unsigned short nMotionRecPort)
{
char Buf[20];
unsigned char Buflen;
Buf[0]=(unsigned char)BgnTime1.GetHour();
Buf[1]=(unsigned char)BgnTime1.GetMinute();
Buf[2]=(unsigned char)EndTime1.GetHour();
Buf[3]=(unsigned char)EndTime1.GetMinute();
Buf[4]=(unsigned char)BgnTime2.GetHour();
Buf[5]=(unsigned char)BgnTime2.GetMinute();
Buf[6]=(unsigned char)EndTime2.GetHour();
Buf[7]=(unsigned char)EndTime2.GetMinute();
Buf[8]=Smart;
Buf[9]=RecTime;
memcpy(Buf+10,&nMotionRecPort,2);
Buflen=12;
Con_SetMoveAlarmPara(m_nIpAddr,m_nServPort,nPort,nWeek,Buf,nMotionAlarmOut,nSelDay,Buflen);
}
void CNetRemoteCtrlDlg::SetNetRemoteMAlarmRegionSet(unsigned char nPort,unsigned char* MotionCheck,unsigned char Smart,unsigned char *MaskCheck,int NewVersion)
{
char Buf[128];
unsigned char Buflen;
if(NewVersion)
{
memcpy(Buf,MotionCheck,52);
memcpy(Buf+52,MaskCheck,52);
Buflen=104;
}
else
{
memcpy(Buf,MotionCheck,13);
memcpy(Buf+13,MaskCheck,13);
Buflen=26;
}
Con_SetVideoMoveRegion(m_nIpAddr,m_nServPort,nPort,Buf,Smart,Buflen);//设置视频移动报警区域及屏蔽区域
}
void CNetRemoteCtrlDlg::SetNetRemoteAddress(unsigned long ipaddr, unsigned long gateway,unsigned long mask)
{
Con_SetNetAttr(m_nIpAddr,m_nServPort,htonl(ipaddr),htonl(gateway),htonl(mask));
}
void CNetRemoteCtrlDlg::SetNetRemoteName(CString m_EditNetName)
{
char Buf[50];
memset(Buf,0,50);
strcpy(Buf,m_EditNetName);
Con_SetDVRName(m_nIpAddr,m_nServPort,Buf);
}
void CNetRemoteCtrlDlg::SetNetRemotePAlarmRecSet(unsigned char nInput,unsigned char nWeek,CTime BgnTime1,CTime EndTime1,CTime BgnTime2,CTime EndTime2,unsigned char m_ProbeTime,unsigned char nProbeOutput,unsigned short nRecPort,unsigned char m_ContactRec,unsigned char nSelDay,unsigned char *nProbePreset,unsigned char PresetNolen)
{
char Buf[12];
Buf[0]=(unsigned char)BgnTime1.GetHour();
Buf[1]=(unsigned char)BgnTime1.GetMinute();
Buf[2]=(unsigned char)EndTime1.GetHour();
Buf[3]=(unsigned char)EndTime1.GetMinute();
Buf[4]=(unsigned char)BgnTime2.GetHour();
Buf[5]=(unsigned char)BgnTime2.GetMinute();
Buf[6]=(unsigned char)EndTime2.GetHour();
Buf[7]=(unsigned char)EndTime2.GetMinute();
Buf[8]=m_ProbeTime;
Buf[9]=nProbeOutput;
// Buf[10]=nRecPort;
memcpy(Buf+10,&nRecPort,sizeof(unsigned short));
Con_SetProbeAlarmPara(m_nIpAddr,m_nServPort,nInput,nWeek,Buf,m_ContactRec,
nSelDay, nProbePreset,PresetNolen);
}
void CNetRemoteCtrlDlg::SetCameraPara(unsigned char PortNo,unsigned char CameraBaudRateNo,unsigned char CameraAddr)
{
Con_SetCameraPara(m_nIpAddr,m_nServPort,PortNo,CameraBaudRateNo,CameraAddr);
}
void CNetRemoteCtrlDlg::SetNetRemoteRecSet(unsigned char nPort,int m_RecQuality,unsigned char m_RecFrames,unsigned char m_Audio,
unsigned char m_RecRateVarySmart,unsigned char m_RecRateVarySpeed,unsigned char m_DiskCovery,unsigned char m_DatePrint)
{
if(m_RecQuality>10)
{// 仅用于支持码率连续可调的主机
char Buf[10];
memcpy(Buf,&m_RecQuality,sizeof(int));
Buf[4]=m_RecFrames;
Buf[5]=m_Audio;
Buf[6]=m_RecRateVarySmart;
Buf[7]=m_RecRateVarySpeed;
Buf[8]=m_DiskCovery;
Buf[9]=m_DatePrint;
Con_SetRecordPara(m_nIpAddr,m_nServPort,nPort,Buf);
}
else
{
char Buf[7];
Buf[0]=m_RecQuality;
Buf[1]=m_RecFrames;
Buf[2]=m_Audio;
Buf[3]=m_RecRateVarySmart;
Buf[4]=m_RecRateVarySpeed;
Buf[5]=m_DiskCovery;
Buf[6]=m_DatePrint;
Con_SetRecordPara(m_nIpAddr,m_nServPort,nPort,Buf);
}
}
void CNetRemoteCtrlDlg::SetNetRemoteSchRecSet(unsigned char nPort,unsigned char nWeek,CTime m_BgnTime1,CTime m_EndTime1,CTime m_BgnTime2,CTime m_EndTime2,unsigned char nSelDay)
{
char Buf[8];
Buf[0]=(unsigned char)m_BgnTime1.GetHour();
Buf[1]=(unsigned char)m_BgnTime1.GetMinute();
Buf[2]=(unsigned char)m_EndTime1.GetHour();
Buf[3]=(unsigned char)m_EndTime1.GetMinute();
Buf[4]=(unsigned char)m_BgnTime2.GetHour();
Buf[5]=(unsigned char)m_BgnTime2.GetMinute();
Buf[6]=(unsigned char)m_EndTime2.GetHour();
Buf[7]=(unsigned char)m_EndTime2.GetMinute();
Con_SetScheduleRecordPara(m_nIpAddr,m_nServPort,nPort,nWeek,Buf,nSelDay);
}
void CNetRemoteCtrlDlg::SetNetRemoteVideoPara(unsigned char portno,unsigned char Luma,unsigned char Chroma,unsigned char Contrast)
{
Con_SetVideoPara(m_nIpAddr,m_nServPort,portno ,Luma,Chroma,Contrast) ;
}
void CNetRemoteCtrlDlg::GetNetRemoteVideoPara(unsigned char portno)
{
Con_GetVideoPara(m_nIpAddr,m_nServPort,portno);
}
void CNetRemoteCtrlDlg::SetIFrameInterval(unsigned char nPort,UINT nIFrameInterval)
{
Con_SetDvrIFrameInterval(m_nIpAddr,m_nServPort,nPort,nIFrameInterval);
}
void CNetRemoteCtrlDlg::SendDomeBeta(char *Buf,int size)
{
CString aa ;
aa.Format("%d",inet_ntoa(*(struct in_addr*)&m_nIpAddr));
Con_SendDomeBeta(m_nIpAddr,m_nServPort,Buf,size);
}
void CNetRemoteCtrlDlg::GetDvrLog(unsigned char nLogType,CTime LogTime)
{
char Buf[10];
memset(Buf,0,10);
Buf[0]=nLogType;
Buf[1]=LogTime.GetYear()-2000;
Buf[2]=LogTime.GetMonth();
Buf[3]=LogTime.GetDay();
Con_GetDvrLog(m_nIpAddr,m_nServPort,Buf,4);
}
void CNetRemoteCtrlDlg::SetLog(CString str)
{
unsigned int i;
CString strContent,strTime,strindex;
for(i = 0; i < strlen(str) ;)
{
int n = str.Find(" ",i);
if(n == -1)
break;
int m = str.Find("\r\n",n);
if(m == -1)
break;
strTime = str.Mid(i,n-i);
if(strTime=="")
break;
strContent = str.Mid(n , m-n);
if(strContent=="")
break;
i = m+2;
int index = 0;
int nCount = ReadLog.m_LogList.GetItemCount();
strindex.Format("%d",nCount+1);
index = ReadLog.m_LogList.InsertItem(nCount+1,strindex);
ReadLog.m_LogList.SetItem(index,1,LVIF_TEXT,strTime, 0, 0, 0,0);
ReadLog.m_LogList.SetItem(index,2,LVIF_TEXT,strContent, 0, 0, 0,0);
}
ReadLog.GetDlgItem(IDC_BTN_GETSYSLOG)->EnableWindow(TRUE);
ReadLog.GetDlgItem(IDC_BTN_GETNETLOG)->EnableWindow(TRUE);
ReadLog.GetDlgItem(IDC_BTN_GETALARMLOG)->EnableWindow(TRUE);
ReadLog.GetDlgItem(IDC_BTN_GETOPLOG)->EnableWindow(TRUE);
UpdateData(FALSE);
}
void CNetRemoteCtrlDlg::GetDvrParam(unsigned char nChannel,unsigned char WeekNo,DWORD dwCmd,LPVOID lpData,DWORD dwSize)
{
Con_GetDvrParam(m_nIpAddr,m_nServPort,nChannel,WeekNo,dwCmd,lpData,dwSize);
}
void CNetRemoteCtrlDlg::OnSelchangeNetctlTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int i = m_TabSheet.GetCurSel();
CDialog *pTempDlg = m_TabSheet.m_pPages[i];
if(pTempDlg==&RecSetDlg)
RecSetDlg.Refresh();
if(pTempDlg==&(VideoParaDlg))
VideoParaDlg.Refresh();
if(pTempDlg==&(SchRecDlg))
SchRecDlg.Refresh();
if(pTempDlg==&(MAlarmDlg))
MAlarmDlg.Refresh();
if(pTempDlg==&(MRegionDlg))
MRegionDlg.Refresh();
if(pTempDlg==&(PAlarmDlg))
PAlarmDlg.Refresh();
if(pTempDlg==&(ElseDlg))
ElseDlg.Refresh();
if(pTempDlg==&(RecDlg))
RecDlg.Refresh();
if(pTempDlg==&(NetAddrDlg))
NetAddrDlg.Refresh();
if(pTempDlg==&(HeartBeatDlg))
HeartBeatDlg.Refresh();
*pResult = 0;
}
void CNetRemoteCtrlDlg::SetNetHeartRegParam(DWORD dwCode, void *pData, DWORD dwDataSize)
{
Con_SetHeartBeatParam(m_nIpAddr,m_nServPort,dwCode,pData,dwDataSize);
}
void CNetRemoteCtrlDlg::SetNetHeartBeatParam(BOOL bBeat, int nPeriod)
{
Con_SetHeartBeatCondition(m_nIpAddr,m_nServPort,bBeat);
Con_SetHeartBeatPeriod(m_nIpAddr,m_nServPort,nPeriod);
}
void CNetRemoteCtrlDlg::GetNetHeartParam()
{
Con_GetHeartBeatCondition(m_nIpAddr,m_nServPort);
Con_GetHeartBeatPeriod(m_nIpAddr,m_nServPort);
Con_GetHeartBeatParam(m_nIpAddr,m_nServPort,NETCOM_CTRL_GET_CMS_REGISTER_PARA);
}
void CNetRemoteCtrlDlg::RefreshHeartParam(BYTE bMsgID, PBYTE pbData)
{
HeartBeatDlg.DisplayHeartParam(bMsgID, pbData);
}
void CNetRemoteCtrlDlg::SetOSDParam(BYTE nDateSizeType, BYTE nDatePosType, BYTE nChSizeType, BYTE nChPosType, BOOL bReverseColor)
{
Con_SetOSDParam(m_nIpAddr,m_nServPort, nDateSizeType, nDatePosType, nChSizeType, nChPosType, bReverseColor);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -