# onvif-server **Repository Path**: monkcag3/onvif-server ## Basic Information - **Project Name**: onvif-server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-06-03 - **Last Updated**: 2022-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # onvif # 代码生成 ## 生成方式 - 离线 不推荐,因为要一个一个在官网下载wsdl文件和xsd文件,并且文件还会有依赖,如果下载不完全,在生成代码是会有错误 - 在线 ## 安装gsoap - 下载gsoap    [https://sourceforge.net/projects/gsoap2/files/](https://sourceforge.net/projects/gsoap2/files/) - 安装依赖 ```bash $ sudo apt install bison $ sudo apt install byacc $ sudo apt install flex $ sudo apt install autoconf ``` - 以gsoap2.8.103为例 ```bash $ cd /path/to/gsoap_2.8.103 $ ./configre $ make $ sudo make install ``` ## 生成代码 ```bash $ wsdl2h -o onvif.h -c -s -P \ http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl \ http://www.onvif.org/onvif/ver10/events/wsdl/event.wsdl \ http://www.onvif.org/onvif/ver10/display.wsdl \ http://www.onvif.org/onvif/ver10/deviceio.wsdl \ http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl \ http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl \ http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl \ http://www.onvif.org/onvif/ver10/receiver.wsdl \ http://www.onvif.org/onvif/ver10/recording.wsdl \ http://www.onvif.org/onvif/ver10/search.wsdl \ http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl \ http://www.onvif.org/onvif/ver10/replay.wsdl \ http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl \ http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl \ http://www.onvif.org/onvif/ver10/schema/onvif.xsd \ http://www.onvif.org/ver10/actionengine.wsdl \ http://www.onvif.org/ver10/pacs/accesscontrol.wsdl \ http://www.onvif.org/ver10/pacs/doorcontrol.wsdl \ http://www.onvif.org/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl \ http://www.onvif.org/ver10/accessrules/wsdl/accessrules.wsdl \ http://www.onvif.org/ver10/credential/wsdl/credential.wsdl \ http://www.onvif.org/ver10/schedule/wsdl/schedule.wsdl ``` ### 生成客户端代码 ```bash $ soapcpp2 -2 -C -L -c -x -I/usr/local/share/gsoap:/usr/local/share/gsoap/import onvif.h ``` ### 生成服务端代码 ```bash $ soapcpp2 -2 -S -L -c -x -I/usr/local/share/gsoap:/usr/local/share/gsoap/import onvif.h ``` ### 目录树 ![image.png](https://cdn.nlark.com/yuque/0/2020/png/379139/1591007225344-1a911ee3-99c2-4851-8615-a1a0815c8b44.png#align=left&display=inline&height=281&margin=%5Bobject%20Object%5D&name=image.png&originHeight=561&originWidth=777&size=37135&status=done&style=none&width=388.5) > 客户端和服务端都生成了很多一样.nsmap的文件,up主只保留了wsdd.nsmap这一个文件 [onvif.2.8.103.zip](https://www.yuque.com/attachments/yuque/0/2020/zip/379139/1591233578088-a7f96f19-521a-428b-beff-a227e4bb4dde.zip?_lake_card=%7B%22uid%22%3A%221591233574049-0%22%2C%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2020%2Fzip%2F379139%2F1591233578088-a7f96f19-521a-428b-beff-a227e4bb4dde.zip%22%2C%22name%22%3A%22onvif.2.8.103.zip%22%2C%22size%22%3A4534669%2C%22type%22%3A%22application%2Fx-zip-compressed%22%2C%22ext%22%3A%22zip%22%2C%22progress%22%3A%7B%22percent%22%3A99%7D%2C%22status%22%3A%22done%22%2C%22percent%22%3A0%2C%22id%22%3A%22MBsaF%22%2C%22card%22%3A%22file%22%7D) [ONVIFDeviceTestTool.rar](https://www.yuque.com/attachments/yuque/0/2020/rar/379139/1591510815813-0f7834d9-fa04-40c2-8791-8a83dd4fbdfe.rar?_lake_card=%7B%22uid%22%3A%221591510787778-0%22%2C%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2020%2Frar%2F379139%2F1591510815813-0f7834d9-fa04-40c2-8791-8a83dd4fbdfe.rar%22%2C%22name%22%3A%22ONVIFDeviceTestTool.rar%22%2C%22size%22%3A52945543%2C%22type%22%3A%22%22%2C%22ext%22%3A%22rar%22%2C%22progress%22%3A%7B%22percent%22%3A99%7D%2C%22status%22%3A%22done%22%2C%22percent%22%3A0%2C%22id%22%3A%22WLhQ8%22%2C%22card%22%3A%22file%22%7D) [gsoap.zip](https://www.yuque.com/attachments/yuque/0/2020/zip/379139/1591531797677-e3fe52a6-0915-413d-8e1c-1ec898f4b27e.zip?_lake_card=%7B%22uid%22%3A%221591531795289-0%22%2C%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2020%2Fzip%2F379139%2F1591531797677-e3fe52a6-0915-413d-8e1c-1ec898f4b27e.zip%22%2C%22name%22%3A%22gsoap.zip%22%2C%22size%22%3A841216%2C%22type%22%3A%22application%2Fx-zip-compressed%22%2C%22ext%22%3A%22zip%22%2C%22progress%22%3A%7B%22percent%22%3A99%7D%2C%22status%22%3A%22done%22%2C%22percent%22%3A0%2C%22id%22%3A%224fRSg%22%2C%22card%22%3A%22file%22%7D) # Device开发说明 ## 接口说明 > soapStub.h 为接口文件 > 以'__'双下划线开头的为接口函数,其中wsdd域下的已经实现,但是实现wsdd_event_Hello,wsdd_event_Bye等事件函数 ## 主函数流程