📄 ptz_lvca720.c
字号:
/* set tabstop=4 */
/********************************************************************************
* *
* Copyright(C) 2004 Penta-Micro *
* *
* ALL RIGHT RESERVED *
* *
* This software is the property of Penta-Micro and is furnished under *
* license by Penta-Micro. This software may be used only in accordance *
* with the terms of said license. This copyright notice may not be *
* removed, modified or obliterated without the prior written permission *
* of Penta-Micro. *
* *
* This software may not be copyed, transmitted, provided to or otherwise *
* made available to any other person, company, corporation or other entity *
* except as specified in the terms of said license. *
* *
* No right, title, ownership or other interest in the software is hereby *
* granted or transferred. *
* *
* The information contained herein is subject to change without notice and *
* should not be construed as a commitment by Penta-Micro. *
* *
********************************************************************************
MODULE NAME: ptz_lvca720.c
REVISION HISTORY:
Date Ver Name Description
---------- --- --------------------- -----------------------------------------
07/09/2003 1.0 Mhpark Created
02/01/2005 1.1 JiGwanKang(xchannel) Modify(arrangement)
...............................................................................
DESCRIPTION:
This Module contains functions for "LG LPT-A100L" ptz model.
...............................................................................
*/
/** ************************************************************************* **
** includes
** ************************************************************************* **/
#include <stdio.h>
#include "pthread_ptzctrl.h"
/** ************************************************************************* **
** typedefs
** ************************************************************************* **/
/** ************************************************************************* **
** defines
** ************************************************************************* **/
#define LPTA100L_DELAY 0x30 // 0x30:150ms, 0x31:500ms
/** ************************************************************************* **
** globals
** ************************************************************************* **/
/** ************************************************************************* **
** locals
** ************************************************************************* **/
BOOL m_bPreset;
BOOL m_bIris;
BOOL m_bCamPower;
BOOL m_bCamLight;
BOOL m_bCamWiper;
BOOL m_bCamAutorun;
BOOL m_bCamAux;
BOOL m_bAutorunStart;
BOOL m_bAutorunStop;
BOOL m_bPresetSpeed;
BOOL m_bPTZSpeed;
BOOL m_bMenu;
BOOL m_bMenuUp;
BOOL m_bMenuDown;
BOOL m_bMenuValueUp;
BOOL m_bMenuValueDown;
BOOL m_bPatternSet;
BOOL m_bPatternRun;
BOOL m_bReset;
UNS8 m_STX;
UNS8 m_PID;
UNS8 m_CMD;
UNS8 m_Data;
UNS8 m_ETX;
UNS8 m_CHKSUM;
/** ************************************************************************* **
** forward declarations
** ************************************************************************* **/
static void GetModelInfo ( PTZInfo* pModelInfo )
{
strcpy ( pModelInfo->PTZModelName, PTZ_LVCA720 );
pModelInfo->bPreset = m_bPreset;
pModelInfo->bIris = m_bIris;
pModelInfo->bCamAux = m_bCamAux;
pModelInfo->bMenu = m_bMenu;
pModelInfo->bCamPower = m_bCamPower;
pModelInfo->bCamLight = m_bCamLight;
pModelInfo->bCamWiper = m_bCamWiper;
pModelInfo->bCamAutorun = m_bCamAutorun;
pModelInfo->bAutorunStart = m_bAutorunStart;
pModelInfo->bAutorunStop = m_bAutorunStop;
pModelInfo->bPresetSpeed = m_bPresetSpeed;
pModelInfo->bPTZSpeed = m_bPTZSpeed;
pModelInfo->bMenuUp = m_bMenuUp;
pModelInfo->bMenuDown = m_bMenuDown;
pModelInfo->bMenuValueUp = m_bMenuValueUp;
pModelInfo->bMenuValueDown = m_bMenuValueDown;
pModelInfo->bPatternSet = m_bPatternSet;
pModelInfo->bPatternRun = m_bPatternRun;
pModelInfo->bReset = m_bReset;
}
//////////////////////////////////////////////////////////////////////
static void CalcCheckSumByte ()
{
unsigned short val;
val = m_STX + m_PID + m_CMD + m_Data + m_ETX;
m_CHKSUM = (0xffff - val) & 0x7f;
}
//////////////////////////////////////////////////////////////////////
static BOOL SendCommand ()
{
UNS8 buff[8];
CalcCheckSumByte ();
buff[0] = m_STX;
buff[1] = m_PID;
buff[2] = m_CMD;
buff[3] = m_Data;
buff[4] = m_ETX;
buff[5] = m_CHKSUM;
return SendComm(buff, 6, PTZ_LVCA720_ID);
}
//////////////////////////////////////////////////////////////////////
static BOOL PTZStop ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x0000;
//return TRUE;
return SendCommand ();
}
static BOOL SetSpeed ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x31;
if ( str_params->iSpeed >= 50 )
m_Data = 0x31;
else
m_Data = 0x30;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL TiltUp ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x36;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL TiltDown ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x37;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL PanLeft ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x38;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL PanRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x39;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL UpLeft ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x3A;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL DownLeft ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x3B;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL UpRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x3D;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL DownRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x3C;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomIn ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x3E;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomOut ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x3F;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL FocusNear ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x40;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL FocusFar ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x41;
m_Data = LPTA100L_DELAY;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
static BOOL OSDMenu ( void *args )
{
m_CMD = 0x42;
m_Data = 0x30;
return SendCommand ();
}
static BOOL CamPower ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
return OSDMenu ( str_params );
// Camera Power -> Menu On/Off肺 措眉.
/*
m_PID = str_params->iCamID;
m_CMD = 0x30;
if ( str_params->bEnable )
m_Data = 0x30;
else
m_Data = 0x31;
return SendCommand ();
*/
}
//////////////////////////////////////////////////////////////////////
static BOOL AutoPan ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_PID = str_params->iCamID;
m_CMD = 0x33;
if ( str_params->bEnable )
m_Data = 0x30;
else
m_Data = 0x31;
return SendCommand ();
}
void CLVCA720()
{
m_bPreset = FALSE;
m_bIris = FALSE;
m_bCamPower = TRUE;
m_bCamLight = FALSE;
m_bCamWiper = FALSE;
m_bCamAutorun = FALSE;
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 = FALSE;
m_bPatternRun = FALSE;
m_bReset = FALSE;
m_STX = 0x02; // fixed
m_PID = 0x01; // Camera Number ( 1 ~ N )
m_CMD = 0x00; // Command Line( UNS16 )
m_Data = 0x00;
m_ETX = 0x03; // fixed
m_CHKSUM= m_STX + m_PID + m_CMD + m_ETX;
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[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;
ptz_status_struct.isr_table[OSDMENU].isr_ptr = OSDMenu;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -