Beispiel #1
0
/*
 * Resets the camera's pan/tilt position by moving into a corner and then back to the center.
 */
void reset_machanical_pan_tilt(IAMCameraControl *pCameraControl)
{
	set_mechanical_pan_relative(pCameraControl, 180);
	Sleep(500);
	set_mechanical_tilt_relative(pCameraControl, 180);
	Sleep(500);
	set_mechanical_pan_relative(pCameraControl, -64);
	Sleep(500);
	set_mechanical_tilt_relative(pCameraControl, -24);
	Sleep(500);
}
Beispiel #2
0
/*
 * Test a camera's pan/tilt properties
 *
 * See also:
 *
 * IAMCameraControl Interface
 *     http://msdn2.microsoft.com/en-us/library/ms783833.aspx
 * PROPSETID_VIDCAP_CAMERACONTROL
 *     http://msdn2.microsoft.com/en-us/library/aa510754.aspx
 */
HRESULT test_pan_tilt(IBaseFilter *pBaseFilter)
{
	HRESULT hr = 0;
	IAMCameraControl *pCameraControl = NULL;
	ControlInfo panInfo = { 0 };
	ControlInfo tiltInfo = { 0 };
	ControlInfo zoomInfo = { 0 };
	long value = 0, flags = 0;

	//printf("    Reading pan/tilt property information ...\n");

	//// Get a pointer to the IAMCameraControl interface used to control the camera
	hr = pBaseFilter->QueryInterface(IID_IAMCameraControl, (void **)&pCameraControl);
	if(hr != S_OK)
	{
		fprintf(stderr, "ERROR: Unable to access IAMCameraControl interface.\n");
		return hr;
	}


	//*
	//printf("    Testing mechanical pan ...\n");
	set_mechanical_pan_relative(pCameraControl, gPan);
	Sleep(abs(gPan)*gWait);
	//*/

	//*
	//printf("    Testing mechanical tilt ...\n");
	set_mechanical_tilt_relative(pCameraControl, gTilt);
	Sleep(abs(gTilt)*gWait);
	//*/
	
	printf("    DONE\n");
	return S_OK;
}
Beispiel #3
0
/*
 * Test a camera's pan/tilt properties
 *
 * See also:
 *
 * IAMCameraControl Interface
 *     http://msdn2.microsoft.com/en-us/library/ms783833.aspx
 * PROPSETID_VIDCAP_CAMERACONTROL
 *     http://msdn2.microsoft.com/en-us/library/aa510754.aspx
 */
HRESULT test_pan_tilt(IBaseFilter *pBaseFilter)
{
	HRESULT hr = 0;
	IAMCameraControl *pCameraControl = NULL;
	ControlInfo panInfo = { 0 };
	ControlInfo tiltInfo = { 0 };
	ControlInfo zoomInfo = { 0 };
	long value = 0, flags = 0;

	printf("    Reading pan/tilt property information ...\n");

	// Get a pointer to the IAMCameraControl interface used to control the camera
	hr = pBaseFilter->QueryInterface(IID_IAMCameraControl, (void **)&pCameraControl);
	if(hr != S_OK)
	{
		fprintf(stderr, "ERROR: Unable to access IAMCameraControl interface.\n");
		return hr;
	}

	// Retrieve information about the pan and tilt controls
	hr = pCameraControl->GetRange(CameraControl_Pan, &panInfo.min, &panInfo.max, &panInfo.step, &panInfo.def, &panInfo.flags);
	if(hr != S_OK)
	{
		fprintf(stderr, "ERROR: Unable to retrieve CameraControl_Pan property information.\n");
		return hr;
	}
	printf("      Pan control:\n");
	print_control_info(&panInfo);

	hr = pCameraControl->GetRange(CameraControl_Tilt, &tiltInfo.min, &tiltInfo.max, &tiltInfo.step, &tiltInfo.def, &tiltInfo.flags);
	if(hr != S_OK)
	{
		fprintf(stderr, "ERROR: Unable to retrieve CameraControl_Tilt property information.\n");
		return hr;
	}
	printf("      Tilt control:\n");
	print_control_info(&tiltInfo);

		//reset_machanical_pan_tilt(pCameraControl);
		//Sleep(3000);
	set_mechanical_pan_relative(pCameraControl, iPan);
	set_mechanical_tilt_relative(pCameraControl, iTilt);

	/*

	printf("    Resetting pan/tilt/zoom ...\n");
	reset_machanical_pan_tilt(pCameraControl);
	reset_digital_pan_tilt(pCameraControl);
	reset_digital_zoom(pCameraControl);
	Sleep(3000);



	printf("    Testing mechanical pan ...\n");
	set_mechanical_pan_relative(pCameraControl, 40);
	set_mechanical_pan_relative(pCameraControl, 20);
	set_mechanical_pan_relative(pCameraControl, -20);
	set_mechanical_pan_relative(pCameraControl, -40);
	Sleep(3000);


	//*
	printf("    Testing mechanical tilt ...\n");
	set_mechanical_tilt_relative(pCameraControl, 20);
	set_mechanical_tilt_relative(pCameraControl, 10);
	set_mechanical_tilt_relative(pCameraControl, -10);
	set_mechanical_tilt_relative(pCameraControl, -20);
	Sleep(3000);



	printf("    Testing digital pan/tilt/zoom ...\n");
	set_digital_zoom_absolute(pCameraControl, 100);		// Zoom to 200%
	Sleep(1000);

	set_digital_pan_absolute(pCameraControl, 40);
	Sleep(1000);
	set_digital_pan_absolute(pCameraControl, 80);
	Sleep(1000);

	set_digital_zoom_absolute(pCameraControl, 200);		// Zoom to 400%
	Sleep(1000);

	set_digital_tilt_absolute(pCameraControl, 40);
	Sleep(1000);
	set_digital_tilt_absolute(pCameraControl, 60);
	Sleep(1000);
	
	reset_digital_pan_tilt(pCameraControl);
	Sleep(1000);
	reset_digital_zoom(pCameraControl);
	Sleep(3000);
	//*/


	return S_OK;
}