?? 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 + -