📄 ~rightcamera.~cpp
字号:
// RightCamera.cpp : implementation file
//
#include "stdafx.h"
#include "..\dvrmanager.h"
#include "RightCamera.h"
#include "../utils/common.h"
#include "../utils/update_data.h"
#include "net.h"
#include "../video/video_channel.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRightCamera dialog
CRightCamera* CRightCamera::self = NULL;
CRightCamera* CRightCamera::the_one() {return self;}
CRightCamera::CRightCamera(CWnd* pParent /*=NULL*/)
: baseclass(CRightCamera::IDD, pParent), channel(0)
{
//{{AFX_DATA_INIT(CRightCamera)
m_control = _T("");
m_cam_pos = 0;
//}}AFX_DATA_INIT
self = this;
}
void CRightCamera::DoDataExchange(CDataExchange* pDX)
{
baseclass::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRightCamera)
DDX_Control(pDX, ID_S, m_s);
DDX_Control(pDX, IDBTN_BRUSH_ONOFF, m_brush_onoff);
DDX_Control(pDX, IDBTN_ZOOM_I, m_zoom_i);
DDX_Control(pDX, IDBTN_ZOOM_D, m_zoom_d);
DDX_Control(pDX, IDBTN_LIGHT_ONOFF, m_light_onoff);
DDX_Control(pDX, IDBTN_IRIS_I, m_iris_i);
DDX_Control(pDX, IDBTN_IRIS_D, m_iris_d);
DDX_Control(pDX, IDBTN_FOCUS_I, m_focus_i);
DDX_Control(pDX, IDBTN_FOCUS_D, m_focus_d);
DDX_Control(pDX, ID_8, m_8);
DDX_Control(pDX, ID_7, m_7);
DDX_Control(pDX, ID_5, m_5);
DDX_Control(pDX, ID_4, m_4);
DDX_Control(pDX, ID_3, m_3);
DDX_Control(pDX, IDLB_CONTROL, m_ctrl);
DDX_Control(pDX, IDBTN_SET, m_btn_set);
DDX_Control(pDX, IDBTN_LOAD, m_btn_load);
DDX_Control(pDX, ID_6, m_6);
DDX_Control(pDX, ID_2, m_2);
DDX_Control(pDX, ID_1, m_1);
DDX_Control(pDX, ID_TITLE, m_title);
DDX_Control(pDX, IDBTN_DIRECTIONS, m_btn_dir);
DDX_Text(pDX, IDLB_CONTROL, m_control);
DDX_Radio(pDX, ID_CAM_POS1, m_cam_pos);
//}}AFX_DATA_MAP
UINT ids[] =
{ID_CAM_POS1, ID_CAM_POS2, ID_CAM_POS3, ID_CAM_POS4,
ID_CAM_POS5, ID_CAM_POS6, ID_CAM_POS7, ID_CAM_POS8,
ID_CAM_POS9, ID_CAM_POS10, ID_CAM_POS11, ID_CAM_POS12,
ID_CAM_POS13, ID_CAM_POS14, ID_CAM_POS15, ID_CAM_POS16,
IDBTN_LOAD, IDBTN_SET, IDBTN_IRIS_D, IDBTN_IRIS_I,
IDBTN_FOCUS_D, IDBTN_FOCUS_I, IDBTN_ZOOM_D, IDBTN_ZOOM_I,
IDBTN_LIGHT_ONOFF, IDBTN_BRUSH_ONOFF};
for( int i=0; i<SIZE_OF(ids); i++ )
{
GetDlgItem(ids[i])->EnableWindow(ipp.get_ip()!=0);
}
}
BEGIN_MESSAGE_MAP(CRightCamera, baseclass)
//{{AFX_MSG_MAP(CRightCamera)
ON_BN_CLICKED(IDBTN_LOAD, OnLoad)
ON_BN_CLICKED(IDBTN_SET, OnSet)
ON_BN_CLICKED(IDBTN_IRIS_D, OnIrisD)
ON_BN_CLICKED(IDBTN_IRIS_I, OnIrisI)
ON_BN_CLICKED(IDBTN_FOCUS_D, OnFocusD)
ON_BN_CLICKED(IDBTN_FOCUS_I, OnFocusI)
ON_BN_CLICKED(IDBTN_ZOOM_D, OnZoomD)
ON_BN_CLICKED(IDBTN_ZOOM_I, OnZoomI)
ON_BN_CLICKED(IDBTN_LIGHT_ONOFF, OnLightOnoff)
ON_BN_CLICKED(IDBTN_BRUSH_ONOFF, OnBrushOnoff)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_CAMERA_BUTTON, on_camera_button)
ON_MESSAGE(WM_UPDATE_DATA, on_update_data)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRightCamera message handlers
BOOL CRightCamera::OnInitDialog()
{
baseclass::OnInitDialog();
init_title(m_title);
init_label(m_1);
init_label(m_3);
init_label(m_4);
init_label(m_5);
init_label(m_7);
init_label(m_8);
init_label(m_ctrl);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
LRESULT CRightCamera::on_camera_button(WPARAM btn, LPARAM down)
{
ULONG cmd = 0;
switch( btn )
{
case CAMERA_LEFT_BUTTON:
cmd = (down)?camLeft: camStop;
break;
case CAMERA_RIGHT_BUTTON:
cmd = (down)?camRight: camStop;
break;
case CAMERA_UP_BUTTON:
cmd = (down)?camUp: camStop;
break;
case CAMERA_DOWN_BUTTON:
cmd = (down)?camDown: camStop;
break;
case CAMERA_AUTO_BUTTON:
cmd = (down)?camAuto: camStop;
break;
default: return 0;
}
send_camera_cmd(cmd);
return 0;
}
void CRightCamera::on_join()
{
video_channel::current_sel()->report_channel();
}
void CRightCamera::on_leave()
{
}
void CRightCamera::send_stop()
{
send_camera_cmd(camStop);
}
void CRightCamera::send_camera_cmd(USHORT cmd)
{
// TRACE("[SendCameraCtlCom]: %08lx\n", cmd);
UpdateData();
TREC_CAMERA c;
c.channel = channel;
c.cmd = cmd;
c.preset = m_cam_pos;
if( !ipp.get_ip() )
return;
set_net_opt(ipp, OPT_CAMERA, &c, NULL);
TRACE("%08lx\n", *(DWORD*)&c);
/*
caddr* ip = new caddr;
unsigned long nPort ;
LPARAM lParam ;
CDvrNetManagerDlg *pMain = (CDvrNetManagerDlg *)AfxGetMainWnd() ;
if (pMain->nCtlChannel < MAX_CHANNEL_NUM) {
*ip = nShowImageIP[pMain->nCtlChannel] ;
// if( !*ip ) // 该路无通道打开
// {
// KillTimer(type); // 停止连续功能
//MessageBox(_T("该路通道没有打开!"));
// return;
// }
if (ip->ip) {
nPort = nShowImagePort[pMain->nCtlChannel] ;
lParam = type ;
lParam |= (nPort<<16) ;
lParam |= (nCurPreset<<24) ;
//TRACE("[camera] sending %08lx\n", lParam);
::PostThreadMessage(pMain->pNetThread->m_nThreadID,
WM_NET_CAMERA_CTRL, (WPARAM)ip, lParam) ;
}
else
delete ip;
}
*/
}
LRESULT CRightCamera::on_update_data(WPARAM w, LPARAM)
{
UpdateData(w);
// TRACE("[camera dlg] cam pos: %d\n", m_cam_pos);
return 0;
}
void CRightCamera::OnLoad()
{
send_camera_cmd(camPresetGet);
}
void CRightCamera::OnSet()
{
send_camera_cmd(camPresetSet);
}
void CRightCamera::OnIrisD()
{
// send_camera_cmd(TM_R_KEYPAD_APERTURN_DEC);
}
void CRightCamera::OnIrisI()
{
// send_camera_cmd(TM_R_KEYPAD_APERTURN_INC);
}
void CRightCamera::OnFocusD()
{
// send_camera_cmd(TM_R_KEYPAD_ZOOMOUT);
}
void CRightCamera::OnFocusI()
{
// send_camera_cmd(TM_R_KEYPAD_ZOOMIN);
}
void CRightCamera::OnZoomD()
{
// send_camera_cmd(TM_R_KEYPAD_NEAR);
}
void CRightCamera::OnZoomI()
{
// send_camera_cmd(TM_R_KEYPAD_FAR);
}
void CRightCamera::OnLightOnoff()
{
send_camera_cmd(camLight);
}
void CRightCamera::OnBrushOnoff()
{
send_camera_cmd(camBrush);
}
LRESULT CRightCamera::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if( message == WM_COMMAND )
{
if( wParam >= ID_CAM_POS1 &&
wParam <= ID_CAM_POS16 )
{
PostMessage(WM_UPDATE_DATA, TRUE);
}
}
return baseclass::DefWindowProc(message, wParam, lParam);
}
BOOL CRightCamera::PreTranslateMessage(MSG* msg)
{
static const UINT ids[] = {
IDBTN_IRIS_D,
IDBTN_IRIS_I,
IDBTN_FOCUS_D,
IDBTN_FOCUS_I,
IDBTN_ZOOM_D,
IDBTN_ZOOM_I
};
static const UINT yid[] =
{
camApertureInc,
camApertureDec,
camZoomIn,
camZoomOut,
camFar,
camNear
};
if( msg->message == WM_LBUTTONDOWN )
{
for( int i=0; i<SIZE_OF(ids); i++ )
{
if( msg->hwnd == GetDlgItem(ids[i])->m_hWnd)
send_camera_cmd(yid[i]);
}
}
if( msg->message == WM_LBUTTONUP )
{
for( int i=0; i<SIZE_OF(ids); i++ )
{
if( msg->hwnd == GetDlgItem(ids[i])->m_hWnd )
{
send_stop();
}
}
}
return baseclass::PreTranslateMessage(msg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -