📄 ptz_nk97che.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_nk97che.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 "NK-97CHE" ptz model.
...............................................................................
*/
/** ************************************************************************* **
** includes
** ************************************************************************* **/
#include <stdio.h>
#include "pthread_ptzctrl.h"
/** ************************************************************************* **
** defines
** ************************************************************************* **/
/** ************************************************************************* **
** typedefs
** ************************************************************************* **/
/** ************************************************************************* **
** 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_bSTX;
UNS8 m_bCODE1;
UNS8 m_bCODE2;
UNS8 m_bCODE3;
UNS8 m_bCODE4;
UNS8 m_bCODE5;
UNS8 m_bADDR;
UNS8 m_bCHKSUM;
/** ************************************************************************* **
** forward declarations
** ************************************************************************* **/
static void GetModelInfo ( PTZInfo* pModelInfo )
{
strcpy ( pModelInfo->PTZModelName, PTZ_NK97CHE );
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 ()
{
m_bCHKSUM = m_bSTX + m_bCODE1 + m_bCODE2 + m_bCODE3 + m_bCODE4 + m_bCODE5 + m_bADDR;
}
//////////////////////////////////////////////////////////////////////
/*
static
void ConvertToBDCformat ()
{
// Camera Number m_INFO0 -> BCD format
if ( m_INFO0 < 10 )
return;
UNS8 val = m_INFO0 - 10;
m_INFO0 = 0x10 | val;
}
*/
//////////////////////////////////////////////////////////////////////
static BOOL SendCommand ()
{
UNS8 buff[9];
// ConvertToBDCformat ();
CalcCheckSumByte ();
buff[0] = m_bSTX;
buff[1] = m_bCODE1;
buff[2] = m_bCODE2;
buff[3] = m_bCODE3;
buff[4] = m_bCODE4;
buff[5] = m_bCODE5;
buff[6] = m_bADDR;
buff[7] = m_bCHKSUM;
return SendComm(buff, 8, PTZ_NK97CHE_ID);
}
//////////////////////////////////////////////////////////////////////
static BOOL PTZStop ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bADDR = str_params->iCamID;
m_bCODE1 = 0xe5;
m_bCODE2 = 0x00;
m_bCODE3 = 0x00;
m_bCODE4 = 0x00;
m_bCODE5 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ETCStop ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bADDR = str_params->iCamID;
m_bCODE1 = 0x5f;
m_bCODE2 = 0x0c;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL TiltUp ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args;
m_bCODE1 = 0x9b;
m_bCODE2 = (UNS8)( str_params->iSpeed * 2.55 );
// m_bADDR = str_params->iCamID;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL TiltDown ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
m_bCODE1 = 0x9d;
m_bCODE2 = (UNS8)( str_params->iSpeed * 2.55 );
// m_bADDR = str_params->iCamID;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL PanLeft ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
m_bCODE1 = 0x97;
m_bCODE2 = (UNS8)( str_params->iSpeed * 2.55 );
// m_bADDR = str_params->iCamID;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL PanRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
m_bCODE1 = 0x99;
m_bCODE2 = (UNS8)( str_params->iSpeed * 2.55 );
// m_bADDR = str_params->iCamID;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL UpLeft ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// Left
PanLeft( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
// Up
TiltUp( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
return PTZStop( (PTZ_STR *)str_params );
}
//////////////////////////////////////////////////////////////////////
static BOOL DownLeft ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// Left
PanLeft( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
// Down
TiltDown( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
return PTZStop( (PTZ_STR *)str_params );
}
//////////////////////////////////////////////////////////////////////
static BOOL UpRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// Right
PanRight( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
// Up
TiltUp( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
return PTZStop( (PTZ_STR *)str_params );
}
//////////////////////////////////////////////////////////////////////
static BOOL DownRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// Right
PanRight( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
// Down
TiltDown( (PTZ_STR *)str_params );
SendCommand ();
usleep(50*1000);
return PTZStop( (PTZ_STR *)str_params );
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomIn ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
m_bCODE1 = 0x5f;
m_bCODE2 = 0x01;
// m_bADDR = str_params->iCamID;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomOut ( void *args )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -