forked from onvif/specs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPTZ.xml
3131 lines (3131 loc) · 175 KB
/
PTZ.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<?xml-stylesheet href="docbook.xsl" type="text/xsl" ?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0">
<info>
<title>PTZ Service Specification</title>
<titleabbrev>Ptz</titleabbrev>
<releaseinfo>23.06</releaseinfo>
<author>
<orgname>ONVIF™</orgname>
<uri>www.onvif.org</uri>
</author>
<pubdate>June, 2023</pubdate>
<mediaobject>
<imageobject>
<imagedata fileref="media/logo.png" contentwidth="60mm" />
</imageobject>
</mediaobject>
<copyright>
<year>2008-2023</year>
<holder>ONVIF™ All rights reserved.</holder>
</copyright>
<legalnotice>
<para>Recipients of this document may copy, distribute, publish, or display this document so long as this copyright notice, license and disclaimer are retained with all copies of the document. No license is granted to modify this document.</para>
<para>THIS DOCUMENT IS PROVIDED "AS IS," AND THE CORPORATION AND ITS MEMBERS AND THEIR AFFILIATES, MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS DOCUMENT ARE SUITABLE FOR ANY PURPOSE; OR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</para>
<para>IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT, WHETHER OR NOT (1) THE CORPORATION, MEMBERS OR THEIR AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR (2) SUCH DAMAGES WERE REASONABLY FORESEEABLE, AND ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT. THE FOREGOING DISCLAIMER AND LIMITATION ON LIABILITY DO NOT APPLY TO, INVALIDATE, OR LIMIT REPRESENTATIONS AND WARRANTIES MADE BY THE MEMBERS AND THEIR RESPECTIVE AFFILIATES TO THE CORPORATION AND OTHER MEMBERS IN CERTAIN WRITTEN POLICIES OF THE CORPORATION.</para>
</legalnotice>
<revhistory>
<revision>
<revnumber>2.1</revnumber>
<date>Jul-2011</date>
<author>
<personname>Hans Busch</personname>
</author>
<revremark>Split from Core 2.0 without change of content.</revremark>
</revision>
<revision>
<revnumber>2.1.1</revnumber>
<date>Jan-2012</date>
<author>
<personname>Hans Busch</personname>
</author>
<revremark>Change Requests 262, 434, 535, 554</revremark>
</revision>
<revision>
<revnumber>2.2</revnumber>
<date>May-2012</date>
<author>
<personname>Takahiro Iwasaki</personname>
</author>
<revremark>Addition of Preset Tour and PT Control Direction features
Change Request 648</revremark>
</revision>
<revision>
<revnumber>2.2.1</revnumber>
<date>Sep-2012</date>
<author>
<personname>Hans Busch</personname>
</author>
<revremark>Change Request 708, 825</revremark>
</revision>
<revision>
<revnumber>2.4</revnumber>
<date>Mar-2013</date>
<author>
<personname>Daniel Fiala</personname>
</author>
<revremark>Change Request 871</revremark>
</revision>
<revision>
<revnumber>2.4.1</revnumber>
<date>Dec-2013</date>
<author>
<personname>Michio Hirai</personname>
</author>
<revremark>Change Request 1207, 1215</revremark>
</revision>
<revision>
<revnumber>2.4.2</revnumber>
<date>Jun-2014</date>
<author>
<personname>Michio Hirai</personname>
</author>
<revremark>Change Request 1360, 1361, 1362</revremark>
</revision>
<revision>
<revnumber>2.5</revnumber>
<date>Dec-2014</date>
<author>
<personname>Ottavio Campana, Michio Hirai</personname>
</author>
<revremark>Addition of Ramp feature
Change Request 1322</revremark>
</revision>
<revision>
<revnumber>2.6</revnumber>
<date>Jun-2015</date>
<author>
<personname>Michio Hirai</personname>
</author>
<revremark>Change Request 1660, 1668</revremark>
</revision>
<revision>
<revnumber>2.6.1</revnumber>
<date>Dec-2015</date>
<author>
<personname>Hiroyuki Sano</personname>
</author>
<revremark>Change Request 1700</revremark>
</revision>
<revision>
<revnumber>16.12</revnumber>
<date>Dec-2016</date>
<author>
<personname>Andrew Downs</personname>
</author>
<revremark>Incorporate PTZ spaces</revremark>
</revision>
<revision>
<revnumber>17.06</revnumber>
<date>Jun-2017</date>
<author>
<personname>Hans Busch</personname>
</author>
<author>
<personname>Hiroyuki Sano</personname>
</author>
<author>
<personname>Enrico Campana</personname>
</author>
<revremark>Update method layouts. Change Request 2044
Change Request 1843, 2001, 2030, 2031, 2035, 2043
Add GeoMove</revremark>
</revision>
<revision>
<revnumber>17.12</revnumber>
<date>Dec-2017</date>
<author>
<personname>Enrico Campana</personname>
</author>
<revremark>Add Annex B - GeoMove Positioning Space</revremark>
</revision>
<revision>
<revnumber>18.12</revnumber>
<date>Dec-2018</date>
<author>
<personname>Hiroyuki Sano</personname>
</author>
<revremark>Change Request 2362, 2379, 2380, 2381</revremark>
</revision>
<revision>
<revnumber>20.12</revnumber>
<date>Dec-2020</date>
<author>
<personname>Davide Cristanelli</personname>
</author>
<revremark>Add MoveAndStartTracking</revremark>
</revision>
<revision>
<revnumber>23.06</revnumber>
<date>Jun-2023</date>
<author>
<personname>Michael Adam</personname>
</author>
<revremark>Add clarification to PTZ spec regarding dynamic space ranges.</revremark>
</revision>
</revhistory>
</info>
<chapter>
<title>Scope</title>
<para>This document defines the web service interface for configuration and operation of pan tilt zoom controllers. Additionally the associated events are defined.</para>
<para>Web service usage is outside of the scope of this document. Please refer to the ONVIF core specification.</para>
</chapter>
<chapter>
<title>Normative references</title>
<para>ONVIF Core Specification</para>
<para role="reference"><<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.onvif.org/specs/core/ONVIF-Core-Specification.pdf"></link>></para>
<para>ONVIF Media Service Specification</para>
<para role="reference"><<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.onvif.org/specs/srv/media/ONVIF-Media-Service-Spec.pdf"></link>></para>
</chapter>
<chapter>
<title>Terms and Definitions</title>
<section>
<title>Definitions</title>
<informaltable>
<tgroup cols="2">
<colspec colname="c1" colwidth="24*" />
<colspec colname="c2" colwidth="76*" />
<tbody valign="top">
<row>
<entry align="left">
<para>
<emphasis role="bold">Digital PTZ</emphasis>
</para>
</entry>
<entry align="left">
<para>Function that diminishes or crops an image to adjust the image position and ratio.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Optical zoom</emphasis>
</para>
</entry>
<entry align="left">
<para>Changes the focal length (angle of view) for the device by moving the zoom lens in the camera’s optics.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">PTZ node</emphasis>
</para>
</entry>
<entry align="left">
<para>Low-level PTZ entity that maps to the PTZ device and its capabilities.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Field of View</emphasis>
</para>
</entry>
<entry align="left">
<para>The part of the world that is visible through the camera at a particular position and orientation in space.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">Nadir</emphasis>
</para>
</entry>
<entry align="left">
<para>The direction below a dome camera that is mounted in the ceiling and looking downwards.</para>
</entry>
</row>
<row>
<entry align="left">
<para>
<emphasis role="bold">E-flip</emphasis>
</para>
</entry>
<entry align="left">
<para>The behaviour when a PTZ Dome rotates the image and control directions as it passes the nadir during a tilt movement.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Abbreviations</title>
<informaltable>
<tgroup cols="2">
<colspec colname="c1" colwidth="24*" />
<colspec colname="c2" colwidth="76*" />
<tbody valign="top">
<row>
<entry valign="middle">
<para>PTZ</para>
</entry>
<entry valign="middle">
<para>Pan/tilt/zoom</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>E-Flip</para>
</entry>
<entry valign="middle">
<para>Electrical flip</para>
</entry>
</row>
<row>
<entry valign="middle">
<para>FOV</para>
</entry>
<entry valign="middle">
<para>Field of View</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</chapter>
<chapter xml:id="_Toc241999839">
<title>Overview</title>
<para>The PTZ model groups the possible movements of the PTZ unit into a pan/tilt component and into a Zoom component. To steer the PTZ unit, the service provides absolute move, relative move and continuous move operations. Different coordinate systems and units are used to feed these operations.</para>
<para>The PTZ service provides an AbsoluteMove operation to move the PTZ device to an absolute position. The service expects the absolute position as an argument referencing an absolute coordinate system. The speed of the pan/tilt movement and the Zoom movement can be specified optionally. Speed values are positive scalars and do not contain any directional information. It is not possible to specify speeds for Pan and Tilt separately without knowledge about the current position. This approach to specifying a desired position generally produces a non-smooth and non-intuitive action.</para>
<para>A RelativeMove operation is introduced by the PTZ service in order to steer the dome relative to the current position, but without the need to know the current position. The operation expects a positional translation as an argument referencing a relative coordinate system. This specification distinguishes between relative and absolute coordinate systems, since there are cases where no absolute coordinate system exists for a well-defined relative coordinate system. An optional speed argument can be added to the RelativeMove operation with the same meaning as for the AbsoluteMove operation.</para>
<para>Finally, the PTZ device can be moved continuously via the ContinuousMove command in a certain direction with a certain speed. Thereby, a velocity vector represents both, the direction and the speed information. The latter is expressed by the length of the vector. </para>
<para>The pan/tilt and Zoom coordinates can be uniquely specified by augmenting the coordinates with appropriate space URIs. A space URI uniquely represents the underlying coordinate system. Section <xref linkend="_Toc214944449" /> defines a standard set of coordinate systems. A PTZ node shall implement these coordinate systems if the corresponding type of movement is supported by the PTZ node. In many cases, the pan/tilt position is represented by pan and tilt angles in a spherical coordinate system. A digital PTZ, operating on a fixed megapixel camera, may express the camera’s viewing direction by a pixel position on a static projection plane. Therefore, different coordinate systems are needed in this case in order to capture the physical or virtual movements of the PTZ device. Optionally, the PTZ node may define its own device specific coordinate systems to enable clients to take advantage of the specific properties of this PTZ node.</para>
<para>The PTZ node description retrieved via the GetNode or GetNodes operation contains all coordinate systems supported by a specific PTZ node. Each coordinate system belongs to one of the following groups:</para>
<itemizedlist>
<listitem>
<para>AbsolutePanTiltPositionSpace</para>
</listitem>
<listitem>
<para>RelativePanTiltTranslationSpace</para>
</listitem>
<listitem>
<para>ContinuousPanTiltVelocitySpace</para>
</listitem>
<listitem>
<para>PanTiltSpeedSpace</para>
</listitem>
<listitem>
<para>AbsoluteZoomPositionSpace</para>
</listitem>
<listitem>
<para>RelativeZoomTranslationSpace</para>
</listitem>
<listitem>
<para>ContinuousZoomVelocitySpace</para>
</listitem>
<listitem>
<para>ZoomSpeedSpace</para>
</listitem>
</itemizedlist>
<para>If the PTZ node does not support the coordinate systems of a certain group, the corresponding move operation will not be available for this PTZ node. For instance, if the list does not contain an AbsolutePanTiltPositionSpace, the AbsoluteMove operation shall fail when an absolute pan/tilt position is specified. The corresponding command section describes those spaces that are required for a specific move command.</para>
<para>WSDL for this service is specified in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl">http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl</link>.</para>
<table>
<title>Referenced namespaces (with prefix)</title>
<tgroup cols="2">
<colspec colname="c1" colwidth="13*" />
<colspec colname="c2" colwidth="87*" />
<thead>
<row>
<entry>
<para>Prefix</para>
</entry>
<entry>
<para>Namespace URI</para>
</entry>
</row>
</thead>
<tbody valign="top">
<row>
<entry>
<para>env</para>
</entry>
<entry>
<para>http://www.w3.org/2003/05/soap-envelope</para>
</entry>
</row>
<row>
<entry>
<para>ter</para>
</entry>
<entry>
<para>http://www.onvif.org/ver10/error</para>
</entry>
</row>
<row>
<entry>
<para>xs </para>
</entry>
<entry>
<para>http://www.w3.org/2001/XMLSchema </para>
</entry>
</row>
<row>
<entry>
<para>tt</para>
</entry>
<entry>
<para>http://www.onvif.org/ver10/schema</para>
</entry>
</row>
<row>
<entry>
<para>tptz</para>
</entry>
<entry>
<para>http://www.onvif.org/ver20/ptz/wsdl</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</chapter>
<chapter>
<title>Service</title>
<section>
<title>PTZ Node</title>
<section>
<title>General</title>
<para>A PTZ-capable device can have multiple PTZ nodes. The PTZ nodes can 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. The PTZ Service does not provide operations to create or manipulate PTZ nodes.</para>
<para>The following properties shall be provided for all PTZ nodes:</para>
<itemizedlist>
<listitem>
<para>Token – A unique identifier used to reference PTZ nodes.</para>
</listitem>
<listitem>
<para>Name – A name given by the installer.</para>
</listitem>
<listitem>
<para>SupportedPTZSpaces – A list of coordinate systems available for the PTZ node. For each Coordinate System, the PTZ node shall specify its allowed range.</para>
</listitem>
<listitem>
<para>MaximumNumberOfPresets – All preset operations shall be available for this PTZ node if one preset is supported.</para>
</listitem>
<listitem>
<para>HomeSupported – A boolean operator specifying the availability of a home position. If set to true, the Home Position operations shall be available for this PTZ node.</para>
</listitem>
<listitem>
<para>AuxiliaryCommands – A list of supported Auxiliary commands. If the list is not empty, the Auxiliary Operations shall be available for this PTZ node. A device may use auxiliary commands that are described in Core Specification.</para>
</listitem>
<listitem>
<para>MaximumNumberOfPresetTours – Indicates number of preset tours that can be created. Required preset tour operations shall be available for this PTZ node if one or more preset tours are supported.</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>GetNodes</title>
<para>A PTZ-capable device shall implement this operation and return all PTZ nodes available on the device.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">PTZNode - optional, unbounded [tt:PTZNode]</para>
<para role="text">List of the existing PTZ nodes on the device.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="text">None</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_MEDIA</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>GetNode</title>
<para>A PTZ-capable device shall implement the GetNode operation and return the properties of the requested PTZ node, if it exists. Otherwise, the device shall respond with an appropriate fault message.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">NodeToken [tt:ReferenceToken]</para>
<para role="text">Reference to the requested PTZ node.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">PTZNode [tt:PTZNode]</para>
<para role="text">The requested PTZ node properties.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoEntity</para>
<para role="text">No such PTZ node on the device.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_MEDIA</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>
<section>
<title>PTZ Configuration</title>
<section>
<title>General</title>
<para>The PTZConfiguration contains a reference to the PTZ node in which it belongs. This reference cannot be changed by a client.</para>
<para>The following elements are part of the PTZ Configuration:</para>
<itemizedlist>
<listitem>
<para>PTZNodeToken – A mandatory reference to the PTZ node that the PTZ configuration belongs to. </para>
</listitem>
<listitem>
<para>DefaultAbsolutePanTiltPositionSpace – If the PTZ node supports absolute pan/tilt movements, it shall specify one absolute pan/tilt position space as default. </para>
</listitem>
<listitem>
<para>DefaultRelativePanTiltTranslationSpace – If the PTZ node supports relative pan/tilt movements, it shall specify one relative pan/tilt translation space as default.</para>
</listitem>
<listitem>
<para>DefaultContinuousPanTiltVelocitySpace – If the PTZ node supports continuous pan/tilt movements, it shall specify one continuous pan/tilt velocity space as default.</para>
</listitem>
<listitem>
<para>DefaultPanTiltSpeedSpace – If the PTZ node supports absolute or relative movements, it shall specify one pan/tilt speed space as default.</para>
</listitem>
<listitem>
<para>DefaultAbsoluteZoomPositionSpace – If the PTZ node supports absolute zoom movements, it shall specify one absolute zoom position space as default.</para>
</listitem>
<listitem>
<para>DefaultRelativeZoomTranslationSpace – If the PTZ node supports relative zoom movements, it shall specify one relative zoom translation space as default.</para>
</listitem>
<listitem>
<para>DefaultContinuousZoomVelocitySpace – If the PTZ node supports continuous zoom movements, it shall specify one continuous zoom velocity space as default.</para>
</listitem>
<listitem>
<para>DefaultPTZSpeed – If the PTZ node supports absolute or relative PTZ movements, it shall specify corresponding default pan/tilt and zoom speeds.</para>
</listitem>
<listitem>
<para>DefaultPTZTimeout – If the PTZ node supports continuous movements, it shall specify a default timeout, after which the movement stops. </para>
</listitem>
<listitem>
<para>PanTiltLimits – The pan/tilt limits element should be present for a PTZ node that supports an absolute pan/tilt. If the element is present it signals the support for configurable pan/tilt limits. If limits are enabled, the pan/tilt movements shall always stay within the specified range. The pan/tilt limits are disabled by setting the limits to –INF or +INF. </para>
</listitem>
<listitem>
<para>ZoomLimits – The zoom limits element should be present for a PTZ node that supports absolute zoom. If the element is present it signals the supports for configurable zoom limits. If limits are enabled the zoom movements shall always stay within the specified range. The zoom limits are disabled by settings the limits to –INF and +INF. </para>
</listitem>
<listitem>
<para>MoveRamp – The optional acceleration ramp used by the device when moving.</para>
</listitem>
<listitem>
<para>PresetRamp – The optional acceleration ramp used by the device when recalling presets.</para>
</listitem>
<listitem>
<para>PresetTourRamp – The optional acceleration ramp used by the device when executing PresetTours.</para>
</listitem>
</itemizedlist>
<para>The default position/translation/velocity spaces are introduced to allow clients sending move requests without the need to specify a certain coordinate system. The default speeds are introduced to control the speed of move requests (absolute, relative, preset), where no explicit speed has been set.</para>
<para>The allowed pan and tilt range for pan/tilt limits are 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. What this means in practice is 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.</para>
</section>
<section>
<title>GetConfigurations</title>
<para>A PTZ-capable device shall return all available PTZConfigurations through the GetConfigurations operation.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">PTZConfiguration - optional, unbounded [tt:PTZConfiguration]</para>
<para role="text">List of all existing PTZConfigurations on the device.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="text">None</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_MEDIA</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>GetConfiguration</title>
<para>A PTZ-capable device shall return the requested PTZ configuration, if it exists, through the GetConfiguration operation.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ConfigurationToken [tt:ReferenceToken]</para>
<para role="text">Reference to the requested PTZ configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">PTZConfiguration[tt:PTZConfiguration]</para>
<para role="text">The requested PTZ node configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoConfig</para>
<para role="text">The requested configuration does not exist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_MEDIA</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>GetConfigurationOptions</title>
<para>A PTZ-capable device shall implement the GetConfigurationOptions operation. It returns the list of supported coordinate systems including their range limitations. Therefore, the options MAY differ depending on whether the PTZ configuration is assigned to a profile(see ONVIF Media Service Specification) containing a VideoSourceConfiguration. In this case, the options may contain additional coordinate systems referring to the image coordinate system described by the VideoSourceConfiguration. Each listed coordinate system belongs to one of the groups listed in Section <xref linkend="_Toc241999839" />. If the PTZ node supports continuous movements, it shall return a timeout range within which timeouts are accepted by the PTZ node.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ConfigurationToken [tt:ReferenceToken]</para>
<para role="text">Reference to the requested PTZ configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">PTZConfigurationOptions[tt:PTZConfigurationOptions]</para>
<para role="text">The requested PTZ node configuration options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoConfig</para>
<para role="text">The requested configuration does not exist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_MEDIA</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>SetConfiguration</title>
<para>A PTZ-capable device shall implement the SetConfiguration operation. The ForcePersistence flag indicates if the changes remain after reboot of the device.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ConfigurationToken [tt:ReferenceToken]</para>
<para role="text">Reference to the PTZ configuration to be modified.</para>
<para role="param">PTZConfigurationOptions[tt:PTZConfigurationOptions]</para>
<para role="text">The requested PTZ node configuration options.</para>
<para role="param">ForcePersistence [xs:boolean]</para>
<para role="text">Deprecated modifier for temporary settings if supported by the device.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoConfig</para>
<para role="text">The requested configuration does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:ConfigModify</para>
<para role="text">The configuration parameters cannot be set.</para>
<para role="param">env:Receiver - ter:Action - ter:ConfigurationConflict</para>
<para role="text">The new settings conflict with other uses of the configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">ACTUATE</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>GetCompatibleConfigurations</title>
<para>A device signalling support for GetCompatibleConfigurations via the capability GetCompatibleConfigurations shall return all available PTZConfigurations that can be added to the referenced media profile through the GetComatibleConfigurations operation.</para>
<para>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.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Token of an existing media profile.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">PTZConfiguration - optional, unbounded [tt:PTZConfiguration]</para>
<para role="text">List of compatible PTZ node configurations.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Receiver - ter:ActionNotSupported - ter:OptionalActionNotSupported</para>
<para role="text">This method is not implemented by the device.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_MEDIA</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>
<section>
<title>Move Operations</title>
<para>This section describes three operations to move the PTZ unit absolutely, relatively or continuously. All operations require a profile token referencing a Media Profile that includes a PTZConfiguration.</para>
<para>All move commands shall be implemented non-blocking, meaning they shall not wait until the requested move operation has finished. The last move operation can be overwritten by sending another move request.</para>
<para>Due to the wide range of physical devices this specification addressescovers, the specification does not require a specific response time to PTZ move operations is not required. However, a device shall strive for minimal latency regarding PTZ move command request-to-response time. Note that the device does not have full control of the lag from PTZ control input and device movement. Network delays and client delays can further increase lag. Implementations should minimize device lag as much as possible.</para>
<section>
<title>AbsoluteMove </title>
<para>If a PTZ node supports absolute pan/tilt or absolute zoom movements, it shall support the AbsoluteMove operation. The position argument of this command specifies the absolute position to which the PTZ unit moves. It splits into an optional pan/tilt element and an optional zoom element. If the pan/tilt position is omitted, the current pan/tilt movement shall not be affected by this command. The same holds for the zoom position. </para>
<para>The spaces referenced within the position shall be absolute position spaces supported by the PTZ node. If the space information is omitted, the corresponding default spaces of the PTZ configuration, a part of the specified media profile, is used. A device may support absolute pan/tilt movements, absolute zoom movements or no absolute movements by providing only absolute position spaces for the supported cases.</para>
<para>An existing Speed argument overrides DefaultSpeed of the corresponding PTZ configuration during movement to the requested position. If spaces are referenced within the Speed argument, they shall be speed spaces supported by the PTZ node.</para>
<para>The operation shall fail if the requested absolute position is not reachable.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Reference to an existing media profile.</para>
<para role="param">Position [tt:PTZVector]</para>
<para role="text">Vector specifying the absolute target position.</para>
<para role="param">Speed - optional [tt:PTZSpeed]</para>
<para role="text">Optional speed vector.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoProfile</para>
<para role="text">The requested profile token ProfileToken does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoPTZProfile</para>
<para role="text">The requested profile token does not reference a PTZ configuration.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported</para>
<para role="text">A space is referenced that is not supported by the PTZ node.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:InvalidPosition</para>
<para role="text">The requested position is out of bounds.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:InvalidSpeed</para>
<para role="text">The requested speed is out of bounds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">ACTUATE</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>RelativeMove</title>
<para>If a PTZ node supports relative pan/tilt or relative zoom movements, then it shall support the RelativeMove operation. The translation argument of this operation specifies the difference from the current position to the position to which the PTZ device is instructed to move. The operation is split into an optional pan/tilt element and an optional zoom element. If the pan/tilt element is omitted, the current pan/tilt movement shall NOT be affected by this command. The same holds for the zoom element. </para>
<para>The spaces referenced within the translation element shall be translation spaces supported by the PTZ node. If the space information is omitted for the translation argument, the corresponding default spaces of the PTZ configuration, which is part of the specified media profile, is used. A device may support relative pan/tilt movements, relative Zoom movements or no relative movements by providing only translation spaces for the supported cases.</para>
<para>An existing speed argument overrides DefaultSpeed of the corresponding PTZ configuration during movement by the requested translation. If spaces are referenced within the speed argument, they shall be speed spaces supported by the PTZ node.</para>
<para>The command can be used to stop the PTZ unit at its current position by sending zero values for pan/tilt and zoom. Stopping shall have the very same effect independent of the relative space referenced.</para>
<para>If the requested translation leads to an absolute position which cannot be reached, the PTZ node shall move to a reachable position along the border of valid positions.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Reference to an existing media profile.</para>
<para role="param">Translation [tt:PTZVector]</para>
<para role="text">Vector specifying the positional translation relative to the current position.</para>
<para role="param">Speed - optional [tt:PTZSpeed]</para>
<para role="text">Optional speed vector.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoProfile</para>
<para role="text">The requested profile token does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoPTZProfile</para>
<para role="text">The requested profile token does not reference a PTZ configuration.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported</para>
<para role="text">A space is referenced which is not supported by the PTZ node.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:<phrase>InvalidTranslation</phrase></para>
<para role="text">The requested translation is out of bounds.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:InvalidSpeed</para>
<para role="text">The requested speed is out of bounds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">ACTUATE</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>ContinuousMove</title>
<para>A PTZ-capable device shall support continuous movements. The velocity argument of this command specifies a signed speed value for the pan, tilt and zoom. The combined pan/tilt element is optional and the Zoom element itself is optional. If the pan/tilt element is omitted, the current pan/tilt movement shall not be affected by this command. The same holds for the zoom element. The spaces referenced within the velocity element shall be velocity spaces supported by the PTZ node. If the space information is omitted for the velocity argument, the corresponding default spaces of the PTZ configuration belonging to the specified media profile is used. A device may support continuous pan/tilt movements and/or continuous zoom movements by providing only velocity spaces for the supported cases.</para>
<para>An existing timeout argument overrides the DefaultPTZTimeout parameter of the corresponding PTZ configuration for this Move operation. The timeout parameter specifies how long the PTZ node continues to move.</para>
<para>A device shall stop movement in a particular axis (Pan, Tilt, or Zoom) when zero is sent as the ContinuousMove parameter for that axis. Stopping shall have the same effect independent of the velocity space referenced. This command has the same effect on a continuous move as the stop command specified in section <xref linkend="_Ref485888623" />.</para>
<para>If the requested velocity leads to absolute positions which cannot be reached, the PTZ node shall move to a reachable position along the border of its range. A typical application of the continuous move operation is controlling PTZ via joystick.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Reference to an existing media profile.</para>
<para role="param">Velocity [tt:PTZSpeed]</para>
<para role="text">Speed vector specifying the velocity of pan, tilt and zoom.</para>
<para role="param">Timeout - optional [xs:duration]</para>
<para role="text">Optional timeout.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoProfile</para>
<para role="text">The requested profile token ProfileToken does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoPTZProfile</para>
<para role="text">The requested profile token does not reference a PTZ configuration.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported</para>
<para role="text">A space is referenced which is not supported by the PTZ node.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:<phrase>InvalidTranslation</phrase></para>
<para role="text">The requested translation is out of bounds.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:<phrase>TimeoutNotSupported</phrase></para>
<para role="text">The specified timeout argument is not within the supported timeout range.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:InvalidVelocity</para>
<para role="text">The requested speed is out of bounds.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">ACTUATE</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>GeoMove</title>
<para>A device signaling GeoMove in one of its PTZ nodes shall support this command.</para>
<para>The optional AreaHeight and AreaWidth parameters can be added to the request, so that the PTZ-capable device can internally determine the zoom factor. In case both AreaHeight and AreaWidth are not provided, the unit will not change the zoom. AreaHeight and AreaWidth are expressed in meters.</para>
<para>An existing speed argument overrides the DefaultSpeed of the corresponding PTZ configuration during movement by the requested translation. If spaces are referenced within the speed argument, they shall be speed spaces supported by the PTZ node.</para>
<para>If the PTZ-capable device does not support automatic retrieval of the geolocation, it shall be configured by using SetGeoLocation before it can perform geo-referenced commands. If the client requests a GeoMove command before the geolocation of the device is configured, the device shall return an error.</para>
<para>Depending on the kinematics of the PTZ-capable device, the requested position may not be reachable. In this situation the device shall return an error, signalling that it cannot perform the requested action due to physical limitations.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Reference to an existing media profile.</para>
<para role="param">Target [tt:GeoLocation]</para>
<para role="text">Target coordinates.</para>
<para role="param">Speed - optional [tt:PTZSpeed]</para>
<para role="text">Speed vector specifying the velocity of pan, tilt and zoom.</para>
<para role="param">AreaWidth - optional [xs:float]</para>
<para role="text">Optional area to be shown.</para>
<para role="param">AreaHeight - optional [xs:float]</para>
<para role="text">Optional area to be shown.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoProfile</para>
<para role="text">The requested profile token ProfileToken does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoPTZProfile</para>
<para role="text">The requested profile token does not reference a PTZ configuration.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:GeoMoveNotSupported</para>
<para role="text">The device does not support geo move.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:<phrase>UnreachablePosition</phrase></para>
<para role="text">The requested translation is out of bounds.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:<phrase>TimeoutNotSupported</phrase></para>
<para role="text">The requested position is not reachable.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:GeoLocationUnknown</para>
<para role="text">The unit is not able to perform GeoMove because its geolocation is not configured or available.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">ACTUATE</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="_Ref485888623">
<title>Stop</title>
<para>A PTZ-capable device shall support the Stop operation. If no stop filter arguments are present, this command stops all ongoing pan, tilt and zoom movements. The Stop operation can be filtered to stop a specific movement by setting the corresponding stop argument.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Reference to an existing media profile.</para>
<para role="param">PanTilt - optional [xs:boolean]</para>
<para role="text">Stop pan and tilt operation (defaults to true).</para>
<para role="param">Zoom - optional [xs:boolean]</para>
<para role="text">Stop zoom operation (defaults to true).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoProfile</para>
<para role="text">The requested profile token ProfileToken does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoPTZProfile</para>
<para role="text">The requested profile token does not reference a PTZ configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">ACTUATE</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section>
<title>MoveAndStartTracking</title>
<para>A device signaling MoveAndTrack in one of its PTZ nodes shall support this command. The purpose of this action is to send an an atomic command to the device: move the camera to a wanted position and then delegate the PTZ control to the tracking algorithm. With the atomic command the latency is minimized. The move position is optional and can be set in three different modes:</para>
<itemizedlist>
<listitem><para>By GeoLocation coordinates</para></listitem>
<listitem><para>By a preset token</para></listitem>
<listitem><para>By a PTZVector position</para></listitem>
</itemizedlist>
<para>An existing Speed argument overrides DefaultSpeed of the corresponding PTZ configuration during movement to the requested position. If spaces are referenced within the Speed argument, they shall be speed spaces supported by the PTZ node.</para>
<para>If the detection and the tracking are done in the same device, an ObjectID reference can be passed as an argument, in order to specify which object should be tracked.</para>
<para>The operation shall fail if the requested absolute position is not reachable.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">ProfileToken [tt:ReferenceToken]</para>
<para role="text">Reference to an existing media profile.</para>
<para role="param">GeoLocation – optional [tt:GeoLocation]</para>
<para role="text">Optional target coordinates</para>
<para role="param">PresetToken – optional [tt:ReferenceToken]</para>
<para role="text">Optional reference to an existing preset token.</para>
<para role="param">TargetPosition – optional [tt:PTZVector]</para>
<para role="text">Optional Vector specifying the absolute target position.</para>
<para role="param">Speed - optional [tt:PTZSpeed]</para>
<para role="text">Optional speed vector.</para>
<para role="param">ObjectID - optional [tt:ObjectId]</para>
<para role="text">Optional object ID of the object to track.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="text">This is an empty message.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoProfile</para>
<para role="text">The requested profile token ProfileToken does not exist.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:NoPTZProfile</para>
<para role="text">The requested profile token does not reference a PTZ configuration.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported</para>
<para role="text">A space is referenced that is not supported by the PTZ node.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:InvalidPosition</para>
<para role="text">The requested position is out of bounds.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:InvalidSpeed</para>
<para role="text">The requested speed is out of bounds.</para>
<para role="param">env:Sender - ter:InvalidArgVal - ter:GeoMoveNotSupported</para>
<para role="text">The device does not support geo move.</para>