.NET Core Onvif协议C#教程系列之XiaoFeng.Onvif组件库

        物联网IOT大背景下音视频领域的Onvif 协议在2008年成为全球性的开放接口标准。于是一批开发者涌入该技术领域使用各种编程语言对其改造升级封装。

       因为是国际标准,所以规范内容比较多,物联网领域涉及又广,所以研究协议是一个很耗时间的一项工作,读懂协议,代码操作就变得相对简单。

        本人有幸涉及物联网领域,刚好是研究Onvif协议,又刚好本人是擅长c#编程的,于是就搜集了一些c#对Onvif封装的区域性调查,发现几乎都是使用微软的wcf调用服务引用,动态生成的Onvif类库,虽然可用,但是在数据流转上,就变得相对笨拙,接口超时,数据出错就很难处理。就是鉴于以上情况,本人决定使用原生的XML语言,对Onvif进行精简封装。相关代码也都进行了开源。

地址:https://github.com/zhuovi/XiaoFeng.Onvif

下面我就简单介绍一下我做的Onvif 开源项目吧

       XiaoFeng.Onvif 基于.NET平台使用C#封装Onvif常用接口、设备、媒体、云台等功能, 拒绝WCF服务引用动态代理生成wsdl类文件 , 使用原生XML扩展标记语言封装参数,所有的数据流向都可控。

       刚开源几天,该有的功能都有了,可能不够完善,不够好,希望同道朋友一起来完善.NET社区的音视频领域的技术。

具体使用方法很简单。

安装nuget包:XiaoFeng.Onvif

using XiaoFeng.Onvif;

var ip = "192.168.12.2";
var user = "onvif";
var pass = "123456";

//设备扫描
var resu = await DeviceService.DiscoveryOnvif(3);
//设备时间
var onvifUTCDateTime = await DeviceService.GetSystemDateAndTime(ip);
//设备信息
var info = await DeviceService.GetDeviceInformation(ip, user, pass, onvifUTCDateTime);
//设备能力
var abilities= await DeviceService.GetCapabilities(ip);
//token信息
var tokens = await MediaService.GetProfiles(ip, user, pass, onvifUTCDateTime);
//流地址
var streamUri = await MediaService.GetStreamUri(ip, user, pass, onvifUTCDateTime, tokens[0]);
//快照地址
var img = await MediaService.GetSnapshotUri(ip, user, pass, onvifUTCDateTime, tokens[0]);
//云台状态
await PTZService.GetStatus(ip, user, pass, onvifUTCDateTime, tokens[0]);
//设置home
await PTZService.SetHomePosition(ip, user, pass, onvifUTCDateTime, tokens[0]);
//绝对移动
await PTZService.AbsoluteMove(ip, user, pass, onvifUTCDateTime, tokens[0], 0, 0);
//继续移动
await PTZService.ContinuousMove(ip, user, pass, onvifUTCDateTime, tokens[0], 0.6, 0.2, 1);
//相对移动
await PTZService.RelativeMove(ip, user, pass, onvifUTCDateTime, tokens[0], 0.8, 0.5, 0.5);
//回归home
await PTZService.GotoHomePosition(ip, user, pass, onvifUTCDateTime, tokens[0], 0.3, 1, 1);

以上基本功能列表,需要数据组装,取到各个接口数据,进行组装拼接就可以了。写代码很简单,主要是要读懂协议,理解协议,玩转协议,这是研究物联网的最困难的地方。开源不易,路过的小伙伴可以给小编在github点个个小星星,以此激励一下小编!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值