📄 dlgdevicectrl.cpp
字号:
// DlgDeviceCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "dvsUser.h"
#include "DlgDeviceCtrl.h"
#include "DvsUserDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CDvsUserDlg* g_User;
/////////////////////////////////////////////////////////////////////////////
// CDlgDeviceCtrl dialog
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
CHAR CDlgDeviceCtrl::TOP[4][32] = {{0XFF, 0X01, 0X00, 0X08, 0X00, 0X20, 0X29},
{0XA0, 0X01, 0X04, 0X02, 0X00, 0XA7},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X06, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X07}};
CHAR CDlgDeviceCtrl::BOTTOM[4][32] = {{0XFF, 0X01, 0X00, 0X10, 0X00, 0X20, 0X31},
{0XA0, 0X01, 0X04, 0X82, 0X00, 0X27},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X08, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X09}};
CHAR CDlgDeviceCtrl::LEFT[4][32] = {{0XFF, 0X01, 0X00, 0X04, 0X20, 0X00, 0X25},
{0XA0, 0X01, 0X03, 0X82, 0X00, 0X26},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X0C, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X0D}};
CHAR CDlgDeviceCtrl::RIGHT[4][32] = {{0XFF, 0X01, 0X00, 0X02, 0X20, 0X00, 0X23},
{0XA0, 0X01, 0X03, 0X02, 0X00, 0XA6},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X0A, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X0B}};
CHAR CDlgDeviceCtrl::STOP[4][32] = {{0XFF, 0X01, 0X00, 0X00, 0X00, 0X00, 0X01},
{0XA0, 0X00, 0X00, 0X00, 0X00, 0XA0},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X0E, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X0F}};
CHAR CDlgDeviceCtrl::ZOOM_IN[4][32] = {{0XFF, 0X01, 0X00, 0X20, 0X00, 0X00, 0X21},
{0XA0, 0X01, 0X07, 0X00, 0X00, 0XA8},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X01}};
CHAR CDlgDeviceCtrl::ZOOM_OUT[4][32] = {{0XFF, 0X01, 0X00, 0X40, 0X00, 0X00, 0X41},
{0XA0, 0X01, 0X09, 0X00, 0X00, 0XAA},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X01, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X02}};
CHAR CDlgDeviceCtrl::IRIS_IN[4][32] = {{0XFF, 0X01, 0X02, 0X00, 0X00, 0X00, 0X03},
{0XA0, 0X01, 0X14, 0X00, 0X00, 0XB5},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X03, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X04}};
CHAR CDlgDeviceCtrl::IRIS_OUT[4][32] = {{0XFF, 0X01, 0X04, 0X00, 0X00, 0X00, 0X05},
{0XA0, 0X01, 0X15, 0X00, 0X00, 0XB6},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X07, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X08}};
CHAR CDlgDeviceCtrl::FOCUS_IN[4][32] = {{0XFF, 0X01, 0X01, 0X00, 0X00, 0X00, 0X02},
{0XA0, 0X01, 0X0B, 0X00, 0X00, 0XAC},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X05, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X06}};
CHAR CDlgDeviceCtrl::FOCUS_OUT[4][32] = {{0XFF, 0X01, 0X00, 0X80, 0X00, 0X00, 0X81},
{0XA0, 0X01, 0X0C, 0X00, 0X00, 0XAD},
{0},
{0X5A, 0X01, 0X00, 0X00, 0X04, 0X00, 0X00, 0X00, 0X00, 0X5F, 0X05}};
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
CDlgDeviceCtrl::CDlgDeviceCtrl(CWnd* pParent /*=NULL*/)
: CDialog(CDlgDeviceCtrl::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgDeviceCtrl)
//}}AFX_DATA_INIT
videoIcon = AfxGetApp()->LoadIcon(IDI_ICON_MON);
m_bExplored = FALSE;
}
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
void CDlgDeviceCtrl::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgDeviceCtrl)
DDX_Control(pDX, IDC_BAUDRATE, m_editBaudRate);
DDX_Control(pDX, IDC_PTZSLIDER, m_speed_slider);
DDX_Control(pDX, IDC_PTZCOMBO, m_proto_combo);
DDX_Control(pDX, IDC_ZOOM_OUT, m_zoom_out);
DDX_Control(pDX, IDC_ZOOM_IN, m_zoom_in);
DDX_Control(pDX, IDC_TOP, m_top);
DDX_Control(pDX, IDC_RIGHT, m_right);
DDX_Control(pDX, IDC_LEFT, m_left);
DDX_Control(pDX, IDC_IRIS_OUT, m_iris_out);
DDX_Control(pDX, IDC_IRIS_IN, m_iris_in);
DDX_Control(pDX, IDC_FOCUS_OUT, m_focus_out);
DDX_Control(pDX, IDC_FOCUS_IN, m_focus_in);
DDX_Control(pDX, IDC_BOTTOM, m_bottom);
DDX_Control(pDX, IDC_CTRL_COMBO, m_video_combo);
//}}AFX_DATA_MAP
}
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
BEGIN_MESSAGE_MAP(CDlgDeviceCtrl, CDialog)
//{{AFX_MSG_MAP(CDlgDeviceCtrl)
ON_BN_CLICKED(IDC_POS_CALL, OnPosCall)
ON_BN_CLICKED(IDC_LAMP, OnLamp)
ON_BN_CLICKED(IDC_RAIN, OnRain)
ON_CBN_SELCHANGE(IDC_CTRL_COMBO, OnSelchangeCtrlCombo)
ON_BN_CLICKED(IDC_POS_SET, OnPosSet)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgDeviceCtrl message handlers
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
BOOL CDlgDeviceCtrl::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowPos(0, 780, 350, 0, 0, SWP_NOSIZE);
InitControl();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
void CDlgDeviceCtrl::InitControl()
{
COMBOBOXEXITEM item;
char szTemp[100];
INT nAdd = 0;
videoImage.Create(16, 16, ILC_COLOR8, 1, 1);
videoImage.Add(videoIcon);
m_video_combo.SetImageList(&videoImage);
for(int i=0; i<4; i++)
{
if(g_User->LINK[i].bLinkState == TRUE)
{
sprintf(szTemp, "%s", g_User->CARD[g_User->LINK[i].dwCard].Brance[g_User->LINK[i].dwBrance].szBranceName);
item.mask = CBEIF_IMAGE|CBEIF_SELECTEDIMAGE|CBEIF_TEXT|CBEIF_LPARAM;
item.iItem = nAdd;
item.iImage = 0;
item.iSelectedImage = 0;
item.lParam = NULL;
item.pszText = szTemp;
m_video_combo.InsertItem(&item);
m_video_combo.SetItemData(nAdd, i);
nAdd ++;
}
}
// m_video_combo.SetCurSel(0);
m_zoom_out.pParent = this;
m_zoom_in.pParent = this;
m_iris_out.pParent = this;
m_iris_in.pParent = this;
m_focus_out.pParent = this;
m_focus_in.pParent = this;
m_top.pParent = this;
m_right.pParent = this;
m_left.pParent = this;
m_bottom.pParent = this;
RECT rc;
GetWindowRect(&rc);
rc.bottom -= 150;
MoveWindow(&rc);
}
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
void CDlgDeviceCtrl::OnSelchangeCtrlCombo()
{
int nSel;
int nData;
int i;
CString strCardIP;
nSel = m_video_combo.GetCurSel();
if(nSel != CB_ERR)
{
nData = m_video_combo.GetItemData(nSel); //获得窗体的信息
if(g_User->CARD[g_User->LINK[nData].dwCard].Brance[g_User->LINK[nData].dwBrance].bDevice == TRUE)
{
for(i=3000; i<=3019; i++)
{
GetDlgItem(i)->EnableWindow(TRUE);
}
strCardIP = g_User->CARD[g_User->LINK[nData].dwCard].szCardIP;
dwPtzType = g_User->CARD[g_User->LINK[nData].dwCard].Brance[g_User->LINK[nData].dwBrance].dwPtzProtocol;
dwPtzID = g_User->CARD[g_User->LINK[nData].dwCard].Brance[g_User->LINK[nData].dwBrance].dwPtzID;
m_dwBaudRate= g_User->CARD[g_User->LINK[nData].dwCard].Brance[g_User->LINK[nData].dwBrance].dwBaudRate;
switch (dwPtzType) {
case PTZ_WANLI:
dwPtzCmdLen = 7;
dwPtzSpeed = 63;
break;
case PTZ_NANWANG:
dwPtzCmdLen = 6;
dwPtzSpeed = 7;
break;
case PTZ_ALEC:
dwPtzCmdLen = 12;
dwPtzSpeed = 200;
break;
case PTZ_GENERAL:
dwPtzCmdLen = 11;
dwPtzSpeed = 0;
}
switch(m_dwBaudRate) {
case 0:
m_editBaudRate.SetWindowText(_TEXT("1200"));
g_User->OnSendSPConfig(::SetGUID(strCardIP) ,0);
break;
case 1:
m_editBaudRate.SetWindowText(_TEXT("2400"));
g_User->OnSendSPConfig(::SetGUID(strCardIP), 1);
break;
case 2:
m_editBaudRate.SetWindowText(_TEXT("4800"));
g_User->OnSendSPConfig(::SetGUID(strCardIP), 2);
break;
case 3:
m_editBaudRate.SetWindowText(_TEXT("9600"));
g_User->OnSendSPConfig(::SetGUID(strCardIP), 3);
break;
}
m_proto_combo.SetCurSel(dwPtzType);
m_speed_slider.SetRange(0, dwPtzSpeed);
m_speed_slider.SetPos(dwPtzSpeed/4);
}
else{
for(i=3000; i<=3019; i++)
{
GetDlgItem(i)->EnableWindow(FALSE);
}
}
if(g_User->CARD[g_User->LINK[nData].dwCard].Brance[g_User->LINK[nData].dwBrance].bLamp == TRUE)
{
GetDlgItem(IDC_LAMP)->EnableWindow(TRUE);
}
else{
GetDlgItem(IDC_LAMP)->EnableWindow(FALSE);
}
}
}
//---------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------
VOID CDlgDeviceCtrl::PtzDown(
CWnd* pWnd
)
{
INT nID;
INT nSel;
nID = pWnd->GetDlgCtrlID();
nSel = m_video_combo.GetCurSel();
if(nSel == CB_ERR) return;
CString strTemp = g_User->CARD[g_User->LINK[nSel].dwCard].szCardIP;
deviceInfo.dwCardGUID = ::SetGUID(strTemp);
deviceInfo.dwActiveBrance = g_User->LINK[nSel].dwBrance;
deviceInfo.dwCtrlSize = dwPtzCmdLen;
ZeroMemory(deviceInfo.szCtrlBuf, 32);
dwPtzSpeed = m_speed_slider.GetPos();
dwPtzType = m_proto_combo.GetCurSel();
dwPtzID = dwPtzID;
switch(nID)
{
case IDC_TOP:
{
switch(dwPtzType)
{
case PTZ_WANLI:
memcpy(deviceInfo.szCtrlBuf, TOP[PTZ_WANLI], dwPtzCmdLen);
deviceInfo.szCtrlBuf[1] = CHAR(dwPtzID);
deviceInfo.szCtrlBuf[5] = CHAR(dwPtzSpeed);
deviceInfo.szCtrlBuf[6] = BYTE(deviceInfo.szCtrlBuf[1] + deviceInfo.szCtrlBuf[2] + deviceInfo.szCtrlBuf[3] + deviceInfo.szCtrlBuf[4] + deviceInfo.szCtrlBuf[5]);
break;
case PTZ_NANWANG:
memcpy(deviceInfo.szCtrlBuf, TOP[PTZ_NANWANG], dwPtzCmdLen);
deviceInfo.szCtrlBuf[1] = CHAR(dwPtzID);
deviceInfo.szCtrlBuf[3] = CHAR(dwPtzSpeed);
deviceInfo.szCtrlBuf[5] = BYTE(deviceInfo.szCtrlBuf[0] + deviceInfo.szCtrlBuf[1] + deviceInfo.szCtrlBuf[2] + deviceInfo.szCtrlBuf[3] + deviceInfo.szCtrlBuf[4]);
CMD1 = deviceInfo.szCtrlBuf[2];
CMD2 = 0;
break;
case PTZ_GENERAL:
memcpy(deviceInfo.szCtrlBuf, TOP[PTZ_GENERAL], dwPtzCmdLen);
deviceInfo.szCtrlBuf[1] = CHAR(dwPtzID);
deviceInfo.szCtrlBuf[10]= BYTE(deviceInfo.szCtrlBuf[1] + deviceInfo.szCtrlBuf[2] + deviceInfo.szCtrlBuf[3] + deviceInfo.szCtrlBuf[4] + deviceInfo.szCtrlBuf[5] + deviceInfo.szCtrlBuf[6] + deviceInfo.szCtrlBuf[7] + deviceInfo.szCtrlBuf[8]);
break;
}
break;
}
case IDC_BOTTOM:
{
switch(dwPtzType)
{
case PTZ_WANLI:
memcpy(deviceInfo.szCtrlBuf, BOTTOM[PTZ_WANLI], dwPtzCmdLen);
deviceInfo.szCtrlBuf[1] = CHAR(dwPtzID);
deviceInfo.szCtrlBuf[5] = CHAR(dwPtzSpeed);
deviceInfo.szCtrlBuf[6] = BYTE(deviceInfo.szCtrlBuf[1] + deviceInfo.szCtrlBuf[2] + deviceInfo.szCtrlBuf[3] + deviceInfo.szCtrlBuf[4] + deviceInfo.szCtrlBuf[5]);
break;
case PTZ_NANWANG:
memcpy(deviceInfo.szCtrlBuf, BOTTOM[PTZ_NANWANG], dwPtzCmdLen);
deviceInfo.szCtrlBuf[1] = CHAR(dwPtzID);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -