📄 dhextptzctrl.cpp
字号:
// DHExtPtzCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "netsdkdemo.h"
#include "DHExtPtzCtrl.h"
#include "NetSDKDemoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDHExtPtzCtrl dialog
CDHExtPtzCtrl::CDHExtPtzCtrl(CWnd* pParent /*=NULL*/)
: CDialog(CDHExtPtzCtrl::IDD, pParent)
{
m_DeviceID = 0;
m_Channel = 0;
m_presetPoint = 0;
m_cruiseGroup = 0;
m_modeNo = 0;
//{{AFX_DATA_INIT(CDHExtPtzCtrl)
//}}AFX_DATA_INIT
}
void CDHExtPtzCtrl::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDHExtPtzCtrl)
DDX_Control(pDX, IDC_COMBO_AUX_NO, m_auxNosel);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDHExtPtzCtrl, CDialog)
//{{AFX_MSG_MAP(CDHExtPtzCtrl)
ON_BN_CLICKED(IDC_PRESET_ADD, OnPresetAdd)
ON_BN_CLICKED(IDC_PRESET_DELE, OnPresetDele)
ON_BN_CLICKED(IDC_PRESET_SET, OnPresetSet)
ON_BN_CLICKED(IDC_CRUISE_ADD_POINT, OnCruiseAddPoint)
ON_BN_CLICKED(IDC_CRUISE_DEL_POINT, OnCruiseDelPoint)
ON_BN_CLICKED(IDC_CRUISE_DEL_GROUP, OnCruiseDelGroup)
ON_BN_CLICKED(IDC_START_CRUISE, OnStartCruise)
ON_BN_CLICKED(IDC_STOP_CRUISE, OnStopCruise)
ON_BN_CLICKED(IDC_LAMP_ACTIVATE, OnLampActivate)
ON_BN_CLICKED(IDC_LAMP_DEACTIVATE, OnLampDeactivate)
ON_BN_CLICKED(IDC_ROTATE_START, OnRotateStart)
ON_BN_CLICKED(IDC_ROTATE_STOP, OnRotateStop)
ON_BN_CLICKED(IDC_LINE_SET_LEFT, OnLineSetLeft)
ON_BN_CLICKED(IDC_LINE_SET_RIGHT, OnLineSetRight)
ON_BN_CLICKED(IDC_LINE_START, OnLineStart)
ON_BN_CLICKED(IDC_LINE_STOP, OnLineStop)
ON_BN_CLICKED(IDC_MODE_SET_BEGIN, OnModeSetBegin)
ON_BN_CLICKED(IDC_MODE_SET_DELETE, OnModeSetDelete)
ON_BN_CLICKED(IDC_MODE_SET_END, OnModeSetEnd)
ON_BN_CLICKED(IDC_MODE_START, OnModeStart)
ON_BN_CLICKED(IDC_MODE_STOP, OnModeStop)
ON_BN_CLICKED(IDC_QUERY_ALARM, OnQueryAlarm)
ON_BN_CLICKED(IDC_FAST_GO, OnFastGo)
ON_BN_CLICKED(IDC_AUX_OPEN, OnAuxOpen)
ON_BN_CLICKED(IDC_AUX_CLOSE, OnAuxClose)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDHExtPtzCtrl message handlers
BOOL CDHExtPtzCtrl::OnInitDialog()
{
CDialog::OnInitDialog();
g_SetWndStaticText(this);
SetDlgItemInt(IDC_PRESET_DATA,1);
SetDlgItemInt(IDC_CRUISE_GROUP,1);
SetDlgItemInt(IDC_MODE_NO, 1);
SetDlgItemInt(IDC_POS_X, 0);
SetDlgItemInt(IDC_POS_Y, 0);
SetDlgItemInt(IDC_POS_ZOOM, 0);
m_auxNosel.SetCurSel(0);
return TRUE;
}
void CDHExtPtzCtrl::SetExtPtzParam(LONG iHandle, int iChannel)
{
m_DeviceID = iHandle;
m_Channel = iChannel;
}
void CDHExtPtzCtrl::OnPresetAdd()
{
PtzExtControl(PTZ_POINT_SET_CONTROL);
}
void CDHExtPtzCtrl::OnPresetDele()
{
PtzExtControl(PTZ_POINT_DEL_CONTROL);
}
void CDHExtPtzCtrl::OnPresetSet()
{
PtzExtControl(PTZ_POINT_MOVE_CONTROL);
}
void CDHExtPtzCtrl::PtzExtControl(DWORD dwCommand, DWORD dwParam)
{
BOOL ret = FALSE;
BYTE bParam[3] = {0};
if(!m_DeviceID)
{
MessageBox(MSG_PTZCTRL_NOCHANNEL);
}
switch(dwCommand)
{
case PTZ_POINT_MOVE_CONTROL: //转至
case PTZ_POINT_SET_CONTROL: //设置
case PTZ_POINT_DEL_CONTROL: //删除
m_presetPoint = GetDlgItemInt(IDC_PRESET_DATA);
bParam[1] = (BYTE)m_presetPoint;
break;
case EXTPTZ_ADDTOLOOP:
case EXTPTZ_DELFROMLOOP:
m_presetPoint = GetDlgItemInt(IDC_PRESET_DATA);
m_cruiseGroup = GetDlgItemInt(IDC_CRUISE_GROUP);
bParam[0] = (BYTE)m_cruiseGroup;
bParam[1] = (BYTE)m_presetPoint;
break;;
case EXTPTZ_CLOSELOOP:
m_cruiseGroup = GetDlgItemInt(IDC_CRUISE_GROUP);
bParam[0] = (BYTE)m_cruiseGroup;
break;;
case PTZ_POINT_LOOP_CONTROL:
if (0 == dwParam)
{
m_cruiseGroup = GetDlgItemInt(IDC_CRUISE_GROUP);
bParam[0] = (BYTE)m_cruiseGroup;
bParam[2] = 76;
}
else
{
m_cruiseGroup = GetDlgItemInt(IDC_CRUISE_GROUP);
bParam[0] = (BYTE)m_cruiseGroup;
bParam[2] = 96;
}
break;
case PTZ_LAMP_CONTROL:
if (0 == dwParam)
{
bParam[0] = 0x01;
}
else
{
bParam[0] = 0x00;
}
break;
case EXTPTZ_STARTPANCRUISE: //开始水平旋转
case EXTPTZ_STOPPANCRUISE: //停止水平旋转
case EXTPTZ_SETLEFTBORDER: //设置左边界
case EXTPTZ_SETRIGHTBORDER: //设置右边界
case EXTPTZ_STARTLINESCAN: //开始线扫
case EXTPTZ_CLOSELINESCAN: //停止线扫
case EXTPTZ_SETMODESTART: //设置模式开始
break;
case EXTPTZ_SETMODESTOP: //设置模式结束
case EXTPTZ_RUNMODE: //运行模式
case EXTPTZ_STOPMODE: //停止模式
case EXTPTZ_DELETEMODE: //清除模式
m_modeNo = GetDlgItemInt(IDC_MODE_NO);
bParam[0] = (BYTE)m_modeNo;
break;
case EXTPTZ_REVERSECOMM:
break;
case EXTPTZ_FASTGOTO:
{
m_pos_x = GetDlgItemInt(IDC_POS_X);
m_pos_y = GetDlgItemInt(IDC_POS_Y);
m_pos_zoom = GetDlgItemInt(IDC_POS_ZOOM);
bParam[0] = (BYTE)m_pos_x;
bParam[1] = (BYTE)m_pos_y;
bParam[2] = (BYTE)m_pos_zoom;
}
break;
case EXTPTZ_AUXIOPEN:
case EXTPTZ_AUXICLOSE:
switch(m_auxNosel.GetCurSel())
{
case 0:
m_auxNo = 23;
break;
case 1:
m_auxNo = 24;
break;
case 2:
m_auxNo = 27;
break;
case 3:
m_auxNo = 41;
break;
case 4:
m_auxNo = 43;
break;
default:
return;
}
bParam[0] = m_auxNo;
break;
default:
return;
}
ret = CLIENT_DHPTZControl(m_DeviceID, m_Channel,dwCommand ,bParam[0],bParam[1],bParam[2],FALSE);
if(!ret)
{
((CNetSDKDemoDlg *)GetParent())->LastError();//Zhengdh 06.11.24
MessageBox(MSG_PTZCTRL_CTRLFAILED);
}
}
void CDHExtPtzCtrl::OnCruiseAddPoint()
{
PtzExtControl(EXTPTZ_ADDTOLOOP);
}
void CDHExtPtzCtrl::OnCruiseDelPoint()
{
PtzExtControl(EXTPTZ_DELFROMLOOP);
}
void CDHExtPtzCtrl::OnCruiseDelGroup()
{
PtzExtControl(EXTPTZ_CLOSELOOP);
}
void CDHExtPtzCtrl::OnStartCruise()
{
PtzExtControl(PTZ_POINT_LOOP_CONTROL, 0);
}
void CDHExtPtzCtrl::OnStopCruise()
{
PtzExtControl(PTZ_POINT_LOOP_CONTROL, 1);
}
void CDHExtPtzCtrl::OnLampActivate()
{
PtzExtControl(PTZ_LAMP_CONTROL, 0);
}
void CDHExtPtzCtrl::OnLampDeactivate()
{
PtzExtControl(PTZ_LAMP_CONTROL, 1);
}
void CDHExtPtzCtrl::OnRotateStart()
{
PtzExtControl(EXTPTZ_STARTPANCRUISE);
}
void CDHExtPtzCtrl::OnRotateStop()
{
PtzExtControl(EXTPTZ_STOPPANCRUISE);
}
void CDHExtPtzCtrl::OnLineSetLeft()
{
PtzExtControl(EXTPTZ_SETLEFTBORDER);
}
void CDHExtPtzCtrl::OnLineSetRight()
{
PtzExtControl(EXTPTZ_SETRIGHTBORDER);
}
void CDHExtPtzCtrl::OnLineStart()
{
PtzExtControl(EXTPTZ_STARTLINESCAN);
}
void CDHExtPtzCtrl::OnLineStop()
{
PtzExtControl(EXTPTZ_CLOSELINESCAN);
}
void CDHExtPtzCtrl::OnModeSetBegin()
{
PtzExtControl(EXTPTZ_SETMODESTART);
}
void CDHExtPtzCtrl::OnModeSetDelete()
{
PtzExtControl(EXTPTZ_DELETEMODE);
}
void CDHExtPtzCtrl::OnModeSetEnd()
{
PtzExtControl(EXTPTZ_SETMODESTOP);
}
void CDHExtPtzCtrl::OnModeStart()
{
PtzExtControl(EXTPTZ_RUNMODE);
}
void CDHExtPtzCtrl::OnModeStop()
{
PtzExtControl(EXTPTZ_STOPMODE);
}
void CDHExtPtzCtrl::OnQueryAlarm()
{
PtzExtControl(EXTPTZ_REVERSECOMM);
}
void CDHExtPtzCtrl::OnFastGo()
{
PtzExtControl(EXTPTZ_FASTGOTO);
}
void CDHExtPtzCtrl::OnAuxOpen()
{
PtzExtControl(EXTPTZ_AUXIOPEN);
}
void CDHExtPtzCtrl::OnAuxClose()
{
PtzExtControl(EXTPTZ_AUXICLOSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -