⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1394camerademo.cpp

📁 IEEE-1394 Digital Camera Windows Driver
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	DWORD start, duration;
	int frames = 0;

	if (theCamera.StartImageAcquisition())
		AfxMessageBox("Problem Starting Image Acquisition");

	start = GetTickCount();
	do
	{
   		if (theCamera.AcquireImage())
			AfxMessageBox("Problem Acquiring Image");
		frames++;
		duration = GetTickCount() - start;
	}
	while (duration < 3000);

	if (theCamera.StopImageAcquisition())
		AfxMessageBox("Problem Stopping Image Acquisition");

	double rate = (1000.0*frames)/duration;
	text.Format("Frames = %d; Rate = %3.1f", frames, rate);
	AfxMessageBox(text);
}


void C1394CameraDemoApp::On1394MeasureFramerate2() 
{
	CString text;
	DWORD start, duration;
	int frames = 0;

	if (theCamera.StartImageCapture())
		AfxMessageBox("Problem Starting Image Capture");

	start = GetTickCount();
	do
	{
   		if (theCamera.CaptureImage())
			AfxMessageBox("Problem Capturing Image");
		frames++;
		duration = GetTickCount() - start;
	}
	while (duration < 3000);

	if (theCamera.StopImageCapture())
		AfxMessageBox("Problem Stopping Image Capture");

	double rate = (1000.0*frames)/duration;
	text.Format("Frames = %d; Rate = %3.1f", frames, rate);
	AfxMessageBox(text);
}


void C1394CameraDemoApp::OnUpdate1394MeasureFramerate1(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_cameraInitialized);
}


void C1394CameraDemoApp::OnUpdate1394MeasureFramerate2(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_cameraInitialized);
}


void C1394CameraDemoApp::On1394InitCamera() 
{
	((CMainFrame *)m_pMainWnd)->SetStatus("Initializing Camera...");
	theCamera.InitCamera();
	((CMainFrame *)m_pMainWnd)->SetStatus("Checking Feature Presence...");
	theCamera.InquireControlRegisters();
	((CMainFrame *)m_pMainWnd)->SetStatus("Checking Feature Status...");
	theCamera.StatusControlRegisters();

	((CMainFrame *)m_pMainWnd)->SetStatus("Setting Initial Video Mode...");
	// set initial video format, mode, and frame rate
	for (int format=0; format<8; format++)
		for (int mode=0; mode<8; mode++)
			for (int rate=0; rate<6; rate++)
				if (theCamera.m_videoFlags[format][mode][rate])
				{
					theCamera.SetVideoFormat(format);
					theCamera.SetVideoMode(mode);
					theCamera.SetVideoFrameRate(rate);
					m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth + 12, theCamera.m_height+m_borderHeight + 12, SWP_NOMOVE|SWP_NOZORDER);
					if (!((format==0)&&(mode==0)&&(rate==2)))		// this combination doesn't work (bug somewhere in the code)
					{
						((CMainFrame *)m_pMainWnd)->SetStatus("Ready");
						return;
					}
				}

	((CMainFrame *)m_pMainWnd)->SetStatus("Ready");

}


void C1394CameraDemoApp::OnUpdate1394InitCamera(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked);
}


void C1394CameraDemoApp::On1394CameraModel() 
{
	CString text;
	text = theCamera.m_nameVendor;
	text += ": ";
	text += theCamera.m_nameModel;	
	AfxMessageBox(text);

}


void C1394CameraDemoApp::OnUpdate1394CameraModel(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(theCamera.m_cameraInitialized);
}


void C1394CameraDemoApp::On1394Control() 
{
	theCamera.InquireControlRegisters();
	theCamera.StatusControlRegisters();

	if (!m_pDlg)
	{		
		m_pDlg = new C1394CameraDlg();
		m_pDlg->Create(IDD_1394_CAMERA_DIALOG, NULL);
		m_pDlg->CenterWindow();
	}
	m_pDlg->ShowWindow(SW_SHOWNORMAL);
}


void C1394CameraDemoApp::OnUpdate1394Control(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(theCamera.m_cameraInitialized);
}


void C1394CameraDemoApp::OnUpdateAppExit(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera);
}


void C1394CameraDemoApp::OnUpdate1394ResetLink(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera);
}


void C1394CameraDemoApp::On1394MaximumSpeed() 
{
	CString text;
	text.Format("Maximum Speed: %d MBits/s", theCamera.GetMaxSpeed());	
	AfxMessageBox(text);
}


void C1394CameraDemoApp::OnUpdate1394MaximumSpeed(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(theCamera.m_cameraInitialized);
}

void C1394CameraDemoApp::On1394Trigger()
{
	theCamera.m_controlTrigger.SetMode(0, 0);
	theCamera.m_controlTrigger.Status();
	if (theCamera.m_controlTrigger.m_statusOnOff)
		theCamera.m_controlTrigger.TurnOn(false);
	else
		theCamera.m_controlTrigger.TurnOn(true);
}


void C1394CameraDemoApp::OnUpdate1394Trigger(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(theCamera.m_cameraInitialized && theCamera.m_controlTrigger.m_present);
	pCmdUI->SetCheck(theCamera.m_controlTrigger.m_statusOnOff);
}


void C1394CameraDemoApp::On1394Partialscan() 
{
	int oldFormat = theCamera.GetVideoFormat();
	int oldMode = theCamera.GetVideoMode();

	theCamera.SetVideoFormat(7);

	// determine available partial scan mode
	for (int i=0; i<8; i++)
		if (theCamera.m_controlSize.ModeSupported(i))
			theCamera.SetVideoMode(i);

	C1394PartialScanDlg dlg;
	if (dlg.DoModal() == IDOK)
	{
		theCamera.m_controlSize.SetPosition(dlg.m_left*theCamera.m_controlSize.m_unitH, dlg.m_top*theCamera.m_controlSize.m_unitV);
		theCamera.m_controlSize.SetSize((dlg.m_right-dlg.m_left)*theCamera.m_controlSize.m_unitH, (dlg.m_bottom-dlg.m_top)*theCamera.m_controlSize.m_unitV);
		theCamera.m_controlSize.SetColorCode(0);
		m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth, theCamera.m_height+m_borderHeight, SWP_NOMOVE|SWP_NOZORDER);
		return;
	}
	theCamera.SetVideoFormat(oldFormat);
	theCamera.SetVideoMode(oldMode);
}


void C1394CameraDemoApp::OnUpdate1394Partialscan(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_cameraInitialized && theCamera.m_controlSize.Supported());
	pCmdUI->SetCheck(theCamera.GetVideoFormat() == 7);
}


void C1394CameraDemoApp::On1394Camera1() 
{
	theCamera.SelectCamera(0);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera2() 
{
	theCamera.SelectCamera(1);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera3() 
{
	theCamera.SelectCamera(2);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera4() 
{
	theCamera.SelectCamera(3);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera5() 
{
	theCamera.SelectCamera(4);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera6() 
{
	theCamera.SelectCamera(5);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera7() 
{
	theCamera.SelectCamera(6);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera8() 
{
	theCamera.SelectCamera(7);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::On1394Camera9() 
{
	theCamera.SelectCamera(8);
	theCamera.m_cameraInitialized = false;
}


void C1394CameraDemoApp::OnUpdate1394Camera1(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 1));
	pCmdUI->SetCheck(theCamera.GetNode() == 0);
}


void C1394CameraDemoApp::OnUpdate1394Camera2(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 2));
	pCmdUI->SetCheck(theCamera.GetNode() == 1);
}


void C1394CameraDemoApp::OnUpdate1394Camera3(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 3));
	pCmdUI->SetCheck(theCamera.GetNode() == 2);
}


void C1394CameraDemoApp::OnUpdate1394Camera4(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 4));
	pCmdUI->SetCheck(theCamera.GetNode() == 3);
}


void C1394CameraDemoApp::OnUpdate1394Camera5(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 5));
	pCmdUI->SetCheck(theCamera.GetNode() == 4);
}


void C1394CameraDemoApp::OnUpdate1394Camera6(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 6));
	pCmdUI->SetCheck(theCamera.GetNode() == 5);
}


void C1394CameraDemoApp::OnUpdate1394Camera7(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 7));
	pCmdUI->SetCheck(theCamera.GetNode() == 6);
}


void C1394CameraDemoApp::OnUpdate1394Camera8(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 8));
	pCmdUI->SetCheck(theCamera.GetNode() == 7);
}


void C1394CameraDemoApp::OnUpdate1394Camera9(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_showCamera && theCamera.m_linkChecked && (theCamera.GetNumberCameras() >= 9));
	pCmdUI->SetCheck(theCamera.GetNode() == 8);
}

// below here added on 2-26-2002 for 16-bit mono modes

void C1394CameraDemoApp::On1394640x480mono16() 
{
	theCamera.SetVideoFormat(0);
	theCamera.SetVideoMode(6);
	m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth+12, theCamera.m_height+m_borderHeight+12, SWP_NOMOVE|SWP_NOZORDER);
}

void C1394CameraDemoApp::On1394800x600mono16() 
{
	theCamera.SetVideoFormat(1);
	theCamera.SetVideoMode(6);
	m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth+12, theCamera.m_height+m_borderHeight+12, SWP_NOMOVE|SWP_NOZORDER);
}

void C1394CameraDemoApp::On13941024x768mono16() 
{
	theCamera.SetVideoFormat(1);
	theCamera.SetVideoMode(7);
	m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth+12, theCamera.m_height+m_borderHeight+12, SWP_NOMOVE|SWP_NOZORDER);
}

void C1394CameraDemoApp::On13941280x960mono16() 
{
	theCamera.SetVideoFormat(2);
	theCamera.SetVideoMode(6);
	m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth+12, theCamera.m_height+m_borderHeight+12, SWP_NOMOVE|SWP_NOZORDER);
}

void C1394CameraDemoApp::On13941600x1200mono16() 
{
	theCamera.SetVideoFormat(2);
	theCamera.SetVideoMode(7);
	m_pMainWnd->SetWindowPos(NULL, 0, 0, theCamera.m_width+m_borderWidth+12, theCamera.m_height+m_borderHeight+12, SWP_NOMOVE|SWP_NOZORDER);
}

void C1394CameraDemoApp::OnUpdate1394640x480mono16(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable((theCamera.m_videoFlags[0][6][theCamera.GetVideoFrameRate()]) && !m_showCamera && theCamera.m_cameraInitialized);
	pCmdUI->SetCheck((theCamera.GetVideoFormat()==0)&&(theCamera.GetVideoMode()==6));
}

void C1394CameraDemoApp::OnUpdate1394800x600mono16(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable((theCamera.m_videoFlags[1][6][theCamera.GetVideoFrameRate()]) && !m_showCamera && theCamera.m_cameraInitialized);
	pCmdUI->SetCheck((theCamera.GetVideoFormat()==1)&&(theCamera.GetVideoMode()==6));
}

void C1394CameraDemoApp::OnUpdate13941024x768mono16(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable((theCamera.m_videoFlags[1][7][theCamera.GetVideoFrameRate()]) && !m_showCamera && theCamera.m_cameraInitialized);
	pCmdUI->SetCheck((theCamera.GetVideoFormat()==1)&&(theCamera.GetVideoMode()==7));
}

void C1394CameraDemoApp::OnUpdate13941280x960mono16(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable((theCamera.m_videoFlags[2][6][theCamera.GetVideoFrameRate()]) && !m_showCamera && theCamera.m_cameraInitialized);
	pCmdUI->SetCheck((theCamera.GetVideoFormat()==2)&&(theCamera.GetVideoMode()==6));
}

void C1394CameraDemoApp::OnUpdate13941600x1200mono16(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable((theCamera.m_videoFlags[2][7][theCamera.GetVideoFrameRate()]) && !m_showCamera && theCamera.m_cameraInitialized);
	pCmdUI->SetCheck((theCamera.GetVideoFormat()==2)&&(theCamera.GetVideoMode()==7));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -