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

📄 sendptzcommand.c

📁 一个在Linux下开发的IP摄像头的驱动程序及控制软件
💻 C
字号:
#include "Utility.h"

/*!
***************************************************************************
 * \brief
 *	send PTZ Command to server
 * \param tServerInfo 
	[in] server info
 * \param iCommand 
	[in] PTZ command
 * \param iCamNumber
	[in] index of camera to control
 
 * \return 
 * \retval S_OK		send command ok
 * \retval -1		index of camera is larger than the server's capability
**************************************************************************/
int SendPTZCommand(TSERVER_INFO tServerInfo, int iCommand, int iCamNumber)
{
	HANDLE hSrvUtl;
	HANDLE hDevice;
	char lpszModelName[64]; 
	PTZCOMMANDS ptzCmd;
	SCODE scRet;
	TSrvDepResource_ServerInfo srvInfo;

	scRet = ServerUtlInit(&hSrvUtl, &hDevice, lpszModelName, tServerInfo);
	if (scRet != S_OK)
		return scRet;

	scRet = SrvDepResource_GetParamForServer(lpszModelName, &srvInfo);
	if (scRet != S_OK)
	{
		ServerUtlRelease(&hSrvUtl, &hDevice);
		return scRet;
	}
	
	switch (iCommand)
	{
	case 1:
		ptzCmd = SERVERUTL_PTZ_MOVE_LEFT;
		break;
	case 2:
		ptzCmd = SERVERUTL_PTZ_MOVE_RIGHT;
		break;
	case 3:
		ptzCmd = SERVERUTL_PTZ_MOVE_UP;
		break;
	case 4:
		ptzCmd = SERVERUTL_PTZ_MOVE_DOWN;
		break;
	case 5:
		ptzCmd = SERVERUTL_PTZ_MOVE_HOME;
		break;
	case 6:
		ptzCmd = SERVERUTL_PTZ_ZOOM_TELE;
		break;
	case 7:
		ptzCmd = SERVERUTL_PTZ_ZOOM_WIDE;
		break;
	case 8:
		ptzCmd = SERVERUTL_PTZ_FOCUS_NEAR;
		break;
	case 9:
		ptzCmd = SERVERUTL_PTZ_FOCUS_FAR;
		break;
	case 10:
		ptzCmd = SERVERUTL_PTZ_FOCUS_AUTO;
		break;
	case 11:
		ptzCmd = SERVERUTL_AUTO_PAN;
		break;
	case 12:
		ptzCmd = SERVERUTL_AUTO_PATROL;
		break;
	case 13:
		ptzCmd = SERVERUTL_AUTO_STOP;
		break;
	case 14:
		ptzCmd = SERVERUTL_IRIS_OPEN;
		break;
	case 15:
		ptzCmd = SERVERUTL_IRIS_CLOSE;
		break;
	case 16:
		ptzCmd = SERVERUTL_IRIS_AUTO;
		break;
	}

	if (srvInfo.dwCamNum < iCamNumber)
	{
		ServerUtlRelease(&hSrvUtl, &hDevice);
		return -1;
	}

	scRet = ServerUtl_SendPTZCommand(hDevice, iCamNumber, ptzCmd, NULL, FALSE);
	if (scRet != S_OK)
	{
		ServerUtlRelease(&hSrvUtl, &hDevice);
		return scRet;
	}

	ServerUtlRelease(&hSrvUtl, &hDevice);

	return 0;
}

⌨️ 快捷键说明

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