那位高手给看看这个海康录像机云台设置怎样设置。朋友给的,没有说明书。给看看协议,地址,波特率

昨天用手机拍了几张那种马路上的那种监控录像的设备和电脑中的设置,哪位同学会调云台控制改变里边设备的仰俯角? 口- 硬件交流区 霏凡论坛 - 非凡软件站 - powered by phpwind.net
查看完整版本: [--
[attachment=2433933] 就是图中的这个本来摄像是正常的,结果那位给折腾之后,画面就朝天拍摄了~~~ [attachment=2433936]
这个设置 我弄过 第一张图的按钮键,话说 这玩意是可以 设置有点麻烦
昨天来的那位师傅,其实他自己也不懂是头一次折腾,本来打算调试画面2中的那个不正常的结果把我们这里的那个左上的 第一个ID中的正常的那个设备反而搞的摄像机朝天拍摄了个人比较喜欢五花八门感兴趣的东西,打算没事研究一下给他纠正过来,也来学点其他的新玩意,有没有懂行的同学知道如何改法?自己尝试了不少次发现:有的选项要互相配合才行,还有有的选项无法激活,他折腾时没在旁边观看,只是在一边听他说了几句,自己尝试遮把选项给折腾出来的。
电线杆上的箱有啥用的?里面装什么东西的?视频是通过视频线传输的吗?
菜单里面好像有个云台设置。。。操作了之后画面应该直接就有反馈啊
=750) window.open('//Mon_916_7f338c3c43f21f3.jpg');" onload="if(this.width>'750')this.width='750';" >通道1,协议PELCOD(保险起见最好查查你的摄像头说明书看支持的那个协议),波特率2400,其他参数和你图片设置一样,无需变动(除非你监控有多路云台或者球机可能需要改相应的设置)
在云台设置里面调节就可以。
借个“工程宝”扫描一下,就出来了
协议没有了!波特率错了!还有地址码!都有关系!!小弟干监控马上十年了!!呵呵 ,小问题!!呵呵
云台好象是 派尔高的!还是那种外接解码器的!呵呵
上个礼拜他们来了一个兼职的搞这个的技术人员给搞定了用了半个多小时
查看完整版本: [--
Powered by
Code & 2003-08
Time 0.005779 second(s),query:3 Gzip enabledYou can编辑:www.fx114.net
本篇文章主要介绍了"云台控制",主要涉及到云台控制方面的内容,对于云台控制感兴趣的同学可以参考一下。
最近学习了云台的一些东西,比如云台的协议阿,云台的调试什么,通过这段时间努力终于把几个问题解决了,一个是对于某个厂商(A)的云台出现的
协议在波特率
协议、地址码设置和球上的一致的情况下不能控制云台的转动,另外一个问题是A的云台
不支持预置点、到达某个预置点、巡航线的功能,
对云台的开发来说最主要的是要能够结合说明书、理解协议并且实现对云台写串口数据。
&&&&&&&&&&&&&&&&&&&&&&&&&
:PTZProtocal
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
|--------|---------|---------|--------|
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
PTZPelcod &&&&&&&&&&&&.. PTZPelcod
再加上一个对串口进行读写的类就可以组合完成了。
现在的云台大多都是通过
接口进行控制的,在进行云台开发前最好了配备了
--------&485
这样的接口和串口的调试工具,通过对云台直接发送串口命令来验证云台是好的,这样才能够放心的用来开发,否则本来就有问题的云台会给你在开发过程中带来很多的困惑和莫名其妙的问题。
云台最主要的几个协议
协议,这也是我工作中碰到最多的两个协议,关于这两个协议的内容网上很多,我这也不再说明,这里我只谈谈在云台开发的过程中遇到的几个问题:
协议的实现和
协议的实现有差别,会导致在设置地址值的时候需要比球上设置的地址值大一才能够控制球
说明书上也有说对于不同的协议,有的地址从
开始,有的地址从
,所以需要问厂商能不能有种方式可以获取云台的信息得知云台是A的
:预制点和巡航线的问题
通过串口调试工具用串口给
设置预置点
,并且发送转到预置点
会不停的来回左右转,当发送转至预置点
停止转动。通过咨询供应商来解决这个问题
,我们想的那种方法看来是不行的,厂商那边告诉我们无法通过云台启动的时候读取串口信息或者启动之后发送某个命令可以获取到是本场上的设备,唯一的做法只有通过用户自己选购并选择所使用的云台是那个厂家的了
供应商那边的说法:
JM8507 ,(J
侧方向挂解码板的A的云台不支持预置点、跳转到某个预置点、巡航线的功能,而
解码板在吊装口处
原来郁闷了半天的问题都是出在云台本身了。这也让我吸取了教训,先要对开发的东西有个了解,特别是对于那些厂家开发的标准不统一的那部分得开发更要熟读它
的说明书才不至于在开发过程中栽倒到设备本身的问题,不过有时条件不允许你花太多时间区熟悉了...这就要看个人查找问题的经验、效率与能力了.
前言:本文通过一个简单的工程描述了一种插件设计的思想。复杂设计和模块化分解能力是衡量一个程序员水平的重要标志,欢迎大家和我探讨。
1.我们的目的是在Plug-Ins目录里面查找&ptz*.dll&格式的云台插件的动态链接库。每个库可支持多个协议,通过查找该目录下的合法插件,有此插件创建出某个协议的实例,达到通过该协议操作云台的目的。
2.结构体定义:
为串口通信参数:(定义在include/ComManager/ComParam.h文件中)
COMPARAMEXT_API ComParam
ComParam(&
nBaudRate,&&&&&&&&&&&&&&&&&&&&&&&&
nByteSize =
,&&&&&&&&&&&&&&&&&
,&&&&&&&&&&&&&&&&&&&&&&
nStopBits =
);&&&&&&&&&&&&&&&&
:src/PTZ_Test/controls/DllLoad.h(这个类仅在src/PTZ_Test/controls/PTZDll.h)
~CDllLoad(void
&&&&&&&&&Close();
Open(LPCTSTR lpszName) // 加载DLL
&&&&&&&&&if
(m_hModule)
&&&&&&&&&{
&&&&&&&&&&&&&&Close();
&&&&&&&&&}
&&&&&&&&&m_hModule =
::LoadLibrary(lpszName);
&&&&&&&&&::FreeLibrary(m_hModule);&&// 卸载DLL
&&&&&&&&&m_hModule =
&&&&operator
& HMODULE() { return
&&&&PROC GetProcAddress(LPCSTR lpProcName)
&&&&&&&&&return
::GetProcAddress(m_hModule, lpProcName);&&&&// 取得函数入口地址
&&&&HMODULE m_hM
:src/PTZ_Test
/controls/DllLoad.h(主要功能:根据插件产生出该DLL的支持的协议对象,然后由该对象的函数调用需要的功能,由于函数调用时实际使
用的是dll的类的成员函数,所以对象存在时必须也有一份CPTZDll的实例而且是打开状态的。)
// PTZDll.h
&DllLoad.h&
&PTZInterface.h&
&&&&typedef
CPTZInterface * (__stdcall* CREATE_PTZ_INSTANCE)(const
* pszProtocolsName);
&&&&CPTZDll()&&&&// 成员初始化
&&&&&&&&: m_pDllLoad(0
&&&&&&&&, m_pfnCreatePTZInstance(0
&&&&&&&&, m_ppProtocolsName(0
&&&&~CPTZDll()
&&&&&&&&&Close();
&&&&&&&&&delete
&&&&&&&&&m_pDllLoad =
&&&&BOOL OpenPlugIn(LPCTSTR lpszName)&&&&// 打开插件,如果是有效的插件返回TRUE,否则FALSE
&&&&&&&&&if
(m_pDllLoad)
&&&&&&&&&&&&&&Close();
&&&&&&&&&else
&&&&&&&&&{
&&&&&&&&&&&&&&m_pDllLoad =
CDllLoad();
&&&&&&&&&&&&&&m_pDllLoad-
&Open(lpszName);
&&&&&&&&&}
&&&&&&&&&m_pfnCreatePTZInstance =
(CREATE_PTZ_INSTANCE)m_pDllLoad-
&GetProcAddress(&CreatePTZInstance&
&&&&&&&&&m_ppProtocolsName =
**)m_pDllLoad-
&GetProcAddress(&ProtocolNames&
&&&&&&&&&return
(m_ppProtocolsName && m_ppProtocolsName[0
&&&&&&&&&m_pfnCreatePTZInstance =
&&&&&&&&&m_ppProtocolsName =
&&&&&&&&if
(m_pDllLoad)
&&&&&&&&&&&&m_pDllLoad-
** GetSupportProtocols()
&&&&&&&&return
m_ppProtocolsN
&&&&CPTZInterface * CreatePTZInstance(LPCTSTR lpszProtolName)&&&&// 根据该插件内的某个协议产生出一个对象
&&&&&&&&&&&&if
(m_pfnCreatePTZInstance)
&&&&&&&&&&&&return
m_pfnCreatePTZInstance(lpszProtolName);
&&&&&&&&return
&&&&CDllLoad * m_pDllL
&&&&CREATE_PTZ_INSTANCE m_pfnCreatePTZI
** m_ppProtocolsN
CPlugInInfo类
:src/PTZ_Test/controls/PTZProtocolFind.h和src/PTZ_Test/controls/ptzprotocolfind.cpp
CPlugInInfo&&&&// 插件信息类
&&&&string szFileName&&&&&&&&&&&&&&& ;
&&&&vector&string&&&&&&&&&&&&&&&&&&&&&& Protocols&&&&&&&&&&&&&&&&&&&;
&&&&string szFullPath& & ;
&&&&CPlugInInfo(void
&&&&~CPlugInInfo(void
CPTZProtocolFind
&&&&CPTZProtocolFind(void
&&&&~CPTZProtocolFind(void
EnumPlugIns(vector&CPlugInInfo&& PlugInList);
&StdAfx.h&
&ptzprotocolfind.h&
&PTZDll.h&
CPTZProtocolFind::CPTZProtocolFind(void
CPTZProtocolFind::~CPTZProtocolFind(void
// 枚举&Plug-Ins&目录下的所有有效插件
CPTZProtocolFind::EnumPlugIns(vector&CPlugInInfo&& PlugInList)
szFilePath[MAX_PATH];
&&&&::GetModuleFileName(NULL, szFilePath, MAX_PATH);
strrchr(szFilePath, '//'
&&&&*pFind =
&&&&strcat(szFilePath, &//Plug-Ins//ptz*.dll&
&&&&CFileF
&&&&BOOL bF
&&&&bFind =
find.FindFile(szFilePath);
&&&&&&&&CPTZD
&&&&&&&&bFind =
find.FindNextFile();
&&&&&&&&if
(find.IsArchived())
&&&&&&&&&&&&
&&&&&&&&&&&&XTRACE(&路径:%s/n&
, find.GetFilePath());
&&&&&&&&&&&&if
( dll.OpenPlugIn(find.GetFilePath()) )
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&CPlugInI
&&&&&&&&&&&&&&&&const
** ppProtocols =
dll.GetSupportProtocols();
&&&&&&&&&&&&&&&&if
(!ppProtocols)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&continue
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&while
*ppProtocols)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&string _string =
&&&&&&&&&&&&&&&&&&&&info.Protocols.push_back(_string);
&&&&&&&&&&&&&&&&&&&&ppProtocols ++
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&info.szFullPath =
find.GetFilePath();
&&&&&&&&&&&&&&&&info.szFileName =
find.GetFileName();
&&&&&&&&&&&&&&&&PlugInList.push_back(info);
&&&&&&&&&&&&}
&&&&&&&&dll.Close();
&&&&find.Close();
&&&&// 下面是调试代码
&&&&XTRACE(&插件数量:%d/n&
,PlugInList.size());
&&&&vector&CPlugInInfo&::iterator it =
PlugInList.begin();
PlugInList.end(); it++
&&&&&&&&XTRACE(&文件名:%s----》文件路径:%s/n&
, (*it).szFileName.c_str(), (*it).szFullPath.c_str());
4.在对话框工程的窗体中加入两个成员变量:
CPTZDll&&&&&&&& m_PTZdll&&&&&&&&& ; // dll加载对象
CPTZInterface*& m_PTZInterface&&& ; // 正在使用的插件协议对象
用户选择一个插件:BOOL bReturn = m_PTZdll.OpenPlugIn(m_strProtocolPath);
然后根据该插件选择一个协议:m_PTZInterface = m_PTZdll.CreatePTZInstance(m_strProtocolName);&&&&// 参数是一个表示协议的字符串
这时我们可以利用这个m_PTZInterface对象来执行各种操作。
说明:m_PTZInterface的类&CPTZInterface&是一个抽象类,由此派生出各种各样的协议。
其定义如下:
&PTZDef.h&
&ComParam.h&
CPTZInterface
SetPTZSettings(int
nComPort, int
nAddrID, const
ComParam & param) =
Move(MOVEMENT_DIR nDirection) =
Action(int
nActionID, int
SetSpeed(int
nSpeedTrgID, int
DeviceSwitch(int
nDeviceID, bool
bSwitchOn) =
SetPreset(int
CallPreset(int
SelfCheck() =
GetCaps(int
nCapID, void
* lParam) =
ExtendOp(int
nExOpID, void
* lParam) =
Destroy() =
函数设置云台设备所在的串口号、地址码及通信参数。
- 设备地址码
- 通信参数,ComParam结构的引用(请参考《iWise-DVR环境串口操作接口使用说明》)。
函数控制云台在各方向上的运动。
// 停止运动
函数控制云台摄像机的动作。
设置云台运动或摄像机动作的速度。
&速度值 (0x00-0x40)
函数提供打开、关闭某设备的功能。
函数设置预置点。
函数调用预置点,将云台摄象机移动到指定预置点位置。
函数使云台摄象机设备恢复到初始状态。
函数使云台摄象机设备自检。
函数可以取得设备所能提供的能力。
函数对CPTZInterface接口提供扩展功能。
函数负责销毁自身对象。
// PTZBasalCaps结构的大小
// 支持预置点的个数
// 云台移动速度最小值
// 云台移动速度最大值
// 是否支持自动扫描
代码示例:
// 必须以0表示结束
1.创建项目,&Visual C++项目&---&&Win32&---&&Win32 项目&---&&DLL&,选中&导出符号&,(VS2003平台),按源码目录组织规范设置项目,参考我的blog 2004.12其中文章。
2.添加链接库导出定义文件:****.def,加入到项目中。
; ptzPelco-D.def : 声明 DLL 的模块参数。
&&&&& &ptzPelco-D&
&&& ; 此处可以是显式导出
CreatePTZInstance&PRIVATE
ProtocolNames&&DATA
说明:上面分别是导出变量和导出函数。
3.把工程默认的导出变量和导出函数删除,默认导出的类也删除(头文件可删空)。
4.在DllMain所在的cpp文件添加定义:
* ProtocolNames[] =
&&&&&PELCO-D&
&&&&&PELCO-P&
CPTZInterface * __stdcall CreatePTZInstance(const
* pszProtocolsName)
strcmp(pszProtocolsName, ProtocolNames[0
&&&&&&&&&return
CPelco_D;&&&&// 看下面的定义!
strcmp(pszProtocolsName, ProtocolNames[1
&&&&&&&&&return
CPelco_P;&&&&// 看下面的定义!
&&&&return
5.从接口派生出一个类,定义如下:
class CPelco_P: public CPTZInterface { && }
注意上面的CreatePTZInstance
函数,这样就达到了创建这个协议对象的目的了。
6.说明:创建的对象用该类的Destroy()销毁,由使用者调用。
7.转载请保留完整文档,天衣有缝原创,凌晨0:05,深圳南山科技园
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:}

我要回帖

更多关于 海康录像机云台设置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信