📄 ptz_drx502a.c
字号:
{
m_bData1 = 0xA0;
m_bData2 = 0xA0;
}
else
{
m_bData1 = 0xA0 + int( (str_params->iSpeed * 32) / 100 );
m_bData2 = 0xA0 + int( (str_params->iSpeed * 32) / 100 );
}
*/
m_bData1 = (unsigned char) ((0x3E * str_params->iSpeed) / 100. + 0x81);
m_bData2 = (unsigned char) ((0x3E * str_params->iSpeed) / 100. + 0x81);
m_bData3 = 0x00;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL DownRight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x12; // Down( m_bOCL ) + Right( m_bOCL )
/*
if( str_params->iSpeed == 0 )
{
m_bData1 = 0xA0;
m_bData2 = 0xA0;
}
else
{
m_bData1 = 0xA0 + int( (str_params->iSpeed * 32) / 100 );
m_bData2 = 0xA0 + int( (str_params->iSpeed * 32) / 100 );
}
*/
m_bData1 = (unsigned char) ((0x3E * str_params->iSpeed) / 100. + 0x81);
m_bData2 = (unsigned char) ((0x3E * str_params->iSpeed) / 100. + 0x81);
m_bData3 = 0x00;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomIn ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x20;
m_bData1 = 0x00;
m_bData2 = 0x00;
/*
if( str_params->iSpeed == 0 )
m_bData3 = 0x00;
else
m_bData3 = int( (str_params->iSpeed * 15) / 100 );
*/
m_bData3 = (unsigned char) ((8 * str_params->iSpeed)/100. + 5);
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ZoomOut ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x40;
m_bData1 = 0x00;
m_bData2 = 0x00;
/*
if( str_params->iSpeed == 0 )
m_bData3 = 0x00;
else
m_bData3 = int( (str_params->iSpeed * 15) / 100 );
*/
m_bData3 = (unsigned char) ((8 * str_params->iSpeed)/100. + 5);
m_bData4 = 0x00;
return SendCommand ();
}
static BOOL IrisOpen ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x55;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = 0x81;
m_bData4 = 0x82;
return SendCommand ();
}
static BOOL IrisClose ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x55;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = 0x81;
m_bData4 = 0x83;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL FocusNear ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x01; // Auto Focus
m_bOCL = 0x00;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = ((unsigned char) ((8 * str_params->iSpeed)/100. + 5)) << 4;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL FocusFar ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x02; // Auto Focus
m_bOCL = 0x00;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = ((unsigned char) ((8 * str_params->iSpeed)/100. + 5)) << 4;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL SetPreset ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x03;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = 0x80 + str_params->No - 1;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL ClearPreset ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x05;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = 0x80 + str_params->No - 1;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL GotoPreset ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x07;
m_bData1 = 0x00;
m_bData2 = 0x00;
m_bData3 = 0x80 + str_params->No - 1;
m_bData4 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL CamPower ( int iCamID, unsigned int bEnable )
{
return TRUE;
}
//////////////////////////////////////////////////////////////////////
static BOOL CamLight ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0x4F;
if( str_params->bEnable )
m_bData2 = 0x03;
else
m_bData2 = 0x02;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL AutoPan ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
if( str_params->bEnable )
{
m_bOCL = 0x1B;
m_bData2 = 0x80;
}
else
{
m_bOCL = 0x1F;
m_bData2 = 0x00;
}
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
static BOOL OSDMenu ( void *args )
{
PTZ_STR *str_params = (PTZ_STR *)args ;
// m_bDA = str_params->iCamID;
m_bOCH = 0x00;
m_bOCL = 0xb1;
m_bData3 = 0x00;
return SendCommand ();
}
//////////////////////////////////////////////////////////////////////
void CDRX502A()
{
m_bPreset = TRUE;
m_bIris = FALSE;
m_bCamPower = TRUE;
m_bCamLight = TRUE;
m_bCamWiper = FALSE;
m_bCamAutorun = TRUE;
m_bCamAux = TRUE;
m_bAutorunStart = FALSE;
m_bAutorunStop = FALSE;
m_bPresetSpeed = FALSE;
m_bPTZSpeed = TRUE;
m_bMenu = TRUE;
m_bMenuUp = FALSE;
m_bMenuDown = FALSE;
m_bMenuValueUp = FALSE;
m_bMenuValueDown= FALSE;
m_bPatternSet = FALSE;
m_bPatternRun = FALSE;
m_bReset = FALSE;
m_bSM = 0x55; // Start Marker = 0x55
m_bCA = 0x00; // Control Address( 0x00 to 0x1f )
m_bDA = 0x00; // Target Receiver Address( 0x00 to 0xFF )
m_bOCH = 0x00; // Operation Code High
m_bOCL = 0x00; // Operation Code Low
m_bData1 = 0x00; // Data Byte 1( Pan Moter Speed 0xA0 ~ 0xC0 )
m_bData2 = 0x00; // Data Byte 2( Tilt Moter Speed 0xA0 ~ 0xC0 )
m_bData3 = 0x00; // Data Byte 3( Zoom Moter Speed 0xA0 ~ 0x0D, bit 0~3 )
m_bData4 = 0x00; // Data Byte 4( Focus Moter Speed 0xA0 ~ 0x0D, bit 4~7 )
m_bEM = 0xAA; // End Marker = 0xAA
m_bCHKSUM = 0x00; // Check Sum
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;
ptz_status_struct.isr_table[OSDMENU].isr_ptr = OSDMenu;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -