1package ONVIF::PTZ::Interfaces::PTZ::PTZPort;
2use strict;
3use warnings;
4use Class::Std::Fast::Storable;
5use Scalar::Util qw(blessed);
6use base qw(SOAP::WSDL::Client::Base);
7
8# only load if it hasn't been loaded before
9require ONVIF::PTZ::Typemaps::PTZ
10    if not ONVIF::PTZ::Typemaps::PTZ->can('get_class');
11
12sub START {
13    $_[0]->set_proxy('http://www.examples.com/PTZ/') if not $_[2]->{proxy};
14    $_[0]->set_class_resolver('ONVIF::PTZ::Typemaps::PTZ')
15        if not $_[2]->{class_resolver};
16
17    $_[0]->set_prefix($_[2]->{use_prefix}) if exists $_[2]->{use_prefix};
18}
19
20sub GetServiceCapabilities {
21    my ($self, $body, $header) = @_;
22    die "GetServiceCapabilities must be called as object method (\$self is <$self>)" if not blessed($self);
23    return $self->SUPER::call({
24        operation => 'GetServiceCapabilities',
25        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetServiceCapabilities',
26        style => 'document',
27        body => {
28
29
30           'use'            => 'literal',
31            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
32            encodingStyle   => '',
33            parts           =>  [qw( ONVIF::PTZ::Elements::GetServiceCapabilities )],
34        },
35        header => {
36
37        },
38        headerfault => {
39
40        }
41    }, $body, $header);
42}
43
44
45sub GetConfigurations {
46    my ($self, $body, $header) = @_;
47    die "GetConfigurations must be called as object method (\$self is <$self>)" if not blessed($self);
48    return $self->SUPER::call({
49        operation => 'GetConfigurations',
50        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetConfigurations',
51        style => 'document',
52        body => {
53
54
55           'use'            => 'literal',
56            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
57            encodingStyle   => '',
58            parts           =>  [qw( ONVIF::PTZ::Elements::GetConfigurations )],
59        },
60        header => {
61
62        },
63        headerfault => {
64
65        }
66    }, $body, $header);
67}
68
69
70sub GetPresets {
71    my ($self, $body, $header) = @_;
72    die "GetPresets must be called as object method (\$self is <$self>)" if not blessed($self);
73    return $self->SUPER::call({
74        operation => 'GetPresets',
75        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetPresets',
76        style => 'document',
77        body => {
78
79
80           'use'            => 'literal',
81            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
82            encodingStyle   => '',
83            parts           =>  [qw( ONVIF::PTZ::Elements::GetPresets )],
84        },
85        header => {
86
87        },
88        headerfault => {
89
90        }
91    }, $body, $header);
92}
93
94
95sub SetPreset {
96    my ($self, $body, $header) = @_;
97    die "SetPreset must be called as object method (\$self is <$self>)" if not blessed($self);
98    return $self->SUPER::call({
99        operation => 'SetPreset',
100        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/SetPreset',
101        style => 'document',
102        body => {
103
104
105           'use'            => 'literal',
106            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
107            encodingStyle   => '',
108            parts           =>  [qw( ONVIF::PTZ::Elements::SetPreset )],
109        },
110        header => {
111
112        },
113        headerfault => {
114
115        }
116    }, $body, $header);
117}
118
119
120sub RemovePreset {
121    my ($self, $body, $header) = @_;
122    die "RemovePreset must be called as object method (\$self is <$self>)" if not blessed($self);
123    return $self->SUPER::call({
124        operation => 'RemovePreset',
125        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/RemovePreset',
126        style => 'document',
127        body => {
128
129
130           'use'            => 'literal',
131            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
132            encodingStyle   => '',
133            parts           =>  [qw( ONVIF::PTZ::Elements::RemovePreset )],
134        },
135        header => {
136
137        },
138        headerfault => {
139
140        }
141    }, $body, $header);
142}
143
144
145sub GotoPreset {
146    my ($self, $body, $header) = @_;
147    die "GotoPreset must be called as object method (\$self is <$self>)" if not blessed($self);
148    return $self->SUPER::call({
149        operation => 'GotoPreset',
150        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GotoPreset',
151        style => 'document',
152        body => {
153
154
155           'use'            => 'literal',
156            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
157            encodingStyle   => '',
158            parts           =>  [qw( ONVIF::PTZ::Elements::GotoPreset )],
159        },
160        header => {
161
162        },
163        headerfault => {
164
165        }
166    }, $body, $header);
167}
168
169
170sub GetStatus {
171    my ($self, $body, $header) = @_;
172    die "GetStatus must be called as object method (\$self is <$self>)" if not blessed($self);
173    return $self->SUPER::call({
174        operation => 'GetStatus',
175        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetStatus',
176        style => 'document',
177        body => {
178
179
180           'use'            => 'literal',
181            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
182            encodingStyle   => '',
183            parts           =>  [qw( ONVIF::PTZ::Elements::GetStatus )],
184        },
185        header => {
186
187        },
188        headerfault => {
189
190        }
191    }, $body, $header);
192}
193
194
195sub GetConfiguration {
196    my ($self, $body, $header) = @_;
197    die "GetConfiguration must be called as object method (\$self is <$self>)" if not blessed($self);
198    return $self->SUPER::call({
199        operation => 'GetConfiguration',
200        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetConfiguration',
201        style => 'document',
202        body => {
203
204
205           'use'            => 'literal',
206            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
207            encodingStyle   => '',
208            parts           =>  [qw( ONVIF::PTZ::Elements::GetConfiguration )],
209        },
210        header => {
211
212        },
213        headerfault => {
214
215        }
216    }, $body, $header);
217}
218
219
220sub GetNodes {
221    my ($self, $body, $header) = @_;
222    die "GetNodes must be called as object method (\$self is <$self>)" if not blessed($self);
223    return $self->SUPER::call({
224        operation => 'GetNodes',
225        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetNodes',
226        style => 'document',
227        body => {
228
229
230           'use'            => 'literal',
231            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
232            encodingStyle   => '',
233            parts           =>  [qw( ONVIF::PTZ::Elements::GetNodes )],
234        },
235        header => {
236
237        },
238        headerfault => {
239
240        }
241    }, $body, $header);
242}
243
244
245sub GetNode {
246    my ($self, $body, $header) = @_;
247    die "GetNode must be called as object method (\$self is <$self>)" if not blessed($self);
248    return $self->SUPER::call({
249        operation => 'GetNode',
250        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetNode',
251        style => 'document',
252        body => {
253
254
255           'use'            => 'literal',
256            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
257            encodingStyle   => '',
258            parts           =>  [qw( ONVIF::PTZ::Elements::GetNode )],
259        },
260        header => {
261
262        },
263        headerfault => {
264
265        }
266    }, $body, $header);
267}
268
269
270sub SetConfiguration {
271    my ($self, $body, $header) = @_;
272    die "SetConfiguration must be called as object method (\$self is <$self>)" if not blessed($self);
273    return $self->SUPER::call({
274        operation => 'SetConfiguration',
275        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/SetConfiguration',
276        style => 'document',
277        body => {
278
279
280           'use'            => 'literal',
281            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
282            encodingStyle   => '',
283            parts           =>  [qw( ONVIF::PTZ::Elements::SetConfiguration )],
284        },
285        header => {
286
287        },
288        headerfault => {
289
290        }
291    }, $body, $header);
292}
293
294
295sub GetConfigurationOptions {
296    my ($self, $body, $header) = @_;
297    die "GetConfigurationOptions must be called as object method (\$self is <$self>)" if not blessed($self);
298    return $self->SUPER::call({
299        operation => 'GetConfigurationOptions',
300        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetConfigurationOptions',
301        style => 'document',
302        body => {
303
304
305           'use'            => 'literal',
306            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
307            encodingStyle   => '',
308            parts           =>  [qw( ONVIF::PTZ::Elements::GetConfigurationOptions )],
309        },
310        header => {
311
312        },
313        headerfault => {
314
315        }
316    }, $body, $header);
317}
318
319
320sub GotoHomePosition {
321    my ($self, $body, $header) = @_;
322    die "GotoHomePosition must be called as object method (\$self is <$self>)" if not blessed($self);
323    return $self->SUPER::call({
324        operation => 'GotoHomePosition',
325        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GotoHomePosition',
326        style => 'document',
327        body => {
328
329
330           'use'            => 'literal',
331            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
332            encodingStyle   => '',
333            parts           =>  [qw( ONVIF::PTZ::Elements::GotoHomePosition )],
334        },
335        header => {
336
337        },
338        headerfault => {
339
340        }
341    }, $body, $header);
342}
343
344
345sub SetHomePosition {
346    my ($self, $body, $header) = @_;
347    die "SetHomePosition must be called as object method (\$self is <$self>)" if not blessed($self);
348    return $self->SUPER::call({
349        operation => 'SetHomePosition',
350        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/SetHomePosition',
351        style => 'document',
352        body => {
353
354
355           'use'            => 'literal',
356            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
357            encodingStyle   => '',
358            parts           =>  [qw( ONVIF::PTZ::Elements::SetHomePosition )],
359        },
360        header => {
361
362        },
363        headerfault => {
364
365        }
366    }, $body, $header);
367}
368
369
370sub ContinuousMove {
371    my ($self, $body, $header) = @_;
372    die "ContinuousMove must be called as object method (\$self is <$self>)" if not blessed($self);
373    return $self->SUPER::call({
374        operation => 'ContinuousMove',
375        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/ContinuousMove',
376        style => 'document',
377        body => {
378
379
380           'use'            => 'literal',
381            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
382            encodingStyle   => '',
383            parts           =>  [qw( ONVIF::PTZ::Elements::ContinuousMove )],
384        },
385        header => {
386
387        },
388        headerfault => {
389
390        }
391    }, $body, $header);
392}
393
394
395sub RelativeMove {
396    my ($self, $body, $header) = @_;
397    die "RelativeMove must be called as object method (\$self is <$self>)" if not blessed($self);
398    return $self->SUPER::call({
399        operation => 'RelativeMove',
400        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/RelativeMove',
401        style => 'document',
402        body => {
403
404
405           'use'            => 'literal',
406            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
407            encodingStyle   => '',
408            parts           =>  [qw( ONVIF::PTZ::Elements::RelativeMove )],
409        },
410        header => {
411
412        },
413        headerfault => {
414
415        }
416    }, $body, $header);
417}
418
419
420sub SendAuxiliaryCommand {
421    my ($self, $body, $header) = @_;
422    die "SendAuxiliaryCommand must be called as object method (\$self is <$self>)" if not blessed($self);
423    return $self->SUPER::call({
424        operation => 'SendAuxiliaryCommand',
425        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/SendAuxiliaryCommand',
426        style => 'document',
427        body => {
428
429
430           'use'            => 'literal',
431            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
432            encodingStyle   => '',
433            parts           =>  [qw( ONVIF::PTZ::Elements::SendAuxiliaryCommand )],
434        },
435        header => {
436
437        },
438        headerfault => {
439
440        }
441    }, $body, $header);
442}
443
444
445sub AbsoluteMove {
446    my ($self, $body, $header) = @_;
447    die "AbsoluteMove must be called as object method (\$self is <$self>)" if not blessed($self);
448    return $self->SUPER::call({
449        operation => 'AbsoluteMove',
450        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/AbsoluteMove',
451        style => 'document',
452        body => {
453
454
455           'use'            => 'literal',
456            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
457            encodingStyle   => '',
458            parts           =>  [qw( ONVIF::PTZ::Elements::AbsoluteMove )],
459        },
460        header => {
461
462        },
463        headerfault => {
464
465        }
466    }, $body, $header);
467}
468
469
470sub Stop {
471    my ($self, $body, $header) = @_;
472    die "Stop must be called as object method (\$self is <$self>)" if not blessed($self);
473    return $self->SUPER::call({
474        operation => 'Stop',
475        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/Stop',
476        style => 'document',
477        body => {
478
479
480           'use'            => 'literal',
481            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
482            encodingStyle   => '',
483            parts           =>  [qw( ONVIF::PTZ::Elements::Stop )],
484        },
485        header => {
486
487        },
488        headerfault => {
489
490        }
491    }, $body, $header);
492}
493
494
495sub GetPresetTours {
496    my ($self, $body, $header) = @_;
497    die "GetPresetTours must be called as object method (\$self is <$self>)" if not blessed($self);
498    return $self->SUPER::call({
499        operation => 'GetPresetTours',
500        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetPresetTours',
501        style => 'document',
502        body => {
503
504
505           'use'            => 'literal',
506            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
507            encodingStyle   => '',
508            parts           =>  [qw( ONVIF::PTZ::Elements::GetPresetTours )],
509        },
510        header => {
511
512        },
513        headerfault => {
514
515        }
516    }, $body, $header);
517}
518
519
520sub GetPresetTour {
521    my ($self, $body, $header) = @_;
522    die "GetPresetTour must be called as object method (\$self is <$self>)" if not blessed($self);
523    return $self->SUPER::call({
524        operation => 'GetPresetTour',
525        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetPresetTour',
526        style => 'document',
527        body => {
528
529
530           'use'            => 'literal',
531            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
532            encodingStyle   => '',
533            parts           =>  [qw( ONVIF::PTZ::Elements::GetPresetTour )],
534        },
535        header => {
536
537        },
538        headerfault => {
539
540        }
541    }, $body, $header);
542}
543
544
545sub GetPresetTourOptions {
546    my ($self, $body, $header) = @_;
547    die "GetPresetTourOptions must be called as object method (\$self is <$self>)" if not blessed($self);
548    return $self->SUPER::call({
549        operation => 'GetPresetTourOptions',
550        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetPresetTourOptions',
551        style => 'document',
552        body => {
553
554
555           'use'            => 'literal',
556            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
557            encodingStyle   => '',
558            parts           =>  [qw( ONVIF::PTZ::Elements::GetPresetTourOptions )],
559        },
560        header => {
561
562        },
563        headerfault => {
564
565        }
566    }, $body, $header);
567}
568
569
570sub CreatePresetTour {
571    my ($self, $body, $header) = @_;
572    die "CreatePresetTour must be called as object method (\$self is <$self>)" if not blessed($self);
573    return $self->SUPER::call({
574        operation => 'CreatePresetTour',
575        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/CreatePresetTour',
576        style => 'document',
577        body => {
578
579
580           'use'            => 'literal',
581            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
582            encodingStyle   => '',
583            parts           =>  [qw( ONVIF::PTZ::Elements::CreatePresetTour )],
584        },
585        header => {
586
587        },
588        headerfault => {
589
590        }
591    }, $body, $header);
592}
593
594
595sub ModifyPresetTour {
596    my ($self, $body, $header) = @_;
597    die "ModifyPresetTour must be called as object method (\$self is <$self>)" if not blessed($self);
598    return $self->SUPER::call({
599        operation => 'ModifyPresetTour',
600        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/ModifyPresetTour',
601        style => 'document',
602        body => {
603
604
605           'use'            => 'literal',
606            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
607            encodingStyle   => '',
608            parts           =>  [qw( ONVIF::PTZ::Elements::ModifyPresetTour )],
609        },
610        header => {
611
612        },
613        headerfault => {
614
615        }
616    }, $body, $header);
617}
618
619
620sub OperatePresetTour {
621    my ($self, $body, $header) = @_;
622    die "OperatePresetTour must be called as object method (\$self is <$self>)" if not blessed($self);
623    return $self->SUPER::call({
624        operation => 'OperatePresetTour',
625        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/OperatePresetTour',
626        style => 'document',
627        body => {
628
629
630           'use'            => 'literal',
631            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
632            encodingStyle   => '',
633            parts           =>  [qw( ONVIF::PTZ::Elements::OperatePresetTour )],
634        },
635        header => {
636
637        },
638        headerfault => {
639
640        }
641    }, $body, $header);
642}
643
644
645sub RemovePresetTour {
646    my ($self, $body, $header) = @_;
647    die "RemovePresetTour must be called as object method (\$self is <$self>)" if not blessed($self);
648    return $self->SUPER::call({
649        operation => 'RemovePresetTour',
650        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/RemovePresetTour',
651        style => 'document',
652        body => {
653
654
655           'use'            => 'literal',
656            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
657            encodingStyle   => '',
658            parts           =>  [qw( ONVIF::PTZ::Elements::RemovePresetTour )],
659        },
660        header => {
661
662        },
663        headerfault => {
664
665        }
666    }, $body, $header);
667}
668
669
670sub GetCompatibleConfigurations {
671    my ($self, $body, $header) = @_;
672    die "GetCompatibleConfigurations must be called as object method (\$self is <$self>)" if not blessed($self);
673    return $self->SUPER::call({
674        operation => 'GetCompatibleConfigurations',
675        soap_action => 'http://www.onvif.org/ver20/ptz/wsdl/GetCompatibleConfigurations',
676        style => 'document',
677        body => {
678
679
680           'use'            => 'literal',
681            namespace       => 'http://schemas.xmlsoap.org/wsdl/soap/',
682            encodingStyle   => '',
683            parts           =>  [qw( ONVIF::PTZ::Elements::GetCompatibleConfigurations )],
684        },
685        header => {
686
687        },
688        headerfault => {
689
690        }
691    }, $body, $header);
692}
693
694
695
696
6971;
698
699
700
701__END__
702
703=pod
704
705=head1 NAME
706
707ONVIF::PTZ::Interfaces::PTZ::PTZPort - SOAP Interface for the PTZ Web Service
708
709=head1 SYNOPSIS
710
711 use ONVIF::PTZ::Interfaces::PTZ::PTZPort;
712 my $interface = ONVIF::PTZ::Interfaces::PTZ::PTZPort->new();
713
714 my $response;
715 $response = $interface->GetServiceCapabilities();
716 $response = $interface->GetConfigurations();
717 $response = $interface->GetPresets();
718 $response = $interface->SetPreset();
719 $response = $interface->RemovePreset();
720 $response = $interface->GotoPreset();
721 $response = $interface->GetStatus();
722 $response = $interface->GetConfiguration();
723 $response = $interface->GetNodes();
724 $response = $interface->GetNode();
725 $response = $interface->SetConfiguration();
726 $response = $interface->GetConfigurationOptions();
727 $response = $interface->GotoHomePosition();
728 $response = $interface->SetHomePosition();
729 $response = $interface->ContinuousMove();
730 $response = $interface->RelativeMove();
731 $response = $interface->SendAuxiliaryCommand();
732 $response = $interface->AbsoluteMove();
733 $response = $interface->Stop();
734 $response = $interface->GetPresetTours();
735 $response = $interface->GetPresetTour();
736 $response = $interface->GetPresetTourOptions();
737 $response = $interface->CreatePresetTour();
738 $response = $interface->ModifyPresetTour();
739 $response = $interface->OperatePresetTour();
740 $response = $interface->RemovePresetTour();
741 $response = $interface->GetCompatibleConfigurations();
742
743
744
745=head1 DESCRIPTION
746
747SOAP Interface for the PTZ web service
748located at http://www.examples.com/PTZ/.
749
750=head1 SERVICE PTZ
751
752
753
754=head2 Port PTZPort
755
756
757
758=head1 METHODS
759
760=head2 General methods
761
762=head3 new
763
764Constructor.
765
766All arguments are forwarded to L<SOAP::WSDL::Client|SOAP::WSDL::Client>.
767
768=head2 SOAP Service methods
769
770Method synopsis is displayed with hash refs as parameters.
771
772The commented class names in the method's parameters denote that objects
773of the corresponding class can be passed instead of the marked hash ref.
774
775You may pass any combination of objects, hash and list refs to these
776methods, as long as you meet the structure.
777
778List items (i.e. multiple occurrences) are not displayed in the synopsis.
779You may generally pass a list ref of hash refs (or objects) instead of a hash
780ref - this may result in invalid XML if used improperly, though. Note that
781SOAP::WSDL always expects list references at maximum depth position.
782
783XML attributes are not displayed in this synopsis and cannot be set using
784hash refs. See the respective class' documentation for additional information.
785
786
787
788=head3 GetServiceCapabilities
789
790Returns the capabilities of the PTZ service. The result is returned in a typed answer.
791
792Returns a L<ONVIF::PTZ::Elements::GetServiceCapabilitiesResponse|ONVIF::PTZ::Elements::GetServiceCapabilitiesResponse> object.
793
794 $response = $interface->GetServiceCapabilities( {
795  },,
796 );
797
798=head3 GetConfigurations
799
800The allowed pan and tilt range for Pan/Tilt Limits is defined by a two-dimensional space range that is mapped to a specific Absolute Pan/Tilt Position Space. At least one Pan/Tilt Position Space is required by the PTZNode to support Pan/Tilt limits. The limits apply to all supported absolute, relative and continuous Pan/Tilt movements. The limits shall be checked within the coordinate system for which the limits have been specified. That means that even if movements are specified in a different coordinate system, the requested movements shall be transformed to the coordinate system of the limits where the limits can be checked. When a relative or continuous movements is specified, which would leave the specified limits, the PTZ unit has to move along the specified limits. The Zoom Limits have to be interpreted accordingly.
801
802Returns a L<ONVIF::PTZ::Elements::GetConfigurationsResponse|ONVIF::PTZ::Elements::GetConfigurationsResponse> object.
803
804 $response = $interface->GetConfigurations(,,
805 );
806
807=head3 GetPresets
808
809 Operation to request all PTZ presets for the PTZNode in the selected profile. The operation is supported if there is support for at least on PTZ preset by the PTZNode.
810
811Returns a L<ONVIF::PTZ::Elements::GetPresetsResponse|ONVIF::PTZ::Elements::GetPresetsResponse> object.
812
813 $response = $interface->GetPresets( {
814    ProfileToken => $some_value, # ReferenceToken
815  },,
816 );
817
818=head3 SetPreset
819
820The SetPreset command saves the current device position parameters so that the device can move to the saved preset position through the GotoPreset operation. In order to create a new preset, the SetPresetRequest contains no PresetToken. If creation is successful, the Response contains the PresetToken which uniquely identifies the Preset. An existing Preset can be overwritten by specifying the PresetToken of the corresponding Preset. In both cases (overwriting or creation) an optional PresetName can be specified. The operation fails if the PTZ device is moving during the SetPreset operation. The device MAY internally save additional states such as imaging properties in the PTZ Preset which then should be recalled in the GotoPreset operation.
821
822Returns a L<ONVIF::PTZ::Elements::SetPresetResponse|ONVIF::PTZ::Elements::SetPresetResponse> object.
823
824 $response = $interface->SetPreset( {
825    ProfileToken => $some_value, # ReferenceToken
826    PresetName =>  $some_value, # string
827    PresetToken => $some_value, # ReferenceToken
828  },,
829 );
830
831=head3 RemovePreset
832
833Operation to remove a PTZ preset for the Node in the selected profile. The operation is supported if the PresetPosition capability exists for the Node in the selected profile.
834
835Returns a L<ONVIF::PTZ::Elements::RemovePresetResponse|ONVIF::PTZ::Elements::RemovePresetResponse> object.
836
837 $response = $interface->RemovePreset( {
838    ProfileToken => $some_value, # ReferenceToken
839    PresetToken => $some_value, # ReferenceToken
840  },,
841 );
842
843=head3 GotoPreset
844
845 Operation to go to a saved preset position for the PTZNode in the selected profile. The operation is supported if there is support for at least on PTZ preset by the PTZNode.
846
847Returns a L<ONVIF::PTZ::Elements::GotoPresetResponse|ONVIF::PTZ::Elements::GotoPresetResponse> object.
848
849 $response = $interface->GotoPreset( {
850    ProfileToken => $some_value, # ReferenceToken
851    PresetToken => $some_value, # ReferenceToken
852    Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
853      PanTilt => ,
854      Zoom => ,
855    },
856  },,
857 );
858
859=head3 GetStatus
860
861 Operation to request PTZ status for the Node in the selected profile.
862
863Returns a L<ONVIF::PTZ::Elements::GetStatusResponse|ONVIF::PTZ::Elements::GetStatusResponse> object.
864
865 $response = $interface->GetStatus( {
866    ProfileToken => $some_value, # ReferenceToken
867  },,
868 );
869
870=head3 GetConfiguration
871
872The allowed pan and tilt range for Pan/Tilt Limits is defined by a two-dimensional space range that is mapped to a specific Absolute Pan/Tilt Position Space. At least one Pan/Tilt Position Space is required by the PTZNode to support Pan/Tilt limits. The limits apply to all supported absolute, relative and continuous Pan/Tilt movements. The limits shall be checked within the coordinate system for which the limits have been specified. That means that even if movements are specified in a different coordinate system, the requested movements shall be transformed to the coordinate system of the limits where the limits can be checked. When a relative or continuous movements is specified, which would leave the specified limits, the PTZ unit has to move along the specified limits. The Zoom Limits have to be interpreted accordingly.
873
874Returns a L<ONVIF::PTZ::Elements::GetConfigurationResponse|ONVIF::PTZ::Elements::GetConfigurationResponse> object.
875
876 $response = $interface->GetConfiguration( {
877    PTZConfigurationToken => $some_value, # ReferenceToken
878  },,
879 );
880
881=head3 GetNodes
882
883A PTZ-capable device may have multiple PTZ Nodes. The PTZ Nodes may represent mechanical PTZ drivers, uploaded PTZ drivers or digital PTZ drivers. PTZ Nodes are the lowest level entities in the PTZ control API and reflect the supported PTZ capabilities. The PTZ Node is referenced either by its name or by its reference token.
884
885Returns a L<ONVIF::PTZ::Elements::GetNodesResponse|ONVIF::PTZ::Elements::GetNodesResponse> object.
886
887 $response = $interface->GetNodes(,,
888 );
889
890=head3 GetNode
891
892Get a specific PTZ Node identified by a reference token or a name.
893
894Returns a L<ONVIF::PTZ::Elements::GetNodeResponse|ONVIF::PTZ::Elements::GetNodeResponse> object.
895
896 $response = $interface->GetNode( {
897    NodeToken => $some_value, # ReferenceToken
898  },,
899 );
900
901=head3 SetConfiguration
902
903Set/update a existing PTZConfiguration on the device.
904
905Returns a L<ONVIF::PTZ::Elements::SetConfigurationResponse|ONVIF::PTZ::Elements::SetConfigurationResponse> object.
906
907 $response = $interface->SetConfiguration( {
908    PTZConfiguration =>  { # ONVIF::PTZ::Types::PTZConfiguration
909      NodeToken => $some_value, # ReferenceToken
910      DefaultAbsolutePantTiltPositionSpace =>  $some_value, # anyURI
911      DefaultAbsoluteZoomPositionSpace =>  $some_value, # anyURI
912      DefaultRelativePanTiltTranslationSpace =>  $some_value, # anyURI
913      DefaultRelativeZoomTranslationSpace =>  $some_value, # anyURI
914      DefaultContinuousPanTiltVelocitySpace =>  $some_value, # anyURI
915      DefaultContinuousZoomVelocitySpace =>  $some_value, # anyURI
916      DefaultPTZSpeed =>  { # ONVIF::PTZ::Types::PTZSpeed
917        PanTilt => ,
918        Zoom => ,
919      },
920      DefaultPTZTimeout =>  $some_value, # duration
921      PanTiltLimits =>  { # ONVIF::PTZ::Types::PanTiltLimits
922        Range =>  { # ONVIF::PTZ::Types::Space2DDescription
923          URI =>  $some_value, # anyURI
924          XRange =>  { # ONVIF::PTZ::Types::FloatRange
925            Min =>  $some_value, # float
926            Max =>  $some_value, # float
927          },
928          YRange =>  { # ONVIF::PTZ::Types::FloatRange
929            Min =>  $some_value, # float
930            Max =>  $some_value, # float
931          },
932        },
933      },
934      ZoomLimits =>  { # ONVIF::PTZ::Types::ZoomLimits
935        Range =>  { # ONVIF::PTZ::Types::Space1DDescription
936          URI =>  $some_value, # anyURI
937          XRange =>  { # ONVIF::PTZ::Types::FloatRange
938            Min =>  $some_value, # float
939            Max =>  $some_value, # float
940          },
941        },
942      },
943      Extension =>  { # ONVIF::PTZ::Types::PTZConfigurationExtension
944        PTControlDirection =>  { # ONVIF::PTZ::Types::PTControlDirection
945          EFlip =>  { # ONVIF::PTZ::Types::EFlip
946            Mode => $some_value, # EFlipMode
947          },
948          Reverse =>  { # ONVIF::PTZ::Types::Reverse
949            Mode => $some_value, # ReverseMode
950          },
951          Extension =>  { # ONVIF::PTZ::Types::PTControlDirectionExtension
952          },
953        },
954        Extension =>  { # ONVIF::PTZ::Types::PTZConfigurationExtension2
955        },
956      },
957    },
958    ForcePersistence =>  $some_value, # boolean
959  },,
960 );
961
962=head3 GetConfigurationOptions
963
964List supported coordinate systems including their range limitations. Therefore, the options MAY differ depending on whether the PTZ Configuration is assigned to a Profile containing a Video Source Configuration. In that case, the options may additionally contain coordinate systems referring to the image coordinate system described by the Video Source Configuration. If the PTZ Node supports continuous movements, it shall return a Timeout Range within which Timeouts are accepted by the PTZ Node.
965
966Returns a L<ONVIF::PTZ::Elements::GetConfigurationOptionsResponse|ONVIF::PTZ::Elements::GetConfigurationOptionsResponse> object.
967
968 $response = $interface->GetConfigurationOptions( {
969    ConfigurationToken => $some_value, # ReferenceToken
970  },,
971 );
972
973=head3 GotoHomePosition
974
975 Operation to move the PTZ device to it's "home" position. The operation is supported if the HomeSupported element in the PTZNode is true.
976
977Returns a L<ONVIF::PTZ::Elements::GotoHomePositionResponse|ONVIF::PTZ::Elements::GotoHomePositionResponse> object.
978
979 $response = $interface->GotoHomePosition( {
980    ProfileToken => $some_value, # ReferenceToken
981    Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
982      PanTilt => ,
983      Zoom => ,
984    },
985  },,
986 );
987
988=head3 SetHomePosition
989
990Operation to save current position as the home position. The SetHomePosition command returns with a failure if the “home” position is fixed and cannot be overwritten. If the SetHomePosition is successful, it is possible to recall the Home Position with the GotoHomePosition command.
991
992Returns a L<ONVIF::PTZ::Elements::SetHomePositionResponse|ONVIF::PTZ::Elements::SetHomePositionResponse> object.
993
994 $response = $interface->SetHomePosition( {
995    ProfileToken => $some_value, # ReferenceToken
996  },,
997 );
998
999=head3 ContinuousMove
1000
1001Operation for continuous Pan/Tilt and Zoom movements. The operation is supported if the PTZNode supports at least one continuous Pan/Tilt or Zoom space. If the space argument is omitted, the default space set by the PTZConfiguration will be used.
1002
1003Returns a L<ONVIF::PTZ::Elements::ContinuousMoveResponse|ONVIF::PTZ::Elements::ContinuousMoveResponse> object.
1004
1005 $response = $interface->ContinuousMove( {
1006    ProfileToken => $some_value, # ReferenceToken
1007    Velocity =>  { # ONVIF::PTZ::Types::PTZSpeed
1008      PanTilt => ,
1009      Zoom => ,
1010    },
1011    Timeout =>  $some_value, # duration
1012  },,
1013 );
1014
1015=head3 RelativeMove
1016
1017The speed argument is optional. If an x/y speed value is given it is up to the device to either use the x value as absolute resoluting speed vector or to map x and y to the component speed. If the speed argument is omitted, the default speed set by the PTZConfiguration will be used.
1018
1019Returns a L<ONVIF::PTZ::Elements::RelativeMoveResponse|ONVIF::PTZ::Elements::RelativeMoveResponse> object.
1020
1021 $response = $interface->RelativeMove( {
1022    ProfileToken => $some_value, # ReferenceToken
1023    Translation =>  { # ONVIF::PTZ::Types::PTZVector
1024      PanTilt => ,
1025      Zoom => ,
1026    },
1027    Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
1028      PanTilt => ,
1029      Zoom => ,
1030    },
1031  },,
1032 );
1033
1034=head3 SendAuxiliaryCommand
1035
1036Operation to send auxiliary commands to the PTZ device mapped by the PTZNode in the selected profile. The operation is supported if the AuxiliarySupported element of the PTZNode is true
1037
1038Returns a L<ONVIF::PTZ::Elements::SendAuxiliaryCommandResponse|ONVIF::PTZ::Elements::SendAuxiliaryCommandResponse> object.
1039
1040 $response = $interface->SendAuxiliaryCommand( {
1041    ProfileToken => $some_value, # ReferenceToken
1042    AuxiliaryData => $some_value, # AuxiliaryData
1043  },,
1044 );
1045
1046=head3 AbsoluteMove
1047
1048The speed argument is optional. If an x/y speed value is given it is up to the device to either use the x value as absolute resoluting speed vector or to map x and y to the component speed. If the speed argument is omitted, the default speed set by the PTZConfiguration will be used.
1049
1050Returns a L<ONVIF::PTZ::Elements::AbsoluteMoveResponse|ONVIF::PTZ::Elements::AbsoluteMoveResponse> object.
1051
1052 $response = $interface->AbsoluteMove( {
1053    ProfileToken => $some_value, # ReferenceToken
1054    Position =>  { # ONVIF::PTZ::Types::PTZVector
1055      PanTilt => ,
1056      Zoom => ,
1057    },
1058    Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
1059      PanTilt => ,
1060      Zoom => ,
1061    },
1062  },,
1063 );
1064
1065=head3 Stop
1066
1067Operation to stop ongoing pan, tilt and zoom movements of absolute relative and continuous type. If no stop argument for pan, tilt or zoom is set, the device will stop all ongoing pan, tilt and zoom movements.
1068
1069Returns a L<ONVIF::PTZ::Elements::StopResponse|ONVIF::PTZ::Elements::StopResponse> object.
1070
1071 $response = $interface->Stop( {
1072    ProfileToken => $some_value, # ReferenceToken
1073    PanTilt =>  $some_value, # boolean
1074    Zoom =>  $some_value, # boolean
1075  },,
1076 );
1077
1078=head3 GetPresetTours
1079
1080Operation to request PTZ preset tours in the selected media profiles.
1081
1082Returns a L<ONVIF::PTZ::Elements::GetPresetToursResponse|ONVIF::PTZ::Elements::GetPresetToursResponse> object.
1083
1084 $response = $interface->GetPresetTours( {
1085    ProfileToken => $some_value, # ReferenceToken
1086  },,
1087 );
1088
1089=head3 GetPresetTour
1090
1091Operation to request a specific PTZ preset tour in the selected media profile.
1092
1093Returns a L<ONVIF::PTZ::Elements::GetPresetTourResponse|ONVIF::PTZ::Elements::GetPresetTourResponse> object.
1094
1095 $response = $interface->GetPresetTour( {
1096    ProfileToken => $some_value, # ReferenceToken
1097    PresetTourToken => $some_value, # ReferenceToken
1098  },,
1099 );
1100
1101=head3 GetPresetTourOptions
1102
1103Operation to request available options to configure PTZ preset tour.
1104
1105Returns a L<ONVIF::PTZ::Elements::GetPresetTourOptionsResponse|ONVIF::PTZ::Elements::GetPresetTourOptionsResponse> object.
1106
1107 $response = $interface->GetPresetTourOptions( {
1108    ProfileToken => $some_value, # ReferenceToken
1109    PresetTourToken => $some_value, # ReferenceToken
1110  },,
1111 );
1112
1113=head3 CreatePresetTour
1114
1115Operation to create a preset tour for the selected media profile.
1116
1117Returns a L<ONVIF::PTZ::Elements::CreatePresetTourResponse|ONVIF::PTZ::Elements::CreatePresetTourResponse> object.
1118
1119 $response = $interface->CreatePresetTour( {
1120    ProfileToken => $some_value, # ReferenceToken
1121  },,
1122 );
1123
1124=head3 ModifyPresetTour
1125
1126Operation to modify a preset tour for the selected media profile.
1127
1128Returns a L<ONVIF::PTZ::Elements::ModifyPresetTourResponse|ONVIF::PTZ::Elements::ModifyPresetTourResponse> object.
1129
1130 $response = $interface->ModifyPresetTour( {
1131    ProfileToken => $some_value, # ReferenceToken
1132    PresetTour =>  { # ONVIF::PTZ::Types::PresetTour
1133      Name => $some_value, # Name
1134      Status =>  { # ONVIF::PTZ::Types::PTZPresetTourStatus
1135        State => $some_value, # PTZPresetTourState
1136        CurrentTourSpot =>  { # ONVIF::PTZ::Types::PTZPresetTourSpot
1137          PresetDetail =>           { # ONVIF::PTZ::Types::PTZPresetTourPresetDetail
1138            # One of the following elements.
1139            # No occurrence checks yet, so be sure to pass just one...
1140            PresetToken => $some_value, # ReferenceToken
1141            Home =>  $some_value, # boolean
1142            PTZPosition =>  { # ONVIF::PTZ::Types::PTZVector
1143              PanTilt => ,
1144              Zoom => ,
1145            },
1146            TypeExtension =>  { # ONVIF::PTZ::Types::PTZPresetTourTypeExtension
1147            },
1148          },
1149          Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
1150            PanTilt => ,
1151            Zoom => ,
1152          },
1153          StayTime =>  $some_value, # duration
1154          Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourSpotExtension
1155          },
1156        },
1157        Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourStatusExtension
1158        },
1159      },
1160      AutoStart =>  $some_value, # boolean
1161      StartingCondition =>  { # ONVIF::PTZ::Types::PTZPresetTourStartingCondition
1162        RecurringTime =>  $some_value, # int
1163        RecurringDuration =>  $some_value, # duration
1164        Direction => $some_value, # PTZPresetTourDirection
1165        Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourStartingConditionExtension
1166        },
1167      },
1168      TourSpot =>  { # ONVIF::PTZ::Types::PTZPresetTourSpot
1169        PresetDetail =>         { # ONVIF::PTZ::Types::PTZPresetTourPresetDetail
1170          # One of the following elements.
1171          # No occurrence checks yet, so be sure to pass just one...
1172          PresetToken => $some_value, # ReferenceToken
1173          Home =>  $some_value, # boolean
1174          PTZPosition =>  { # ONVIF::PTZ::Types::PTZVector
1175            PanTilt => ,
1176            Zoom => ,
1177          },
1178          TypeExtension =>  { # ONVIF::PTZ::Types::PTZPresetTourTypeExtension
1179          },
1180        },
1181        Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
1182          PanTilt => ,
1183          Zoom => ,
1184        },
1185        StayTime =>  $some_value, # duration
1186        Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourSpotExtension
1187        },
1188      },
1189      Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourExtension
1190      },
1191    },
1192  },,
1193 );
1194
1195=head3 OperatePresetTour
1196
1197Operation to perform specific operation on the preset tour in selected media profile.
1198
1199Returns a L<ONVIF::PTZ::Elements::OperatePresetTourResponse|ONVIF::PTZ::Elements::OperatePresetTourResponse> object.
1200
1201 $response = $interface->OperatePresetTour( {
1202    ProfileToken => $some_value, # ReferenceToken
1203    PresetTourToken => $some_value, # ReferenceToken
1204    Operation => $some_value, # PTZPresetTourOperation
1205  },,
1206 );
1207
1208=head3 RemovePresetTour
1209
1210Operation to delete a specific preset tour from the media profile.
1211
1212Returns a L<ONVIF::PTZ::Elements::RemovePresetTourResponse|ONVIF::PTZ::Elements::RemovePresetTourResponse> object.
1213
1214 $response = $interface->RemovePresetTour( {
1215    ProfileToken => $some_value, # ReferenceToken
1216    PresetTourToken => $some_value, # ReferenceToken
1217  },,
1218 );
1219
1220=head3 GetCompatibleConfigurations
1221
1222A device providing more than one PTZConfiguration or more than one VideoSourceConfiguration or which has any other resource interdependency between PTZConfiguration entities and other resources listable in a media profile should implement this operation. PTZConfiguration entities returned by this operation shall not fail on adding them to the referenced media profile.
1223
1224Returns a L<ONVIF::PTZ::Elements::GetCompatibleConfigurationsResponse|ONVIF::PTZ::Elements::GetCompatibleConfigurationsResponse> object.
1225
1226 $response = $interface->GetCompatibleConfigurations( {
1227    ProfileToken => $some_value, # ReferenceToken
1228  },,
1229 );
1230
1231
1232
1233=head1 AUTHOR
1234
1235Generated by SOAP::WSDL on Mon Jun 30 13:37:28 2014
1236
1237=cut
1238