mirror of
https://github.com/kerberos-io/onvif.git
synced 2025-10-28 10:01:34 +08:00
Merge branch 'master' of https://github.com/yakovlevdmv/goonvif
This commit is contained in:
48
README.md
48
README.md
@@ -115,5 +115,53 @@ if err != nil {
|
||||

|
||||
|
||||
Так как данная команда определяется сервисом PTZ, необходимый тип находится в пакете [PTZ](PTZ/types.go).
|
||||
Из файла [PTZ](PTZ/types.go) можно заметить, что :
|
||||
> ProfileToken [ReferenceToken]
|
||||
> A reference to the **MediaProfile** that indicate what should be stopped.
|
||||
|
||||
Таким образом, для того, чтобы начать работать с PTZ сервисом для начала необходимо получить **ProfileToken** сервиса **Media**. Как это сделать смотрите в примере 4. Сейчас же предположим, что нам известен нужный токен. Пусть ProfileToken = "Profile_1".
|
||||
|
||||
Создадим объект `PTZ.ContinuousMove`:
|
||||
```
|
||||
move := PTZ.ContinuousMove{
|
||||
ProfileToken:"Profile_1",
|
||||
Velocity:onvif.PTZSpeed{
|
||||
PanTilt:onvif.Vector2D{
|
||||
X: 1,
|
||||
Y: 1,
|
||||
},
|
||||
Zoom:onvif.Vector1D{X:0.5},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
**Заметим**, что объекты Velocity, PanTilt и Zoom определены в пакете onvif. Такая ситуация соответствует всем встроенным типам.
|
||||
|
||||
Для вызова данной функции воспользуемся методом `func (dev device) CallMethod(method interface{}) (string, error)`:
|
||||
```
|
||||
resp, err := dev.CallMethod(capab)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
} else {
|
||||
fmt.Println(resp)
|
||||
}
|
||||
```
|
||||
|
||||
4. Получение списков Media профилей
|
||||
|
||||
Все необходимые типы данных определены в пакете [Media](Media/types.go).
|
||||
В файле (https://www.onvif.org/ver10/media/wsdl/media.wsdl) можно увидеть структуру запроса:
|
||||

|
||||
|
||||
Вот пример создания и вызова запроса GetProfiles
|
||||
```
|
||||
resp, err := dev.CallMethod(Media.GetProfiles{})
|
||||
if err != nil {
|
||||
panic (err)
|
||||
} else {
|
||||
fmt.Println(readResponse(resp))
|
||||
}
|
||||
```
|
||||
|
||||
**Важно** Обработка response'ов пока не реализована, поэтому данная задача ложится на Ваши плечи. Вы можете упростить обработку response при помощи библиотеки [etree](https://github.com/beevik/etree). Либо же воспользоваться сервисом (http://www.webtoolkitonline.com/xml-formatter.html)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user