PTZ-P Pan 水平方向上移动 0 ~ 359
PTZ-T Tilt 垂直方向上的移动 -5 ~ 90
PTZ-Z Zoom 变焦 1 ~ 32
PTZ Facade
com-ptz-facade -scen hikvision -pan 129
com-ptz-facade -scen hikvision -tilt -4
com-ptz-facade -scen hikvision -zoom 1
Scenario : HIKVISION
com-ptz-scen-hikvision -pan 129
com-ptz-scen-hikvision -tilt -4
com-ptz-scen-hikvision -zoom 1
comInit
#define PZT_CMD_TILT_UP (21) // 云台以SS的速度上仰
#define PZT_CMD_TILT_DOWN (22) // 云台以SS的速度下俯
#define PZT_CMD_PAN_LEFT (23) // 云台以SS的速度左转
#define PZT_CMD_PAN_RIGHT (24) // 云台以SS的速度右转
#define PZT_CMD_UP_LEFT (25) // 云台以SS的速度上仰和左转
#define PZT_CMD_UP_RIGHT (26) // 云台以SS的速度上仰和右转
#define PZT_CMD_DOWN_LEFT (27) // 云台以SS的速度下俯和左转
#define PZT_CMD_DOWN_RIGHT (28) // 云台以SS的速度下俯和右转
#define PZT_CMD_PAN_AUTO (29) // 云台以SS的速度左右自动扫描
#define PTZ_REAL_PLAY_START (0) // 云台开始动作
#define PTZ_REAL_PLAY_STOP (1) // 云台停止动作
LOCAL_DEVICE_INFO gDeviceInfo;
LONG gRealPlayHandle;
void comInit() {
NET_DVR_Init();
memset(&gDeviceInfo, 0x00, sizeof(LOCAL_DEVICE_INFO));
}
comLogin
BOOL comLogin(CString comDevIp, INT comDevPort = 8000, CString comUser, CString comPwd)
{
NET_DVR_DEVICEINFO_V30 tmpDeviceInfo;
memset(&tmpDeviceInfo, 0x00, sizeof(NET_DVR_DEVICEINFO_V30));
gDeviceInfo.lLoginID = NET_DVR_Login_V30(comDevIp.GetBuffer(comDevIp.GetLength()), comDevPort, comUser.GetBuffer(comUser.GetLength()), comPwd.GetBuffer(comPwd.GetLength()), &tmpDeviceInfo);
if (-1 == gDeviceInfo.lLoginID) {
DWORD dwLastError = NET_DVR_GetLastError();
return FALSE;
}
gDeviceInfo.iDeviceChanNum = tmpDeviceInfo.byChanNum; // 模拟通道个数
gDeviceInfo.iIPChanNum = tmpDeviceInfo.byIPChanNum; // 最大数字通道个数,低位
gDeviceInfo.iStartChan = tmpDeviceInfo.byStartChan; // 起始通道号
gDeviceInfo.iIPStartChan = tmpDeviceInfo.byStartDChan; // 起始数字通道号, 0表示无效
return TRUE;
}
comControl
void StartPlay(int iChanIndex)
{
NET_DVR_CLIENTINFO tmpClientInfo;
memset(&tmpClientInfo, 0x00, sizeof(NET_DVR_CLIENTINFO));
tmpClientInfo.hPlayWnd = GetDlgItem(IDC_STATIC_PLAY)->m_hWnd;
tmpClientInfo.lChannel = 1;
tmpClientInfo.lLinkMode = 0;
tmpClientInfo.sMultiCastIP = NULL;
gRealPlayHandle = NET_DVR_RealPlay_V30(gDeviceInfo.lLoginID, &tmpClientInfo, NULL, NULL, TRUE);
if (-1 == gRealPlayHandle) {
DWORD err = NET_DVR_GetLastError();
}
m_bIsPlaying = TRUE;
}
BOOL ProcessControl(DWORD dwPTZCommand, DWORD dwSpeed)
{
BOOL ret = NET_DVR_PTZControlWithSpeed(gRealPlayHandle, dwPTZCommand, PTZ_REAL_PLAY_STOP, dwSpeed);
if (!ret) {
DWORD dwLastError = NET_DVR_GetLastError();
return FALSE;
}
return TRUE;
}
void StopPlay() {
NET_DVR_StopRealPlay(gRealPlayHandle);
}
BOOL ProcessControl(DWORD dwPTZCommand, DWORD dwSpeed)
{
LONG lChannel = 1;
BOOL ret = NET_DVR_PTZControlWithSpeed_Other(gDeviceInfo.lLoginID, lChannel, dwPTZCommand, PTZ_REAL_PLAY_STOP, dwSpeed);
if (!ret) {
DWORD dwLastError = NET_DVR_GetLastError();
return FALSE;
}
return TRUE;
}
comLogout
void comLogout()
{
NET_DVR_Logout_V30(gDeviceInfo.lLoginID);
}
parseCommand
INT parseCommand(CString cmdString) {
INT result = 0;
if (0 == cmdString.CompareNoCase(_T("TILT-UP"))) {
result = TILT_UP;
}
if (0 == cmdString.CompareNoCase(_T("TILT-DOWN"))) {
result = TILT_DOWN;
}
if (0 == cmdString.CompareNoCase(_T("PAN-LEFT"))) {
result = PAN_LEFT;
}
if (0 == cmdString.CompareNoCase(_T("PAN-RIGHT"))) {
result = PAN_RIGHT;
}
if (0 == cmdString.CompareNoCase(_T("UP-LEFT"))) {
result = UP_LEFT;
}
if (0 == cmdString.CompareNoCase(_T("UP-RIGHT"))) {
result = UP_RIGHT;
}
if (0 == cmdString.CompareNoCase(_T("PAN-AUTO"))) {
result = PAN_AUTO;
}
if (0 == cmdString.CompareNoCase(_T("DOWN-LEFT"))) {
result = DOWN_LEFT;
}
if (0 == cmdString.CompareNoCase(_T("DOWN-RIGHT"))) {
result = DOWN_RIGHT;
}
if (0 == cmdString.CompareNoCase(_T("ZOOM-IN"))) {
result = ZOOM_IN;
}
if (0 == cmdString.CompareNoCase(_T("ZOOM-OUT"))) {
result = ZOOM_OUT;
}
if (0 == cmdString.CompareNoCase(_T("FOCUS-NEAR"))) {
result = FOCUS_NEAR;
}
if (0 == cmdString.CompareNoCase(_T("FOCUS-FAR"))) {
result = FOCUS_FAR;
}
return result;
}
Scenario : DAHUA