📄 netctlelsedlg.cpp
字号:
// NetCtlElseDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Sample.h"
#include "NetCtlElseDlg.h"
#include "NetRemoteCtrlDlg.h"
#include <shlwapi.h>
#include "ConSDK.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CNetRemoteCtrlDlg *pNetRemoteCtlDlg;
extern USER_DVR_PARAMETER *Con_pDVRPara;
extern LoginParam m_LoginParam;
Terminal m_Terminal;
extern BOOL DVRParaChange;
extern BOOL ENGLISH;
//-------------------------------
BOOL bNeedSound = TRUE ;
BOOL bShowAlarmInfo = TRUE ;
BOOL bAutoTurntoAlarmPort =FALSE ;
BOOL bAlarmAutoRec=FALSE;
BOOL bAlarmSend=TRUE ;
UINT iAlarmTime=1;
int nAlarmStockDays=90;
/////////////////////////////////////////////////////////////////////////////
// CNetCtlElseDlg dialog
CNetCtlElseDlg::CNetCtlElseDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNetCtlElseDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CNetCtlElseDlg)
m_EditPortName = _T("");
m_SysYear = 0;
m_SysMonth = 0;
m_SysDay = 0;
m_SysHour = 0;
m_SysMinute = 0;
m_SysSecond = 0;
m_SysWeek = 0;
//}}AFX_DATA_INIT
pParent = NULL ;
}
void CNetCtlElseDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNetCtlElseDlg)
DDX_Control(pDX, IDC_EDITPORTNAME, m_cEditPortName);
DDX_Control(pDX, IDC_PORT_COMBO, m_PortCombo);
DDX_Text(pDX, IDC_EDITPORTNAME, m_EditPortName);
DDV_MaxChars(pDX, m_EditPortName, 32);
DDX_Text(pDX, IDC_EDITSYSYEAR, m_SysYear);
DDX_Text(pDX, IDC_EDITSYSMONTH, m_SysMonth);
DDX_Text(pDX, IDC_EDITSYSDAY, m_SysDay);
DDX_Text(pDX, IDC_EDITSYSHOUR, m_SysHour);
DDX_Text(pDX, IDC_EDITSYSMINUTE, m_SysMinute);
DDX_Text(pDX, IDC_EDITSYSSECOND, m_SysSecond);
DDX_Text(pDX, IDC_EDITSYSWEEK, m_SysWeek);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNetCtlElseDlg, CDialog)
//{{AFX_MSG_MAP(CNetCtlElseDlg)
ON_BN_CLICKED(IDC_SET_BUTTON, OnSetButton)
ON_BN_CLICKED(IDC_DEFAULTSET_BUTTON, OnDefaultsetButton)
ON_BN_CLICKED(IDC_SAVEFLASH_BUTTON, OnSaveflashButton)
ON_CBN_SELCHANGE(IDC_PORT_COMBO, OnSelchangePortCombo)
ON_BN_CLICKED(IDC_BUTTONSETSYSTIME, OnButtonsetsystime)
ON_BN_CLICKED(IDC_BUTTONGETSYSTIME, OnButtongetsystime)
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_BUTTON_SETOSD, OnButtonSetosd)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNetCtlElseDlg message handlers
int static CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
// lParamSort contains a pointer to the list view control.
// The lParam of an item is just its index.
CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
CString strItem1 = pListCtrl->GetItemText(lParam1, 0);
CString strItem2 = pListCtrl->GetItemText(lParam2, 0);
return -strcmp(strItem2, strItem1);
}
void CNetCtlElseDlg::OnSetButton()
{
BYTE portno;
UpdateData(TRUE) ;
DVRParaChange=TRUE;
portno = m_PortCombo.GetCurSel() ;
//-------- 转换成DVR的区位码 -----
unsigned long len ;
char Buf[32];
short count=0;
len=m_EditPortName.GetLength();
if(len>33)
len=32;
memset(Buf,0,32);
// strcpy(Buf,m_EditPortName);
memcpy(Buf,m_EditPortName,len);
pNetRemoteCtlDlg->SetNetPortName(portno+1,Buf);
if(Con_pDVRPara!=NULL)
{
memset(Con_pDVRPara->PortConfig->nTermName,0,16);
memcpy(Con_pDVRPara->PortConfig->nTermName,Buf,16);
}
}
void CNetCtlElseDlg::OnDefaultsetButton()
{
pNetRemoteCtlDlg->SetNetRemoteDefault();
if (pNetRemoteCtlDlg->m_nDVRType <= 0)
{
Con_GetDVRPara(pNetRemoteCtlDlg->m_nIpAddr,pNetRemoteCtlDlg->m_nServPort);
}
}
void CNetCtlElseDlg::OnSaveflashButton()
{
pNetRemoteCtlDlg->SetNetRemoteSaveFlash() ;
}
BOOL CNetCtlElseDlg::OnInitDialog()
{
char * l_DefaultSet;//=_T("Default Setup");
char * l_SaveFlash;//=_T("Save Remote Para");
char * l_PortName;//=_T("Camera Name:");
char * l_PortNameSet;//=_T("Camera name setup");
char * l_Port;//=_T("Camera");
char * l_Set;//=_T("Setup");
if(ENGLISH)
{
l_DefaultSet=_T("Default Setup");
l_SaveFlash=_T("Save Remote Para");
l_PortName=_T("Channel Name:");
l_PortNameSet=_T("Channel name setup");
l_Port=_T("Channel");
l_Set=_T("Setup");
}
else
{
l_Set=_T("设置");
l_DefaultSet=_T("远程缺省设置");
l_SaveFlash=_T("远程保存参数");
l_PortName=_T("通道名称:");
l_PortNameSet=_T("通道名称设置");
l_Port=_T("通道");
}
CDialog::OnInitDialog();
CString str;
/////////add lj
int i;
// TODO: Add extra initialization here
m_PortCombo.ResetContent() ;
if(Con_pDVRPara!=NULL)
{
for (i=0;i<Con_pDVRPara->nPortNo ;i++)
{
str.Format("%s%02d",l_Port,i+1) ;
m_PortCombo.AddString(str) ;
}
m_PortCombo.SetCurSel(0);
}
CWnd *pWnd ;
pWnd = GetDlgItem(IDC_STATICPORTNAMEFRAME) ;
pWnd->SetWindowText(l_PortNameSet);
pWnd = GetDlgItem(IDC_SET_BUTTON) ;
pWnd->SetWindowText(l_Set);
pWnd = GetDlgItem(IDC_DEFAULTSET_BUTTON) ;
pWnd->SetWindowText(l_DefaultSet);
pWnd = GetDlgItem(IDC_SAVEFLASH_BUTTON) ;
pWnd->SetWindowText(l_SaveFlash);
pWnd=GetDlgItem(IDC_STATICPORTNAME);
pWnd->SetWindowText(l_PortName);
CComboBox *pDatePos = (CComboBox *)(GetDlgItem(IDC_COMBO_DATEPOS));
CComboBox *pDChPos = (CComboBox *)(GetDlgItem(IDC_COMBO_CHPOS));
pDatePos->InsertString(0,"左上角");
pDatePos->InsertString(1,"左下角");
pDatePos->InsertString(2,"右上角");
pDatePos->InsertString(3,"右下角");
pDatePos->SetCurSel(0);
pDChPos->InsertString(0,"左上角");
pDChPos->InsertString(1,"左下角");
pDChPos->InsertString(2,"右上角");
pDChPos->InsertString(3,"右下角");
pDChPos->SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CNetCtlElseDlg::Create(CWnd* pParentWnd)
{
// TODO: Add your specialized code here and/or call the base class
pParent = (CNetRemoteCtrlDlg *)pParentWnd ;
return CDialog::Create(IDD, pParentWnd);
}
void CNetCtlElseDlg::FreshData(BOOL fresh)
{
// TODO: Add your control notification handler code here
UpdateData(fresh);
}
void CNetCtlElseDlg::OnSelchangePortCombo()
{
// TODO: Add your control notification handler code here
BYTE portno;
portno = m_PortCombo.GetCurSel();
PortNumChangePro(portno);
}
void CNetCtlElseDlg::PortNumChangePro(BYTE portno)
{
char Buf[40];
char NameBuf[40];
char Buf1[40];
//if(Con_pDVRPara!=NULL)
if (pNetRemoteCtlDlg->m_nDVRType <= 0)
{// 83 V6.05
m_EditPortName=Con_pDVRPara->PortConfig[portno].nTermName;
UpdateData(FALSE);
}
//if (m_LoginParam.IPAddress > 0)
else
{// 拆结构取参数
int portno;
portno=m_PortCombo.GetCurSel();
//获取OSD属性
OSDParam m_OSDParam;
memset(&m_OSDParam,0,sizeof(OSDParam));
pNetRemoteCtlDlg->GetDvrParam(portno+1,0,PARA_TYPE_TEXTOVER,&m_OSDParam,sizeof(OSDParam));
((CComboBox *)GetDlgItem(IDC_COMBO_DATEPOS))->SetCurSel(m_OSDParam.nDateOSDParam&0x03);
((CComboBox *)GetDlgItem(IDC_COMBO_CHPOS))->SetCurSel(m_OSDParam.nChOSDParam&0x03);
((CButton *)GetDlgItem(IDC_CHECK_REVERSECOLOR))->SetCheck(m_OSDParam.nReverse);
//获取通道名称
pNetRemoteCtlDlg->GetDvrParam(portno+1,0,PARA_TYPE_TERM,&m_Terminal,sizeof(Terminal));
memset(Buf,0,40);
memset(Buf1,0,40);
memset(NameBuf,0,40);
if(portno<MAXPORTNO)
{
memcpy(Buf, &m_Terminal.ChannelTitle1, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32), &m_Terminal.ChannelTitle2, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32) * 2, &m_Terminal.ChannelTitle3, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32) * 3, &m_Terminal.ChannelTitle4, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32) * 4, &m_Terminal.ChannelTitle5, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32) * 5, &m_Terminal.ChannelTitle6, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32) * 6, &m_Terminal.ChannelTitle7, sizeof(UInt32));
memcpy(Buf + sizeof(UInt32) * 7, &m_Terminal.ChannelTitle8, sizeof(UInt32));
}
short count=-1;
int j=0;
for(j=0;j<32;j++)
{
if(Buf[j]<16&&Buf[j]>0)
{
Buf1[++count]=Buf[++j]+32;
}
else if(Buf[j]>=16)
{
Buf1[++count]=Buf[j]+160;
Buf1[++count]=Buf[++j]+160;
}
}
Buf1[32]=0;
memcpy(NameBuf,Buf1,32);
m_EditPortName=NameBuf;
UpdateData(FALSE);
}
}
BOOL CNetCtlElseDlg::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 CNetCtlElseDlg::Refresh()
{
char * l_Port;//=_T("Camera");
if(ENGLISH)
l_Port=_T("Channel");
else
l_Port=_T("通道");
m_PortCombo.ResetContent() ;
if (pNetRemoteCtlDlg->m_nDVRType <= 0)
{
for (int i=0;i<Con_pDVRPara->nPortNo ;i++)
{
CString str ;
str.Format("%s%02d",l_Port,i+1) ;
m_PortCombo.AddString(str) ;
}
}
else
{
for (int i=0;i<m_LoginParam.ChannelCount;i++)
{
CString str ;
str.Format("%s%02d",l_Port,i+1) ;
m_PortCombo.AddString(str) ;
}
}
m_PortCombo.SetCurSel(0);
OnSelchangePortCombo();
}
void CNetCtlElseDlg::OnButtonsetsystime()
{
UpdateData(TRUE);
if(m_SysYear>99||m_SysYear<0)
{
MessageBox("年份应该在0-99之间");
return;
}
if(m_SysMonth>12||m_SysMonth<1)
{
MessageBox("月份应该在1-12之间");
return;
}
if(m_SysDay>31||m_SysDay<1)
{
MessageBox("日应该在1-31之间");
return;
}
if(m_SysHour>23||m_SysHour<0)
{
MessageBox("小时应该在0-23之间");
return;
}
if(m_SysMinute>59||m_SysMinute<0)
{
MessageBox("分钟应该在0-59之间");
return;
}
if(m_SysSecond>59||m_SysSecond<0)
{
MessageBox("秒应该在0-59之间");
return;
}
if(m_SysWeek>7||m_SysWeek<1)
{
MessageBox("星期应该在1-7之间");
return;
}
pNetRemoteCtlDlg->SetDVRSysTime(m_SysYear,m_SysMonth,m_SysDay,
m_SysHour,m_SysMinute,m_SysSecond,m_SysWeek);
}
void CNetCtlElseDlg::OnButtongetsystime()
{
pNetRemoteCtlDlg->GetDVRSysTime();
}
void CNetCtlElseDlg::OnButtonSetosd()
{
// TODO: Add your control notification handler code here
BYTE nDatePosType = ((CComboBox *)GetDlgItem(IDC_COMBO_DATEPOS))->GetCurSel();
BYTE nChPosType = ((CComboBox *)GetDlgItem(IDC_COMBO_CHPOS))->GetCurSel();
BOOL bReverseColor = ((CButton *)GetDlgItem(IDC_CHECK_REVERSECOLOR))->GetCheck();
pNetRemoteCtlDlg->SetOSDParam(0,nDatePosType,0,nChPosType,bReverseColor);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -