⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgdevicectrl.cpp

📁 MPEG4网络视频服务器客户端图象监控软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -