ptz_pelcod.c

来自「1、基于韩国at2041芯片开发的Linux环境的DVR代码。 2、以原来代码」· C语言 代码 · 共 571 行 · 第 1/2 页

C
571
字号

	
	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomIn ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x20;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x00;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomOut ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x40;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x00;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL FocusNear ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x01;
	m_bCMD2		= 0x00;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x00;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL FocusFar ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x80;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x00;

	
	return SendCommand ();
}
static BOOL IrisOpen	( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x02;
	m_bCMD2		= 0x00;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x00;

	return SendCommand ();
}
static BOOL IrisClose	( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x04;
	m_bCMD2		= 0x00;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x00;

	return SendCommand ();
}
static BOOL SetZoomSpeed	( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x25;
	m_bDATA1	= 0x00;
	m_bDATA2	= (UNS8)(0x03 * str_params->iSpeed / 100.);		// 0x00 ~ 0x03

	return SendCommand ();
}
static BOOL SetFocusSpeed	( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x27;
	m_bDATA1	= 0x00;
	m_bDATA2	= (UNS8)(0x03 * str_params->iSpeed / 100.);		// 0x00 ~ 0x03

	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL CamLight ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	if( str_params->bEnable )
		m_bCMD2	= 0x09;
	else
		m_bCMD2	= 0x0b;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x01;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL AutoPan ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	if( str_params->bEnable )
		m_bCMD2	= 0x09;
	else
		m_bCMD2	= 0x0b;
	m_bDATA1	= 0x00;
	m_bDATA2	= 0x02;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL SetPreset ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x03;
	m_bDATA1	= 0x00;
	m_bDATA2	= str_params->No;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ClearPreset ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x05;
	m_bDATA1	= 0x00;
	m_bDATA2	= str_params->No;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL GotoPreset ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x07;
	m_bDATA1	= 0x00;
	m_bDATA2	= str_params->No;

	

	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL PatternSet ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
//	m_bADDR		= str_params->iCamID;
	m_bCMD1		= 0x00;
	if( str_params->bEnable )
		m_bCMD2	= 0x1f;
	else
		m_bCMD2	= 0x21;
	m_bDATA1	= 0x00;
//	m_bDATA2	= str_params->No;

	
	return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL PatternRun ( void *args )
{
	PTZ_STR *str_params = (PTZ_STR *)args ;
	
	if( str_params->bEnable )
	{
//		m_bADDR		= str_params->iCamID;
		m_bCMD1		= 0x00;
		m_bCMD2		= 0x23;
		m_bDATA1	= 0x00;
//		m_bDATA2	= str_params->No;
	}
	else
	{	
		str_params->iSpeed=10;
		TiltUp((PTZ_STR *)str_params);
		PTZStop((PTZ_STR *)str_params);
	}


	return SendCommand ();
}
void CPelcoD()
{
	m_bPreset		= TRUE;
	m_bIris			= TRUE;
	m_bCamPower	= FALSE;
	m_bCamLight	= TRUE;
	m_bCamWiper	= FALSE;
	m_bCamAutorun	= TRUE;
	m_bCamAux		= FALSE;

	m_bAutorunStart	= FALSE;
	m_bAutorunStop	= FALSE;
	m_bPresetSpeed	= FALSE;
	m_bPTZSpeed	= TRUE;

	m_bMenu		= FALSE;
	m_bMenuUp		= FALSE;
	m_bMenuDown	= FALSE;
	m_bMenuValueUp= FALSE;
	m_bMenuValueDown= FALSE;

	m_bPatternSet	= TRUE;
	m_bPatternRun	= TRUE;

	m_bReset		= FALSE;

	m_bSYNC		= 0xff;		// Synchronization	- Always 0xff
	m_bADDR		= 0x01;		// Camera ID		- Base Camera ID 01
	m_bCMD1		= 0x00;
	m_bCMD2		= 0x00;
	m_bDATA1		= 0x00;
	m_bDATA2		= 0x00;

	m_bCHKSUM		= m_bADDR + m_bCMD1 + m_bCMD2 + m_bDATA1 + m_bDATA2;

	ptz_status_struct.isr_table[PTZFSTOP].isr_ptr = PTZStop;
	ptz_status_struct.isr_table[PTUP].isr_ptr = TiltUp;
	ptz_status_struct.isr_table[PTDOWN].isr_ptr = TiltDown;
	ptz_status_struct.isr_table[PTZFSTOP].isr_ptr = PTZStop;
	ptz_status_struct.isr_table[PTLEFT].isr_ptr = PanLeft;
	ptz_status_struct.isr_table[PTRIGHT].isr_ptr = PanRight;
	ptz_status_struct.isr_table[PTZFSTOP].isr_ptr = PTZStop;
	ptz_status_struct.isr_table[ZIN].isr_ptr = ZoomIn;
	ptz_status_struct.isr_table[ZOUT].isr_ptr = ZoomOut;
	ptz_status_struct.isr_table[PTZFSTOP].isr_ptr = PTZStop;
	ptz_status_struct.isr_table[FIN].isr_ptr = FocusNear;
	ptz_status_struct.isr_table[FOUT].isr_ptr = FocusFar;
	ptz_status_struct.isr_table[SETPRESET].isr_ptr = SetPreset;
	ptz_status_struct.isr_table[GOTOPRESET].isr_ptr = GotoPreset;
	ptz_status_struct.isr_table[CLEARPRESET].isr_ptr = ClearPreset;
	ptz_status_struct.isr_table[IRISOPEN].isr_ptr = IrisOpen;
	ptz_status_struct.isr_table[IRISCLOSE].isr_ptr = IrisClose;
	ptz_status_struct.isr_table[AUTOPAN].isr_ptr = AutoPan;
	ptz_status_struct.isr_table[UPLEFT].isr_ptr = UpLeft;
	ptz_status_struct.isr_table[UPRIGHT].isr_ptr = UpRight;
	ptz_status_struct.isr_table[DOWNLEFT].isr_ptr = DownLeft;
	ptz_status_struct.isr_table[DOWNRIGHT].isr_ptr = DownRight;
}

⌨️ 快捷键说明

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