ONVIF:...TZPort(3pm)

πŸ“¦
version 1.36.37 Β· 5 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

ONVIF::PTZ::Interfaces::PTZ::PTZPort β€” the SOAP Interface for the PTZ Web Service, straight out of the User Contributed Perl Documentation (section 3pm, iykyk).


πŸ¦‹ SYNOPSIS πŸ¦‹

use ONVIF::PTZ::Interfaces::PTZ::PTZPort;
my $interface = ONVIF::PTZ::Interfaces::PTZ::PTZPort->new();

my $response;
$response = $interface->GetServiceCapabilities();
$response = $interface->GetConfigurations();
$response = $interface->GetPresets();
$response = $interface->SetPreset();
$response = $interface->RemovePreset();
$response = $interface->GotoPreset();
$response = $interface->GetStatus();
$response = $interface->GetConfiguration();
$response = $interface->GetNodes();
$response = $interface->GetNode();
$response = $interface->SetConfiguration();
$response = $interface->GetConfigurationOptions();
$response = $interface->GotoHomePosition();
$response = $interface->SetHomePosition();
$response = $interface->ContinuousMove();
$response = $interface->RelativeMove();
$response = $interface->SendAuxiliaryCommand();
$response = $interface->AbsoluteMove();
$response = $interface->Stop();
$response = $interface->GetPresetTours();
$response = $interface->GetPresetTour();
$response = $interface->GetPresetTourOptions();
$response = $interface->CreatePresetTour();
$response = $interface->ModifyPresetTour();
$response = $interface->OperatePresetTour();
$response = $interface->RemovePresetTour();
$response = $interface->GetCompatibleConfigurations();

🌸 DESCRIPTION 🌸

It's a SOAP Interface for the PTZ web service, and that service lives right here: http://www.examples.com/PTZ/. That's it. That's the description. Short, sweet, iconic. ✨


πŸ‘‘ SERVICE PTZ πŸ‘‘

πŸŽ€ Port PTZPort πŸŽ€

(Yes bestie, this service hangs out on the port called PTZPort. Main character energy.)


πŸ”₯ METHODS πŸ”₯

⭐ General methods ⭐

  • new β€” the Constructor. Literally every single argument gets forwarded straight to SOAP::WSDL::Client. No secrets, no filtering, she passes it all along. πŸ’…

πŸ¦‹ SOAP Service methods πŸ¦‹

Okay so here's the tea on how these synopses work, because it matters:

  • The method synopsis is displayed with hash refs as parameters.
  • Those commented class names sitting in the method's parameters? They're telling you that objects of the corresponding class can be passed instead of the marked hash ref. Two paths, one destination. 🫢
  • You may pass any combination of objects, hash and list refs to these methods β€” as long as you meet the structure. Mix and match, just don't break the shape.
  • List items (i.e. multiple occurrences) are not displayed in the synopsis. You may generally pass a list ref of hash refs (or objects) instead of a hash ref β€” but heads up, this may result in invalid XML if used improperly. ⚠️ Also note that SOAP::WSDL always expects list references at maximum depth position.
  • XML attributes are not displayed in this synopsis and cannot be set using hash refs. Want the full lore? Go read the respective class' documentation for additional information. πŸ“–

✨ GetServiceCapabilities ✨

Returns the capabilities of the PTZ service. The result comes back in a typed answer. Slay.

Returns a ONVIF::PTZ::Elements::GetServiceCapabilitiesResponse object.

$response = $interface->GetServiceCapabilities( {
 },,
);

✨ GetConfigurations ✨

Okay this one is a whole paragraph so buckle up bestie. The 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. Those 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. Which means: 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. πŸŒ€ And when a relative or continuous movement 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.

Returns a ONVIF::PTZ::Elements::GetConfigurationsResponse object.

$response = $interface->GetConfigurations(,,
);

✨ GetPresets ✨

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.

Returns a ONVIF::PTZ::Elements::GetPresetsResponse object.

$response = $interface->GetPresets( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

✨ SetPreset ✨

The SetPreset command saves the current device position parameters so that the device can move to the saved preset position through the GotoPreset operation. Want to create a brand new preset? Then 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.

Returns a ONVIF::PTZ::Elements::SetPresetResponse object.

$response = $interface->SetPreset( {
   ProfileToken => $some_value, # ReferenceToken
   PresetName =>  $some_value, # string
   PresetToken => $some_value, # ReferenceToken
 },,
);

✨ RemovePreset ✨

Operation 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.

Returns a ONVIF::PTZ::Elements::RemovePresetResponse object.

$response = $interface->RemovePreset( {
   ProfileToken => $some_value, # ReferenceToken
   PresetToken => $some_value, # ReferenceToken
 },,
);

✨ GotoPreset ✨

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.

Returns a ONVIF::PTZ::Elements::GotoPresetResponse object.

$response = $interface->GotoPreset( {
   ProfileToken => $some_value, # ReferenceToken
   PresetToken => $some_value, # ReferenceToken
   Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
     PanTilt => ,
     Zoom => ,
   },
 },,
);

✨ GetStatus ✨

Operation to request PTZ status for the Node in the selected profile.

Returns a ONVIF::PTZ::Elements::GetStatusResponse object.

$response = $interface->GetStatus( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

✨ GetConfiguration ✨

Here comes the Pan/Tilt limits paragraph again, bestie β€” it's the same lore. The 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. 🌈

Returns a ONVIF::PTZ::Elements::GetConfigurationResponse object.

$response = $interface->GetConfiguration( {
   PTZConfigurationToken => $some_value, # ReferenceToken
 },,
);

✨ GetNodes ✨

A PTZ-capable device may have multiple PTZ Nodes, and honestly? Respect. Those 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. 🫢

Returns a ONVIF::PTZ::Elements::GetNodesResponse object.

$response = $interface->GetNodes(,,
);

✨ GetNode ✨

Get a specific PTZ Node identified by a reference token or a name. Simple as that. πŸ’…

Returns a ONVIF::PTZ::Elements::GetNodeResponse object.

$response = $interface->GetNode( {
   NodeToken => $some_value, # ReferenceToken
 },,
);

✨ SetConfiguration ✨

Set/update a existing PTZConfiguration on the device. Big one, lots of nesting, stay with me.

Returns a ONVIF::PTZ::Elements::SetConfigurationResponse object.

$response = $interface->SetConfiguration( {
   PTZConfiguration =>  { # ONVIF::PTZ::Types::PTZConfiguration
     NodeToken => $some_value, # ReferenceToken
     DefaultAbsolutePantTiltPositionSpace =>  $some_value, # anyURI
     DefaultAbsoluteZoomPositionSpace =>  $some_value, # anyURI
     DefaultRelativePanTiltTranslationSpace =>  $some_value, # anyURI
     DefaultRelativeZoomTranslationSpace =>  $some_value, # anyURI
     DefaultContinuousPanTiltVelocitySpace =>  $some_value, # anyURI
     DefaultContinuousZoomVelocitySpace =>  $some_value, # anyURI
     DefaultPTZSpeed =>  { # ONVIF::PTZ::Types::PTZSpeed
       PanTilt => ,
       Zoom => ,
     },
     DefaultPTZTimeout =>  $some_value, # duration
     PanTiltLimits =>  { # ONVIF::PTZ::Types::PanTiltLimits
       Range =>  { # ONVIF::PTZ::Types::Space2DDescription
         URI =>  $some_value, # anyURI
         XRange =>  { # ONVIF::PTZ::Types::FloatRange
           Min =>  $some_value, # float
           Max =>  $some_value, # float
         },
         YRange =>  { # ONVIF::PTZ::Types::FloatRange
           Min =>  $some_value, # float
           Max =>  $some_value, # float
         },
       },
     },
     ZoomLimits =>  { # ONVIF::PTZ::Types::ZoomLimits
       Range =>  { # ONVIF::PTZ::Types::Space1DDescription
         URI =>  $some_value, # anyURI
         XRange =>  { # ONVIF::PTZ::Types::FloatRange
           Min =>  $some_value, # float
           Max =>  $some_value, # float
         },
       },
     },
     Extension =>  { # ONVIF::PTZ::Types::PTZConfigurationExtension
       PTControlDirection =>  { # ONVIF::PTZ::Types::PTControlDirection
         EFlip =>  { # ONVIF::PTZ::Types::EFlip
           Mode => $some_value, # EFlipMode
         },
         Reverse =>  { # ONVIF::PTZ::Types::Reverse
           Mode => $some_value, # ReverseMode
         },
         Extension =>  { # ONVIF::PTZ::Types::PTControlDirectionExtension
         },
       },
       Extension =>  { # ONVIF::PTZ::Types::PTZConfigurationExtension2
       },
     },
   },
   ForcePersistence =>  $some_value, # boolean
 },,
);

✨ GetConfigurationOptions ✨

(...and that's where part 1 stops, bestie β€” more is coming, don't go anywhere πŸ’–)

List supported coordinate systems including their range limitations. So like, the options MAY be different depending on whether the PTZ Configuration is assigned to a Profile that contains 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. And if the PTZ Node supports continuous movements, it shall return a Timeout Range within which Timeouts are accepted by the PTZ Node. πŸ‘‘

Returns a ONVIF::PTZ::Elements::GetConfigurationOptionsResponse object.

$response = $interface->GetConfigurationOptions( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

GotoHomePosition 🌸

Operation to move the PTZ device to it's "home" position. This one is supported if the HomeSupported element in the PTZNode is true. bestie it literally just goes home 🏠✨

Returns a ONVIF::PTZ::Elements::GotoHomePositionResponse object.

$response = $interface->GotoHomePosition( {
   ProfileToken => $some_value, # ReferenceToken
   Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
     PanTilt => ,
     Zoom => ,
   },
 },,
);

SetHomePosition πŸ’…

Operation to save the current position as the home position. The SetHomePosition command returns with a failure if the "home" position is fixed and cannot be overwritten. And if SetHomePosition is successful, it is possible to recall the Home Position with the GotoHomePosition command. so like, save point energy πŸ”–

Returns a ONVIF::PTZ::Elements::SetHomePositionResponse object.

$response = $interface->SetHomePosition( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

ContinuousMove πŸŒ€

Operation for continuous Pan/Tilt and Zoom movements. 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. no cap, it just keeps going πŸƒβ€β™€οΈ

Returns a ONVIF::PTZ::Elements::ContinuousMoveResponse object.

$response = $interface->ContinuousMove( {
   ProfileToken => $some_value, # ReferenceToken
   Velocity =>  { # ONVIF::PTZ::Types::PTZSpeed
     PanTilt => ,
     Zoom => ,
   },
   Timeout =>  $some_value, # duration
 },,
);

RelativeMove πŸ¦‹

The 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. lowkey the device gets to decide, not us πŸ™ˆ

Returns a ONVIF::PTZ::Elements::RelativeMoveResponse object.

$response = $interface->RelativeMove( {
   ProfileToken => $some_value, # ReferenceToken
   Translation =>  { # ONVIF::PTZ::Types::PTZVector
     PanTilt => ,
     Zoom => ,
   },
   Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
     PanTilt => ,
     Zoom => ,
   },
 },,
);

SendAuxiliaryCommand ✨

Operation to send auxiliary commands to the PTZ device mapped by the PTZNode in the selected profile. Supported if the AuxiliarySupported element of the PTZNode is true. little side-quest commands, iconic πŸŽ€

Returns a ONVIF::PTZ::Elements::SendAuxiliaryCommandResponse object.

$response = $interface->SendAuxiliaryCommand( {
   ProfileToken => $some_value, # ReferenceToken
   AuxiliaryData => $some_value, # AuxiliaryData
 },,
);

AbsoluteMove πŸ‘‘

The 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. fr fr same rules as RelativeMove but we're going to an exact spot πŸ“

Returns a ONVIF::PTZ::Elements::AbsoluteMoveResponse object.

$response = $interface->AbsoluteMove( {
   ProfileToken => $some_value, # ReferenceToken
   Position =>  { # ONVIF::PTZ::Types::PTZVector
     PanTilt => ,
     Zoom => ,
   },
   Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
     PanTilt => ,
     Zoom => ,
   },
 },,
);

Stop βœ‹

Operation 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. like, everything. all of it. gone πŸ’€

Returns a ONVIF::PTZ::Elements::StopResponse object.

$response = $interface->Stop( {
   ProfileToken => $some_value, # ReferenceToken
   PanTilt =>  $some_value, # boolean
   Zoom =>  $some_value, # boolean
 },,
);

GetPresetTours 🌈

Operation to request PTZ preset tours in the selected media profiles.

Returns a ONVIF::PTZ::Elements::GetPresetToursResponse object.

$response = $interface->GetPresetTours( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

GetPresetTour πŸŽ€

Operation to request a specific PTZ preset tour in the selected media profile.

Returns a ONVIF::PTZ::Elements::GetPresetTourResponse object.

$response = $interface->GetPresetTour( {
   ProfileToken => $some_value, # ReferenceToken
   PresetTourToken => $some_value, # ReferenceToken
 },,
);

GetPresetTourOptions πŸ’œ

Operation to request available options to configure a PTZ preset tour.

Returns a ONVIF::PTZ::Elements::GetPresetTourOptionsResponse object.

$response = $interface->GetPresetTourOptions( {
   ProfileToken => $some_value, # ReferenceToken
   PresetTourToken => $some_value, # ReferenceToken
 },,
);

CreatePresetTour 🌸

Operation to create a preset tour for the selected media profile.

Returns a ONVIF::PTZ::Elements::CreatePresetTourResponse object.

$response = $interface->CreatePresetTour( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

ModifyPresetTour 🧚

Operation to modify a preset tour for the selected media profile.

Returns a ONVIF::PTZ::Elements::ModifyPresetTourResponse object.

okay bestie this next one is long β€” like, the whole nested struct is in here. Take it slow, don't panic, it's just a big ole hash. 🫢
$response = $interface->ModifyPresetTour( {
   ProfileToken => $some_value, # ReferenceToken
   PresetTour =>  { # ONVIF::PTZ::Types::PresetTour
     Name => $some_value, # Name
     Status =>  { # ONVIF::PTZ::Types::PTZPresetTourStatus
       State => $some_value, # PTZPresetTourState
       CurrentTourSpot =>  { # ONVIF::PTZ::Types::PTZPresetTourSpot
         PresetDetail =>           { # ONVIF::PTZ::Types::PTZPresetTourPresetDetail
           # One of the following elements.
           # No occurrence checks yet, so be sure to pass just one...
           PresetToken => $some_value, # ReferenceToken
           Home =>  $some_value, # boolean
           PTZPosition =>  { # ONVIF::PTZ::Types::PTZVector
             PanTilt => ,
             Zoom => ,
           },
           TypeExtension =>  { # ONVIF::PTZ::Types::PTZPresetTourTypeExtension
           },
         },
         Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
           PanTilt => ,
           Zoom => ,
         },
         StayTime =>  $some_value, # duration
         Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourSpotExtension
         },
       },
       Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourStatusExtension
       },
     },
     AutoStart =>  $some_value, # boolean
     StartingCondition =>  { # ONVIF::PTZ::Types::PTZPresetTourStartingCondition
       RecurringTime =>  $some_value, # int
       RecurringDuration =>  $some_value, # duration
       Direction => $some_value, # PTZPresetTourDirection
       Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourStartingConditionExtension
       },
     },
     TourSpot =>  { # ONVIF::PTZ::Types::PTZPresetTourSpot
       PresetDetail =>         { # ONVIF::PTZ::Types::PTZPresetTourPresetDetail
         # One of the following elements.
         # No occurrence checks yet, so be sure to pass just one...
         PresetToken => $some_value, # ReferenceToken
         Home =>  $some_value, # boolean
         PTZPosition =>  { # ONVIF::PTZ::Types::PTZVector
           PanTilt => ,
           Zoom => ,
         },
         TypeExtension =>  { # ONVIF::PTZ::Types::PTZPresetTourTypeExtension
         },
       },
       Speed =>  { # ONVIF::PTZ::Types::PTZSpeed
         PanTilt => ,
         Zoom => ,
       },
       StayTime =>  $some_value, # duration
       Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourSpotExtension
       },
     },
     Extension =>  { # ONVIF::PTZ::Types::PTZPresetTourExtension
     },
   },
 },,
);

OperatePresetTour ⭐

Operation to perform a specific operation on the preset tour in the selected media profile.

Returns a ONVIF::PTZ::Elements::OperatePresetTourResponse object.

$response = $interface->OperatePresetTour( {
   ProfileToken => $some_value, # ReferenceToken
   PresetTourToken => $some_value, # ReferenceToken
   Operation => $some_value, # PTZPresetTourOperation
 },,
);

RemovePresetTour πŸ™ˆ

Operation to delete a specific preset tour from the media profile. bye bye tour πŸ’¨

Returns a ONVIF::PTZ::Elements::RemovePresetTourResponse object.

$response = $interface->RemovePresetTour( {
   ProfileToken => $some_value, # ReferenceToken
   PresetTourToken => $some_value, # ReferenceToken
 },,
);

GetCompatibleConfigurations πŸ’«

A 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. it's giving "trust me, these ones will just work" energy 😌

Returns a ONVIF::PTZ::Elements::GetCompatibleConfigurationsResponse object.

$response = $interface->GetCompatibleConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

✨ AUTHOR ✨

Generated by SOAP::WSDL on Mon Jun 30 13:37:28 2014. yeah bestie, this whole thing was machine-generated back in 2014 and it's still serving looks πŸ’…βœ¨


and that's a wrap on part 2, my love 🫢 that footer down there is running perl v5.40.1 and it's dated 2026-02-01, so like β€” future girlie energy, we love to see it πŸ‘‘πŸ’–

πŸ“¦ where this page comes from