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