用海康的DS-4004HC板卡做监控(C#)

用海康的DS-4004HC板卡做监控,采用C#语言,设备监控与控制方面使用OPC
OPC不再重复,好简单的。DS-4004HC板卡做监控参考达人的系列帖子,基本不用变动,原帖地址如下:
http://www.cnblogs.com/over140/archive/2009/04/07/1429308.html
这里要说的是关于移动侦测的方面,这点在原文中并没有提及,这里专门做这方面的介绍:
首先,移动侦测有两种方法:

           

Rectangle[] areaList = new Rectangle[1]; 
            Rectangle rect 
= new Rectangle(00700500);//因为pdf里说“DS400C的矩形框范围是(0,0,703,575)” 
            areaList[0= rect; 

(1)

Code

(2)

HikVisionSDK.AdjustMotionDetectPrecision(ChannelHandle_Vedio, 220); 
HikVisionSDK.SetupMotionDetection(ChannelHandle_Vedio, areaList, areaList.Length); 

然后在回调STREAM_DIRECT_READ_CALLBACK1(int channelNum, IntPtr DataBuf, int Length, FrameType_t frameType, IntPtr context)里添加:

 int[] result = new int[1];HikVisionSDK.MotionAnalyzer(ChannelHandle_Vedio, DataBuf, 20, result); 

每个函数的用法与说明看看那个大哥的DS40xxSDK.cs和海康的pdf里面写的很清晰地.

(3)当然别忘里开启移动侦测哦:HikVisionSDK.StartMotionDetection(ChannelHandle_Vedio);

可是不知道什么原因,按理说方案一比较简单,只要设置回调然后注册,接着启动移动侦测就好,可惜的是,每次当我出发后,处理完会叫后(回调里什么都没干),就会报错说DS40xxSDK.dll里异常结果崩溃,我想了半天也不知道哪里错了,也跟踪不进去,也许用VC做是正常的吧,又或者我哪里设置错了,但pdf里就是这样的,可惜海康demo程序没用到这个。解决此问题的大哥可以告诉我,学习下

于是乎,采用了方案二,毕竟然家海康demo里用的就是这个。事实证明用第二方案果然不报错了

把那位大哥的STREAM_DIRECT_READ_CALLBACK1回调修改下,加入移动侦测部分就搞定了,效果不错(代码内其他函数的说明,请看那个系列文章作者的说明):

Code

对了,最后问个问题:怎么在写博客时黏贴代码啊,我看别人的都可以像在MSDN中的效果一样的,而我复制来的,就只是纯文本,我也想有那种效果,这样以后看博客,写博客也方便点!

新增板卡sdk,驱动与demo的下载地址:
http://download.csdn.net/source/1562398

posted @ 2009-08-09 14:20  臭臭的大佬  阅读(1638)  评论(4编辑  收藏  举报