返回顶部
首页 > 资讯 > 精选 >Go语言开源库怎么实现Onvif协议客户端设备搜索
  • 342
分享到

Go语言开源库怎么实现Onvif协议客户端设备搜索

2023-06-30 11:06:44 342人浏览 薄情痞子
摘要

这篇文章主要讲解了“Go语言开源库怎么实现Onvif协议客户端设备搜索”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言开源库怎么实现Onvif协议客户端设备搜索”吧!1、前言之前我们已

这篇文章主要讲解了“Go语言开源库怎么实现Onvif协议客户端设备搜索”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言开源库怎么实现Onvif协议客户端设备搜索”吧!

1、前言

之前我们已经简单介绍过use-go的开源方案,其也是通过其它的开源方案进行的封装,提供了初步的接口,我们这里利用对onvif协议的学习,然后结合该开源库进行设备发现、设备IP设置、Profiles token获取、流媒体Uri地址获取、PTZ云台控制、预置点设置等功能进行进一步的实现和封装,以此加深对Onvif协议的了解和加深Go语言的使用。

2、设备搜索思路

这个不清楚原理的再去看一下我们Onvif学习时的设备搜索那里的内容,主要是通过WS-Discovery实现设备的搜索,你可以简单理解为局域网广播和组播说:我在找符合Onvif协议的设置,然后设备回复说:我是,并且会发送相关的设备ip等信息给到客户端。

这里我们使用的Go开源方案提供了对应接口用于搜索设备,我们直接使用就好了。

3、搜索设备Go源码

package clientimport ("fmt""GitHub.com/beevik/etree"goonvif "github.com/use-go/onvif""github.com/use-go/onvif/device""github.com/use-go/onvif/gosoap""github.com/use-go/onvif/media""github.com/use-go/onvif/ptz""github.com/use-go/onvif/xsd""github.com/use-go/onvif/xsd/onvif""io/ioutil""log""net/Http""strings")type Code int32const (OKCode = 0SearchErrCode = -1ConnectErr Code = -2CreateUserErrCode = -20GetProfilesErrCode = -30GetStreamUriErr Code = -40PTZErrCode = -50SetPresetErrCode = -70GotoPresetErrCode = -71RemovePresetErrCode = -72GetSnapShotUriErrCode = -100)type returnInfo struct {//状态码Code Code//错误或者返回信息ErrInfo string}func (client *GoOnvifClient) SearchDevice() returnInfo {devices := goonvif.GetAvailableDevicesAtSpecificEthernetInterface("eth0")if devices == nil {return returnInfo{SearchErr, "search devices failed."}}client.Devices = devicesreturn returnInfo{OK, "search device success"}}

client是我们定义的调用者,是一个包含我们需要传递的各类信息的结构体,模拟面向对象思想创建的Onvif客户端,即创建一个Onvif客户端,客户端来处理外部调用参数和内部处理库的数据交互,简化对外展现的接口参数。

4、问题

一个主要问题就是当我们搜索到多个符合Onvif协议的设备后如何进行区分,目前我们先采用暴力轮询的方式对每个设备进行设备信息获取,然后解析返回的XML信息结合我们传递的搜索条件(比如设备类型、设备Mac地址等)进行进一步的区分。

感谢各位的阅读,以上就是“Go语言开源库怎么实现Onvif协议客户端设备搜索”的内容了,经过本文的学习后,相信大家对Go语言开源库怎么实现Onvif协议客户端设备搜索这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Go语言开源库怎么实现Onvif协议客户端设备搜索

本文链接: https://lsjlt.com/news/328391.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Go语言开源库实现Onvif协议客户端设备搜索
    目录1、前言2、设备搜索思路3、搜索设备Go源码4、问题1、前言 之前我们已经简单介绍过use-go的开源方案,其也是通过其它的开源方案进行的封装,提供了初步的接口,我们这里利用对o...
    99+
    2024-04-02
  • Go语言开源库怎么实现Onvif协议客户端设备搜索
    这篇文章主要讲解了“Go语言开源库怎么实现Onvif协议客户端设备搜索”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言开源库怎么实现Onvif协议客户端设备搜索”吧!1、前言之前我们已...
    99+
    2023-06-30
  • Go语言怎么实现HTTP服务器和客户端
    在Go语言中,可以通过使用标准库中的"net/http"包来实现HTTP服务器和客户端。 下面是一个简单的HTT...
    99+
    2024-04-12
    Go语言 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作