mirror of
https://github.com/kerberos-io/onvif.git
synced 2026-08-23 15:08:33 +00:00
Some improvements added. README edited
This commit is contained in:
36
README.md
36
README.md
@@ -6,21 +6,41 @@
|
||||
- PTZ
|
||||
- Video Analytics
|
||||
# Dependencies
|
||||
|
||||
[etree](https://github.com/beevik/etree)
|
||||
# Установка
|
||||
Для установки библиотеки необходимо воспользоваться утилитой go get:
|
||||
`go get github.com/yakovlevdmv/goonvif`
|
||||
```
|
||||
go get github.com/yakovlevdmv/goonvif
|
||||
```
|
||||
|
||||
# Начало работы
|
||||
Чтобы начать работать с камерой, необходимо создать объект `device`.
|
||||
Для этого необходимо воспользоваться функцией `func NewDevice(xaddr string) (*device, error)`,
|
||||
которая принимает адрес ONVIF устройства и возвращает указатель на созданный объект.
|
||||
которая принимает адрес ONVIF устройства и возвращает указатель на созданный объект либо ошибку.
|
||||
Если камера не доступна, указан неверный адрес для ONVIF сервиса камеры (возможно находся по другому порту) или же камера вообще не поддерживает ONVIF
|
||||
функция вызовет ошибку.
|
||||
функция вернет не `nil` error, а в качестве указателя на объект вернет `nil`.
|
||||
### Пример подключения к камере
|
||||
Пусть камера в сети находится по адресу 192.168.13.42, а ее ONVIF сервисы расположены на 1234 порту. Тогда,
|
||||
`dev := goonvif.NewDevice("192.168.13.42:1234")`
|
||||
```dev, err := goonvif.NewDevice("192.168.13.42:1234")```
|
||||
сработает успешно, а
|
||||
`dev := goonvif.NewDevice("192.168.13.42:80")`
|
||||
вызовет ошибку:
|
||||
> camera is not available or it does not support ONVIF services
|
||||
```dev, err := goonvif.NewDevice("192.168.13.42:80")```
|
||||
вернет нулевой объект камеры и ошибку:
|
||||
> camera is not available at 192.168.13.42:80 or it does not support ONVIF services
|
||||
Модернизируем код, чтобы обрабатывать ошибку и получим:
|
||||
```
|
||||
dev, err := goonvif.NewDevice("192.168.13.42:80")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
///Работа с камерой
|
||||
|
||||
```
|
||||
### Поддерживаемые ONVIF сервисы
|
||||
Теперь, когда камера доступна, можно приступать к работе с ней. Однако стандарт ONVIF имеет множество сервисов, точка доступа (endpoint) к которым не закреплена стандартом (кроме DeviceManagment: http://onvif_host/onvif/device_service).
|
||||
Поэтому дальше встает вопрос о поддерживаемых камерой сервисах и определении их endpoint'ов.
|
||||
Для получения поддерживаемых камерой сервисов необходимо вызвать метод GetCapabilities сервиса DeviceManagement.
|
||||
Однако данная библиотека автоматизирует данный процесс, поэтому при создании объекта device при помощи `func NewDevice(xaddr string) (*device, error)`
|
||||
библиотека одновременно обрабатывает поддерживаемые камерой сервисы. Таким образом чтобы получить поддерживаемые устройством сервисы, можно воспользоваться двумя путями:
|
||||
1. Вызвать метод GetCapabilities сервиса DeviceManagement(как это сделать будет рассмотрено дальше) и обработать ответ.
|
||||
2. Довериться библиотеке и вызвать функцию `func (dev *device)GetServices() map[string]string`, которая вернет map[string]string, ключом которой является название сервиса, а значением - endpoint данного сервиса
|
||||
Reference in New Issue
Block a user