?? 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
//##ModelId=3F90BAB402D9
CRightCamera* CRightCamera::self = NULL;
//##ModelId=3F90BAB402FF
CRightCamera* CRightCamera::the_one() {return self;}
//##ModelId=3F90BAB402F6
CRightCamera::CRightCamera(CWnd* pParent /*=NULL*/)
: baseclass(CRightCamera::IDD, pParent), channel(0)
{
//{{AFX_DATA_INIT(CRightCamera)
m_control = _T("");
m_cam_pos = 0;
m_savenub = 0;
m_chnl = _T("");
//}}AFX_DATA_INIT
self = this;
}
//##ModelId=3F90BAB5010A
void CRightCamera::DoDataExchange(CDataExchange* pDX)
{
baseclass::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRightCamera)
DDX_Control(pDX, IDLB_CHANNEL, m_channel);
DDX_Control(pDX, ID_13, m_13);
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_Text(pDX, IDC_SAVE_ID, m_savenub);
DDX_Radio(pDX, ID_CAM_POS1, m_cam_pos);
DDX_Text(pDX, IDLB_CHANNEL, m_chnl);
//}}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);
}
if( !pDX->m_bSaveAndValidate )
{
m_ctrl.SetText(m_control);
m_channel.SetText(m_chnl);
}
}
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)
ON_WM_TIMER()
//}}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
//##ModelId=3F90BAB501A1
BOOL CRightCamera::OnInitDialog()
{
baseclass::OnInitDialog();
init_title(m_title);
init_label(m_1);
m_1.SetFontBold(TRUE);
init_label(m_3);
init_label(m_4);
init_label(m_5);
init_label(m_7);
init_label(m_8);
init_label(m_13);
m_13.SetFontBold(TRUE);
init_label(m_ctrl);
init_label(m_channel);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//##ModelId=3F90BAB50183
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;
}
if(!checkcamerapopedom(ipp, channel))
{
return 0;
}
cmd_mode = cmd;
SetTimer(1, 200, NULL) ;
return 0;
}
void CRightCamera::OnTimer(UINT nIDEvent)
{
if( nIDEvent == 1 )
{
if(cmd_mode == camStop || cmd_mode == camAuto)
KillTimer(1);
send_camera_cmd(cmd_mode);
}
}
//##ModelId=3F90BAB402EA
void CRightCamera::on_join()
{
video_channel::current_sel()->report_channel();
}
//##ModelId=3F90BAB402F4
void CRightCamera::on_leave()
{
}
//##ModelId=3F90BAB402CC
void CRightCamera::send_stop()
{
send_camera_cmd(camStop);
}
//##ModelId=3F90BAB402C2
void CRightCamera::send_camera_cmd(USHORT cmd)
{
// TRACE("[SendCameraCtlCom]: %08lx\n", cmd);
UpdateData();
TREC_CAMERA c;
c.channel = channel;
c.cmd = cmd;
if(m_savenub)
c.preset = m_savenub-1;
else
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); // 停止連續(xù)功能
//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;
}
*/
}
//##ModelId=3F90BAB5015B
LRESULT CRightCamera::on_update_data(WPARAM w, LPARAM)
{
if( !w )
{
if( video_channel::current_sel()->is_video_opened() )
{
m_control = get_alias(ipp);
}
}
UpdateData(w);
// TRACE("[camera dlg] cam pos: %d\n", m_cam_pos);
return 0;
}
//##ModelId=3F90BAB501AC
void CRightCamera::OnLoad()
{
send_camera_cmd(camPresetGet);
}
//##ModelId=3F90BAB501BF
BOOL CRightCamera::checkcamerapopedom(ip_port ipp ,int channel)
{
if(check_popedom(ipp.get_ip(), ipp.look_port(), channel+1, 8))
{
CString m_logfile;
m_logfile.Format(IDS_PTZ_SET,ipp.str_ip(),channel+1);
write_log_file(m_logfile);
return TRUE;
}
else return FALSE;
}
void CRightCamera::OnSet()
{
send_camera_cmd(camPresetSet);
}
//##ModelId=3F90BAB501C1
void CRightCamera::OnIrisD()
{
// send_camera_cmd(TM_R_KEYPAD_APERTURN_DEC);
}
//##ModelId=3F90BAB501CA
void CRightCamera::OnIrisI()
{
// send_camera_cmd(TM_R_KEYPAD_APERTURN_INC);
}
//##ModelId=3F90BAB501D4
void CRightCamera::OnFocusD()
{
// send_camera_cmd(TM_R_KEYPAD_ZOOMOUT);
}
//##ModelId=3F90BAB501DE
void CRightCamera::OnFocusI()
{
// send_camera_cmd(TM_R_KEYPAD_ZOOMIN);
}
//##ModelId=3F90BAB501E8
void CRightCamera::OnZoomD()
{
// send_camera_cmd(TM_R_KEYPAD_NEAR);
}
//##ModelId=3F90BAB501F1
void CRightCamera::OnZoomI()
{
// send_camera_cmd(TM_R_KEYPAD_FAR);
}
//##ModelId=3F90BAB501FB
void CRightCamera::OnLightOnoff()
{
send_camera_cmd(camLight);
}
//##ModelId=3F90BAB50205
void CRightCamera::OnBrushOnoff()
{
send_camera_cmd(camBrush);
}
//##ModelId=3F90BAB50129
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);
}
//##ModelId=3F90BAB500F6
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,
camZoomOut,
camZoomIn,
camNear,
camFar
};
if( msg->message == WM_LBUTTONDOWN )
{
for( int i=0; i<SIZE_OF(ids); i++ )
{
if( msg->hwnd == GetDlgItem(ids[i])->m_hWnd)
{
cmd_mode = yid[i];
SetTimer(1, 200, NULL);
}
}
}
if( msg->message == WM_LBUTTONUP )
{
for( int i=0; i<SIZE_OF(ids); i++ )
{
if( msg->hwnd == GetDlgItem(ids[i])->m_hWnd )
{
cmd_mode = camStop;
}
}
}
return baseclass::PreTranslateMessage(msg);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -