Skip to content

yolejee/ONVIF_Device-discovery

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

相关配置

ONVIF官网:http://www.onvif.org/

gSOAP安装配置:gSOAP安装配置+使用案例参考+参考链接

操作系统:CentOS7

资料参考:

许振坪的ONVIF专栏:传送门

onvif开发之设备发现功能的实现

Linux下onvif服务端之发现设备

还有一个博文找不到网址了,如果网友发现可以私信补充。

代码实战

完整源码下载:GitHub , 码云

客户端

1、WS-Discovery的Ad hoc模式,使用多播(不使用gSOAP实现设备发现)

参考文章:ONVIF协议网络摄像机(IPC)客户端程序开发(7):设备搜索

源码如下 search_c.c:

Linux编译: gcc search_c.c , Windows下编译: gcc search_c.c -lws2_32

Windows下效果和Linux下效果一样。

在这里插入图片描述

我Linux是用的虚拟机,所以需要关闭防火墙,不然搜不到 systemctl stop iptables.serviceservice iptables stop

我们也使用 ONVIF Device Test Tool在这里插入图片描述,测一下

在这里插入图片描述

2、使用gSOAP生成ONVIF框架,编写客户端

如何生成ONVIF框架参考:ONVIF协议网络摄像机(IPC)客户端程序开发(6):使用gSOAP生成ONVIF框架代码,原文没有生成soapServer.c,我在评论里面写了如何修改,可以参考。

部分文件下载于:GitHub

参考文章:onvif开发之设备发现功能的实现

我做的相关改动都写在评论区了,server编译通不过,但client是可行的。

在这里插入图片描述

client.c源码如下:

Linux下编译: gcc -o client client.c stdsoap2.c soapC.c soapClient.c wsaapi.c duration.c -luuid

没有libuuid库,可自行安装,命令仅供参考 sudo apt-get install uuid-dev

效果如图:

在这里插入图片描述

服务端

1、不使用gSOAP,虚拟机伪装成ipc

文章参考:Linux下onvif服务端之发现设备

Linux下编译:gcc ipc_server_c.c -o ipc_server

在这里插入图片描述

直接运行

在这里插入图片描述

现在我们用 ONVIF Device Test Tool,测试一下

在这里插入图片描述

ONVIF Device Test Tool 搜索后,服务端就打印了这些信息

在这里插入图片描述

ifconfig查看下虚拟机ip地址

在这里插入图片描述

同样可以被我们之前写的 客户端 搜索到

在这里插入图片描述

2、使用gSOAP生成ONVIF框架,编写服务端

文件下载于:GitHub

参考文章:onvif服务器篇之onvif 服务器框架的搭建

碰到的问题同样写在评论区,可自行查看。

在这里插入图片描述

修改Makefile,GSOAP_ROOT改成自己的soap路径

在这里插入图片描述

终端 make 编译。生成 deviceserver

我们直接运行 ./deviceserver

在这里插入图片描述

我们同样用 ONVIF Device Test Tool,搜索一下

在这里插入图片描述

服务端也有所反应

在这里插入图片描述


那么本次的服务端和客户端都测试完毕了。网上资料不多,真的进行的十分困难。

相关链接

ONVIF官网:http://www.onvif.org/

gSOAP安装配置:gSOAP安装配置+使用案例参考+参考链接

许振坪的ONVIF专栏

onvif开发之设备发现功能的实现

Linux下onvif服务端之发现设备

ONVIF协议网络摄像机(IPC)客户端程序开发(7):设备搜索

ONVIF协议网络摄像机(IPC)客户端程序开发(6):使用gSOAP生成ONVIF框架代码

onvif开发之设备发现功能的实现

Linux下onvif服务端之发现设备

GitHub服务端下载

onvif服务器篇之onvif 服务器框架的搭建

ONVIF Device Test Tool

About

基于ONVIF协议,实现 网络摄像机 设备发现 功能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 97.0%
  • C++ 2.9%
  • Other 0.1%