用海康的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( 0 0 700 500 ); // 因为pdf里说“DS400C的矩形框范围是(0,0,703,575)” 
            areaList[ 0 =  rect; 

(1)

Code

(2)

HikVisionSDK.AdjustMotionDetectPrecision(ChannelHandle_Vedio,  2 2 0 ); 
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

你可能感兴趣的:(400)