📄 dlgsradar.cpp
字号:
// DlgSRadar.cpp : implementation file
//
#include "stdafx.h"
#include "videocapture.h"
#include "DlgSRadar.h"
#include "VideoCaptureView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgSRadar dialog
CDlgSRadar::CDlgSRadar(CWnd* pParent /*=NULL*/)
: CDialog(CDlgSRadar::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgSRadar)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDlgSRadar::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgSRadar)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgSRadar, CDialog)
//{{AFX_MSG_MAP(CDlgSRadar)
ON_BN_CLICKED(IDC_RADIO_STILL, OnRadioStill)
ON_BN_CLICKED(IDC_RADIO_MOBILE, OnRadioMobile)
ON_BN_CLICKED(IDC_RADIO_SAME, OnRadioSame)
ON_BN_CLICKED(IDC_RADIO_DIF, OnRadioDif)
ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
ON_BN_CLICKED(IDC_RADIO_POS_FRONT, OnRadioPosFront)
ON_BN_CLICKED(IDC_RADIO_POS_NEAR, OnRadioPosNear)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgSRadar message handlers
void CDlgSRadar::SendRadarCtrl(int a)
{
// m_fSendDataToCom=TRUE;
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return;
switch(a) {
case 0://A模式,静止模式
pView->bufSend[0]=0x81;
pView->bufSend[1]=0x21;
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.mode=0;
pView->RadarStatus.driveway=-1;
break;
case 1://B模式,移动模式
pView->bufSend[0]=0x81;
pView->bufSend[1]=0x22;
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.mode=1;
break;
case 3://设置时间间隔
pView->bufSend[0]=0x82;
pView->bufSend[1]='0';
pView->bufSend[2]='0';
pView->bufSend[3]='5';
pView->bufSend[4]='0';
pView->bufSend[5]=0x0D;
pView->SendDataToCom(pView->bufSend,6);
break;
case 4://同向
pView->bufSend[0]=0x90;
pView->bufSend[1]='1';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.driveway=0;
break;
case 5://逆向
pView->bufSend[0]=0x90;
pView->bufSend[1]='0';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.driveway=1;
break;
case 6://前方雷达
pView->bufSend[0]=0x92;
pView->bufSend[1]='1';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.position=1;
break;
case 7: //后方雷达
pView->bufSend[0]=0x92;
pView->bufSend[1]='0';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.position=0;
break;
case 8: //发射
pView->bufSend[0]=0x93;
pView->bufSend[1]='1';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
break;
case 9://停止发射
pView->bufSend[0]=0x93;
pView->bufSend[1]='0';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
break;
case 10://移动
pView->bufSend[0]=0x94;
pView->bufSend[1]='1';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.mode=1;
break;
case 11://静止
pView->bufSend[0]=0x94;
pView->bufSend[1]='0';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.mode=0;
pView->RadarStatus.driveway=-1;
break;
case 12: //Faster
pView->bufSend[0]=0x95;
pView->bufSend[1]='1';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
break;
case 13: //Slower
pView->bufSend[0]=0x95;
pView->bufSend[1]='0';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
break;
case 101://灵敏度1
pView->bufSend[0]=0x96;
pView->bufSend[1]='1';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.distance=1;
break;
case 104://灵敏度4
pView->bufSend[0]=0x96;
pView->bufSend[1]='4';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.distance=2;
break;
case 102://灵敏度2
pView->bufSend[0]=0x96;
pView->bufSend[1]='2';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.distance=3;
break;
case 103://灵敏度3
pView->bufSend[0]=0x96;
pView->bufSend[1]='3';
pView->bufSend[2]=0x0D;
pView->SendDataToCom(pView->bufSend,3);
pView->RadarStatus.distance=4;
break;
default:
return;
}
pView->UpdateRadarStatus();
}
BOOL CDlgSRadar::OnInitDialog()
{
CDialog::OnInitDialog();
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return FALSE;
//初始化距离
if(pView->RadarStatus.distance<2)
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
else if (pView->RadarStatus.distance==2)
((CButton*)GetDlgItem(IDC_RADIO4))->SetCheck(TRUE);
else if (pView->RadarStatus.distance==3)
((CButton*)GetDlgItem(IDC_RADIO5))->SetCheck(TRUE);
else
((CButton*)GetDlgItem(IDC_RADIO6))->SetCheck(TRUE);
//初始化目标方向
if(pView->RadarStatus.driveway==0)//同向
((CButton*)GetDlgItem(IDC_RADIO_SAME))->SetCheck(TRUE);
else if(pView->RadarStatus.driveway>0)//逆向
((CButton*)GetDlgItem(IDC_RADIO_DIF))->SetCheck(TRUE);
else //所有目标
{
GetDlgItem(IDC_RADIO_SAME)->EnableWindow(FALSE);
GetDlgItem(IDC_RADIO_DIF)->EnableWindow(FALSE);
}
//初始化雷达模式
if (pView->RadarStatus.mode==0)//静止模式
{
((CButton*)GetDlgItem(IDC_RADIO_STILL))->SetCheck(TRUE);
GetDlgItem(IDC_RADIO_SAME)->EnableWindow(FALSE);
GetDlgItem(IDC_RADIO_DIF)->EnableWindow(FALSE);
}
else//移动模式
((CButton*)GetDlgItem(IDC_RADIO_MOBILE))->SetCheck(TRUE);
//雷达位置
if (pView->RadarStatus.position!=0) //前窗
((CButton*)GetDlgItem(IDC_RADIO_POS_FRONT))->SetCheck(TRUE);
else //后窗
((CButton*)GetDlgItem(IDC_RADIO_POS_NEAR))->SetCheck(TRUE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgSRadar::OnRadioStill()
{
// SendRadarCtrl(1);//B模式
SendRadarCtrl(11);
GetDlgItem(IDC_RADIO_SAME)->EnableWindow(FALSE);
GetDlgItem(IDC_RADIO_DIF)->EnableWindow(FALSE);
}
void CDlgSRadar::OnRadioMobile()
{
// SendRadarCtrl(1);//B模式
SendRadarCtrl(10);//移动模式
GetDlgItem(IDC_RADIO_SAME)->EnableWindow();
GetDlgItem(IDC_RADIO_DIF)->EnableWindow();
}
void CDlgSRadar::OnRadioSame()
{
SendRadarCtrl(4); //同向目标;
}
void CDlgSRadar::OnRadioDif()
{
SendRadarCtrl(5); //逆向目标;
}
void CDlgSRadar::OnRadio3()
{
SendRadarCtrl(101);//灵敏度1
}
void CDlgSRadar::OnRadio4()
{
SendRadarCtrl(102);//灵敏度2
}
void CDlgSRadar::OnRadio5()
{
SendRadarCtrl(103);//灵敏度3
}
void CDlgSRadar::OnRadio6()
{
SendRadarCtrl(104);//灵敏度4
}
void CDlgSRadar::OnRadioPosFront()
{
SendRadarCtrl(6);//前窗雷达
}
void CDlgSRadar::OnRadioPosNear()
{
SendRadarCtrl(7);//后窗雷达
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -