📄 1394camerademo.cpp
字号:
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 + -