📄 ptz_ab2150.h
字号:
// PTZ_AB2150.h: interface for the CPTZ_AB2150 class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PTZ_AB2150_H__82D64381_56C6_4E4B_B61E_DF1D5D53E514__INCLUDED_)
#define AFX_PTZ_AB2150_H__82D64381_56C6_4E4B_B61E_DF1D5D53E514__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//
#include <afxtempl.h>
#include "..\PTZBase.h"
class CSerialBuff
{
struct tagBuff
{
tagBuff()
{
for(int i=0;i<512;i++)
buff[0]=0;
len=0;
};
BYTE buff[512];
int len;
};
public:
CSerialBuff()
{
m_List.RemoveAll();
};
virtual ~CSerialBuff()
{
};
void AddBuff(BYTE* buff,int len)
{
MWaitAndSignal wait(m_Mutex);
tagBuff* m_buff=new tagBuff;
memcpy(m_buff->buff,buff,len);
m_buff->len=len;
m_List.AddTail(m_buff);
};
BOOL RemoveBuff(BYTE* buff,int* len)
{
MWaitAndSignal wait(m_Mutex);
tagBuff* m_buff=NULL;
if(m_List.GetCount()>0)
{
tagBuff* m_buff=m_List.RemoveHead();
memcpy(buff,m_buff->buff,m_buff->len);
*len=m_buff->len;
return TRUE;
}
else
{
buff=NULL;
len=0;
}
return FALSE;
};
protected:
MMutex m_Mutex;
CList<tagBuff*, tagBuff*> m_List;
};
class CPTZ_AB2150 : public CPTZPlugBase
{
public:
CPTZ_AB2150();
virtual ~CPTZ_AB2150();
protected:
CSerialBuff m_SerialBuff;
DWORD dwSerialRate;
CString szProtocol;//矩阵协议
volatile HANDLE _hWriteThreadHandle; //写辅助线程
volatile bool _fWriteThreadRunFlag; //线程运行循环标志
volatile bool _fWriteFlag;//写标志
volatile PTZACTION m_CtrlID;
protected:
bool IsWriteThreadRunning();
virtual DWORD WriteThreadFunc();
void PrepearProtocol(PTZACTION ctrlID,LPCTSTR pstrFormat, ...);
private:
//base function for thread
#ifdef _MT
static UINT APIENTRY WriteCommThreadProc(LPVOID lpPara);
#else
static DWORD WINAPI WriteCommThreadProc(LPVOID lpPara);
#endif
// {
// return ( (CPTZ_AB2150 *)lpPara )->WriteThreadFunc();
// };
public:
LPCTSTR GetMatrixProtocolName();
bool OpenMatrixSerial(int icom);
bool CloseMatrixSerial(DWORD dwWaitTime = 1000);
void login();
void logout();
void turn_left(int camera=0,int speed=0);
void turn_leftup(int camera=0,int speed=0);
void turn_up(int camera=0,int speed=0);
void turn_rightup(int camera=0,int speed=0);
void turn_right(int camera=0,int speed=0);
void turn_leftdown(int camera=0,int speed=0);
void turn_down(int camera=0,int speed=0);
void turn_rightdown(int camera=0,int speed=0);
void lens_tele(int camera=0,int speed=0);
void lens_wide(int camera=0,int speed=0);
void focus_near(int camera=0,int speed=0);
void focus_far(int camera=0,int speed=0);
void iris_open(int camera=0,int speed=0);
void iris_close(int camera=0,int speed=0);
void auxiliaryswitch_open(int camera=0,int switchno=0);
void auxiliaryswitch_close(int camera=0,int switchno=0);
void auxiliaryswitch_allopen(int camera=0,int switchno=1);
void auxiliaryswitch_allclose(int camera=0,int switchno=0);
void select_matrix(int matrix);
void select_camera(int camera,int monitor);
void select_monitor(int camera,int monitor);
void select_preset(int camera,int preset);
void select_monitorlist(int monitor,int listno=0);
void unselect_monitorlist(int monitor,int listno=0);
void PTZ_stop();
void PTZ_Auto(int camera=0,int speed=0);
void Release();
void LinkControl(int matrix,int monitor,int camera,int preset,int auxi);
};
#endif // !defined(AFX_PTZ_AB2150_H__82D64381_56C6_4E4B_B61E_DF1D5D53E514__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -