📄 dlgsetradar.cpp
字号:
// DlgSetRadar.cpp : implementation file
//
#include "stdafx.h"
#include "videocapture.h"
#include "DlgSetRadar.h"
#include "VideoCaptureView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgSetRadar dialog
CDlgSetRadar::CDlgSetRadar(CWnd* pParent /*=NULL*/)
: CDialog(CDlgSetRadar::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgSetRadar)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDlgSetRadar::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgSetRadar)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgSetRadar, CDialog)
//{{AFX_MSG_MAP(CDlgSetRadar)
ON_WM_SHOWWINDOW()
ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
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_RADIO7, OnRadio7)
ON_BN_CLICKED(IDC_RADIO8, OnRadio8)
ON_BN_CLICKED(IDC_RADIO9, OnRadio9)
ON_BN_CLICKED(IDC_RADIO10, OnRadio10)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgSetRadar message handlers
void CDlgSetRadar::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(pView)
pView->IsCapturing=TRUE;
}
//发送雷达控制信息(a 为指定命令序号)
/* 0:运动方式
1:静态方式
3:逆向目标
4:同向目标
5:所有目标
7:前窗测速
8:后窗测速
10:距离平均值
11:最大距离
12:最小距离
*/
void CDlgSetRadar::SendRadarCtrl(int a)
{
m_fSendDataToCom=TRUE;
// SuspendThread(hRadarThread);
// Sleep(1000);
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return;
// BYTE bufSend[2];
pView->bufSend[0]=0xFE;
int iMaxTry=20,i=0;
// MSG msg;
switch(a) {
case 0:
pView->bufSend[1]=0x36;i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/* while(pView->RadarStatus.mode==0 && i<iMaxTry)
{
// Sleep(100);
// GetMessage( &msg, NULL, 0, 0);
// PostMessage(msg.message,msg.wParam,msg.lParam);
i++;
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 1:
pView->bufSend[1]=0x35;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
i=0;
while(pView->RadarStatus.mode!=0 && i<iMaxTry)
{
i++;
// GetMessage( &msg, NULL, 0, 0);
// PostMessage(msg.message,msg.wParam,msg.lParam);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 3:
pView->bufSend[1]=0x3C;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
i=0;
while(pView->RadarStatus.driveway<=0 && i<iMaxTry)
{
i++;
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 4:
pView->bufSend[1]=0x3D;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*i=0;
while(pView->RadarStatus.driveway!=0 && i<iMaxTry)
{
i++;
//Sleep(100);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 5:
pView->bufSend[1]=0x3E;
i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
while(pView->RadarStatus.driveway>=0 && i<iMaxTry)
{
i++;
//Sleep(100);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 7:
pView->bufSend[1]=0x53;
i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
while(pView->RadarStatus.position==0 && i<iMaxTry)
{
i++;
// Sleep(100);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 8:
pView->bufSend[1]=0x43;
i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
while(pView->RadarStatus.position!=0 && i<iMaxTry)
{
i++;
//Sleep(100);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 10:
pView->bufSend[1]=0x39;
i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
while(pView->RadarStatus.distance!=0 && i<iMaxTry)
{
i++;
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 11:
pView->bufSend[1]=0x3A;
i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/*
while(pView->RadarStatus.distance<=0 && i<iMaxTry)
{
i++;
// Sleep(100);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
case 12:
pView->bufSend[1]=0x3B;
i=0;
::KillTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL);
::SetTimer(pView->GetSafeHwnd(),WM_SENDRADARCTRL,200,0);
/* while(pView->RadarStatus.distance>=0 && i<iMaxTry)
{
i++;
//Sleep(100);
pView->SendDataToCom(pView->bufSend,sizeof(pView->bufSend));
Sleep(100);
pView->GetComData();
pView->GetComData();
pView->GetComData();
}*/
break;
default:
i=0;
return;
}
// m_fSendDataToCom=FALSE;
// if(i>=iMaxTry)
// ShowMessage("设置雷达状态失败,请检查雷达");
// pView->SendDataToCom(bufSend,sizeof(bufSend));
// ResumeThread(hRadarThread);
}
void CDlgSetRadar::OnRadio1()
{
SendRadarCtrl(0);
}
void CDlgSetRadar::OnRadio2()
{
SendRadarCtrl(1);
}
void CDlgSetRadar::OnRadio3()
{
SendRadarCtrl(4);
}
void CDlgSetRadar::OnRadio4()
{
SendRadarCtrl(3);
}
void CDlgSetRadar::OnRadio5()
{
SendRadarCtrl(5);
}
void CDlgSetRadar::OnRadio6()
{
SendRadarCtrl(12);
}
void CDlgSetRadar::OnRadio7()
{
SendRadarCtrl(10);
}
void CDlgSetRadar::OnRadio8()
{
SendRadarCtrl(11);
}
void CDlgSetRadar::OnRadio9()
{
SendRadarCtrl(7);
}
void CDlgSetRadar::OnRadio10()
{
SendRadarCtrl(8);
}
BOOL CDlgSetRadar::OnInitDialog()
{
CDialog::OnInitDialog();
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return FALSE;
//初始化距离
if(pView->RadarStatus.distance==0)
((CButton*)GetDlgItem(IDC_RADIO7))->SetCheck(TRUE);
else if (pView->RadarStatus.distance>0)
((CButton*)GetDlgItem(IDC_RADIO8))->SetCheck(TRUE);
else
((CButton*)GetDlgItem(IDC_RADIO6))->SetCheck(TRUE);
//初始化目标方向
if(pView->RadarStatus.driveway==0)
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
else if(pView->RadarStatus.driveway>0)
((CButton*)GetDlgItem(IDC_RADIO4))->SetCheck(TRUE);
else
((CButton*)GetDlgItem(IDC_RADIO5))->SetCheck(TRUE);
//初始化雷达模式
if (pView->RadarStatus.mode==0)
((CButton*)GetDlgItem(IDC_RADIO2))->SetCheck(TRUE);
else ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
//雷达位置
if (pView->RadarStatus.position!=0)
((CButton*)GetDlgItem(IDC_RADIO9))->SetCheck(TRUE);
else
((CButton*)GetDlgItem(IDC_RADIO10))->SetCheck(TRUE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -