当前位置: 首页 > news >正文

企业做营销网站推广关键词排名

企业做营销网站,推广关键词排名,网站建设成功案例,网站关键字搜索功能前言 写系列文章的时候[前言]部分变得无言了&#xff0c;可能来得顺利了点吧: ) 本章中提供的封装均是我用笨办法从<<Hikvision 板卡网络开发包编程手册V4.7>>和<<DS-4000HC、HCS、HC、HF、HS、MD卡的Windows编程指南V4.3>>中拷贝出来并参照VC代码进行…

前言

      写系列文章的时候[前言]部分变得无言了,可能来得顺利了点吧: ) 本章中提供的封装均是我用笨办法从<<Hikvision 板卡网络开发包编程手册V4.7>>和<<DS-4000HC、HCS、HC+、HF、HS、MD卡的Windows编程指南V4.3>>中拷贝出来并参照VC++代码进行整理的,主要是针对HikServer.dll和DS40xxSDK.dll的调用封装。

 

注意

     本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心、实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)

 

系列

1.     C# 视频监控系列(1):准备

     2.     C# 视频监控系列(2):客户端——封装API

     3.     C# 视频监控系列(3):客户端——连接服务器

     4.     C# 视频监控系列(4):客户端——音频接收和抓图

     5.     C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)

     6.     C# 视频监控系列(6):服务器端——封装API(上) [HikServer.dll]

 

正文

     1.     HikServer.dll
 

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace HikServer
{

    
public struct PSERVER_VIDEOINFO
    {
        
/// <summary>
        
/// 序列号
        
/// BYTE    m_datatype[64];
        
/// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
        
public byte[] m_datatype;
        
/// <summary>
        
/// 系统的通道个数
        
/// BYTE    m_channum;
        
/// </summary>
        public byte m_channum;
        
/// <summary>
        
/// 超时等待时间,1-300单位:分钟 
        
/// DWORD   m_waittime;
        
/// </summary>
        public int m_waittime;
        
/// <summary>
        
/// 目前没有使用
        
/// DWORD   m_bufnum;
        
/// </summary>
        public ulong m_bufnum;
    }

    
//[StructLayout(LayoutKind.Sequential)]
    
//public struct PSERVER_VIDEOINFO
    
//{
    
//    public IntPtr m_datatype;  //序列号  
    
//    public byte m_channum;//系统的通道个数 
    
//    public int m_waittime;//超时等待时间,1-300单位:分钟 
    
//    public int m_bufnum;//目前没有使用 
    
//}

    
/// <summary>
    
/// 通道数据类型
    
/// </summary>
    public enum ChannelDataType
    {
        NORMAL 
= 50,
        DIALING,
        SMALLPIC
    }

    
/// <summary>
    
/// VC++Demo:委托内调用SetIBPMode(ChannelHandle[port],211,2,2,framerat);
    
/// </summary>
    
/// <param name="port"></param>
    
/// <param name="framerat"></param>
    public delegate void SetIBP(int port, int framerat);

    
/// <summary>
    
/// VC++Demo:委托内调用CaptureIFrame(ChannelHandle[port]);
    
/// </summary>
    
/// <param name="port"></param>
    public delegate void MakeIFrame(int port);

    
/// <summary>
    
/// VC++Demo:委托内调用StartVideoCapture(ChannelHandle[port]);    
    
/// </summary>
    
/// <param name="nChannel"></param>
    public delegate void StartCap(int nChannel);

    
/// <summary>
    
/// VC++Demo:委托内调用StopVideoCapture(ChannelHandle[port]);
    
/// </summary>
    
/// <param name="nChannel"></param>
    public delegate void StopCap(int nChannel);

    
/// <summary>
    
/// 验证用户名密码
    
/// </summary>
    
/// <param name="username"></param>
    
/// <param name="namelen"></param>
    
/// <param name="password"></param>
    
/// <param name="passlen"></param>
    
/// <returns></returns>
    [UnmanagedFunctionPointer(CallingConvention.StdCall)]
    
public delegate int CheckPassword(string username, ushort namelen, string password, ushort passlen);

    
/// <summary>
    
/// 验证IP
    
///     VC++Demo:return 0;
    
/// </summary>
    
/// <param name="nChannel"></param>
    
/// <param name="nIP"></param>
    
/// <returns></returns>
    [UnmanagedFunctionPointer(CallingConvention.StdCall)]
    
public delegate int CheckIP(int nChannel, string nIP);

    
public static class HikServer
    {
        
public static readonly uint WM_USER = 0x0400;

        
/// <summary>
        
/// 启动服务端
        
///     返回true表示成功,返回false表示失败
        
/// <code>
        
/// BOOL  __stdcall  MP4_ServerStart(PSERVER_VIDEOINFO videoinfo); 
        
/// </code>
        
/// </summary>
        
/// <param name="videoinfo"></param>
        
/// <returns></returns>
        [DllImport("HikServer.dll")]
        
public static extern int MP4_ServerStart(ref PSERVER_VIDEOINFO videoinfo);

        
/// <summary>
        
/// 停止服务端
        
///     返回true表示成功,返回false表示失败
        
/// <code>
        
/// BOOL  __stdcall  MP4_ServerStop(); 
        
/// </code>
        
/// </summary>
        
/// <returns></returns>
        [DllImport("HikServer.dll")]
        
public static extern bool MP4_ServerStop();

        
/// <summary>
        
/// 获取服务器状态
        
///     返回true表示服务器已经启动,返回false表示服务器没有启动
        
/// <code>
        
/// BOOL  __stdcall  MP4_ServerGetState(WORD * clientnum); 
        
/// typedef unsigned short      WORD;
        
/// </code>
        
/// </summary>
        
/// <param name="clientnum">表示当前与服务器相连的客户端数据</param>
        
/// <returns></returns>
        [DllImport("HikServer.dll")]
        
public static extern bool MP4_ServerGetState(out ushort clientnum);

        
/// <summary>
        
/// 给客户端发送命令码
        
///     和函数MP4_ServerStringToClient不同,它给正连接在该通道上的所有客户端发送命令码。 
        
///     返回true表示成功,返回false表示失败 
        
/// <code>
        
/// BOOL  __stdcall  MP4_ServerCommandToClient(char cCommand,char nChannel); 
        
/// </code>
        
/// </summary>
        
/// <param name="cCommand">命令码</param>
        
/// <param name="nChannel">通道号</param>
        [DllImport("HikServer.dll")]
        
public static extern void MP4_ServerCommandToClient(int cCommand, int nChannel);

        
/// <summary>
        
/// 设置接收命令码的相关参数
        
/// <code>
        
/// void  __stdcall  MP4_ServerSetMessage(UINT nMessage,HWND hWnd); 
        
/// </code>
        
/// </summary>
        
/// <param name="nMessage">对应接收程序的消息</param>
        
/// <param name="hWnd">应用程序窗口句柄</param>
        [DllImport("HikServer.dll")]
        
public static extern void MP4_ServerSetMessage(uint nMessage, IntPtr hWnd);

        
/// <summary>
        
/// 设置是否进行IP验证。 
        
///     如果进行IP验证,调用该函数,那么每次客户端连接的时候,会调用CheckIP。 
        
///     如果不进行IP验证,不需要调用该函数。 
        
///     如果调用了MP4_ServerCheckIP之后,又想取消IP验证,只需要调用MP4_ServerCheckIP(NULL)。 
        
/// <code>
        
/// void  __stdcall MP4_ServerCheckIP(int(CALLBACK *CheckIP)(DWORD nChannel,char* nIP)); 
        
/// CheckIP函数说明:nChannel表示通道号,nIP表示客户端的IP地址。返回0表示验证通过,返回-1 
        
/// 表示验证没有通过。 
        
/// </code>
        
/// </summary>
        [DllImport("HikServer.dll")]
        
public static extern void MP4_ServerCheckIP(CheckIP cip);

        
/// <summary>
        
/// 设置是否进行用户身份验证。 
        
///     使用同MP4_ServerCheckIP。 
        
///     目前namelen和password两个值无效,都是50,并不表示用户名和密码的实际长度。用户名和密码必须小于50个字节。 
        
/// 说明: 
        
///     1>因为开发包对用户名和密码不做任何处理,只是简单地分别发送50字节的数据到服务端,所以在验证
        
///       的实现过程中,用户可以通过设置标志位的方法来确定用户名和密码的实际长度。 
        
///     2>也可以同时进行IP验证和用户身份验证。在开发包中先进行用户身份验证,再进行IP验证。 
        
/// <code>
        
/// 7. void  __stdcall  MP4_ServerCheckPassword(int(CALLBACK *CheckPassword)(char *username,WORD namelen,char *password,WORD passlen)); 
        
/// CheckPassword函数说明:username表示用户名,namelen表示用户名字符串长度,password表示密码,passlen表示密码字符串长度。
        
/// </code>
        
/// </summary>
        
/// <param name="nMessage"></param>
        
/// <param name="hWnd"></param>
        [DllImport("HikServer.dll")]
        
public static extern void MP4_ServerCheckPassword(CheckPassword cp);

        
/// <summary>
        
/// 往发送缓存写数据。 
        
///     网络开发包通过这个接口获得板卡的数据。 
        
/// 说明: 
        
///     现在开发包内部不会直接调用StartVideoCapture和StopVideoCapture函数,而是通过StartCap和StopCap
        
///     来启动和停止捕获数据。如果用户调用StopVideoCapture或者停止调用MP4_ServerWriteData都会使客户
        
///     端无法收到数据。
        
/// <code>
        
/// 8. void  __stdcall  MP4_ServerWriteData(DWORD nChannel,UCHAR *pPacketBuffer, DWORD  nPacketSize, int frameType, int breakable); 
        
/// typedef unsigned long       DWORD;
        
/// typedef unsigned char UCHAR;
        
/// </code>
        
/// </summary>
        
/// <param name="nChannel">通道号。</param>
        
/// <param name="pPacketBuffer">缓冲区指针。</param>
        
/// <param name="nPacketSize">缓冲区长度。 </param>
        
/// <param name="frameType">帧类型。</param>
        
/// <param name="breakable">ReadStreamData的返回值</param>
        [DllImport("HikServer.dll")]
        
public static extern void MP4_ServerWriteData(ulong nChannel, string pPacketBuffer, ulong nPacketSize, int frameType, int breakable);

http://www.lbrq.cn/news/2663803.html

相关文章:

  • 寿光做网站中国企业500强排行榜
  • 贷款织梦网站模版线上线下一体化营销
  • 政府网站建设指标评价结果2022年适合小学生的新闻
  • 没有网站怎么做百度优化网络营销工具及其特点
  • 很久以前做相册mv的网站seo关键词排名优化软件怎么选
  • 网站名和域名的区别免费广告发布平台app
  • 网站制作怎么做让点击高中国足彩网竞彩推荐
  • 模板网站代码seo 论坛
  • 株洲做网站 省心磐石网络seo诊断分析工具
  • 青岛商业网站建设合肥网络关键词排名
  • c语言如何做网站成人短期技能培训学校
  • 网站平台怎么建设营销型网站一般有哪些内容
  • 电子商务网站开发与设计报告手机百度搜索
  • 无锡网站制作有哪些淘宝直通车
  • css做网站导航的页面免费友情链接平台
  • 网站信息化建设领导小组seo外链怎么做能看到效果
  • 山东网站建设公司电话百度推广图片尺寸要求
  • 深圳网站制作就找兴田德润网站优化排名方法
  • 浏览器网站it培训班真的有用吗
  • 手机网站开发模拟器大连seo建站
  • 水利建设公共服务平台网站曼联vs曼联直播
  • 仿站容易还是建站容易最新做做网站
  • 权威的网站建设公司建站教程
  • 用mvc做网站的框架广告软文怎么写
  • 莆田网站建设五维网络有限公司安卓系统优化软件
  • 网站建设的背景搜索引擎快速优化排名
  • wordpress 的模板seo教学视频教程
  • 做电路方案设计的网站百度网盘搜索神器
  • 什么网站可以做引文分析googleseo排名公司
  • 建网站建网站免费引流推广怎么做
  • vue3-基础语法
  • 学习分库分表的前置知识:高可用系统架构理论与实践
  • 【Docker实战】将Django应用容器化的完整指南
  • ​​​​​​​【Datawhale AI夏令营】多模态RAG财报问答挑战赛:学习笔记与上分思考
  • 202506 电子学会青少年等级考试机器人三级器人理论真题
  • 力扣热题100------70.爬楼梯